All Downloads are FREE. Search and download functionalities are using the official Maven repository.

edits.seer.seer-edits.xml Maven / Gradle / Ivy

There is a newer version: 024-13
Show newest version
<?xml version="1.0" encoding="UTF-8"?>
<validator id="seer" name="SEER" version="SE24-024-09" min-engine-version="6.8">
    <releases>
        <release version="SE24-024-09" date="2024-08-21" desc="Updated IF2613DG_P1 and IFN4911."/>
        <release version="SE24-024-08" date="2024-08-20" desc="Updated IF264DIG and IFN7039 edits."/>
        <release version="SE24-024-07" date="2024-08-07" desc="Additional changes for V24A."/>
        <release version="SE24-024-06" date="2024-07-31" desc="Added and updated edits from NAACCR V24A metafile."/>
        <release version="SE24-024-05" date="2024-05-30" desc="Update Census Tract edits to use Addr at DX State."/>
        <release version="SE24-024-04" date="2024-05-07" desc="Additional changes for NAACCR 24 and some edit fixes."/>
        <release version="SE24-024-03" date="2024-04-10" desc="Additional changes for NAACCR 24."/>
        <release version="SE24-024-02" date="2024-03-21" desc="Updated IFN2814, IFN3988, and IF632."/>
        <release version="SE24-024-01" date="2024-03-20" desc="Initial changes for NAACCR 24."/>
        <release version="SE23-023-11" date="2024-01-31" desc="Remove edits for non-required items."/>
        <release version="SE23-023-10" date="2024-01-29" desc="Updated IF627 and IF160 and added Bladder edits."/>
        <release version="SE23-023-09" date="2023-12-06" desc="Updated IF33."/>
        <release version="SE23-023-08" date="2023-10-11" desc="Updated IF179 and Derived_EOD_2018_Stage_Group."/>
        <release version="SE23-023-07" date="2023-09-25" desc="Updated IFN4910, IFN2021, IFN6802, and IFN461. Removed several edits and added edits for Census Tract 2020 fields."/>
        <release version="SE23-023-06" date="2023-08-30" desc="Updated IFN6321, IFN6375, IFN6376, IFN6436, IFN6749, IFN6753, MorphICDO3_P3, and County at DX edits."/>
        <release version="SE23-023-05" date="2023-07-07" desc="Final changes for NAACCR 23."/>
        <release version="SE23-023-04" date="2023-06-15" desc="Updated and added additional edits for NAACCR 23."/>
        <release version="SE23-023-03" date="2023-05-30" desc="Updated and added more edits for NAACCR 23."/>
        <release version="SE23-023-02" date="2023-05-17" desc="Updated and added edits for NAACCR 23."/>
        <release version="SE23-023-01" date="2023-03-30" desc="Updated edits for NAACCR 23."/>
        <release version="SE22-022-18" date="2023-01-17" desc="Updated IFN6661; removed ICD-O-2 Conversion Flag edits."/>
        <release version="SE22-022-17" date="2022-12-16" desc="Updated IFN3007, IF133, MorphICDO3_P3, IF24, IFN6179, IFN6437, and IFN6593."/>
        <release version="SE22-022-15" date="2022-10-24" desc="Updated IFN6594."/>
        <release version="SE22-022-16" date="2022-10-24" desc="Updated RegCounty."/>
        <release version="SE22-022-14" date="2022-10-21" desc="Updated IFN3007."/>
        <release version="SE22-022-13" date="2022-10-19" desc="Updated IFN3007 and several date field edits."/>
        <release version="SE22-022-12" date="2022-10-14" desc="Updated IFN6368."/>
        <release version="SE22-022-11" date="2022-09-15" desc="Updated Histologic_Type_ICD-O-3, IF134, IF170, SEER_IR12."/>
        <release version="SE22-022-10" date="2022-08-26" desc="Updated SEER_IR12 and IFN6255."/>
        <release version="SE22-022-09" date="2022-08-12" desc="Updated IFN3968, IFN6642, IF75, SEER_IR13A, SEER_IR12, and MorphICDO3_P1."/>
        <release version="SE22-022-08" date="2022-06-24" desc="Updated IFN6660; changed several error messages."/>
        <release version="SE22-022-07" date="2022-06-16" desc="Removed IFN6668."/>
        <release version="SE22-022-06" date="2022-06-14" desc="Updated edits for Illinois and Texas; updated edits for 2022."/>
        <release version="SE22-022-05" date="2022-05-23" desc="Added edits from V22B metafile; updated several edits."/>
        <release version="SE22-022-04" date="2022-05-04" desc="Updated edits for Illinois and Texas; updated more edits from V22B metafile."/>
        <release version="SE22-022-03" date="2022-04-28" desc="Updated edits from V22B metafile; updated edits for Illinois and Texas."/>
        <release version="SE22-022-02" date="2022-03-22" desc="Updated IFN5016 and IFN5019; updated several edits for Illinois."/>
        <release version="SE22-022-01" date="2022-03-15" desc="New NAACCR 22 edits."/>
        <release version="SE21-021-11" date="2022-01-11" desc="Updated several edits for Illinois and Texas; updated IFN3951."/>
        <release version="SE21-021-10" date="2021-10-18" desc="Updated IF58 and IF75."/>
        <release version="SE21-021-09" date="2021-09-23" desc="Updated several edits for Illinois and Texas; minor updates to edits based on the V22 metafile."/>
        <release version="SE21-021-08" date="2021-08-19" desc="Updated edits for Illinois and Texas and modified several other edits."/>
        <release version="SE21-021-07" date="2021-07-21" desc="Updated edits for Illinois and Texas."/>
        <release version="SE21-021-06" date="2021-06-14" desc="Fixed IFN6140, IFN6240, IFN6256, IFN6363, IFN6368, IFN6437, and updated Registry_ID."/>
        <release version="SE21-021-05" date="2021-05-27" desc="Updated IFN6432; removed several edits."/>
        <release version="SE21-021-04" date="2021-05-25" desc="New NAACCR 21 edits."/>
        <release version="SE21-021-03" date="2021-03-15" desc="Updated edits for 2021 from the NAACCR metafile."/>
        <release version="SE21-021-02" date="2021-02-01" desc="Updated IFN3007, IFN2814, IFN2816, IFN2879, anf IFN2880; added IFN6092."/>
        <release version="SE21-021-01" date="2021-01-15" desc="Updated several edits for NAACCR 21; removed IFN2843 and IFN2824."/>
        <release version="SE18-020-10" date="2020-12-01" desc="Added edit tags where tags were missing; removed IF2610DG_P1."/>
        <release version="SE18-020-09" date="2020-10-28" desc="Fixed IFN2843; reverted changes for IF83, IF167, and IF441."/>
        <release version="SE18-020-08" date="2020-10-13" desc="Updated IFN5022, IF169, and IF170."/>
        <release version="SE18-020-07" date="2020-10-08" desc="Updated IFN5022, IF83, IF167, and IF441; added corresponding Genedits tags."/>
        <release version="SE18-020-06" date="2020-09-11" desc="Fixed IF65 and IF66 edits."/>
        <release version="SE18-020-05" date="2020-09-10" desc="Updated many edits based on new release of NAACCR metafile."/>
        <release version="SE18-020-04" date="2020-07-13" desc="Updated several edits, including some for 2021 histologies."/>
        <release version="SE18-020-03" date="2020-04-28" desc="Modified IF108, IF109, IFN2968, and IFN4911."/>
        <release version="SE18-020-02" date="2020-04-06" desc="Changed several edits based on new release of NAACCR metafile."/>
        <release version="SE18-020-01" date="2020-03-11" desc="Changed field names in all edits to align with NAACCR XML IDs; updated several edits."/>
        <release version="SE18-019-07" date="2020-01-15" desc="Added IFN6129 and IFN6130; updated IFN2968, IFN5016, IFN5050, and SEER_IR13A."/>
        <release version="SE18-019-06" date="2019-10-22" desc="Modified IFN2811 and IFN5031."/>
        <release version="SE18-019-05" date="2019-10-14" desc="Modified IF37, IF442, IFN2811, IFN5000, IF168_P2, and IF168_P3."/>
        <release version="SE18-019-04" date="2019-09-16" desc="Updated IF24 and IFN2843; updated several edits for New Jersey."/>
        <release version="SE18-019-03" date="2019-08-09" desc="Updated several edits based on the 18D metafile and changes for NY."/>
        <release version="SE18-019-02" date="2019-05-31" desc="Updated several edits and added edits for 2019 cases."/>
        <release version="SE18-019-01" date="2019-04-18" desc="Updated edits for 2018 cases and added edits for 2019 cases."/>
        <release version="SE18-018-14" date="2019-03-04" desc="Updated IF66 and IF73 for new registries."/>
        <release version="SE18-018-13" date="2019-02-25" desc="Modified IFN4911, IF81, and Cause_of_Death; removed IF88_3."/>
        <release version="SE18-018-12" date="2019-02-06" desc="Modified several edits to skip for new registries; removed several edits."/>
        <release version="SE18-018-11" date="2019-01-15" desc="Fixed several edits for 2018 cases."/>
        <release version="SE18-018-10" date="2018-12-19" desc="Added and modified edits for 2018 cases."/>
        <release version="SE18-018-09" date="2018-11-06" desc="Fixed an issue with IF83."/>
        <release version="SE18-018-08" date="2018-11-01" desc="Modified IF83, IF25_3, and MorphICDO3_P4."/>
        <release version="SE18-018-07" date="2018-10-09" desc="Modified IF33, IF60, and IFN2968"/>
        <release version="SE18-018-06" date="2018-09-19" desc="Updated error messages, descriptions, and valid codes for several edits."/>
        <release version="SE18-018-05" date="2018-08-20" desc="New NAACCR 18 edits (fourth pass)."/>
        <release version="SE18-018-04" date="2018-08-09" desc="New NAACCR 18 edits (third pass)."/>
        <release version="SE18-018-03" date="2018-07-27" desc="New NAACCR 18 edits (second pass)."/>
        <release version="SE18-018-02" date="2018-06-25" desc="New NAACCR 18 edits (first pass)."/>
        <release version="SE18-018-01" date="2018-05-03" desc="NAACCR 18 changes to existing edits."/>
        <release version="SE18-017-01" date="2018-04-03" desc="Updated some edits to use vital status of 0 instead of 4, started to implement some of the NAACCR 18 changes."/>
        <release version="SE16-016-11" date="2018-03-09" desc="Minor tweaks to a few edits."/>
        <release version="SE16-016-10" date="2018-01-18" desc="Fixed IF510 documentation, added a few new Systemic date edits."/>
        <release version="SE16-016-09" date="2018-01-12" desc="Added two new edits, updated reported fields in two inter-record edits."/>
        <release version="SE16-016-08" date="2017-12-14" desc="Updated the syntax of many edits to allow pre-compilation optimization."/>
        <release version="SE16-016-07" date="2017-11-20" desc="Fixed how inter-record edits report their failing lines."/>
        <release version="SE16-016-06" date="2017-09-13" desc="Disabled RX_Summ--Surgical_Margins."/>
        <release version="SE16-016-05" date="2017-09-08" desc="Tweaked IF568 and added RX_Summ--Surgical_Margins."/>
        <release version="SE16-016-04" date="2017-07-11" desc="Changes based on new release of NAACCR metafile."/>
        <release version="SE16-016-03" date="2017-05-17" desc="Fixed an issue in IF613."/>
        <release version="SE16-016-02" date="2017-03-06" desc="Minor tweaks to IF574, IF575 and IF602; added new Address_at_DX_State edit."/>
        <release version="SE16-016-01" date="2017-02-01" desc="Many changes for 2017 cases."/>
        <release version="SE16-015-08" date="2016-10-10" desc="Minor tweaks in edits IF17, IF616, IF618, IF582 and IF574. Removed SEER_IR16A, SEER_IR16B."/>
        <release version="SE16-015-07" date="2016-09-14" desc="Minor tweaks in edits IF291-IF300, IF308, IF616, and IF618."/>
        <release version="SE16-015-06" date="2016-08-10" desc="Minor tweaks in several staging edits."/>
        <release version="SE16-015-05" date="2016-07-21" desc="Tweaked IF568, IF582, added IF622, removed IF399."/>
        <release version="SE16-015-04" date="2016-07-13" desc="Tweaked IF536, IF83, IF167 and IF441."/>
        <release version="SE16-015-03" date="2016-07-07" desc="Fixed an issue in IF612."/>
        <release version="SE16-015-02" date="2016-07-01" desc="Fixed an issue in IF582 and IF586."/>
        <release version="SE16-015-01" date="2016-06-24" desc="New NAACCR 16 edits."/>
        <release version="SE15-014-03" date="2015-09-18" desc="Added one more valid site/histology combination to IF25_3."/>
        <release version="SE15-014-02" date="2015-08-27" desc="Added more valid site/histology combinations to IF25_3."/>
        <release version="SE15-014-01" date="2015-06-29" desc="Fixed reported fields in SEER_IR09_3; fix sorting method in several inter-record edits. Minimum engine is now 5.1."/>
        <release version="SE15-013-02" date="2015-03-05" desc="Modified IF510, IF348, IF25_3, IF440, added IF535."/>
        <release version="SE15-013-01" date="2015-01-27" desc="New NAACCR 15 edits."/>
        <release version="SE14-012-03" date="2014-08-25" desc="Fixed an issue in IF318."/>
        <release version="SE14-012-02" date="2014-07-24" desc="New release of edits metafile (v14A)."/>
        <release version="SE14-012-01" date="2014-05-13" desc="Removed two Software edits, replaced rulesets by categories in the XML file."/>
        <release version="SE14-011-04" date="2014-04-21" desc="Updated all inter-record edits so they report all the available tumors for a given patient set, not just the ones failing the edit."/>
        <release version="SE14-011-03" date="2014-03-31" desc="Updated IF164 to allow blank Date of Conclusive DX for 2013+ cases; added pre-condition for missing DX year to IF395."/>
        <release version="SE14-011-02" date="2014-01-14" desc="Updated IF111 and IF112."/>
        <release version="SE14-011-01" date="2013-12-04" desc="Updated for Collaborative Stage 020550; removed some dependencies that were not required anymore."/>
        <release version="SE13-010-07" date="2013-10-11" desc="Added an override flag checking in IF348."/>
        <release version="SE13-010-06" date="2013-10-03" desc="Added new valid county codes for Alaska in RegCounty; deleted IF50 and IF53."/>
        <release version="SE13-010-05" date="2013-09-11" desc="Disabled IF462 for Arizona Indians and fixed IF398."/>
        <release version="SE13-010-04" date="2013-08-23" desc="Added IF461 and IF462 census 2010 edits; disabled IF50, IF53 and IF398; disabled IF441 for Cherokee Nation."/>
        <release version="SE13-010-03" date="2013-08-13" desc="Fixed minor issues in several edits, added IR01A and IR02B."/>
        <release version="SE13-010-02" date="2013-07-19" desc="Fixed IF165"/>
        <release version="SE13-010-01" date="2013-07-15" desc="New release of edits metafile."/>
        <release version="SE13-009-03" date="2013-05-03" desc="Added IF441 and modified a few other census edits."/>
        <release version="SE13-009-02" date="2013-03-05" desc="Fixed an issue in IF312 and IF398"/>
        <release version="SE13-009-01" date="2013-02-05" desc="New NAACCR 13 edits."/>
        <release version="SE12-008-06" date="2013-01-11" desc="Fixed an issue in IF24."/>
        <release version="SE12-008-05" date="2012-12-04" desc="Fixed minor issues in CS_Version_Input_Original, MorphICDO3_P1 and IF200."/>
        <release version="SE12-008-04" date="2012-10-23" desc="Removed IF372 and IF373."/>
        <release version="SE12-008-03" date="2012-09-21" desc="Fixed IF257 to correctly call the CStage DLL to validate SSF25."/>
        <release version="SE12-008-02" date="2012-09-12" desc="Fixed documentation to IF257, and fixed Site_73-91_ICD-O-1 and IF160 logic."/>
        <release version="SE12-008-01" date="2012-08-17" desc="Added IF395, IF396 and IF397; modified several edits for November 2012 submission."/>
        <release version="SE12-007-03" date="2012-08-08" desc="Updated IF112 and IF167."/>
        <release version="SE12-007-02" date="2012-04-16" desc="Fixed an issue in IF354, IF205, IF206, and IF207."/>
        <release version="SE12-007-01" date="2012-03-28" desc="More NAACCR 12.2 changes."/>
        <release version="SE12-006-03" date="2012-01-24" desc="Fixed an issue in IF288 and updated IF207."/>
        <release version="SE12-006-02" date="2012-01-09" desc="Fixed IF367 and IF385 error message."/>
        <release version="SE12-006-01" date="2012-01-03" desc="NAACCR 12.2 and Collaborative Stage 0204."/>
        <release version="SE12-005-08" date="2011-12-30" desc="Modified Site_73-91_ICD-O-1, RX_Summ--Scope_Reg_LN_Sur, IF123, IF196, IF261, IF288, and IF369"/>
        <release version="SE12-005-07" date="2011-12-09" desc="Modified IF205 and IF206"/>
        <release version="SE12-005-06" date="2011-12-06" desc="Added descriptions to categories and split first release into multiple releases.  No changes to edits."/>
        <release version="SE12-005-05" date="2011-10-10" desc="Fixed IF354 to correctly report when CS Tumor Size fails."/>
        <release version="SE12-005-04" date="2011-10-06" desc="Modified IF02, IF37, IF259, IF322, IF323, IF354, and IF366"/>
        <release version="SE12-005-03" date="2011-09-20" desc="Fixed blank year of diagnosis skip condition in IF49 and added a skip condition for Arizona."/>
        <release version="SE12-005-02" date="2011-09-13" desc="Fixed bad schema name in IF201."/>
        <release version="SE12-005-01" date="2011-08-22" desc="Updates for Collaborative Stage 020302."/>
        <release version="SE12-004-03" date="2011-05-13" desc="Fixes for CSv2 edit IF321 and edit IF76."/>
        <release version="SE12-004-02" date="2011-03-18" desc="Minor fixes to some CSv2 edits."/>
        <release version="SE12-004-01" date="2011-02-23" desc="Updates for Collaborative Stage 020302."/>
        <release version="SE12-003-03" date="2011-02-15" desc="Fixed several issues in edits documentation."/>
        <release version="SE12-003-02" date="2011-01-10" desc="Added more NAACCR 12.1 edits; also added Greater Georgia counties/census edits."/>
        <release version="SE12-003-01" date="2010-12-07" desc="Started to add NAACCR 12.1 edits (for 2010+ cases)."/>
        <release version="SE12-002-05" date="2010-10-08" desc="Fixed an issue with Collaborative Stage edits checking for version being 020100 instead of being 020100 or after."/>
        <release version="SE12-002-04" date="2010-09-10" desc="Fixed a few errors in some miscellaneous edits."/>
        <release version="SE12-002-02" date="2010-07-06" desc="Minor fix to IF120."/>
        <release version="SE12-002-01" date="2010-06-05" desc="Implemented NAACCR 12 and Collaborative Stage v2."/>
        <release version="SE11-001-23" date="2009-11-30" desc="New release of edits metafile on 11-30-2009."/>
        <release version="SE11-001-22" date="2008-10-07" desc="New release of edits metafile on 10-07-2008."/>
        <release version="SE11-001-21" date="2007-10-05" desc="New release of edits metafile on 10-02-2007."/>
        <release version="SE11-001-20" date="2006-10-19" desc="New release of edits metafile on 10-19-2006."/>
        <release version="SE11-001-19" date="2005-09-01" desc="New release of edits metafile on 09-01-2005."/>
        <release version="SE11-001-18" date="2005-01-01" desc="All changes released with old metafile format in 2005."/>
        <release version="SE11-001-17" date="2004-01-01" desc="All changes released with old metafile format in 2004."/>
        <release version="SE11-001-16" date="2003-01-01" desc="All changes released with old metafile format in 2003."/>
        <release version="SE11-001-15" date="2002-01-01" desc="All changes released with old metafile format in 2002."/>
        <release version="SE11-001-14" date="1999-01-01" desc="All changes released with old metafile format in 1999."/>
        <release version="SE11-001-13" date="1998-01-01" desc="All changes released with old metafile format in 1998."/>
        <release version="SE11-001-12" date="1997-01-01" desc="All changes released with old metafile format in 1997."/>
        <release version="SE11-001-11" date="1996-01-01" desc="All changes released with old metafile format in 1996."/>
        <release version="SE11-001-10" date="1995-01-01" desc="All changes released with old metafile format in 1995."/>
        <release version="SE11-001-09" date="1994-01-01" desc="All changes released with old metafile format in 1994."/>
        <release version="SE11-001-08" date="1993-01-01" desc="All changes released with old metafile format in 1993."/>
        <release version="SE11-001-07" date="1992-01-01" desc="All changes released with old metafile format in 1992."/>
        <release version="SE11-001-06" date="1991-01-01" desc="All changes released with old metafile format in 1991."/>
        <release version="SE11-001-05" date="1990-01-01" desc="All changes released with old metafile format in 1990."/>
        <release version="SE11-001-04" date="1989-01-01" desc="All changes released with old metafile format in 1989."/>
        <release version="SE11-001-03" date="1988-01-01" desc="All changes released with old metafile format in 1988."/>
        <release version="SE11-001-02" date="1987-01-01" desc="All changes released with old metafile format in 1987."/>
        <release version="SE11-001-01" date="1986-01-01" desc="All changes released with old metafile format in 1986."/>
    </releases>
    <deleted-rules>
        <deleted-rule id="IF370" name="CS SSF 2, Pleura (SEER IF370)" version="SE13-009-01" user="murphyr" date="2012-09-19" ref="66797">Edit removed.</deleted-rule>
        <deleted-rule id="IF372" name="CS SSF 21, Surg/Rad Seq, Sur/Sys Seq, Breast (SEER IF372)" version="SE13-009-01" user="murphyr" date="2012-09-19" ref="66798">Edit removed.</deleted-rule>
        <deleted-rule id="IF52" name="Birthplace, Date of Diagnosis (SEER IF52)" version="SE13-009-01" user="murphyr" date="2012-09-19" ref="66801">Edit removed.</deleted-rule>
        <deleted-rule id="IF267" name="CS Version Input Current, Date of DX (CS)" version="SE13-010-01" user="murphyr" date="2013-05-05" ref="66882">Edit removed.</deleted-rule>
        <deleted-rule id="Casefinding_Source" name="Casefinding Source" version="SE13-010-01" user="murphyr" date="2013-05-08" ref="66881">Edit removed.</deleted-rule>
        <deleted-rule id="IF50" name="Race 1, Spanish/Hispanic Origin,Sequence" version="SE13-010-06" user="murphyr" date="2013-10-01" ref="66937">Edit removed.</deleted-rule>
        <deleted-rule id="IF53" name="Race 1, Date of Diagnosis, Sequence" version="SE13-010-06" user="murphyr" date="2013-10-01" ref="66938">Edit removed.</deleted-rule>
        <deleted-rule id="Registry_ID_Submission" name="Registry ID Edit" version="SE14-012-01" user="depryf" date="2014-05-13" ref="67081">Edit removed.</deleted-rule>
        <deleted-rule id="Year_of_Diagnosis_Submission" name="Year of Diagnosis for Submission" version="SE14-012-01" user="depryf" date="2014-05-13" ref="67081">Edit removed.</deleted-rule>
        <deleted-rule id="IF399" name="Birthplace--Country, Date of Diagnosis (NAACCR)" version="SE16-015-05" user="kirbyk" date="2016-07-20" ref="67498">Edit removed.</deleted-rule>
        <deleted-rule id="SEER_IR16A" name="Reporting Source (Seq Num 00 to 59) Error for Patient (SEER IR16A)" version="SE16-015-08" user="kirbyk" date="2016-10-04" ref="67535">Edit removed.</deleted-rule>
        <deleted-rule id="SEER_IR16B" name="Reporting Source (Seq Num 60 to 87) Error for Patient (SEER IR16B)" version="SE16-015-08" user="kirbyk" date="2016-10-04" ref="67535">Edit removed.</deleted-rule>
        <deleted-rule id="IF609" name="TNM Clin N, SSF 3 Skin of Eyelid (CoC)" version="SE16-016-01" user="kirbyk" date="2017-01-19" ref="67628">Edit removed.</deleted-rule>
        <deleted-rule id="IF398" name="Birthplace, Country, State (NAACCR)" version="SE16-016-11" user="kirbyk" date="2018-01-24" ref="67686">Edit removed.</deleted-rule>
        <deleted-rule id="SEER_IR01" name="Birth Place not Consistent for Patient (SEER IR01)" version="SE16-016-11" user="kirbyk" date="2018-01-24" ref="67686">Edit removed.</deleted-rule>
        <deleted-rule id="IF614" name="TNM Path N, RNP, Site Spec - Ed 7, ICDO3 (CoC)" version="SE18-018-01" user="kirbyk" date="2018-04-18" ref="67762">Edit removed.</deleted-rule>
        <deleted-rule id="Birthplace" name="Birthplace (SEER POB)" version="SE18-018-03" user="kirbyk" date="2018-07-17" ref="67965">Edit removed.</deleted-rule>
        <deleted-rule id="IF459" name="Lymph-vascular Invasion, Penis and Testis (CS)" version="SE18-018-03" user="kirbyk" date="2018-07-23" ref="67952">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2976" name="Creatinine Pretreatment Unit of Measure, Schema ID, Required (NAACCR)" version="SE18-018-04" user="kirbyk" date="2018-08-06" ref="67982">Edit removed.</deleted-rule>
        <deleted-rule id="IFN3021" name="TNM Path M1, Clin T, N (COC)" version="SE18-018-05" user="kirbyk" date="2018-08-14" ref="67988">Edit removed.</deleted-rule>
        <deleted-rule id="IFN3029" name="Mets at DX-BBDLLO, Schema ID (SEER)" version="SE18-018-05" user="kirbyk" date="2018-08-16" ref="68018">Edit removed.</deleted-rule>
        <deleted-rule id="MorphICDO3_P2" name="Morphology--Type/Behavior ICDO3 (SEER MORPH)" version="SE18-018-06" user="kirbyk" date="2018-09-17" ref="68031">Edit removed.</deleted-rule>
        <deleted-rule id="Ambiguous_Terminology_DX" name="Ambiguous Terminology DX (SEER)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="Date_of_Conclusive_DX_Flag" name="Date Conclusive DX Flag (NAACCR)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="Date_of_Mult_Tumors_Flag" name="Date of Mult Tumors Flag (NAACCR)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="Day_Conclusive_DX" name="Date Conclusive DX (SEER)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="Day_Multiple_Tumors" name="Date of Mult Tumors (SEER)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="Grade_Path_System" name="Grade Path System (COC)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="Grade_Path_Value" name="Grade Path Value (COC)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="IF155" name="Mult Tum Rpt As One Prim, Date of DX (SEER IF155)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="IF156" name="Multiplicity Counter, Date of DX (SEER IF156)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="IF157" name="Ambiguous Terminology DX, Date of DX (SEER IF157)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="IF161" name="Date Conclusive DX (SEER)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="IF162" name="Ambig Term DX, Date Conclusive DX (SEER IF162)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="IF163" name="Multiplicity Cntr, Date of Mult Tum (SEER IF163)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="IF164_A" name="Date Conclusive DX, Date of DX (SEER IF164)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="IF164_B" name="Date Conclusive DX, Date of DX (SEER IF164)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="IF164_C" name="Date Conclusive DX, Date of DX (SEER IF164)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="IF165" name="Date of Mult Tumors, Date of DX (SEER IF165)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="IF173" name="Date of Mult Tumors (SEER)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="IF184" name="Multiplicity Cntr, Mult Tum Rpt as One Prim (NAACCR)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="IF185" name="Mult Tum Rpt As One Prim, Primary Site (NAACCR)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="IF186" name="Mult Tum Rpt as One Prim, Date of Mult Tum (NAACCR)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="IF205" name="Multiplicity Ctr, Lymphoma/Leukem/Unk Site (NAACCR)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="IF206" name="Mult Tum Rpt, Lymphoma/Leukemia/Unk Site (NAACCR)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="IF207" name="Date of Mult Tum, Lymphoma/Leukem/Unk Site (NAACCR)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="IF220" name="Date Conclusive DX, Date Flag (NAACCR)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="IF224" name="Date of Mult Tumors, Date Flag (NAACCR)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="IF315" name="Grade Path System, Grade Path Value, Grade (COC)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="IF397" name="CS Schema, Path Grade System, Grade (CS)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="Month_Conclusive_DX" name="Date Conclusive DX (SEER)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="Month_Multiple_Tumors" name="Date of Mult Tumors (SEER)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="Mult_Tum_Rpt_as_One_Prim" name="Mult Tum Rpt As One Prim (SEER)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="Multiplicity_Counter" name="Multiplicity Counter (SEER)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="Year_of_Conclusive_DX" name="Date Conclusive DX (SEER)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="Year_of_Multiple_Tumors" name="Date of Mult Tumors (SEER)" version="SE18-018-12" user="kirbyk" date="2019-02-05" ref="68107">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2508" name="AJCC ID, AJCC TNM M (COC)" version="SE18-018-12" user="kirbyk" date="2019-02-06" ref="68109">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2509" name="AJCC ID, AJCC TNM N (COC)" version="SE18-018-12" user="kirbyk" date="2019-02-06" ref="68109">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2510" name="AJCC ID, AJCC TNM T (COC)" version="SE18-018-12" user="kirbyk" date="2019-02-06" ref="68109">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2582" name="AJCC TNM Path M1, Clin T, N, Surgery (COC)" version="SE18-018-12" user="kirbyk" date="2019-02-06" ref="68109">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2611" name="AJCC ID, AJCC TNM Stage Group (COC)" version="SE18-018-12" user="kirbyk" date="2019-02-06" ref="68109">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2804" name="AJCC TNM Clin N Suffix, AJCC ID (COC)" version="SE18-018-12" user="kirbyk" date="2019-02-06" ref="68109">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2805" name="AJCC TNM Path N Suffix, AJCC ID (COC)" version="SE18-018-12" user="kirbyk" date="2019-02-06" ref="68109">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2806" name="AJCC TNM Post Therapy N Suffix, AJCC ID (COC)" version="SE18-018-12" user="kirbyk" date="2019-02-06" ref="68109">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2807" name="AJCC TNM Clin T Suffix, AJCC ID (COC)" version="SE18-018-12" user="kirbyk" date="2019-02-06" ref="68109">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2808" name="AJCC TNM Path T Suffix, AJCC ID (COC)" version="SE18-018-12" user="kirbyk" date="2019-02-06" ref="68109">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2809" name="AJCC TNM Post Therapy T Suffix, AJCC ID (COC)" version="SE18-018-12" user="kirbyk" date="2019-02-06" ref="68109">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2820" name="AJCC TNM N, Suffix, Merkel Cell (COC)" version="SE18-018-12" user="kirbyk" date="2019-02-06" ref="68109">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2882" name="Gestational Trophoblastic Prognostic Scoring Index, AJCC TNM Stage (NAACCR)" version="SE18-018-12" user="kirbyk" date="2019-02-06" ref="68109">Edit removed.</deleted-rule>
        <deleted-rule id="IFN3044" name="AJCC TNM, Date of Diagnosis, CoC Flag (SEER)" version="SE18-018-12" user="kirbyk" date="2019-02-06" ref="68109">Edit removed.</deleted-rule>
        <deleted-rule id="IFN4907" name="AJCC TNM, TNM Edition Number, AJCC ID (SEER)" version="SE18-018-12" user="kirbyk" date="2019-02-06" ref="68109">Edit removed.</deleted-rule>
        <deleted-rule id="IF88_3" name="Cervix In Situ ICDO3 (SEER IF88)" version="SE18-018-13" user="kirbyk" date="2019-02-19" ref="68114">Edit removed.</deleted-rule>
        <deleted-rule id="IFN3904" name="AFP Post-Orchiectomy Range, Schema ID, Required, CoC Flag (SEER)" version="SE18-019-01" user="kirbyk" date="2019-03-28" ref="68141">Edit removed.</deleted-rule>
        <deleted-rule id="Computed_Ethnicity" name="Computed Ethnicity (SEER COMPETHN)" version="SE18-019-02" user="kirbyk" date="2019-05-10" ref="68189">Edit removed.</deleted-rule>
        <deleted-rule id="Computed_Ethnicity_source" name="Computed Ethnicity Source (SEER ETHNSRC)" version="SE18-019-02" user="kirbyk" date="2019-05-10" ref="68189">Edit removed.</deleted-rule>
        <deleted-rule id="IF71" name="CompEthn, Date of Diag (SEER IF71)" version="SE18-019-02" user="kirbyk" date="2019-05-10" ref="68189">Edit removed.</deleted-rule>
        <deleted-rule id="IF72" name="EthnSrc, Date of Diag (SEER IF72)" version="SE18-019-02" user="kirbyk" date="2019-05-10" ref="68189">Edit removed.</deleted-rule>
        <deleted-rule id="Behavior_73-91_ICD-O-1" name="Behavior (73-91) ICD-O-1 (SEER)" version="SE18-019-02" user="kirbyk" date="2019-05-13" ref="68188">Edit removed.</deleted-rule>
        <deleted-rule id="Behavior_ICDO1_Submission" name="SEER Submission Edit 02 (SEER)" version="SE18-019-02" user="kirbyk" date="2019-05-13" ref="68188">Edit removed.</deleted-rule>
        <deleted-rule id="Grade_73-91_ICD-O-1" name="Grade (73-91) ICD-O-1 (SEER)" version="SE18-019-02" user="kirbyk" date="2019-05-13" ref="68188">Edit removed.</deleted-rule>
        <deleted-rule id="Histology_73-91_ICD-O-1" name="Histology (73-91) ICD-O-1 (SEER)" version="SE18-019-02" user="kirbyk" date="2019-05-13" ref="68188">Edit removed.</deleted-rule>
        <deleted-rule id="IF69" name="Site (1973-91), Date of Diagnosis (SEER IF69)" version="SE18-019-02" user="kirbyk" date="2019-05-13" ref="68188">Edit removed.</deleted-rule>
        <deleted-rule id="OldMorph_P1" name="Morph (1973-91) ICD-O-1 (SEER OMORPnos)" version="SE18-019-02" user="kirbyk" date="2019-05-13" ref="68188">Edit removed.</deleted-rule>
        <deleted-rule id="OldMorph_P2" name="Morph (1973-91) ICD-O-1 (SEER OMORPnos)" version="SE18-019-02" user="kirbyk" date="2019-05-13" ref="68188">Edit removed.</deleted-rule>
        <deleted-rule id="OldMorph_P3" name="Morph (1973-91) ICD-O-1 (SEER OMORPnos)" version="SE18-019-02" user="kirbyk" date="2019-05-13" ref="68188">Edit removed.</deleted-rule>
        <deleted-rule id="OldMorph_P4" name="Morph (1973-91) ICD-O-1 (SEER OMORPnos)" version="SE18-019-02" user="kirbyk" date="2019-05-13" ref="68188">Edit removed.</deleted-rule>
        <deleted-rule id="OldMorph_P5" name="Morph (1973-91) ICD-O-1 (SEER OMORPnos)" version="SE18-019-02" user="kirbyk" date="2019-05-13" ref="68188">Edit removed.</deleted-rule>
        <deleted-rule id="OldMorph_P6" name="Morph (1973-91) ICD-O-1 (SEER OMORPnos)" version="SE18-019-02" user="kirbyk" date="2019-05-13" ref="68188">Edit removed.</deleted-rule>
        <deleted-rule id="OldMorph_P7" name="Morph (1973-91) ICD-O-1 (SEER OMORPnos)" version="SE18-019-02" user="kirbyk" date="2019-05-13" ref="68188">Edit removed.</deleted-rule>
        <deleted-rule id="Site_73-91_ICD-O-1" name="Site (1973-91) ICD-O-1 (NAACCR OLDSITE)" version="SE18-019-02" user="kirbyk" date="2019-05-13" ref="68188">Edit removed.</deleted-rule>
        <deleted-rule id="IFN3054" name="Oncotype Dx Recurrence Score-DCIS, Breast, Behavior (NAACCR)" version="SE18-019-03" user="beverung" date="2019-07-17" ref="68225">Edit removed.</deleted-rule>
        <deleted-rule id="IFN3974" name="Oncotype Dx Risk Level-DCIS, Breast, Behavior (NAACCR)" version="SE18-019-03" user="beverung" date="2019-07-17" ref="68225">Edit removed.</deleted-rule>
        <deleted-rule id="IFN4209" name="Date Regional LN Dissection, RX Summ Scope Reg LN Sur, CoC Flag (SEER)" version="SE18-019-03" user="beverung" date="2019-07-19" ref="68209">Edit removed.</deleted-rule>
        <deleted-rule id="Census_Tr_Poverty_Indictr" name="Census Tr Poverty Indictr (SEER)" version="SE18-020-04" user="beverung" date="2020-06-04" ref="68345">Edit removed.</deleted-rule>
        <deleted-rule id="Diagnostic_Proc_73-87" name="Diagnostic Proc 73-87 (SEER DXINFO)" version="SE18-020-04" user="beverung" date="2020-06-04" ref="68345">Edit removed.</deleted-rule>
        <deleted-rule id="IF10" name="Type of Report Srce (DC/AO), SEER Fup (SEER IF10)" version="SE18-020-04" user="beverung" date="2020-06-04" ref="68345">Edit removed.</deleted-rule>
        <deleted-rule id="IF103" name="RX Summ--Surg Site 98-02, Date of DX (SEER IF103)" version="SE18-020-04" user="beverung" date="2020-06-04" ref="68345">Edit removed.</deleted-rule>
        <deleted-rule id="IF106" name="RX Summ--Surg Site 98-02, Diag Conf (SEER IF106)" version="SE18-020-04" user="beverung" date="2020-06-04" ref="68345">Edit removed.</deleted-rule>
        <deleted-rule id="IF139" name="RX Summ--Surg Site 98-02, RX Summ--Surg Site (COC)" version="SE18-020-04" user="beverung" date="2020-06-04" ref="68345">Edit removed.</deleted-rule>
        <deleted-rule id="IF144" name="EOD--Ext Prost Path,RX Summ--Surg Sit 98-02 (SEER)" version="SE18-020-04" user="beverung" date="2020-06-04" ref="68345">Edit removed.</deleted-rule>
        <deleted-rule id="IF182" name="SEER Coding Sys--Current, Date of DX (SEER)" version="SE18-020-04" user="beverung" date="2020-06-04" ref="68345">Edit removed.</deleted-rule>
        <deleted-rule id="IF183" name="Spanish/Hispanic Origin, NHIA Derived (SEER IF183)" version="SE18-020-04" user="beverung" date="2020-06-04" ref="68345">Edit removed.</deleted-rule>
        <deleted-rule id="IF20" name="Type of Report Srce, Diagnostic Proc (SEER IF20)" version="SE18-020-04" user="beverung" date="2020-06-04" ref="68345">Edit removed.</deleted-rule>
        <deleted-rule id="IF402" name="Census Tr Poverty Indictr, Date of DX (SEER)" version="SE18-020-04" user="beverung" date="2020-06-04" ref="68345">Edit removed.</deleted-rule>
        <deleted-rule id="IF78" name="RX Summ--Surg Site 98-02, Site, RptSrc (SEER IF78)" version="SE18-020-04" user="beverung" date="2020-06-04" ref="68345">Edit removed.</deleted-rule>
        <deleted-rule id="IF81" name="RX Summ--Reconstruct 1st,DateDx,RptSrc (SEER IF81)" version="SE18-020-04" user="beverung" date="2020-06-04" ref="68345">Edit removed.</deleted-rule>
        <deleted-rule id="RX_Summ--Reconstruct_1st" name="RX Summ--Reconstruct 1st (SEER RECONST)" version="SE18-020-04" user="beverung" date="2020-06-04" ref="68345">Edit removed.</deleted-rule>
        <deleted-rule id="RX_Summ--Surg_Site_98-02" name="RX Summ--Surg Site 98-02 (COC)" version="SE18-020-04" user="beverung" date="2020-06-04" ref="68345">Edit removed.</deleted-rule>
        <deleted-rule id="Race_NAPIIA" name="Race--NAPIIA(derived API) (NAACCR)" version="SE18-020-04" user="beverung" date="2020-06-04" ref="68345">Edit removed.</deleted-rule>
        <deleted-rule id="SEER_Coding_Sys--Current" name="SEER Coding Sys--Current (SEER)" version="SE18-020-04" user="beverung" date="2020-06-04" ref="68345">Edit removed.</deleted-rule>
        <deleted-rule id="SEER_Coding_Sys--Original" name="SEER Coding Sys--Original (SEER)" version="SE18-020-04" user="beverung" date="2020-06-04" ref="68345">Edit removed.</deleted-rule>
        <deleted-rule id="SEER_IR14" name="Spanish-Hispanic Origin not Consistent for Patient (SEER IR14)" version="SE18-020-04" user="beverung" date="2020-06-04" ref="68345">Edit removed.</deleted-rule>
        <deleted-rule id="SEER_Record_Number" name="SEER Record Number (SEER RECNUM)" version="SE18-020-04" user="beverung" date="2020-06-04" ref="68345">Edit removed.</deleted-rule>
        <deleted-rule id="SEER_Type_of_Follow-up" name="SEER Type of Follow-Up (SEER TYPEFUP)" version="SE18-020-04" user="beverung" date="2020-06-04" ref="68345">Edit removed.</deleted-rule>
        <deleted-rule id="Spanish-Hispanic_Origin" name="Spanish/Hispanic Origin (SEER SPANORIG)" version="SE18-020-04" user="beverung" date="2020-06-04" ref="68345">Edit removed.</deleted-rule>
        <deleted-rule id="SEER_record_number_Submission" name="SEER Submission Edit 01 (SEER)" version="SE18-020-04" user="beverung" date="2020-06-10" ref="68350">Edit removed.</deleted-rule>
        <deleted-rule id="SEER_type_of_follow_up_Submission" name="SEER Submission Edit 01 (SEER)" version="SE18-020-04" user="beverung" date="2020-06-16" ref="68349">Edit removed.</deleted-rule>
        <deleted-rule id="IFN3949" name="Date Regional Lymph Node Dissection, Date Flag, Date DX, CoC Flag (SEER)" version="SE18-020-05" user="kirbyk" date="2020-08-04" ref="68483">Edit removed.</deleted-rule>
        <deleted-rule id="IFN3977" name="RX Date Radiation, Date Flag, Date DX, CoC Flag (SEER)" version="SE18-020-05" user="kirbyk" date="2020-08-04" ref="68484">Edit removed.</deleted-rule>
        <deleted-rule id="IFN3981" name="RX Date Other, Date Flag, Date DX, CoC Flag (SEER)" version="SE18-020-05" user="kirbyk" date="2020-08-04" ref="68484">Edit removed.</deleted-rule>
        <deleted-rule id="IFN4905" name="RX Date Mst Defn Srg, Date Flag, Date DX, CoC Flag (SEER)" version="SE18-020-05" user="kirbyk" date="2020-08-04" ref="68484">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2536" name="Sentinel Lymph Nodes Examined, Date Sentinel Lymph Node Biopsy Flag (COC)" version="SE18-020-05" user="kirbyk" date="2020-08-05" ref="68476">Edit removed.</deleted-rule>
        <deleted-rule id="IFN3083" name="Grade Pathological, Post Therapy, RX Summ--Prim Site Surg (NAACCR)" version="SE18-020-05" user="beverung" date="2020-08-06" ref="68481">Edit removed.</deleted-rule>
        <deleted-rule id="IF2610DG_P1" name="Extent of Disease 10-Digit(SEER IF2610DG)" version="SE18-020-10" user="kirbyk" date="2020-11-30" ref="68541">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2824" name="_SYS Schema ID, Primary Site, Histology, Behavior (NAACCR)" version="SE21-021-01" user="kirbyk" date="2021-01-05" ref="68547">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2843" name="_SYS AJCC ID, Primary Site, Histology, Behavior (NAACCR)" version="SE21-021-01" user="kirbyk" date="2021-01-05" ref="68547">Edit removed.</deleted-rule>
        <deleted-rule id="IFN5029" name="Summary Stage 2018, EOD (SEER)" version="SE21-021-04" user="beverung" date="2021-03-19" ref="68583">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6335" name="AJCC API Version Original, Date DX (AJCC)" version="SE21-021-05" user="kirbyk" date="2021-05-26" ref="68674">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6336" name="AJCC API Version Current, Date DX (AJCC)" version="SE21-021-05" user="kirbyk" date="2021-05-26" ref="68674">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6337" name="AJCC Cancer Surveillance API Version Original, Date DX (AJCC)" version="SE21-021-05" user="kirbyk" date="2021-05-26" ref="68674">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6338" name="AJCC Cancer Surveillance API Version Current, Date DX (AJCC)" version="SE21-021-05" user="kirbyk" date="2021-05-26" ref="68674">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6389" name="AJCC API Version Original, Version Input Curr (AJCC)" version="SE21-021-05" user="kirbyk" date="2021-05-26" ref="68674">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6390" name="AJCC Cancer Surveillance API Version Original, Version Input Curr (AJC)" version="SE21-021-05" user="kirbyk" date="2021-05-26" ref="68674">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6410" name="EOD Items, Type Reporting Source-DCO (NAACCR)" version="SE21-021-08" user="beverung" date="2021-07-29" ref="69697">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2633" name="LN Status Femoral-Inguinal, Para-Aortic, Pelvic, Date DX (NAACCR)" version="SE22-022-01" user="beverung" date="2022-01-26" ref="68888">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2867" name="LN Status Femoral-Inguinal, Para-Aortic, Pelvic, Schema ID, Required (NAACCR)" version="SE22-022-01" user="beverung" date="2022-01-26" ref="68888">Edit removed.</deleted-rule>
        <deleted-rule id="IFN3051" name="LN Status Femoral-Inguinal, Para-Aortic, Pelvic, Gynecologic, EOD Regional Nodes (SEER)" version="SE22-022-01" user="beverung" date="2022-01-26" ref="68888">Edit removed.</deleted-rule>
        <deleted-rule id="IFN5058" name="LN Status Femoral-Inguinal, Para-Aortic, Pelvic, Gynecologic, Summary Stage 2018 (NAACCR)" version="SE22-022-01" user="beverung" date="2022-01-26" ref="68888">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6098" name="LN Assessment Methods, Gynecologic, Regional Nodes Examined, CoC Flag (SEER)" version="SE22-022-01" user="beverung" date="2022-01-26" ref="68888">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6170" name="LN Status Femoral-Inguinal, Para-aortic, Pelvic, Gynecologic, Behavior (NAACCR)" version="SE22-022-01" user="beverung" date="2022-01-26" ref="68888">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6274" name="LN Status Femoral-Inguinal, Para-aortic, Pelvic, Gynecologic, Derived SS 2018 (SEER)" version="SE22-022-01" user="beverung" date="2022-01-26" ref="68888">Edit removed.</deleted-rule>
        <deleted-rule id="IFN3901" name="PhI Radiation Treatment Modality, Date DX (NAACCR)" version="SE22-022-01" user="beverung" date="2022-02-18" ref="68802">Edit removed.</deleted-rule>
        <deleted-rule id="IFN4203" name="_SYS AJCC ID, Date of Diagnosis, CoC Flag (SEER)" version="SE22-022-01" user="beverung" date="2022-02-18" ref="68902">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2966" name="Tumor Growth Pattern, Schema ID, Required (NAACCR)" version="SE22-022-01" user="secristc" date="2022-02-22" ref="68886">Edit removed.</deleted-rule>
        <deleted-rule id="IF28" name="RX Summ--Transplnt/Endocr, Primary Site (SEER IF28)" version="SE22-022-01" user="secristc" date="2022-02-25" ref="68911">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6573" name="PR Percent Positive, Breast, Allred Score, CoC Flag (SEER)" version="SE22-022-03" user="beverung" date="2022-04-11" ref="68937">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6201" name="Pleural Effusion, Pleural Mesothelioma, Mets at DX-Other (NAACCR)" version="SE22-022-03" user="beverung" date="2022-04-12" ref="68937">Edit removed.</deleted-rule>
        <deleted-rule id="IFN4019" name="Lymphovascular Invasion, Schema ID (NAACCR)" version="SE22-022-03" user="beverung" date="2022-04-12" ref="68944">Edit removed.</deleted-rule>
        <deleted-rule id="IFN4207" name="Sentinel Lymph Nodes Ex, Reg Nodes Ex, Date RLN Dissection, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6086" name="Date Regional Lymph Node Dissection, RX Date Surgery, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6094" name="Grade Post Therapy, Gleason Score Pathological, Tertiary Pattern, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6096" name="Gleason Score Clinical, Grade Clinical, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6097" name="Gleason Score Pathological, Grade Pathological, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6099" name="LN Distant Assessment Method, Surgery Other Site, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6100" name="LN Distant, Gynecologic, Mets at DX-Distant LN, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6101" name="Number of Positive/Examined Para-Aortic Nodes, Corpus, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6102" name="Number of Positive/Examined Pelvic Nodes, Corpus, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6103" name="Percent Necrosis Post Neoadjuvant, Bone, DX Confirm, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6106" name="Gleason Patterns/Score, Clin/Path, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6109" name="Extranodal Extension Path (non-Head and Neck), Reg Nodes Positive, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6112" name="Number of Examined Para-Aortic/Pelvic Nodes, Corpus, Reg Nodes Examined, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6113" name="Number of Positive Para-Aortic/Pelvic Nodes, Corpus, Reg Nodes Positive, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6116" name="Extranodal Extension Head and Neck Clin/Path, Summary Stage 2018, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6117" name="Extranodal Extension Clin/Path, Merkel Cell, Summary Stage 2018, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6118" name="Extranodal Extension Clin/Path, Penis, Summary Stage 2018, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6119" name="LN Distant, Gynecologic, Summary Stage 2018, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6120" name="ER Summary, Breast, ER Percent, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6121" name="PR Summary, Breast, PR Percent, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6122" name="HER2 Overall Summary, Breast, IHC, ISH, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6124" name="Testis Serum Markers Post-Orchiectomy, Lab Value, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6125" name="Oncotype Dx Recurrence Score-DCIS, Breast, Behavior, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6126" name="Oncotype Dx Risk Level-DCIS, Breast, Behavior, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6127" name="Oncotype Dx Risk Level-Invasive, Breast, Behavior, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6212" name="LN Distant, Gynecologic, Behavior ICDO3, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6214" name="Extranodal Extension Clin/Path (non-Head and Neck), Behavior, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6218" name="Estrogen Receptor Summary, Percent Positive, Breast, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6220" name="Progesterone Receptor Summary, Percent Positive, Breast, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6284" name="Number of Positive Pelvic Nodes/Positive Para-aortic Nodes, Corpus, Behavior ICDO3, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6285" name="Response to Neoadjuvant Therapy, Breast, Behavior, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6292" name="Extranodal Extension Head and Neck Clin, Head/Neck, Behavior, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6321" name="Extranodal Extension Path (non-Head and Neck), Scope Nodes, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6571" name="ER Percent Positive, Breast, Allred Score, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6614" name="LN Assessment Method, Vulva, Regional Nodes Examined, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6615" name="LN Status/Assessment Method Femoral-Inguinal, Vulva/Vagina, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6616" name="LN Assessment Method, Cervix, Regional Nodes Examined, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6617" name="LN Status/Assessment Method Para-Aortic, Vagina/Cervix, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6618" name="LN Status/Assessment Method Pelvic, Gynecologic, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6640" name="Macroscopic Evaluation of Mesorectum, Rectum, Surgery, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6644" name="LN Status Femoral-Inguinal, Vulva/Vagina, Behavior, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6645" name="LN Status Femoral-Inguinal, Vulva/Vagina, Summary Stage 2018, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6647" name="LN Status Para-Aortic, Vagina/Cervix, Behavior, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6648" name="LN Status Para-Aortic, Vagina/Cervix, Summary Stage 2018, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6649" name="LN Status Pelvic, Gynecologic, Behavior, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6650" name="LN Status Pelvic, Gynecologic, Summary Stage 2018, CoC Flag (SEER)" version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6671" name="Derived SS 2018, EOD Tumor/Nodes/Mets, Schema ID (SEER)" version="SE22-022-06" user="beverung" date="2022-06-13" ref="69004">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6668" name="RX Summ--Radiation, Rad Regional Modality, PhI Radiation Treatment (NPCR)" version="SE22-022-07" user="kirbyk" date="2022-06-16" ref="69009">Edit removed.</deleted-rule>
        <deleted-rule id="ICD-O-2_Conversion_Flag" name="ICD-O-2 Conversion Flag (SEER ICDOREV)" version="SE22-022-18" user="secristc" date="2023-01-09" ref="69071">Edit removed.</deleted-rule>
        <deleted-rule id="IF70" name="ICD-O-2 Conversion Flag, Hist, Behav (SEER IF70)" version="SE22-022-18" user="secristc" date="2023-01-09" ref="69071">Edit removed.</deleted-rule>
        <deleted-rule id="IF84" name="Hist ICDO2, Date of DX, ICDO2 Conv Flag (SEER IF84)" version="SE22-022-18" user="secristc" date="2023-01-09" ref="69071">Edit removed.</deleted-rule>
        <deleted-rule id="IF85" name="Behav ICDO2, Date of DX, ICDO2 Conv Flag (SEER IF85)" version="SE22-022-18" user="secristc" date="2023-01-09" ref="69071">Edit removed.</deleted-rule>
        <deleted-rule id="Date_Regional_Lymph_Node_Dissection_Flag" name="Date Regional Lymph Node Dissection Flag (NAACCR)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="Date_Sentinel_Lymph_Node_Biopsy_Flag" name="Date of Sentinel Lymph Node Biopsy Flag (SEER)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="Date_of_Birth_Flag" name="Date of Birth Flag (NAACCR)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="Date_of_Diagnosis_Flag" name="Date of Diagnosis Flag (NAACCR)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="Date_of_Initial_RX_SEER_Flag" name="Date Initial RX SEER Flag (NAACCR)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="Date_of_Last_Contact_Flag" name="Date of Last Contact Flag (NAACCR)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="IF221" name="Date of Diagnosis, Date Flag (NAACCR)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="IF223" name="Date of Last Contact, Date Flag (NAACCR)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="IF225" name="Date of Birth, Date Flag (NAACCR)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="IF511" name="RX Date BRM, Date Flag (COC)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="IF514" name="RX Date Chemo, Date Flag (COC)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="IF517" name="RX Date Hormone, Date Flag (COC)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="IF520" name="RX Date Other, Date Flag (NAACCR)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="IF526" name="RX Date Surgery, Date Flag (NAACCR)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="IF624" name="RX Date Mst Defn Srg, Date Flag (NAACCR)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2520" name="Date Regional Lymph Node Dissection, Date Flag (NAACCR)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="IFN3976" name="RX Date Surgery, Date Flag, Date DX, CoC Flag (SEER)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="IFN3978" name="RX Date Chemo, Date Flag, Date DX, CoC Flag (SEER)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="IFN3979" name="RX Date Hormone, Date Flag, Date DX, CoC Flag (SEER)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="IFN3980" name="RX Date BRM, Date Flag, Date DX, CoC Flag (SEER)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="IFN3982" name="RX Date Systemic, Date Flag, Date DX, CoC Flag (SEER)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6377" name="Sentinel Lymph Nodes Examined, Date of Sentinel Lymph Node Biopsy Flag (SEER)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6657" name="Recurrence Date--1st, Date Flag, CoC Flag (SEER)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="RX_Date_BRM_Flag" name="RX Date BRM Flag (NAACCR)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="RX_Date_Chemo_Flag" name="RX Date Chemo Flag (NAACCR)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="RX_Date_Hormone_Flag" name="RX Date Hormone Flag (NAACCR)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="RX_Date_Most_Defin_Surg_Flag" name="RX Date Mst Defn Srg Flag (NAACCR)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="RX_Date_Other_Flag" name="RX Date Other Flag (NAACCR)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="RX_Date_Radiation_Flag" name="RX Date Radiation Flag (NAACCR)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="RX_Date_Surgery_Flag" name="RX Date Surgery Flag (NAACCR)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="RX_Date_Systemic_Flag" name="RX Date Systemic Flag (NAACCR)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69074">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6570" name="ER Percent Positive, Breast, Allred Score (NAACCR)" version="SE23-023-01" user="secristc" date="2023-01-18" ref="69075">Edit removed.</deleted-rule>
        <deleted-rule id="IF523" name="RX Date Radiation, Date Flag (NAACCR)" version="SE23-023-01" user="secristc" date="2023-02-23" ref="69207">Edit removed.</deleted-rule>
        <deleted-rule id="IF316" name="RX Summ--Treatment Status, Date of DX (COC)" version="SE23-023-01" user="secristc" date="2023-03-07" ref="69213">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2589" name="AJCC TNM Post Therapy Path (yp) T (COC)" version="SE23-023-02" user="cooki" date="2023-04-19" ref="69203">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2592" name="AJCC TNM Post Therapy Path (yp) Stage Group (COC)" version="SE23-023-02" user="cooki" date="2023-04-19" ref="69203">Edit removed.</deleted-rule>
        <deleted-rule id="IFN4930" name="AJCC TNM Items, Type Reporting Source-DCO (NAACCR)" version="SE23-023-02" user="cooki" date="2023-04-19" ref="69203">Edit removed.</deleted-rule>
        <deleted-rule id="AJCC_TNM_Clin_M" name="AJCC TNM Clin M (COC)" version="SE23-023-02" user="cooki" date="2023-04-25" ref="69203">Edit removed.</deleted-rule>
        <deleted-rule id="AJCC_TNM_Clin_N" name="AJCC TNM Clin N (COC)" version="SE23-023-02" user="cooki" date="2023-04-25" ref="69203">Edit removed.</deleted-rule>
        <deleted-rule id="AJCC_TNM_Clin_N_Suffix" name="AJCC TNM Clin N Suffix (COC)" version="SE23-023-02" user="cooki" date="2023-04-25" ref="69203">Edit removed.</deleted-rule>
        <deleted-rule id="AJCC_TNM_Clin_T" name="AJCC TNM Clin T (COC)" version="SE23-023-02" user="cooki" date="2023-04-25" ref="69203">Edit removed.</deleted-rule>
        <deleted-rule id="AJCC_TNM_Clin_T_Suffix" name="AJCC TNM Clin T Suffix (COC)" version="SE23-023-02" user="cooki" date="2023-04-25" ref="69203">Edit removed.</deleted-rule>
        <deleted-rule id="AJCC_TNM_Path_M" name="AJCC TNM Path M (COC)" version="SE23-023-02" user="cooki" date="2023-04-25" ref="69203">Edit removed.</deleted-rule>
        <deleted-rule id="AJCC_TNM_Path_N" name="AJCC TNM Path N (COC)" version="SE23-023-02" user="cooki" date="2023-04-25" ref="69203">Edit removed.</deleted-rule>
        <deleted-rule id="AJCC_TNM_Path_N_Suffix" name="AJCC TNM Path N Suffix (COC)" version="SE23-023-02" user="cooki" date="2023-04-25" ref="69203">Edit removed.</deleted-rule>
        <deleted-rule id="AJCC_TNM_Path_Stage_Group" name="AJCC TNM Path Stage Group (COC)" version="SE23-023-02" user="cooki" date="2023-04-25" ref="69203">Edit removed.</deleted-rule>
        <deleted-rule id="AJCC_TNM_Path_T" name="AJCC TNM Path T (COC)" version="SE23-023-02" user="cooki" date="2023-04-25" ref="69203">Edit removed.</deleted-rule>
        <deleted-rule id="AJCC_TNM_Path_T_Suffix" name="AJCC TNM Path T Suffix (COC)" version="SE23-023-02" user="cooki" date="2023-04-25" ref="69203">Edit removed.</deleted-rule>
        <deleted-rule id="AJCC_TNM_Post_Therapy_Clin_M" name="AJCC TNM Post Therapy Clin (yc) M (COC)" version="SE23-023-02" user="cooki" date="2023-04-25" ref="69203">Edit removed.</deleted-rule>
        <deleted-rule id="AJCC_TNM_Post_Therapy_Clin_N" name="AJCC TNM Post Therapy Clin (yc) N (COC)" version="SE23-023-02" user="cooki" date="2023-04-25" ref="69203">Edit removed.</deleted-rule>
        <deleted-rule id="AJCC_TNM_Post_Therapy_Clin_N_Suffix" name="AJCC TNM Post Therapy Clin (yc) N Suffix (COC)" version="SE23-023-02" user="cooki" date="2023-04-25" ref="69203">Edit removed.</deleted-rule>
        <deleted-rule id="AJCC_TNM_Post_Therapy_Clin_T" name="AJCC TNM Post Therapy Clin (yc) T (COC)" version="SE23-023-02" user="cooki" date="2023-04-25" ref="69203">Edit removed.</deleted-rule>
        <deleted-rule id="AJCC_TNM_Post_Therapy_Clin_T_Suffix" name="AJCC TNM Post Therapy Clin (yc) T Suffix (COC)" version="SE23-023-02" user="cooki" date="2023-04-25" ref="69203">Edit removed.</deleted-rule>
        <deleted-rule id="AJCC_TNM_Post_Therapy_M" name="AJCC TNM Post Therapy Path (yp) M (COC)" version="SE23-023-02" user="cooki" date="2023-04-25" ref="69203">Edit removed.</deleted-rule>
        <deleted-rule id="AJCC_TNM_Post_Therapy_N" name="AJCC TNM Post Therapy Path (yp) N (COC)" version="SE23-023-02" user="cooki" date="2023-04-25" ref="69203">Edit removed.</deleted-rule>
        <deleted-rule id="AJCC_TNM_Post_Therapy_N_Suffix" name="AJCC TNM Post Therapy Path (yp) N Suffix (COC)" version="SE23-023-02" user="cooki" date="2023-04-25" ref="69203">Edit removed.</deleted-rule>
        <deleted-rule id="AJCC_TNM_Post_Therapy_T_Suffix" name="AJCC TNM Post Therapy Path (yp) T Suffix (COC)" version="SE23-023-02" user="cooki" date="2023-04-25" ref="69203">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2826" name="CoC Accredited Flag, Date of Diagnosis (NPCR)" version="SE23-023-02" user="cooki" date="2023-05-08" ref="69272">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6611" name="LN Assessment Method, Vulva, Regional Nodes Examined (NAACCR)" version="SE23-023-03" user="cooki" date="2023-05-25" ref="69281">Edit removed.</deleted-rule>
        <deleted-rule id="IFN3041" name="LN Distant Assessment Method, Surgery Other Site (NAACCR)" version="SE23-023-03" user="shearerw" date="2023-05-26" ref="69279">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6320" name="Extranodal Extension Path (non-Head and Neck), Scope Nodes (NAACCR)" version="SE23-023-04" user="cooki" date="2023-05-30" ref="69278">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6607" name="Macroscopic Evaluation of Mesorectum, Rectum, Surgery 03-2022 (COC)" version="SE23-023-04" user="cooki" date="2023-05-30" ref="69280">Edit removed.</deleted-rule>
        <deleted-rule id="County_at_DX" name="County at DX Reported (COC)" version="SE23-023-06" user="cooki" date="2023-07-31" ref="69294">Edit removed.</deleted-rule>
        <deleted-rule id="IF629" name="County at DX Reported and Geocoded Counties (SEER)" version="SE23-023-06" user="cooki" date="2023-07-31" ref="69294">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6333" name="Schema ID Version Original, Date DX (SEER)" version="SE23-023-07" user="shearerw" date="2023-09-08" ref="69307">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6334" name="Schema ID Version Current, Date DX (SEER)" version="SE23-023-07" user="shearerw" date="2023-09-08" ref="69307">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6392" name="Schema ID Version Original, Version Input Curr (SEER)" version="SE23-023-07" user="shearerw" date="2023-09-08" ref="69307">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6822" name="LDH Lab/Upper Limits/LDH Level, Melanoma Skin (NAACCR)" version="SE23-023-07" user="shearerw" date="2023-09-08" ref="69307">Edit removed.</deleted-rule>
        <deleted-rule id="IFN0244" name="Recurrence Date--1st, Date of Diagnosis (COC)" version="SE23-023-07" user="shearerw" date="2023-09-18" ref="69310">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2678" name="Estrogen Receptor Total Allred Score, Date DX (NAACCR)" version="SE23-023-11" user="beverung" date="2024-01-30" ref="69380">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2680" name="Progesterone Receptor Total Allred Score, Date DX (NAACCR)" version="SE23-023-11" user="beverung" date="2024-01-30" ref="69380">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2681" name="HER2 IHC Summary, Date DX (NAACCR)" version="SE23-023-11" user="beverung" date="2024-01-30" ref="69380">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2682" name="HER2 ISH Summary, Date DX (NAACCR)" version="SE23-023-11" user="beverung" date="2024-01-30" ref="69380">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2683" name="HER2 ISH Dual Probe Ratio, Date DX (NAACCR)" version="SE23-023-11" user="beverung" date="2024-01-30" ref="69380">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2684" name="HER2 ISH Dual Probe Copy Number, Date DX (NAACCR)" version="SE23-023-11" user="beverung" date="2024-01-30" ref="69380">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2685" name="HER2 ISH Single Probe Copy Number, Date DX (NAACCR)" version="SE23-023-11" user="beverung" date="2024-01-30" ref="69380">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2723" name="Tumor Growth Pattern, Date DX (NAACCR)" version="SE23-023-11" user="beverung" date="2024-01-30" ref="69380">Edit removed.</deleted-rule>
        <deleted-rule id="IFN2936" name="Primary Sclerosing Cholangitis, Date DX (NAACCR)" version="SE23-023-11" user="beverung" date="2024-01-30" ref="69380">Edit removed.</deleted-rule>
        <deleted-rule id="IFN3914" name="Estrogen Receptor Total Allred Score, Schema ID, Required, CoC Flag (SEER)" version="SE23-023-11" user="beverung" date="2024-01-30" ref="69380">Edit removed.</deleted-rule>
        <deleted-rule id="IFN3946" name="Progesterone Receptor Total Allred Score, Schema ID, Required, CoC Flag (SEER)" version="SE23-023-11" user="beverung" date="2024-01-30" ref="69380">Edit removed.</deleted-rule>
        <deleted-rule id="IFN3947" name="Primary Sclerosing Cholangitis, Schema ID, Required, CoC Flag (SEER)" version="SE23-023-11" user="beverung" date="2024-01-30" ref="69380">Edit removed.</deleted-rule>
        <deleted-rule id="IFN5034" name="HER2 Overall Summary, Breast, IHC, ISH (NAACCR)" version="SE23-023-11" user="beverung" date="2024-01-30" ref="69380">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6066" name="HER2 IHC Summary, Schema ID, Required, CoC Flag (SEER)" version="SE23-023-11" user="beverung" date="2024-01-30" ref="69380">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6067" name="HER2 ISH Summary, Schema ID, Required, CoC Flag (SEER)" version="SE23-023-11" user="beverung" date="2024-01-30" ref="69380">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6068" name="HER2 ISH Dual Probe Ratio, Schema ID, Required, CoC Flag (SEER)" version="SE23-023-11" user="beverung" date="2024-01-30" ref="69380">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6069" name="HER2 ISH Dual Probe Copy Number, Schema ID, Required, CoC Flag (SEER)" version="SE23-023-11" user="beverung" date="2024-01-30" ref="69380">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6070" name="HER2 ISH Single Probe Copy Number, Schema ID, Required, CoC Flag (SEER)" version="SE23-023-11" user="beverung" date="2024-01-30" ref="69380">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6653" name="Tumor Growth Pattern, Schema ID, Required (SEER)" version="SE23-023-11" user="beverung" date="2024-01-30" ref="69380">Edit removed.</deleted-rule>
        <deleted-rule id="AJCC_TNM_Clin_Stage_Group" name="AJCC TNM Clin Stage Group (COC)" version="SE24-024-01" user="shearerw" date="2024-02-16" ref="69384">Edit removed.</deleted-rule>
        <deleted-rule id="IFN7053" name="Grade at Autopsy (NAACCR)" version="SE24-024-04" user="beverung" date="2024-05-01" ref="69454">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6808" name="Brain Molecular Markers, Diagnostic Confirmation (NAACCR)" version="SE24-024-04" user="beverung" date="2024-05-01" ref="69457">Edit removed.</deleted-rule>
        <deleted-rule id="IFN7025" name="Pituitary Gland, Adenoma Histology (NAACCR)" version="SE24-024-04" user="kirbyk" date="2024-05-07" ref="69463">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6411" name="Cancer Items, Type Reporting Source-DCO (NAACCR)" version="SE24-024-06" user="shearerw" date="2024-07-05" ref="69511">Edit removed.</deleted-rule>
        <deleted-rule id="Behavior_92-00_ICD-O-2" name="Behavior ICDO2 (COC)" version="SE24-024-06" user="cooki" date="2024-07-09" ref="69509">Edit deleted.</deleted-rule>
        <deleted-rule id="Behavior_ICDO2_Submission" name="SEER Submission Edit 02 (SEER)" version="SE24-024-06" user="cooki" date="2024-07-09" ref="69509">Edit deleted.</deleted-rule>
        <deleted-rule id="Histology_92-00_ICD-O-2" name="Histologic Type ICDO2 (COC)" version="SE24-024-06" user="cooki" date="2024-07-09" ref="69509">Edit deleted.</deleted-rule>
        <deleted-rule id="ICD-O-3_Conversion_Flag" name="ICD-O-3 Conversion Flag (NAACCR)" version="SE24-024-06" user="cooki" date="2024-07-09" ref="69509">Edit deleted.</deleted-rule>
        <deleted-rule id="IF115" name="Behavior ICDO2, Behavior ICDO3 (SEER IF115)" version="SE24-024-06" user="cooki" date="2024-07-09" ref="69509">Edit deleted.</deleted-rule>
        <deleted-rule id="IF116" name="Non-Reportable Skin ICDO2 (SEER IF116)" version="SE24-024-06" user="cooki" date="2024-07-09" ref="69509">Edit deleted.</deleted-rule>
        <deleted-rule id="IF15" name="Age, Primary Site, Morphology ICDO2 (SEER IF15)" version="SE24-024-06" user="cooki" date="2024-07-09" ref="69509">Edit deleted.</deleted-rule>
        <deleted-rule id="IF178" name="Verify ICDO2 to ICDO3 Conversion (NAACCR)" version="SE24-024-06" user="cooki" date="2024-07-09" ref="69509">Edit deleted.</deleted-rule>
        <deleted-rule id="IF25" name="Primary Site, Morphology-Type ICDO2 (SEER IF25)" version="SE24-024-06" user="cooki" date="2024-07-09" ref="69509">Edit deleted.</deleted-rule>
        <deleted-rule id="IF38" name="Primary Site, Morphology-Imposs ICDO2 (SEER IF38)" version="SE24-024-06" user="cooki" date="2024-07-09" ref="69509">Edit deleted.</deleted-rule>
        <deleted-rule id="IF48" name="Diagnostic Confirmation, Histology ICDO2 (SEER IF48)" version="SE24-024-06" user="cooki" date="2024-07-09" ref="69509">Edit deleted.</deleted-rule>
        <deleted-rule id="IF84" name="Hist ICDO2, Date of DX (SEER IF84)" version="SE24-024-06" user="cooki" date="2024-07-09" ref="69509">Edit deleted.</deleted-rule>
        <deleted-rule id="IF85" name="Behav ICDO2, Date of DX (SEER IF85)" version="SE24-024-06" user="cooki" date="2024-07-09" ref="69509">Edit deleted.</deleted-rule>
        <deleted-rule id="IF86" name="Hist ICDO3, Date of DX, ICDO3 Conv Flag (SEER IF86)" version="SE24-024-06" user="cooki" date="2024-07-09" ref="69509">Edit deleted.</deleted-rule>
        <deleted-rule id="IF87" name="Behav ICDO3, Date of DX, ICDO3 Conv Flag (SEER IF87)" version="SE24-024-06" user="cooki" date="2024-07-09" ref="69509">Edit deleted.</deleted-rule>
        <deleted-rule id="IF94" name="Histology ICDO2, Histology ICDO3 (SEER IF94)" version="SE24-024-06" user="cooki" date="2024-07-09" ref="69509">Edit deleted.</deleted-rule>
        <deleted-rule id="IF95" name="ICD-O-3 Conversion Flag, Histology ICDO3 (SEER IF95)" version="SE24-024-06" user="cooki" date="2024-07-09" ref="69509">Edit deleted.</deleted-rule>
        <deleted-rule id="Morph_P1" name="Morphology--Type/Behavior ICDO2 (SEER MORPH)" version="SE24-024-06" user="cooki" date="2024-07-09" ref="69509">Edit deleted.</deleted-rule>
        <deleted-rule id="Morph_P2" name="Morphology--Type/Behavior ICDO2 (SEER MORPH)" version="SE24-024-06" user="cooki" date="2024-07-09" ref="69509">Edit deleted.</deleted-rule>
        <deleted-rule id="Morph_P3" name="Morphology--Type/Behavior ICDO2 (SEER MORPH)" version="SE24-024-06" user="cooki" date="2024-07-09" ref="69509">Edit deleted.</deleted-rule>
        <deleted-rule id="Morph_P4" name="Morphology--Type/Behavior ICDO2 (SEER MORPH)" version="SE24-024-06" user="cooki" date="2024-07-09" ref="69509">Edit deleted.</deleted-rule>
        <deleted-rule id="SEER_IR09" name="Site and Laterality not Consistent ICD-O-2 for Patient (SEER IR09)" version="SE24-024-06" user="cooki" date="2024-07-09" ref="69509">Edit deleted.</deleted-rule>
        <deleted-rule id="IF126" name="Hist/Behav ICDO2, Hist/Behav ICDO3 (SEER IF126)" version="SE24-024-06" user="cooki" date="2024-07-10" ref="69512">Edit removed.</deleted-rule>
        <deleted-rule id="IFN3952" name="Gleason Score Pathological, Grade Pathological (NAACCR)" version="SE24-024-06" user="beverung" date="2024-07-18" ref="69455">Edit removed.</deleted-rule>
        <deleted-rule id="IFN4213" name="Gleason Patterns Pathological, Grade Pathological (NAACCR)" version="SE24-024-06" user="beverung" date="2024-07-18" ref="69455">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6893" name="LDH Lab/Upper Limits/LDH Level, Melanoma Skin, CoC Flag (SEER)" version="SE24-024-06" user="cooki" date="2024-07-19" ref="69507">Edit removed.</deleted-rule>
        <deleted-rule id="IFN6894" name="LDH Lab/LDH Level, Melanoma Skin (SEER)" version="SE24-024-06" user="cooki" date="2024-07-19" ref="69507">Edit removed.</deleted-rule>
        <deleted-rule id="IF2610DG_P10" name="EOD--Lymph Node Involv, Reg Nodes Pos,ICDO2 (NAACCR)" version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Edit deleted.</deleted-rule>
        <deleted-rule id="IF2610DG_P12" name="EOD--Extension Prost Path, Prim Site, ICDO2 (NAACCR)" version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Edit deleted.</deleted-rule>
        <deleted-rule id="IF2610DG_P5" name="EOD--Lymph Node Involv, Reg Nodes Pos,ICDO2 (NAACCR)" version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Edit deleted.</deleted-rule>
        <deleted-rule id="IF2610DG_P6" name="EOD--Lymph Node Involv, Reg Nodes Pos,ICDO2 (NAACCR)" version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Edit deleted.</deleted-rule>
        <deleted-rule id="IF2610DG_P9" name="EOD--Reg Nodes Ex,ReNodes Pos, Site, ICDO2 (NAACCR)" version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Edit deleted.</deleted-rule>
    </deleted-rules>
    <context>
        <entry id="AJCC7CodeLookup16" type="groovy"><![CDATA[return  {line ->

String site = line.primarySite
String hist = line.histologicTypeIcdO3
String ssf25 = line.csSiteSpecificFactor25
String ssf10 = line.csSiteSpecificFactor10
String grade = line.grade
String age = line.ageAtDiagnosis
String sex = line.sex
Integer histNum = (hist == null || hist.length() < 4) ? -1 : Functions.asInt(hist)
Integer siteNum = (site == null || site.length() < 4) ? -1 : Functions.asInt(site.substring(1))

String code = '999'

if (Context.AJCC7SiteHistTable16.containsKey(siteNum) && Context.AJCC7SiteHistTable16[siteNum].containsKey(histNum))
    code = Context.AJCC7SiteHistTable16[siteNum][histNum]

if (Functions.expandList((List)[0..440, 442..689, 691..694, 698..809]).contains(siteNum) && Functions.expandList((List)[9590..9699, 9702..9727, 9735, 9737, 9738]).contains(histNum))
    code = '57A'
else if (Functions.expandList((List)[0..419, 422, 423, *425..440, 442..689, 691..694, 698..809]).contains(siteNum) && Functions.expandList((List)[9811..9818, 9823, 9827, 9837]).contains(histNum))
    code = '57A'
else if (code == '04C') {
    if (ssf25 == '020')
        code = '04D'
    else if (ssf25 != '010')
        code = '999'
}
else if (code == '008') {
    if (grade ==~ /^[1239]$/) {
        if (age <= '044')
            code = '08A'
        else if (age <= '998')
            code = '08B'
        else
            code = '08C'
    }
    else if (grade == '4')
        code = '08F'
    else
        code = '999'
}
else if (code == '08D') {
    if (grade == '4')
        code = '08F'
    else if (!(grade ==~ /^[1239]$/))
        code = '999'
}
else if (code == '011') {
    if ((siteNum == 161 || siteNum == 162) && ssf25 ==~ /^0[246]0$/)
        if (histNum >= 8982 && histNum <= 8990)
            code = '999'
        else
            code = '10B'
}
else if (code == '16B') {
    if ((480 <= siteNum && siteNum <= 488) && ssf10 == '020')
        code = '16A'
}
else if (code == '021') {
    if (siteNum == 240) {
        if (ssf25 == '030')
            code = '020'
        else if (ssf25 == '040' || ssf25 == '070')
            code = '022'
    }
}
else if (code == '37B') {
    if (481 <= siteNum && siteNum <= 488 && sex != '2' && sex != '6')
        code = '999'
}
else if (code == '051') {
    if (siteNum == 693)
        code = '51A'
    else if (siteNum == 694) {
        if (ssf25 == '010')
            code = '51A'
        else if (ssf25 == '020')
            code = '51B'
        else
            code = '999'
    }
}
else if (code == '053') {
    if (ssf25 != '015')
        code = '999'
}

if (code == '999') {
    if (siteNum == 739 && Functions.expandList((List)[*8000..8576, *8940..8950, 8980, 8981]).contains(histNum) && line.grade == '4')
        code = '08F'
    else if (481 <= siteNum && siteNum <= 488 && Functions.expandList((List)[8800..8820, 8823..8934, 8940..9136, 9142..9582]).contains(histNum) && sex != '2' && sex != '6')
        code = '028'
    else if (481 <= siteNum && siteNum <= 488 && Functions.expandList((List)[8800..8820, 8823..8921, 9120..9136, 9142..9582]).contains(histNum) && (sex == '2' || sex == '6'))
        code = '028'
}

return code }]]></entry>
        <entry id="AJCC7SiteHistTable" type="java"><![CDATA[[
    [0..6, 8, 9, 20..23, 28..31, 39..41, 48, 49, 50, 58..62, 68, 69] : [[8000..8576, 8940..8950, 8980..8981] : '003', [8720..8790] : '009'],
    [19, 24, 51, 52, 90, 91, 98..100, 102..104, 108, 109, 129..132, 138, 139] : [[8000..8576, 8940..8950, 8980..8981] : '04A', [8720..8790] : '009'],
    [79..81, 88, 89] : [[8000..8576, 8940..8950, 8980..8982] : '007'],
    [101] : [[8000..8576, 8940..8950, 8980..8981] : '05A'],
    [110, 112..119] : [[8000..8576, 8940..8950, 8980..8981] : '04B', [8720..8790] : '009'],
    [111] : [[8000..8576, 8940..8950, 8980..8981] : '04C', [8720..8790] : '009'],
    [140, 142, 148, 323] : [[8720..8790] : '009'],
    [150..155, 158, 159] : [[8000..8576, 8940..8950, 8980..8981] : '10A', [8935..8936] : '16B'],
    [160] : [[8000..8152, 8154..8231, 8243..8245, 8247..8248, 8250..8576, 8940..8950, 8980..8981] : '10B', [8153, 8240..8242, 8246, 8249] : '17A', [8935..8936] : '16A'],
    [161..169] : [[8000..8152, 8154..8231, 8243..8245, 8247..8248, 8250..8576, 8940..8950, 8980..8981] : '011', [8153, 8240..8242, 8246, 8249] : '17A', [8935..8936] : '16A'],
    [170..172, 178, 179] : [[8000..8152, 8154..8231, 8243..8245, 8247..8248, 8250..8576, 8940..8950, 8980..8981] : '012', [8153, 8240..8242, 8246, 8249] : '17B', [8935..8936] : '16B'],
    [173] : [[8153, 8240..8242, 8246, 8249] : '17B'],
    [180, 182..189, 199, 209] : [[8000..8152, 8154..8231, 8243..8245, 8247..8248, 8250..8576, 8940..8950, 8980..8981] : '014', [8153, 8240..8242, 8246, 8249] : '17C', [8935..8936] : '16B'],
    [181] : [[8000..8152, 8154..8231, 8243..8245, 8247..8248, 8250..8576, 8940..8950, 8980..8981] : '13A', [8153, 8240..8242, 8246, 8249] : '13B', [8935..8936] : '16B'],
    [210..212, 218] : [[8000..8152, 8154..8231, 8243..8245, 8247..8248, 8250..8576, 8940..8950, 8980..8981] : '015'],
    [220] : [[8160..8161, 8180] : '19A', [8170..8175] : '18A'],
    [221] : [[8160..8161, 8180] : '19B', [8170..8175] : '18B'],
    [239] : [[8000..8152, 8154..8231, 8243..8245, 8250..8576, 8940..8950, 8980..8981] : '020'],
    [240] : [[8000..8152, 8154..8231, 8243..8245, 8250..8576, 8940..8950, 8980..8981] : '021'],
    [241] : [[8153, 8240..8242, 8246, 8249] : '17B', [8000..8152, 8154..8231, 8243..8245, 8250..8576, 8940..8950, 8980..8981] : '023'],
    [250..254, 257..259] : [[8000..8576, 8940..8950, 8971, 8980..8981] : '024'],
    [300, 310, 311] : [[8000..8576, 8940..8950, 8980..8981] : '006', [8720..8790] : '009'],
    [320, 328, 329] : [[8000..8576, 8940..8950, 8980..8981] : '05B', [8720..8790] : '009'],
    [321, 322] : [[8000..8576, 8940..8950, 8980..8981] : '05A', [8720..8790] : '009'],
    [340..343, 348, 349] : [[8000..8576, 8940..8950, 8980..8981] : '025'],
    [380..383, 388, 470..476, 478, 479, 490..496, 498, 499] : [[8800..8820, 8823..8935, 8940..9136, 9142..9582] : '028'],
    [384] : [[9050..9053] : '026'],
    [400..403, 408, 409, 410..414, 418, 419] : [[8800..9136, 9142..9582] : '027'],
    [440, 442..449, 632] : [[8000..8246, 8248..8576, 8940..8950, 8980..8981] : '029', [8247] : '030', [8720..8790] : '031', [9700..9701] : '57B'],
    [441] : [[8000..8576, 8940..8950, 8980..8981] : '048', [8720..8790] : '031', [9590..9699, 9702..9738, 9811..9818, 9820..9837] : '055', [9700..9701] : '57B'],
    [480] : [[8800..8820, 8823..8934, 8940..9136, 9142..9582] : '028', [8935..8936] : '16B'],
    [481..488] : [[8000..8576, 8590..8671, 8930..8934, 8940..9110] : '37B', [8935..8936] : '16B'],
    [500..506, 508, 509] : [[8000..8576, 8940..8950, 8980..8981, 9020] : '032'],
    [510..512, 518, 519] : [[8000..8246, 8248..8576, 8940..8950, 8980..8981] : '033', [8247] : '030', [8720..8790] : '031', [9700..9701] : '57B'],
    [529] : [[8000..8576, 8800..8801, 8940..8950, 8980..8981] : '034'],
    [530, 531, 538, 539] : [[8000..8576, 8940..8950, 8980..8981] : '035'],
    [540..549, 559] : [[8000..8790, 8950..8951, 8980..8981] : '36A', [8800, 8890..8898, 8900..8921, 8930..8931, 8935] : '36B', [8933] : '36C'],
    [569] : [[8000..8576, 8590..8671, 8930..9110] : '37A'],
    [570] : [[8000..8576, 8940..8950, 8980..8981] : '038'],
    [589] : [[9100..9105] : '039'],
    [600..602, 608, 609] : [[8000..8246, 8248..8576, 8940..8950, 8980..8981] : '040', [8247] : '030', [8720..8790] : '031', [9700..9701] : '57B'],
    [619] : [[8000..8110, 8140..8576, 8940..8950, 8980..8981] : '041'],
    [620, 621, 629] : [[8000..8576, 8590..8670, 8940..8950, 8980..8981, 9060..9090, 9100..9105] : '042'],
    [649] : [[8000..8576, 8940..8950, 8980..8981] : '043'],
    [659, 669] : [[8000..8576, 8940..8950, 8980..8981] : '044'],
    [670..679] : [[8000..8576, 8940..8950, 8980..8981] : '045'],
    [680] : [[8000..8576, 8940..8950, 8980..8981] : '046'],
    [690] : [[8000..8576, 8940..8950, 8980..8981] : '049', [8720..8790] : '050', [9590..9699, 9702..9738, 9811..9818, 9820..9837] : '055'],
    [692] : [[9510..9514] : '052'],
    [693, 694] : [[8720..8790] : '051'],
    [695] : [[8000..8576, 8940..8950, 8980..8981] : '053', [9590..9699, 9702..9738, 9811..9818, 9820..9837] : '055'],
    [696] : [[8800..8936, 8940..9136, 9141..9508, 9520..9582] : '054', [9590..9699, 9702..9738, 9811..9818, 9820..9837] : '055'],
    [698] : [[8800..8936, 8940..9136, 9141..9508, 9520..9582] : '054'],
    [700, 701, 709..729, 751..753] : [[8000, 8680..9136, 9141..9582] : '056'],
    [739] : [[8000..8015, 8022, 8033..8344, 8350..8420, 8440..8508, 8514..8576, 8940..8950, 8980..8981] : '008', [8020..8021, 8030..8032] : '08E', [8345..8347, 8430, 8510, 8512..8513] : '08D'],
    [740] : [[8010, 8140, 8370] : '47A'],
    [749] : [[8370] : '47B'],
    [754..809] : [[8000..9999] : '999']]]]></entry>
        <entry id="AJCC7SiteHistTable16" type="java"><![CDATA[[[0] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[1] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[100] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[101] : [[8000..8576] : '05A', [8720..8790] : '009', [8940..8950] : '05A', [8980..8981] : '05A'],
[102] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[103] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[104] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[105] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[106] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[107] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[108] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[109] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[110] : [[8000..8576] : '04B', [8720..8790] : '009', [8940..8950] : '04B', [8980..8981] : '04B'],
[111] : [[8000..8576] : '04C', [8720..8790] : '009', [8940..8950] : '04C', [8980..8981] : '04C'],
[112] : [[8000..8576] : '04B', [8720..8790] : '009', [8940..8950] : '04B', [8980..8981] : '04B'],
[113] : [[8000..8576] : '04B', [8720..8790] : '009', [8940..8950] : '04B', [8980..8981] : '04B'],
[114] : [[8000..8576] : '04B', [8720..8790] : '009', [8940..8950] : '04B', [8980..8981] : '04B'],
[115] : [[8000..8576] : '04B', [8720..8790] : '009', [8940..8950] : '04B', [8980..8981] : '04B'],
[116] : [[8000..8576] : '04B', [8720..8790] : '009', [8940..8950] : '04B', [8980..8981] : '04B'],
[117] : [[8000..8576] : '04B', [8720..8790] : '009', [8940..8950] : '04B', [8980..8981] : '04B'],
[118] : [[8000..8576] : '04B', [8720..8790] : '009', [8940..8950] : '04B', [8980..8981] : '04B'],
[119] : [[8000..8576] : '04B', [8720..8790] : '009', [8940..8950] : '04B', [8980..8981] : '04B'],
[129] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[130] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[131] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[132] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[133] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[134] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[135] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[136] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[137] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[138] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[139] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[140] : [[8720..8790] : '009'],
[141] : [[8720..8790] : '009'],
[142] : [[8720..8790] : '009'],
[143] : [[8720..8790] : '009'],
[144] : [[8720..8790] : '009'],
[145] : [[8720..8790] : '009'],
[146] : [[8720..8790] : '009'],
[147] : [[8720..8790] : '009'],
[148] : [[8720..8790] : '009'],
[150] : [[8000..8576] : '10A', [8935..8936] : '16B', [8940..8950] : '10A', [8980..8981] : '10A'],
[151] : [[8000..8576] : '10A', [8935..8936] : '16B', [8940..8950] : '10A', [8980..8981] : '10A'],
[152] : [[8000..8576] : '10A', [8935..8936] : '16B', [8940..8950] : '10A', [8980..8981] : '10A'],
[153] : [[8000..8576] : '10A', [8935..8936] : '16B', [8940..8950] : '10A', [8980..8981] : '10A'],
[154] : [[8000..8576] : '10A', [8935..8936] : '16B', [8940..8950] : '10A', [8980..8981] : '10A'],
[155] : [[8000..8576] : '10A', [8935..8936] : '16B', [8940..8950] : '10A', [8980..8981] : '10A'],
[156] : [[8000..8576] : '10A', [8935..8936] : '16B', [8940..8950] : '10A', [8980..8981] : '10A'],
[157] : [[8000..8576] : '10A', [8935..8936] : '16B', [8940..8950] : '10A', [8980..8981] : '10A'],
[158] : [[8000..8576] : '10A', [8935..8936] : '16B', [8940..8950] : '10A', [8980..8981] : '10A'],
[159] : [[8000..8576] : '10A', [8935..8936] : '16B', [8940..8950] : '10A', [8980..8981] : '10A'],
[160] : [[8000..8152] : '10B', [8153] : '17A', [8154..8231] : '10B', [8240..8242] : '17A', [8243..8245] : '10B', [8246] : '17A', [8247..8248] : '10B', [8249] : '17A', [8250..8576] : '10B', [8935..8936] : '16A', [8940..8950] : '10B', [8980..8981] : '10B'],
[161] : [[8000..8152] : '011', [8153] : '17A', [8154..8231] : '011', [8240..8242] : '17A', [8243..8245] : '011', [8246] : '17A', [8247..8248] : '011', [8249] : '17A', [8250..8576] : '011', [8935..8936] : '16A', [8940..8950] : '011', [8980..8990] : '011'],
[162] : [[8000..8152] : '011', [8153] : '17A', [8154..8231] : '011', [8240..8242] : '17A', [8243..8245] : '011', [8246] : '17A', [8247..8248] : '011', [8249] : '17A', [8250..8576] : '011', [8935..8936] : '16A', [8940..8950] : '011', [8980..8990] : '011'],
[163] : [[8000..8152] : '011', [8153] : '17A', [8154..8231] : '011', [8240..8242] : '17A', [8243..8245] : '011', [8246] : '17A', [8247..8248] : '011', [8249] : '17A', [8250..8576] : '011', [8935..8936] : '16A', [8940..8950] : '011', [8980..8990] : '011'],
[164] : [[8000..8152] : '011', [8153] : '17A', [8154..8231] : '011', [8240..8242] : '17A', [8243..8245] : '011', [8246] : '17A', [8247..8248] : '011', [8249] : '17A', [8250..8576] : '011', [8935..8936] : '16A', [8940..8950] : '011', [8980..8990] : '011'],
[165] : [[8000..8152] : '011', [8153] : '17A', [8154..8231] : '011', [8240..8242] : '17A', [8243..8245] : '011', [8246] : '17A', [8247..8248] : '011', [8249] : '17A', [8250..8576] : '011', [8935..8936] : '16A', [8940..8950] : '011', [8980..8990] : '011'],
[166] : [[8000..8152] : '011', [8153] : '17A', [8154..8231] : '011', [8240..8242] : '17A', [8243..8245] : '011', [8246] : '17A', [8247..8248] : '011', [8249] : '17A', [8250..8576] : '011', [8935..8936] : '16A', [8940..8950] : '011', [8980..8990] : '011'],
[167] : [[8000..8152] : '011', [8153] : '17A', [8154..8231] : '011', [8240..8242] : '17A', [8243..8245] : '011', [8246] : '17A', [8247..8248] : '011', [8249] : '17A', [8250..8576] : '011', [8935..8936] : '16A', [8940..8950] : '011', [8980..8990] : '011'],
[168] : [[8000..8152] : '011', [8153] : '17A', [8154..8231] : '011', [8240..8242] : '17A', [8243..8245] : '011', [8246] : '17A', [8247..8248] : '011', [8249] : '17A', [8250..8576] : '011', [8935..8936] : '16A', [8940..8950] : '011', [8980..8990] : '011'],
[169] : [[8000..8152] : '011', [8153] : '17A', [8154..8231] : '011', [8240..8242] : '17A', [8243..8245] : '011', [8246] : '17A', [8247..8248] : '011', [8249] : '17A', [8250..8576] : '011', [8935..8936] : '16A', [8940..8950] : '011', [8980..8990] : '011'],
[170] : [[8000..8152] : '012', [8153] : '17B', [8154..8231] : '012', [8240..8242] : '17B', [8243..8245] : '012', [8246] : '17B', [8247..8248] : '012', [8249] : '17B', [8250..8576] : '012', [8935..8936] : '16B', [8940..8950] : '012', [8980..8981] : '012'],
[171] : [[8000..8152] : '012', [8153] : '17B', [8154..8231] : '012', [8240..8242] : '17B', [8243..8245] : '012', [8246] : '17B', [8247..8248] : '012', [8249] : '17B', [8250..8576] : '012', [8935..8936] : '16B', [8940..8950] : '012', [8980..8981] : '012'],
[172] : [[8000..8152] : '012', [8153] : '17B', [8154..8231] : '012', [8240..8242] : '17B', [8243..8245] : '012', [8246] : '17B', [8247..8248] : '012', [8249] : '17B', [8250..8576] : '012', [8935..8936] : '16B', [8940..8950] : '012', [8980..8981] : '012'],
[173] : [[8153] : '17B', [8240..8242] : '17B', [8246] : '17B', [8249] : '17B'],
[178] : [[8000..8152] : '012', [8153] : '17B', [8154..8231] : '012', [8240..8242] : '17B', [8243..8245] : '012', [8246] : '17B', [8247..8248] : '012', [8249] : '17B', [8250..8576] : '012', [8935..8936] : '16B', [8940..8950] : '012', [8980..8981] : '012'],
[179] : [[8000..8152] : '012', [8153] : '17B', [8154..8231] : '012', [8240..8242] : '17B', [8243..8245] : '012', [8246] : '17B', [8247..8248] : '012', [8249] : '17B', [8250..8576] : '012', [8935..8936] : '16B', [8940..8950] : '012', [8980..8981] : '012'],
[180] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[181] : [[8000..8152] : '13A', [8153] : '13B', [8154..8231] : '13A', [8240..8242] : '13B', [8243..8245] : '13A', [8246] : '13B', [8247..8248] : '13A', [8249] : '13B', [8250..8576] : '13A', [8935..8936] : '16B', [8940..8950] : '13A', [8980..8981] : '13A'],
[182] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[183] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[184] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[185] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[186] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[187] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[188] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[189] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[19] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[190] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[191] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[192] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[193] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[194] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[195] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[196] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[197] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[198] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[199] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[2] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[20] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[200] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[201] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[202] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[203] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[204] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[205] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[206] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[207] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[208] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[209] : [[8000..8152] : '014', [8153] : '17C', [8154..8231] : '014', [8240..8242] : '17C', [8243..8245] : '014', [8246] : '17C', [8247..8248] : '014', [8249] : '17C', [8250..8576] : '014', [8935..8936] : '16B', [8940..8950] : '014', [8980..8981] : '014'],
[21] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[210] : [[8000..8152] : '015', [8154..8231] : '015', [8243..8245] : '015', [8247..8248] : '015', [8250..8576] : '015', [8940..8950] : '015', [8980..8981] : '015'],
[211] : [[8000..8152] : '015', [8154..8231] : '015', [8243..8245] : '015', [8247..8248] : '015', [8250..8576] : '015', [8940..8950] : '015', [8980..8981] : '015'],
[212] : [[8000..8152] : '015', [8154..8231] : '015', [8243..8245] : '015', [8247..8248] : '015', [8250..8576] : '015', [8940..8950] : '015', [8980..8981] : '015'],
[213] : [[8000..8152] : '015', [8154..8231] : '015', [8243..8245] : '015', [8247..8248] : '015', [8250..8576] : '015', [8940..8950] : '015', [8980..8981] : '015'],
[214] : [[8000..8152] : '015', [8154..8231] : '015', [8243..8245] : '015', [8247..8248] : '015', [8250..8576] : '015', [8940..8950] : '015', [8980..8981] : '015'],
[215] : [[8000..8152] : '015', [8154..8231] : '015', [8243..8245] : '015', [8247..8248] : '015', [8250..8576] : '015', [8940..8950] : '015', [8980..8981] : '015'],
[216] : [[8000..8152] : '015', [8154..8231] : '015', [8243..8245] : '015', [8247..8248] : '015', [8250..8576] : '015', [8940..8950] : '015', [8980..8981] : '015'],
[217] : [[8000..8152] : '015', [8154..8231] : '015', [8243..8245] : '015', [8247..8248] : '015', [8250..8576] : '015', [8940..8950] : '015', [8980..8981] : '015'],
[218] : [[8000..8152] : '015', [8154..8231] : '015', [8243..8245] : '015', [8247..8248] : '015', [8250..8576] : '015', [8940..8950] : '015', [8980..8981] : '015'],
[22] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[220] : [[8170..8175] : '018'],
[221] : [[8160..8161] : '019', [8180] : '019'],
[23] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[239] : [[8000..8152] : '020', [8154..8231] : '020', [8243..8245] : '020', [8250..8576] : '020', [8940..8950] : '020', [8980..8981] : '020'],
[24] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[240] : [[8000..8152] : '021', [8154..8231] : '021', [8243..8245] : '021', [8250..8576] : '021', [8940..8950] : '021', [8980..8981] : '021'],
[241] : [[8000..8152] : '023', [8153] : '17B', [8154..8231] : '023', [8240..8242] : '17B', [8243..8245] : '023', [8246] : '17B', [8249] : '17B', [8250..8576] : '023', [8940..8950] : '023', [8980..8981] : '023'],
[250] : [[8000..8576] : '024', [8940..8950] : '024', [8971] : '024', [8980..8981] : '024'],
[251] : [[8000..8576] : '024', [8940..8950] : '024', [8971] : '024', [8980..8981] : '024'],
[252] : [[8000..8576] : '024', [8940..8950] : '024', [8971] : '024', [8980..8981] : '024'],
[253] : [[8000..8576] : '024', [8940..8950] : '024', [8971] : '024', [8980..8981] : '024'],
[254] : [[8000..8576] : '024', [8940..8950] : '024', [8971] : '024', [8980..8981] : '024'],
[255] : [[8000..8576] : '024', [8940..8950] : '024', [8971] : '024', [8980..8981] : '024'],
[256] : [[8000..8576] : '024', [8940..8950] : '024', [8971] : '024', [8980..8981] : '024'],
[257] : [[8000..8576] : '024', [8940..8950] : '024', [8971] : '024', [8980..8981] : '024'],
[258] : [[8000..8576] : '024', [8940..8950] : '024', [8971] : '024', [8980..8981] : '024'],
[259] : [[8000..8576] : '024', [8940..8950] : '024', [8971] : '024', [8980..8981] : '024'],
[28] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[29] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[3] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[30] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[300] : [[8000..8576] : '006', [8720..8790] : '009', [8940..8950] : '006', [8980..8981] : '006'],
[31] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[310] : [[8000..8576] : '006', [8720..8790] : '009', [8940..8950] : '006', [8980..8981] : '006'],
[311] : [[8000..8576] : '006', [8720..8790] : '009', [8940..8950] : '006', [8980..8981] : '006'],
[320] : [[8000..8576] : '05B', [8720..8790] : '009', [8940..8950] : '05B', [8980..8981] : '05B'],
[321] : [[8000..8576] : '05A', [8720..8790] : '009', [8940..8950] : '05A', [8980..8981] : '05A'],
[322] : [[8000..8576] : '05A', [8720..8790] : '009', [8940..8950] : '05A', [8980..8981] : '05A'],
[323] : [[8720..8790] : '009'],
[328] : [[8000..8576] : '05B', [8720..8790] : '009', [8940..8950] : '05B', [8980..8981] : '05B'],
[329] : [[8000..8576] : '05B', [8720..8790] : '009', [8940..8950] : '05B', [8980..8981] : '05B'],
[340] : [[8000..8576] : '025', [8940..8950] : '025', [8980..8981] : '025'],
[341] : [[8000..8576] : '025', [8940..8950] : '025', [8980..8981] : '025'],
[342] : [[8000..8576] : '025', [8940..8950] : '025', [8980..8981] : '025'],
[343] : [[8000..8576] : '025', [8940..8950] : '025', [8980..8981] : '025'],
[344] : [[8000..8576] : '025', [8940..8950] : '025', [8980..8981] : '025'],
[345] : [[8000..8576] : '025', [8940..8950] : '025', [8980..8981] : '025'],
[346] : [[8000..8576] : '025', [8940..8950] : '025', [8980..8981] : '025'],
[347] : [[8000..8576] : '025', [8940..8950] : '025', [8980..8981] : '025'],
[348] : [[8000..8576] : '025', [8940..8950] : '025', [8980..8981] : '025'],
[349] : [[8000..8576] : '025', [8940..8950] : '025', [8980..8981] : '025'],
[380] : [[8800..8820] : '028', [8823..8935] : '028', [8940..9136] : '028', [9142..9582] : '028'],
[381] : [[8800..8820] : '028', [8823..8935] : '028', [8940..9136] : '028', [9142..9582] : '028'],
[382] : [[8800..8820] : '028', [8823..8935] : '028', [8940..9136] : '028', [9142..9582] : '028'],
[383] : [[8800..8820] : '028', [8823..8935] : '028', [8940..9136] : '028', [9142..9582] : '028'],
[384] : [[9050..9053] : '026'],
[388] : [[8800..8820] : '028', [8823..8935] : '028', [8940..9136] : '028', [9142..9582] : '028'],
[39] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[4] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[40] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[400] : [[8800..9136] : '027', [9142..9582] : '027'],
[401] : [[8800..9136] : '027', [9142..9582] : '027'],
[402] : [[8800..9136] : '027', [9142..9582] : '027'],
[403] : [[8800..9136] : '027', [9142..9582] : '027'],
[404] : [[8800..9136] : '027', [9142..9582] : '027'],
[405] : [[8800..9136] : '027', [9142..9582] : '027'],
[406] : [[8800..9136] : '027', [9142..9582] : '027'],
[407] : [[8800..9136] : '027', [9142..9582] : '027'],
[408] : [[8800..9136] : '027', [9142..9582] : '027'],
[409] : [[8800..9136] : '027', [9142..9582] : '027'],
[41] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[410] : [[8800..9136] : '027', [9142..9582] : '027'],
[411] : [[8800..9136] : '027', [9142..9582] : '027'],
[412] : [[8800..9136] : '027', [9142..9582] : '027'],
[413] : [[8800..9136] : '027', [9142..9582] : '027'],
[414] : [[8800..9136] : '027', [9142..9582] : '027'],
[415] : [[8800..9136] : '027', [9142..9582] : '027'],
[416] : [[8800..9136] : '027', [9142..9582] : '027'],
[417] : [[8800..9136] : '027', [9142..9582] : '027'],
[418] : [[8800..9136] : '027', [9142..9582] : '027'],
[419] : [[8800..9136] : '027', [9142..9582] : '027'],
[420] : [[9811..9818] : '57C', [9837] : '57C'],
[421] : [[9811..9818] : '57C', [9837] : '57C'],
[424] : [[9811..9818] : '57C', [9837] : '57C'],
[440] : [[8000..8246] : '029', [8247] : '030', [8248..8576] : '029', [8720..8790] : '031', [8940..8950] : '029', [8980..8981] : '029', [9700..9701] : '57B'],
[441] : [[8000..8576] : '048', [8720..8790] : '031', [8940..8950] : '048', [8980..8981] : '048', [9590..9699] : '055', [9700..9701] : '57B', [9702..9738] : '055', [9811..9818] : '055', [9820..9837] : '055'],
[442] : [[8000..8246] : '029', [8247] : '030', [8248..8576] : '029', [8720..8790] : '031', [8940..8950] : '029', [8980..8981] : '029', [9700..9701] : '57B'],
[443] : [[8000..8246] : '029', [8247] : '030', [8248..8576] : '029', [8720..8790] : '031', [8940..8950] : '029', [8980..8981] : '029', [9700..9701] : '57B'],
[444] : [[8000..8246] : '029', [8247] : '030', [8248..8576] : '029', [8720..8790] : '031', [8940..8950] : '029', [8980..8981] : '029', [9700..9701] : '57B'],
[445] : [[8000..8246] : '029', [8247] : '030', [8248..8576] : '029', [8720..8790] : '031', [8940..8950] : '029', [8980..8981] : '029', [9700..9701] : '57B'],
[446] : [[8000..8246] : '029', [8247] : '030', [8248..8576] : '029', [8720..8790] : '031', [8940..8950] : '029', [8980..8981] : '029', [9700..9701] : '57B'],
[447] : [[8000..8246] : '029', [8247] : '030', [8248..8576] : '029', [8720..8790] : '031', [8940..8950] : '029', [8980..8981] : '029', [9700..9701] : '57B'],
[448] : [[8000..8246] : '029', [8247] : '030', [8248..8576] : '029', [8720..8790] : '031', [8940..8950] : '029', [8980..8981] : '029', [9700..9701] : '57B'],
[449] : [[8000..8246] : '029', [8247] : '030', [8248..8576] : '029', [8720..8790] : '031', [8940..8950] : '029', [8980..8981] : '029', [9700..9701] : '57B'],
[470] : [[8800..8820] : '028', [8823..8935] : '028', [8940..9136] : '028', [9142..9582] : '028'],
[471] : [[8800..8820] : '028', [8823..8935] : '028', [8940..9136] : '028', [9142..9582] : '028'],
[472] : [[8800..8820] : '028', [8823..8935] : '028', [8940..9136] : '028', [9142..9582] : '028'],
[473] : [[8800..8820] : '028', [8823..8935] : '028', [8940..9136] : '028', [9142..9582] : '028'],
[474] : [[8800..8820] : '028', [8823..8935] : '028', [8940..9136] : '028', [9142..9582] : '028'],
[475] : [[8800..8820] : '028', [8823..8935] : '028', [8940..9136] : '028', [9142..9582] : '028'],
[476] : [[8800..8820] : '028', [8823..8935] : '028', [8940..9136] : '028', [9142..9582] : '028'],
[477] : [[8800..8820] : '028', [8823..8935] : '028', [8940..9136] : '028', [9142..9582] : '028'],
[478] : [[8800..8820] : '028', [8823..8935] : '028', [8940..9136] : '028', [9142..9582] : '028'],
[479] : [[8800..8820] : '028', [8823..8935] : '028', [8940..9136] : '028', [9142..9582] : '028'],
[48] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[480] : [[8800..8820] : '028', [8823..8934] : '028', [8935..8936] : '16B', [8940..9136] : '028', [9142..9582] : '028'],
[481] : [[8000..8576] : '37B', [8590..8671] : '37B', [8930..8934] : '37B', [8935..8936] : '16B', [8940..9110] : '37B'],
[482] : [[8000..8576] : '37B', [8590..8671] : '37B', [8930..8934] : '37B', [8935..8936] : '16B', [8940..9110] : '37B'],
[483] : [[8000..8576] : '37B', [8590..8671] : '37B', [8930..8934] : '37B', [8935..8936] : '16B', [8940..9110] : '37B'],
[484] : [[8000..8576] : '37B', [8590..8671] : '37B', [8930..8934] : '37B', [8935..8936] : '16B', [8940..9110] : '37B'],
[485] : [[8000..8576] : '37B', [8590..8671] : '37B', [8930..8934] : '37B', [8935..8936] : '16B', [8940..9110] : '37B'],
[486] : [[8000..8576] : '37B', [8590..8671] : '37B', [8930..8934] : '37B', [8935..8936] : '16B', [8940..9110] : '37B'],
[487] : [[8000..8576] : '37B', [8590..8671] : '37B', [8930..8934] : '37B', [8935..8936] : '16B', [8940..9110] : '37B'],
[488] : [[8000..8576] : '37B', [8590..8671] : '37B', [8930..8934] : '37B', [8935..8936] : '16B', [8940..9110] : '37B'],
[49] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[490] : [[8800..8820] : '028', [8823..8935] : '028', [8940..9136] : '028', [9142..9582] : '028'],
[491] : [[8800..8820] : '028', [8823..8935] : '028', [8940..9136] : '028', [9142..9582] : '028'],
[492] : [[8800..8820] : '028', [8823..8935] : '028', [8940..9136] : '028', [9142..9582] : '028'],
[493] : [[8800..8820] : '028', [8823..8935] : '028', [8940..9136] : '028', [9142..9582] : '028'],
[494] : [[8800..8820] : '028', [8823..8935] : '028', [8940..9136] : '028', [9142..9582] : '028'],
[495] : [[8800..8820] : '028', [8823..8935] : '028', [8940..9136] : '028', [9142..9582] : '028'],
[496] : [[8800..8820] : '028', [8823..8935] : '028', [8940..9136] : '028', [9142..9582] : '028'],
[497] : [[8800..8820] : '028', [8823..8935] : '028', [8940..9136] : '028', [9142..9582] : '028'],
[498] : [[8800..8820] : '028', [8823..8935] : '028', [8940..9136] : '028', [9142..9582] : '028'],
[499] : [[8800..8820] : '028', [8823..8935] : '028', [8940..9136] : '028', [9142..9582] : '028'],
[5] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[50] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[500] : [[8000..8576] : '032', [8940..8950] : '032', [8980..8981] : '032', [9020] : '032'],
[501] : [[8000..8576] : '032', [8940..8950] : '032', [8980..8981] : '032', [9020] : '032'],
[502] : [[8000..8576] : '032', [8940..8950] : '032', [8980..8981] : '032', [9020] : '032'],
[503] : [[8000..8576] : '032', [8940..8950] : '032', [8980..8981] : '032', [9020] : '032'],
[504] : [[8000..8576] : '032', [8940..8950] : '032', [8980..8981] : '032', [9020] : '032'],
[505] : [[8000..8576] : '032', [8940..8950] : '032', [8980..8981] : '032', [9020] : '032'],
[506] : [[8000..8576] : '032', [8940..8950] : '032', [8980..8981] : '032', [9020] : '032'],
[507] : [[8000..8576] : '032', [8940..8950] : '032', [8980..8981] : '032', [9020] : '032'],
[508] : [[8000..8576] : '032', [8940..8950] : '032', [8980..8981] : '032', [9020] : '032'],
[509] : [[8000..8576] : '032', [8940..8950] : '032', [8980..8981] : '032', [9020] : '032'],
[51] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[510] : [[8000..8246] : '033', [8247] : '030', [8248..8576] : '033', [8720..8790] : '031', [8940..8950] : '033', [8980..8981] : '033', [9700..9701] : '57B'],
[511] : [[8000..8246] : '033', [8247] : '030', [8248..8576] : '033', [8720..8790] : '031', [8940..8950] : '033', [8980..8981] : '033', [9700..9701] : '57B'],
[512] : [[8000..8246] : '033', [8247] : '030', [8248..8576] : '033', [8720..8790] : '031', [8940..8950] : '033', [8980..8981] : '033', [9700..9701] : '57B'],
[513] : [[8000..8246] : '033', [8247] : '030', [8248..8576] : '033', [8720..8790] : '031', [8940..8950] : '033', [8980..8981] : '033', [9700..9701] : '57B'],
[514] : [[8000..8246] : '033', [8247] : '030', [8248..8576] : '033', [8720..8790] : '031', [8940..8950] : '033', [8980..8981] : '033', [9700..9701] : '57B'],
[515] : [[8000..8246] : '033', [8247] : '030', [8248..8576] : '033', [8720..8790] : '031', [8940..8950] : '033', [8980..8981] : '033', [9700..9701] : '57B'],
[516] : [[8000..8246] : '033', [8247] : '030', [8248..8576] : '033', [8720..8790] : '031', [8940..8950] : '033', [8980..8981] : '033', [9700..9701] : '57B'],
[517] : [[8000..8246] : '033', [8247] : '030', [8248..8576] : '033', [8720..8790] : '031', [8940..8950] : '033', [8980..8981] : '033', [9700..9701] : '57B'],
[518] : [[8000..8246] : '033', [8247] : '030', [8248..8576] : '033', [8720..8790] : '031', [8940..8950] : '033', [8980..8981] : '033', [9700..9701] : '57B'],
[519] : [[8000..8246] : '033', [8247] : '030', [8248..8576] : '033', [8720..8790] : '031', [8940..8950] : '033', [8980..8981] : '033', [9700..9701] : '57B'],
[52] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[529] : [[8000..8576] : '034', [8800..8801] : '034', [8940..8950] : '034', [8980..8981] : '034'],
[530] : [[8000..8576] : '035', [8940..8950] : '035', [8980..8981] : '035'],
[531] : [[8000..8576] : '035', [8940..8950] : '035', [8980..8981] : '035'],
[532] : [[8000..8576] : '035', [8940..8950] : '035', [8980..8981] : '035'],
[533] : [[8000..8576] : '035', [8940..8950] : '035', [8980..8981] : '035'],
[534] : [[8000..8576] : '035', [8940..8950] : '035', [8980..8981] : '035'],
[535] : [[8000..8576] : '035', [8940..8950] : '035', [8980..8981] : '035'],
[536] : [[8000..8576] : '035', [8940..8950] : '035', [8980..8981] : '035'],
[537] : [[8000..8576] : '035', [8940..8950] : '035', [8980..8981] : '035'],
[538] : [[8000..8576] : '035', [8940..8950] : '035', [8980..8981] : '035'],
[539] : [[8000..8576] : '035', [8940..8950] : '035', [8980..8981] : '035'],
[540] : [[8000..8790] : '36A', [8800] : '36B', [8890..8898] : '36B', [8900..8921] : '36B', [8930..8931] : '36B', [8933] : '36C', [8935] : '36B', [8950..8951] : '36A', [8980..8981] : '36A'],
[541] : [[8000..8790] : '36A', [8800] : '36B', [8890..8898] : '36B', [8900..8921] : '36B', [8930..8931] : '36B', [8933] : '36C', [8935] : '36B', [8950..8951] : '36A', [8980..8981] : '36A'],
[542] : [[8000..8790] : '36A', [8800] : '36B', [8890..8898] : '36B', [8900..8921] : '36B', [8930..8931] : '36B', [8933] : '36C', [8935] : '36B', [8950..8951] : '36A', [8980..8981] : '36A'],
[543] : [[8000..8790] : '36A', [8800] : '36B', [8890..8898] : '36B', [8900..8921] : '36B', [8930..8931] : '36B', [8933] : '36C', [8935] : '36B', [8950..8951] : '36A', [8980..8981] : '36A'],
[544] : [[8000..8790] : '36A', [8800] : '36B', [8890..8898] : '36B', [8900..8921] : '36B', [8930..8931] : '36B', [8933] : '36C', [8935] : '36B', [8950..8951] : '36A', [8980..8981] : '36A'],
[545] : [[8000..8790] : '36A', [8800] : '36B', [8890..8898] : '36B', [8900..8921] : '36B', [8930..8931] : '36B', [8933] : '36C', [8935] : '36B', [8950..8951] : '36A', [8980..8981] : '36A'],
[546] : [[8000..8790] : '36A', [8800] : '36B', [8890..8898] : '36B', [8900..8921] : '36B', [8930..8931] : '36B', [8933] : '36C', [8935] : '36B', [8950..8951] : '36A', [8980..8981] : '36A'],
[547] : [[8000..8790] : '36A', [8800] : '36B', [8890..8898] : '36B', [8900..8921] : '36B', [8930..8931] : '36B', [8933] : '36C', [8935] : '36B', [8950..8951] : '36A', [8980..8981] : '36A'],
[548] : [[8000..8790] : '36A', [8800] : '36B', [8890..8898] : '36B', [8900..8921] : '36B', [8930..8931] : '36B', [8933] : '36C', [8935] : '36B', [8950..8951] : '36A', [8980..8981] : '36A'],
[549] : [[8000..8790] : '36A', [8800] : '36B', [8890..8898] : '36B', [8900..8921] : '36B', [8930..8931] : '36B', [8933] : '36C', [8935] : '36B', [8950..8951] : '36A', [8980..8981] : '36A'],
[550] : [[8000..8790] : '36A', [8800] : '36B', [8890..8898] : '36B', [8900..8921] : '36B', [8930..8931] : '36B', [8933] : '36C', [8935] : '36B', [8950..8951] : '36A', [8980..8981] : '36A'],
[551] : [[8000..8790] : '36A', [8800] : '36B', [8890..8898] : '36B', [8900..8921] : '36B', [8930..8931] : '36B', [8933] : '36C', [8935] : '36B', [8950..8951] : '36A', [8980..8981] : '36A'],
[552] : [[8000..8790] : '36A', [8800] : '36B', [8890..8898] : '36B', [8900..8921] : '36B', [8930..8931] : '36B', [8933] : '36C', [8935] : '36B', [8950..8951] : '36A', [8980..8981] : '36A'],
[553] : [[8000..8790] : '36A', [8800] : '36B', [8890..8898] : '36B', [8900..8921] : '36B', [8930..8931] : '36B', [8933] : '36C', [8935] : '36B', [8950..8951] : '36A', [8980..8981] : '36A'],
[554] : [[8000..8790] : '36A', [8800] : '36B', [8890..8898] : '36B', [8900..8921] : '36B', [8930..8931] : '36B', [8933] : '36C', [8935] : '36B', [8950..8951] : '36A', [8980..8981] : '36A'],
[555] : [[8000..8790] : '36A', [8800] : '36B', [8890..8898] : '36B', [8900..8921] : '36B', [8930..8931] : '36B', [8933] : '36C', [8935] : '36B', [8950..8951] : '36A', [8980..8981] : '36A'],
[556] : [[8000..8790] : '36A', [8800] : '36B', [8890..8898] : '36B', [8900..8921] : '36B', [8930..8931] : '36B', [8933] : '36C', [8935] : '36B', [8950..8951] : '36A', [8980..8981] : '36A'],
[557] : [[8000..8790] : '36A', [8800] : '36B', [8890..8898] : '36B', [8900..8921] : '36B', [8930..8931] : '36B', [8933] : '36C', [8935] : '36B', [8950..8951] : '36A', [8980..8981] : '36A'],
[558] : [[8000..8790] : '36A', [8800] : '36B', [8890..8898] : '36B', [8900..8921] : '36B', [8930..8931] : '36B', [8933] : '36C', [8935] : '36B', [8950..8951] : '36A', [8980..8981] : '36A'],
[559] : [[8000..8790] : '36A', [8800] : '36B', [8890..8898] : '36B', [8900..8921] : '36B', [8930..8931] : '36B', [8933] : '36C', [8935] : '36B', [8950..8951] : '36A', [8980..8981] : '36A'],
[569] : [[8000..8576] : '37A', [8590..8671] : '37A', [8930..9110] : '37A'],
[570] : [[8000..8576] : '038', [8940..8950] : '038', [8980..8981] : '038'],
[58] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[589] : [[9100..9105] : '039'],
[59] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[6] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[60] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[600] : [[8000..8246] : '040', [8247] : '030', [8248..8576] : '040', [8720..8790] : '031', [8940..8950] : '040', [8980..8981] : '040', [9700..9701] : '57B'],
[601] : [[8000..8246] : '040', [8247] : '030', [8248..8576] : '040', [8720..8790] : '031', [8940..8950] : '040', [8980..8981] : '040', [9700..9701] : '57B'],
[602] : [[8000..8246] : '040', [8247] : '030', [8248..8576] : '040', [8720..8790] : '031', [8940..8950] : '040', [8980..8981] : '040', [9700..9701] : '57B'],
[603] : [[8000..8246] : '040', [8247] : '030', [8248..8576] : '040', [8720..8790] : '031', [8940..8950] : '040', [8980..8981] : '040', [9700..9701] : '57B'],
[604] : [[8000..8246] : '040', [8247] : '030', [8248..8576] : '040', [8720..8790] : '031', [8940..8950] : '040', [8980..8981] : '040', [9700..9701] : '57B'],
[605] : [[8000..8246] : '040', [8247] : '030', [8248..8576] : '040', [8720..8790] : '031', [8940..8950] : '040', [8980..8981] : '040', [9700..9701] : '57B'],
[606] : [[8000..8246] : '040', [8247] : '030', [8248..8576] : '040', [8720..8790] : '031', [8940..8950] : '040', [8980..8981] : '040', [9700..9701] : '57B'],
[607] : [[8000..8246] : '040', [8247] : '030', [8248..8576] : '040', [8720..8790] : '031', [8940..8950] : '040', [8980..8981] : '040', [9700..9701] : '57B'],
[608] : [[8000..8246] : '040', [8247] : '030', [8248..8576] : '040', [8720..8790] : '031', [8940..8950] : '040', [8980..8981] : '040', [9700..9701] : '57B'],
[609] : [[8000..8246] : '040', [8247] : '030', [8248..8576] : '040', [8720..8790] : '031', [8940..8950] : '040', [8980..8981] : '040', [9700..9701] : '57B'],
[61] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[619] : [[8000..8110] : '041', [8140..8576] : '041', [8940..8950] : '041', [8980..8981] : '041'],
[62] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[620] : [[8000..8576] : '042', [8590..8670] : '042', [8940..8950] : '042', [8980..8981] : '042', [9060..9090] : '042', [9100..9105] : '042'],
[621] : [[8000..8576] : '042', [8590..8670] : '042', [8940..8950] : '042', [8980..8981] : '042', [9060..9090] : '042', [9100..9105] : '042'],
[622] : [[8000..8576] : '042', [8590..8670] : '042', [8940..8950] : '042', [8980..8981] : '042', [9060..9090] : '042', [9100..9105] : '042'],
[623] : [[8000..8576] : '042', [8590..8670] : '042', [8940..8950] : '042', [8980..8981] : '042', [9060..9090] : '042', [9100..9105] : '042'],
[624] : [[8000..8576] : '042', [8590..8670] : '042', [8940..8950] : '042', [8980..8981] : '042', [9060..9090] : '042', [9100..9105] : '042'],
[625] : [[8000..8576] : '042', [8590..8670] : '042', [8940..8950] : '042', [8980..8981] : '042', [9060..9090] : '042', [9100..9105] : '042'],
[626] : [[8000..8576] : '042', [8590..8670] : '042', [8940..8950] : '042', [8980..8981] : '042', [9060..9090] : '042', [9100..9105] : '042'],
[627] : [[8000..8576] : '042', [8590..8670] : '042', [8940..8950] : '042', [8980..8981] : '042', [9060..9090] : '042', [9100..9105] : '042'],
[628] : [[8000..8576] : '042', [8590..8670] : '042', [8940..8950] : '042', [8980..8981] : '042', [9060..9090] : '042', [9100..9105] : '042'],
[629] : [[8000..8576] : '042', [8590..8670] : '042', [8940..8950] : '042', [8980..8981] : '042', [9060..9090] : '042', [9100..9105] : '042'],
[632] : [[8000..8246] : '029', [8247] : '030', [8248..8576] : '029', [8720..8790] : '031', [8940..8950] : '029', [8980..8981] : '029', [9700..9701] : '57B'],
[649] : [[8000..8576] : '043', [8940..8950] : '043', [8980..8981] : '043'],
[659] : [[8000..8576] : '044', [8940..8950] : '044', [8980..8981] : '044'],
[660] : [[8000..8576] : '044', [8940..8950] : '044', [8980..8981] : '044'],
[661] : [[8000..8576] : '044', [8940..8950] : '044', [8980..8981] : '044'],
[662] : [[8000..8576] : '044', [8940..8950] : '044', [8980..8981] : '044'],
[663] : [[8000..8576] : '044', [8940..8950] : '044', [8980..8981] : '044'],
[664] : [[8000..8576] : '044', [8940..8950] : '044', [8980..8981] : '044'],
[665] : [[8000..8576] : '044', [8940..8950] : '044', [8980..8981] : '044'],
[666] : [[8000..8576] : '044', [8940..8950] : '044', [8980..8981] : '044'],
[667] : [[8000..8576] : '044', [8940..8950] : '044', [8980..8981] : '044'],
[668] : [[8000..8576] : '044', [8940..8950] : '044', [8980..8981] : '044'],
[669] : [[8000..8576] : '044', [8940..8950] : '044', [8980..8981] : '044'],
[670] : [[8000..8576] : '045', [8940..8950] : '045', [8980..8981] : '045'],
[671] : [[8000..8576] : '045', [8940..8950] : '045', [8980..8981] : '045'],
[672] : [[8000..8576] : '045', [8940..8950] : '045', [8980..8981] : '045'],
[673] : [[8000..8576] : '045', [8940..8950] : '045', [8980..8981] : '045'],
[674] : [[8000..8576] : '045', [8940..8950] : '045', [8980..8981] : '045'],
[675] : [[8000..8576] : '045', [8940..8950] : '045', [8980..8981] : '045'],
[676] : [[8000..8576] : '045', [8940..8950] : '045', [8980..8981] : '045'],
[677] : [[8000..8576] : '045', [8940..8950] : '045', [8980..8981] : '045'],
[678] : [[8000..8576] : '045', [8940..8950] : '045', [8980..8981] : '045'],
[679] : [[8000..8576] : '045', [8940..8950] : '045', [8980..8981] : '045'],
[68] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[680] : [[8000..8576] : '046', [8940..8950] : '046', [8980..8981] : '046'],
[69] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[690] : [[8000..8576] : '049', [8720..8790] : '050', [8940..8950] : '049', [8980..8981] : '049', [9590..9699] : '055', [9702..9738] : '055', [9811..9818] : '055', [9820..9837] : '055'],
[692] : [[9510..9514] : '052'],
[693] : [[8720..8790] : '051'],
[694] : [[8720..8790] : '051'],
[695] : [[8000..8576] : '053', [8940..8950] : '053', [8980..8981] : '053', [9590..9699] : '055', [9702..9738] : '055', [9811..9818] : '055', [9820..9837] : '055'],
[696] : [[8800..8936] : '054', [8940..9136] : '054', [9141..9508] : '054', [9520..9582] : '054', [9590..9699] : '055', [9702..9738] : '055', [9811..9818] : '055', [9820..9837] : '055'],
[698] : [[8800..8936] : '054', [8940..9136] : '054', [9141..9508] : '054', [9520..9582] : '054'],
[7] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[700] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[701] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[702] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[703] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[704] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[705] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[706] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[707] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[708] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[709] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[710] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[711] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[712] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[713] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[714] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[715] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[716] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[717] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[718] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[719] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[720] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[721] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[722] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[723] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[724] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[725] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[726] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[727] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[728] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[729] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[739] : [[8000..8015] : '008', [8020..8021] : '08E', [8022] : '008', [8030..8032] : '08E', [8033..8344] : '008', [8345..8347] : '08D', [8350..8420] : '008', [8430] : '08D', [8440..8508] : '008', [8510] : '08D', [8512..8513] : '08D', [8514..8576] : '008', [8940..8950] : '008', [8980..8981] : '008'],
[740] : [[8010] : '47A', [8140] : '47A', [8370] : '47A'],
[749] : [[8370] : '47B'],
[751] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[752] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[753] : [[8000] : '056', [8680..9136] : '056', [9141..9582] : '056'],
[754] : [[8000..9999] : '999'],
[755] : [[8000..9999] : '999'],
[756] : [[8000..9999] : '999'],
[757] : [[8000..9999] : '999'],
[758] : [[8000..9999] : '999'],
[759] : [[8000..9999] : '999'],
[760] : [[8000..9999] : '999'],
[761] : [[8000..9999] : '999'],
[762] : [[8000..9999] : '999'],
[763] : [[8000..9999] : '999'],
[764] : [[8000..9999] : '999'],
[765] : [[8000..9999] : '999'],
[766] : [[8000..9999] : '999'],
[767] : [[8000..9999] : '999'],
[768] : [[8000..9999] : '999'],
[769] : [[8000..9999] : '999'],
[770] : [[8000..9999] : '999'],
[771] : [[8000..9999] : '999'],
[772] : [[8000..9999] : '999'],
[773] : [[8000..9999] : '999'],
[774] : [[8000..9999] : '999'],
[775] : [[8000..9999] : '999'],
[776] : [[8000..9999] : '999'],
[777] : [[8000..9999] : '999'],
[778] : [[8000..9999] : '999'],
[779] : [[8000..9999] : '999'],
[780] : [[8000..9999] : '999'],
[781] : [[8000..9999] : '999'],
[782] : [[8000..9999] : '999'],
[783] : [[8000..9999] : '999'],
[784] : [[8000..9999] : '999'],
[785] : [[8000..9999] : '999'],
[786] : [[8000..9999] : '999'],
[787] : [[8000..9999] : '999'],
[788] : [[8000..9999] : '999'],
[789] : [[8000..9999] : '999'],
[79] : [[8000..8576] : '007', [8940..8950] : '007', [8980..8982] : '007'],
[790] : [[8000..9999] : '999'],
[791] : [[8000..9999] : '999'],
[792] : [[8000..9999] : '999'],
[793] : [[8000..9999] : '999'],
[794] : [[8000..9999] : '999'],
[795] : [[8000..9999] : '999'],
[796] : [[8000..9999] : '999'],
[797] : [[8000..9999] : '999'],
[798] : [[8000..9999] : '999'],
[799] : [[8000..9999] : '999'],
[8] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[80] : [[8000..8576] : '007', [8940..8950] : '007', [8980..8982] : '007'],
[800] : [[8000..9999] : '999'],
[801] : [[8000..9999] : '999'],
[802] : [[8000..9999] : '999'],
[803] : [[8000..9999] : '999'],
[804] : [[8000..9999] : '999'],
[805] : [[8000..9999] : '999'],
[806] : [[8000..9999] : '999'],
[807] : [[8000..9999] : '999'],
[808] : [[8000..9999] : '999'],
[809] : [[8000..9999] : '999'],
[81] : [[8000..8576] : '007', [8940..8950] : '007', [8980..8982] : '007'],
[82] : [[8000..8576] : '007', [8940..8950] : '007', [8980..8982] : '007'],
[83] : [[8000..8576] : '007', [8940..8950] : '007', [8980..8982] : '007'],
[84] : [[8000..8576] : '007', [8940..8950] : '007', [8980..8982] : '007'],
[85] : [[8000..8576] : '007', [8940..8950] : '007', [8980..8982] : '007'],
[86] : [[8000..8576] : '007', [8940..8950] : '007', [8980..8982] : '007'],
[87] : [[8000..8576] : '007', [8940..8950] : '007', [8980..8982] : '007'],
[88] : [[8000..8576] : '007', [8940..8950] : '007', [8980..8982] : '007'],
[89] : [[8000..8576] : '007', [8940..8950] : '007', [8980..8982] : '007'],
[9] : [[8000..8576] : '003', [8720..8790] : '009', [8940..8950] : '003', [8980..8981] : '003'],
[90] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[91] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[92] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[93] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[94] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[95] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[96] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[97] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[98] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A'],
[99] : [[8000..8576] : '04A', [8720..8790] : '009', [8940..8950] : '04A', [8980..8981] : '04A']]]]></entry>
        <entry id="AjccIdDiscriminator2Table" type="java"><![CDATA[[
['C019', 'C024', 'C051', 'C052', 'C090', 'C091', 'C098', 'C099', 'C100', 'C102', 'C103', 'C108', 'C109']: [[8070, 8083]: ['2': [['1', '9'] : ['11.1']], '3': [['1', '9']: ['11.1'], ['2'] : ['10']]], [8072, 8085]: ['3': [['2']: ['10']]], [8051..8052, 8074..8075, 8082, 8086, 8560]: ['2': [['1', '9']: ['11.1']], '3': [['1', '9']: ['11.1']]]],
['C111'] : [[8070, 8083]: ['2': [['1', '9'] : ['11.1']], '3': [['1', '2', '9']: ['10', '11.1']]], [8072, 8085]: ['3': [['2']: ['10']]], [8051..8052, 8074..8075, 8082, 8086, 8560]: ['2': [['1', '9']: ['11.1']], '3': [['1', '9']: ['11.1']]]],
['C150', 'C151', 'C152', 'C153', 'C154', 'C155', 'C158', 'C159']: [[8020]: ['3': [['1', '9']: ['16.1'], ['2']: ['16.2']]]],
['C160']: [[8020]: ['3': [['1', '2', '9']: ['16.1', '16.2']]]],
['C473', 'C475', 'C493', 'C494', 'C495']: [[8711, 8800..8802, 8810..8811, 8815, 8825, 8832..8833, 8840, 8850, 8852, 8854, 8858, 8859, 8890, 8901, 8910..8912, 8920, 9040..9041, 9043, 9120, 9133, 9136, 9180, 9222, 9251, 9364, 9366..9368, 9540, 9542, 9561, 9580]: ['3': [['8', '2']: ['42'], ['1']: ['41']]]]
]]]></entry>
        <entry id="Base_Sites_IF177" type="java"><![CDATA[[79..81,90..91,98..99,301,310,312,341..349,384,400..403,441,442,446,447,471,472,491,492,500..509,569,570,620..631,649,659,669,690..699,740..749,754]]]></entry>
        <entry id="BRONCHUS_LUNG_IF2613DG" type="java"><![CDATA[[340,341,342,343,346,347,348,349]]]></entry>
        <entry id="Bypass_Sites_IF177" type="java"><![CDATA[[90..91,98..99,569,570,649,692]]]></entry>
        <entry id="census2000_ak" type="java"><![CDATA[[
    '013' : [100],
    '016' : [100,200],
    '020' : [101,102,201,202,203,204,300,400,500,600,701,702,703,801,802,901,902,1000,1100,1200,1300,1400,1500,1601,1602,1701,1702,1731,1732,1801,1802,1900,2000,2100,2201,2202,2301,2302,2303,2400,2501,2502,2601,2602,2603,2702,2711,2712,2811,2812,2813,2821,2822,2823,2900],
    '050' : [100,200,300],
    '060' : [100],
    '068' : [100],
    '070' : [100,200],
    '090' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900],
    '100' : [100],
    '110' : [100,200,300,400,500,600],
    '122' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300],
    '130' : [100,200,300,400],
    '150' : [100,200,300,400,500],
    '164' : [100],
    '170' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300],
    '180' : [100,200],
    '185' : [100,200,300],
    '188' : [100,200],
    '201' : [100,200,300,400],
    '220' : [100,200],
    '232' : [100,200,300],
    '240' : [100,200,300],
    '261' : [100,200,300],
    '270' : [100],
    '280' : [100,200,300],
    '282' : [100],
    '290' : [100,200,300,400],
    '999' : [100,101,102,200,201,202,203,204,300,400,500,600,700,701,702,703,800,801,802,900,901,902,1000,1100,1200,1300,1400,1500,1600,1601,1602,1700,1701,1702,1731,1732,1800,1801,1802,1900,2000,2100,2201,2202,2301,2302,2303,2400,2501,2502,2601,2602,2603,2702,2711,2712,2811,2812,2813,2821,2822,2823,2900]
 ]]]></entry>
        <entry id="census2000_az" type="java"><![CDATA[[
    '001' : [940100,940300,942600,942700,944000,944100,944200,944300,944900,945000,945100,970200,970300,970400],
    '003' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100],
    '005' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,940400,941100,941200,942200,944500,944600],
    '007' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,940200,940400],
    '009' : [940500,991100,991200,991300,991400,991500,991600,991700],
    '011' : [990100,990200,990300],
    '012' : [20100,20200,20500,20600,940200,940300],
    '013' : [10100,20201,20202,30302,30303,30304,30307,30308,30309,30310,30311,30312,30313,30314,30315,30316,30318,30319,30322,30323,30324,30325,30326,30327,30328,30329,30330,30331,30332,30333,30334,30335,30336,30337,30338,30339,30340,30341,30342,30343,30344,30345,30346,30347,30348,30349,30350,30351,30352,30354,30355,30356,30357,30358,30359,30360,30361,30363,30364,30365,30366,30367,30368,30369,30371,30372,30373,30374,30375,30377,30378,30379,30380,30400,40502,40505,40506,40507,40508,40509,40510,40511,50601,50602,50603,50700,60800,60900,61002,61003,61004,61005,61006,61007,61008,61009,61100,61200,61300,61400,71503,71504,71505,71506,71507,71508,71509,71510,71511,71512,71513,71600,71700,71801,71802,71903,71904,71906,71908,71909,71910,71911,82002,82007,82008,82009,82010,82011,82012,82013,82014,82015,82100,82201,82202,92304,92305,92306,92307,92308,92309,92310,92400,92500,92600,92703,92704,92705,92706,92707,92708,92709,92710,92711,92712,92713,92714,92800,92900,93000,93101,93102,93104,103205,103206,103207,103208,103209,103210,103211,103212,103214,103215,103216,103217,103218,103302,103303,103304,103305,103306,103400,103501,103502,103604,103605,103606,103607,103608,103609,103611,103612,103614,103615,103700,103900,104000,104100,104202,104203,104204,104205,104206,104207,104212,104214,104215,104216,104217,104218,104219,104221,104222,104223,104224,104225,104226,104227,104300,104400,104501,104502,104600,104700,104801,104802,104900,105001,105002,105101,105102,105103,105200,105300,105400,105500,105601,105602,105701,105702,105800,105900,106000,106100,106200,106300,106400,106500,106600,106700,106800,106900,107000,107101,107102,107201,107202,107300,107400,107500,107600,107700,107800,107900,108000,108100,108200,108300,108400,108500,108601,108602,108700,108801,108802,108901,108902,109000,109100,109200,109300,109400,109500,109601,109602,109603,109604,109701,109702,109703,109704,109705,109801,109802,109900,110001,110002,110100,110200,110300,110400,110500,110600,110701,110702,110800,110900,111000,111100,111201,111202,111203,111204,111300,111401,111402,111501,111502,111601,111602,111700,111800,111900,112000,112100,112201,112202,112301,112302,112401,112402,112502,112503,112504,112505,112506,112507,112508,112601,112602,112700,112800,112900,113000,113100,113201,113202,113203,113300,113400,113500,113601,113602,113700,113800,113900,114000,114100,114200,114301,114302,114401,114402,114500,114600,114701,114702,114703,114800,114900,115000,115100,115200,115300,115400,115500,115600,115700,115801,115802,115900,116000,116100,116202,116203,116204,116205,116300,116400,116500,116601,116602,116702,116703,116704,116705,116707,116708,116709,116710,116711,116712,116713,116714,116715,116717,116718,116719,116720,116721,116725,116726,116727,116728,116729,216802,216806,216807,216809,216810,216811,216812,216813,216814,216815,216816,216817,216818,216819,216820,216821,216822,216823,216824,216825,216826,216827,216828,216829,216901,216902,217001,217002,217101,217102,217201,217202,217300,217400,217500,217600,217700,217800,217900,218000,218100,218200,218300,318400,318501,318502,318600,318700,318800,318900,319000,319101,319102,319200,319300,319401,319402,319403,319404,319500,319600,319702,319703,319704,319800,319902,319903,319904,319905,319906,319907,319908,319909,319910,320001,320002,320007,420101,420102,420103,420104,420105,420106,420202,420203,420204,420206,420207,420208,420209,420210,420211,420212,420301,420302,420303,420304,420400,420501,420502,420602,420603,420604,420702,420703,420704,420705,420706,420800,420901,420902,421000,421101,421102,421201,421202,421301,421302,421400,421501,421502,421601,421602,421700,421801,421802,421901,421902,422001,422002,422102,422103,422104,422105,422106,422107,422203,422204,422205,422209,422210,422211,422212,422213,422214,422215,422216,422217,422218,422219,422220,422301,422302,422304,422305,422307,422308,422309,422401,422402,422403,422404,422501,422502,422503,422504,422506,422507,422508,422509,422510,422511,422512,422513,422514,422601,422602,422603,422604,422605,422606,422607,422608,422609,422610,422611,422612,422614,422615,422616,422617,422618,422619,522703,522708,522709,522711,522712,522713,522714,522715,522716,522717,522718,522719,522720,522721,522722,522723,522724,522725,522726,522727,522729,522730,522731,522732,522735,522736,522737,522738,522739,522740,522741,522742,522743,522744,522745,522746,522747,522748,522749,522757,522800,522901,522902,523002,523003,523005,523006,523102,523103,523104,723301,723302,940700,941000,941100],
    '015' : [940400,940500,950100,950400,950500,950600,950701,950702,950800,950900,951000,951100,951400,951500,951600,951700,951800,951900,952000,952400,952500,952600,952700,952800,952900,953000,953100,953200,953300,953400],
    '017' : [940100,940300,941000,941100,942300,942400,942500,944400,944500,944700,944800,960100,960200,960400,960500,960600,960700,960900,961000,961100,961200,961300,961400],
    '019' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1301,1302,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,2400,2501,2503,2504,2505,2506,2601,2602,2701,2702,2801,2802,2803,2901,2903,2904,3001,3002,3101,3102,3200,3301,3302,3400,3501,3502,3503,3504,3600,3701,3702,3704,3705,3801,3802,3901,3902,3903,4001,4008,4010,4011,4015,4022,4025,4026,4029,4030,4031,4032,4033,4034,4035,4036,4037,4038,4039,4040,4041,4042,4043,4044,4045,4046,4047,4048,4049,4050,4051,4052,4053,4054,4055,4056,4057,4058,4059,4060,4061,4104,4105,4106,4107,4108,4109,4110,4111,4112,4307,4310,4311,4312,4313,4314,4315,4316,4317,4318,4319,4320,4321,4322,4404,4407,4409,4410,4411,4412,4413,4414,4415,4416,4417,4418,4419,4420,4504,4505,4506,4507,4508,4509,4610,4612,4613,4614,4615,4616,4617,4618,4619,4620,4621,4622,4623,4624,4625,4626,4627,4628,4629,4630,4631,4632,4633,4634,4635,4636,4637,4638,4639,4703,4710,4711,4712,4713,4714,4715,4716,4717,4718,4719,4720,4721,4722,4723,4724,4900,5000,5100,940600,940700,940800,940900],
    '021' : [201,202,203,301,303,304,305,306,400,500,601,602,700,800,900,1000,1100,1200,1301,1302,1401,1402,1500,1600,1700,1900,2000,2100,940400,940600,941000,941100,941200],
    '023' : [996000,996101,996102,996200,996300,996401,996402],
    '025' : [100,201,202,300,400,500,601,602,603,700,801,802,900,1000,1101,1102,1200,1300,1400,1500,1600,1700,1800,1900,2000,940400],
    '027' : [100,200,301,302,401,402,500,600,700,800,901,902,903,904,1000,1100,1200,1300,10500,10600,10901,10902,11000,11101,11102,11103,11200,11300,11401,11402,11501,11502,11600]
 ]]]></entry>
        <entry id="census2000_ca" type="java"><![CDATA[[
    '001' : [400100,400200,400300,400400,400500,400600,400700,400800,400900,401000,401100,401200,401300,401400,401500,401600,401700,401800,401900,402000,402100,402200,402300,402400,402500,402600,402700,402800,402900,403000,403100,403200,403300,403400,403500,403600,403700,403800,403900,404000,404100,404200,404300,404400,404501,404502,404600,404700,404800,404900,405000,405100,405200,405300,405400,405500,405600,405700,405800,405900,406000,406100,406201,406202,406300,406400,406500,406600,406700,406800,406900,407000,407100,407200,407300,407400,407500,407600,407700,407800,407900,408000,408100,408200,408300,408400,408500,408600,408700,408800,408900,409000,409100,409200,409300,409400,409500,409600,409700,409800,409900,410000,410100,410200,410300,410400,420100,420200,420300,420400,420500,420600,421100,421200,421300,421400,421500,421600,421700,421800,421900,422000,422100,422200,422300,422400,422500,422600,422700,422800,422900,423000,423100,423200,423300,423400,423500,423601,423602,423700,423800,423901,423902,424001,424002,425100,426100,426200,427100,427200,427300,427400,427500,427600,427700,427800,427900,428000,428100,428200,428301,428302,428400,428500,428600,430100,430200,430300,430400,430500,430600,430700,430800,430900,431000,431100,431200,432100,432200,432300,432400,432500,432600,432700,432800,433000,433101,433102,433200,433300,433400,433500,433600,433700,433800,433900,434000,435101,435102,435200,435300,435400,435500,435600,435700,435800,435900,436000,436100,436200,436300,436401,436402,436500,436601,436602,436700,436800,436900,437000,437100,437200,437300,437400,437500,437600,437700,437800,437900,438000,438100,438201,438202,438300,438400,440100,440200,440301,440302,440304,440305,440306,440307,440308,440309,440331,440332,441100,441200,441301,441302,441401,441402,441501,441503,441521,441522,441601,441602,441700,441800,441901,441921,441922,441923,442000,442100,442200,442300,442400,442500,442600,442700,442800,442900,443001,443002,443101,443102,443103,443200,443301,443302,444100,444200,444300,444400,444500,444600,450100,450200,450300,450400,450500,450601,450602,450603,450604,450605,450606,450607,450701,450703,450721,450722,450741,450742,451101,451102,451201,451202,451300,451401,451402,451501,451502,451503,451601,451602,451701,451702],
    '013' : [301000,302002,302003,302004,303100,303200,304000,305000,306001,306002,307101,307102,307201,307202,307204,307205,308001,308002,309000,310000,311000,312000,313101,313102,313103,313201,313202,314102,314103,314104,314200,315000,316000,317000,318000,319000,320001,320002,321101,321102,321103,321200,322000,323000,324000,325000,326000,327000,328000,329000,330000,331000,332000,333100,333200,334001,334003,334004,334005,335000,336101,336102,336200,337100,337200,337300,338100,338201,338202,338301,338302,339000,340001,340002,341000,342000,343001,343002,343003,344000,345101,345102,345103,345105,345107,345108,345109,345110,345201,345202,346101,346102,346201,346202,347000,348000,349000,350000,351100,351200,352101,352102,352201,352202,353001,353002,354001,354002,355101,355104,355106,355200,355301,355302,355303,355304,355305,356001,356002,357000,358000,359101,359102,359202,359203,359204,360100,360200,361000,362000,363000,364001,364002,365001,365002,366001,366002,367100,367200,368000,369001,369002,370000,371000,372000,373000,374000,375000,376000,377000,378000,379000,380000,381000,382000,383000,384000,385100,385200,386000,387000,388000,389100,389200,390100,390200,391000,392000],
    '041' : [101100,101200,102100,102201,103100,103200,104101,104102,104200,104300,105000,106001,106002,107000,108100,108200,109000,110100,110200,111000,112100,112200,113000,114100,114200,115000,116000,117000,118100,118200,119100,119200,120000,121100,121200,122000,123000,124100,124200,125000,126100,126200,127000,128100,128200,129000,130200,131000,132100,132200,133000],
    '075' : [10100,10200,10300,10400,10500,10600,10700,10800,10900,11000,11100,11200,11300,11400,11500,11700,11800,11900,12000,12100,12200,12300,12400,12500,12600,12700,12800,12900,13000,13100,13200,13300,13400,13500,15100,15200,15300,15400,15500,15600,15700,15800,15900,16000,16100,16200,16300,16400,16500,16600,16700,16800,16900,17000,17100,17601,17602,17700,17800,17901,17902,18000,20100,20200,20300,20400,20500,20600,20700,20800,20900,21000,21100,21200,21300,21400,21500,21600,21700,21800,22600,22701,22702,22703,22801,22802,22803,22901,22902,22903,23001,23002,23003,23101,23102,23103,23200,23300,23400,25100,25200,25300,25401,25402,25403,25500,25600,25700,25800,25900,26001,26002,26003,26004,26100,26200,26301,26302,26303,26401,26402,26403,26404,30101,30102,30201,30202,30301,30302,30400,30500,30600,30700,30800,30900,31000,31100,31200,31300,31400,32600,32700,32800,32900,33000,33100,33201,33202,35100,35201,35202,35300,35400,40100,40200,42600,42700,42800,45100,45200,47600,47701,47702,47800,47901,47902,60100,60200,60300,60400,60501,60502,60600,60700,60900,61000],
    '081' : [600100,600200,600300,600400,600500,600600,600700,600800,600900,601000,601100,601200,601300,601400,601501,601502,601601,601603,601604,601605,601700,601800,601900,602000,602100,602200,602300,602400,602500,602600,602700,602800,602900,603000,603100,603200,603300,603400,603500,603600,603700,603800,603900,604000,604101,604102,604200,604300,604400,604500,604600,604700,604800,604900,605000,605100,605200,605300,605400,605500,605600,605700,605800,605900,606000,606100,606200,606300,606400,606500,606600,606700,606800,606900,607000,607100,607200,607300,607400,607500,607600,607701,607702,607800,607900,608001,608002,608004,608013,608023,608100,608200,608300,608400,608501,608502,608600,608700,608800,608900,609000,609100,609200,609300,609400,609500,609601,609602,609603,609700,609800,609900,610000,610100,610201,610202,610203,610302,610303,610304,610400,610500,610601,610602,610700,610800,610900,611000,611100,611200,611300,611400,611500,611600,611700,611800,611900,612000,612100,612200,612400,612500,612600,612700,612800,612900,613000,613200,613300,613400,613501,613502,613600,613700,613800],

    '053' : [101,102,103,104,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,10101,10102,10201,10202,10302,10303,10304,10305,10400,10501,10503,10504,10602,10603,10604,10605,10606,10701,10702,10801,10802,10900,11000,11101,11102,11201,11202,11301,11302,11400,11500,11600,11700,11800,11900,12000,12100,12200,12301,12302,12401,12402,12500,12600,12700,12800,13000,13100,13200,13300,13400,13500,13600,13700,13800,13900,14000,14101,14102,14103,14200,14301,14302],
    '069' : [100,200,300,400,500,600,700,800],
    '085' : [500100,500200,500300,500400,500500,500600,500800,500901,500902,501000,501100,501200,501300,501400,501501,501502,501600,501700,501800,501900,502001,502002,502101,502102,502201,502202,502300,502400,502500,502601,502602,502701,502702,502800,502901,502902,502903,502906,502907,502908,502909,502910,503001,503002,503003,503103,503105,503106,503108,503110,503111,503112,503113,503115,503116,503204,503207,503208,503210,503211,503212,503213,503214,503217,503218,503304,503305,503306,503312,503313,503315,503317,503319,503320,503321,503322,503323,503324,503325,503326,503327,503328,503401,503402,503504,503506,503507,503508,503509,503510,503511,503601,503602,503702,503703,503706,503707,503708,503709,503802,503803,503804,503900,504001,504002,504101,504102,504201,504202,504307,504308,504310,504311,504314,504315,504316,504317,504318,504319,504320,504321,504410,504411,504412,504413,504414,504415,504416,504417,504418,504420,504421,504422,504504,504505,504506,504507,504601,504602,504700,504802,504803,504805,504806,504901,505001,505005,505006,505007,505100,505202,505203,505301,505302,505303,505304,505305,505401,505402,505403,505500,505600,505700,505800,505900,506000,506101,506102,506103,506202,506203,506204,506301,506302,506304,506305,506401,506402,506501,506502,506503,506601,506603,506604,506605,506606,506701,506702,506703,506801,506802,506803,506804,506900,507001,507002,507100,507203,507205,507206,507301,507302,507401,507402,507500,507600,507701,507702,507703,507805,507806,507807,507808,507903,507904,507905,507906,508001,508002,508101,508102,508202,508203,508204,508301,508303,508304,508401,508403,508404,508503,508504,508505,508506,508601,508602,508703,508704,508800,508900,509000,509102,509105,509106,509107,509108,509109,509201,509202,509302,509303,509304,509401,509403,509404,509500,509600,509700,509801,509802,509901,509902,510001,510002,510100,510200,510300,510400,510500,510600,510700,510801,510802,510803,510900,511000,511100,511200,511300,511400,511500,511604,511605,511606,511607,511701,511702,511703,511800,511901,511905,511907,511909,511910,511911,511912,511913,511914,512001,512002,512005,512014,512015,512016,512017,512018,512019,512020,512021,512022,512023,512024,512025,512026,512027,512028,512029,512030,512031,512032,512033,512034,512035,512100,512200,512304,512305,512306,512307,512308,512309,512401,512402,512503,512505,512506,512507,512508,512601,512602,512700],
    '087' : [100100,100200,100300,100400,100500,100600,100700,100800,100900,101000,101100,101200,110100,110200,110300,110400,110501,110502,110600,110700,120200,120301,120302,120400,120500,120600,120700,120800,120900,121000,121100,121200,121300,121401,121402,121403,121500,121600,121700,121800,122001,122002,122003,122100,122201,122202,122203,122300,122400,122500,123100,123300],

    '037' : [101110,101120,101210,101220,101300,101400,102101,102102,103101,103102,103200,103300,103400,104103,104104,104105,104106,104107,104201,104202,104310,104320,104401,104402,104500,104610,104620,104701,104702,104810,104820,106010,106020,106111,106112,106113,106114,106402,106403,106404,106510,106520,106602,106603,106604,106605,106606,106641,106642,106643,107010,107020,108101,108102,108103,108104,108200,109100,109200,109300,109400,109500,109601,109602,109700,109800,111100,111201,111202,111203,111204,111301,111302,111400,113100,113202,113211,113212,113213,113231,113232,113233,113234,113301,113303,113321,113322,113401,113421,113422,115101,115102,115201,115202,115301,115302,115401,115402,117100,117200,117301,117302,117303,117404,117405,117406,117510,117520,117530,119000,119100,119200,119310,119320,119330,119340,119400,119700,119800,119900,120010,120020,120030,120101,120102,120300,120400,121010,121020,121100,121210,121220,121600,121800,121900,122000,122110,122120,122200,122410,122420,123010,123020,123103,123104,123203,123204,123205,123206,123301,123303,123304,123410,123420,123510,123520,123601,123602,123700,123800,123900,124000,124101,124102,124201,124202,124300,124400,124500,124600,124700,124901,125100,125200,125310,125320,125400,125500,125600,127101,127102,127210,127220,127300,127400,127510,127520,127601,127602,127710,127801,127802,127910,127920,128100,128210,128220,128302,128303,128400,128500,128600,128702,128800,128910,131010,131020,131100,131200,131300,131400,131600,131700,131800,131900,132000,132100,132300,132500,132700,132900,133000,133100,134000,134101,134103,134104,134201,134302,134303,134304,134305,134306,134401,134421,134422,134510,134520,134710,134720,134800,134901,134902,135102,135111,135112,135201,135202,135203,137000,137102,137201,137301,137302,137401,137402,137501,137502,137504,138000,139000,139200,139301,139302,139303,139400,139501,139502,139600,139701,139702,139703,139801,139802,141100,141200,141301,141302,141400,141500,141600,141700,143100,143200,143300,143400,143500,143601,143602,143700,143800,143901,143902,181000,181300,181400,181500,181600,183101,183102,183210,183220,183300,183400,183510,183520,183610,183620,183700,183810,183820,185100,185201,185202,185310,185320,186100,186200,186300,186401,186402,187100,187200,187300,188100,188200,188300,189100,189200,189300,189400,189500,189600,189701,189702,189800,189901,189902,190100,190200,190301,190400,190510,190520,190700,190800,190901,190902,191000,191110,191120,191201,191203,191204,191300,191410,191420,191500,191610,191620,191710,191720,191810,191820,191900,192000,192300,192410,192420,192510,192520,192610,192620,192700,194100,194200,194300,194400,194500,195100,195200,195300,195400,195500,195600,195710,195720,195801,195802,195900,197110,197200,197300,197410,197420,197500,197600,197700,199000,199110,199120,199201,199202,199300,199400,199700,199800,199900,201110,201120,201200,201301,201302,201401,201402,201501,201503,201504,201600,201700,203100,203200,203300,203500,203600,203710,203720,203800,203900,204110,204120,204200,204300,204410,204420,204600,204700,204810,204820,204910,204920,205110,205120,206010,206020,206030,206040,206050,206200,206300,207100,207300,207400,207500,207710,207900,208000,208300,208400,208500,208610,208620,208710,208720,208800,208902,208903,208904,209101,209102,209200,209300,209401,209402,209403,209510,209520,209810,209820,210010,211000,211110,211120,211200,211310,211320,211410,211420,211500,211701,211702,211801,211802,211910,211920,212100,212202,212203,212204,212303,212304,212305,212306,212410,212420,212500,212610,212620,212700,212800,212900,213100,213201,213202,213310,213320,213401,213402,214000,214100,214400,214500,214600,214700,214800,214900,215100,216100,216200,216300,216400,216700,216800,216900,217000,217100,217200,218110,218120,218210,218220,218300,218400,218500,218600,218700,218800,218900,219010,219020,219300,219500,219700,219800,219900,220000,220100,221110,221120,221210,221220,221301,221302,221400,221500,221600,221710,221810,221820,221900,222000,222100,222200,222500,222600,222700,224010,224020,224200,224310,224320,224410,224420,224600,224700,226000,226410,226420,226700,227010,227020,228100,228210,228220,228310,228320,228410,228420,228500,228600,228710,228720,228800,228900,229100,229200,229300,229410,229420,231100,231210,231220,231300,231400,231500,231600,231710,231720,231800,231900,232110,232120,232200,232300,232400,232500,232600,232700,232800,234000,234200,234300,234500,234600,234700,234800,234900,235100,235201,235202,236000,236100,236201,236202,236400,237100,237200,237300,237400,237500,237600,237710,237720,237800,237900,238000,238100,238200,238310,238320,238400,239200,239310,239320,239330,239500,239600,239700,239800,240010,240020,240200,240300,240400,240500,240600,240700,240800,240900,241000,241110,241120,241200,241300,241400,242000,242100,242200,242300,242600,242700,243000,243100,261101,261102,261200,262100,262200,262301,262302,262303,262400,262500,262601,262602,262701,262702,262800,264000,264101,264301,264302,265100,265200,265301,265303,265304,265305,265410,265420,265510,265520,265600,265700,267100,267200,267300,267401,267402,267501,267502,267600,267700,267800,267900,269000,269100,269300,269500,269600,269700,269800,269901,269902,270100,270200,270300,271100,271200,271300,271400,271500,271600,271701,271702,271801,271802,271900,272100,272200,272301,272302,273100,273200,273300,273400,273500,273600,273700,273800,273900,274100,274200,275100,275200,275302,275311,275400,275510,275520,275601,276000,276100,276400,276500,276601,276602,277000,277100,277200,277400,278000,278100,291110,291120,291130,291210,291220,291300,292000,293201,293202,293301,293302,293304,293305,294110,294120,294200,294300,294410,294420,294510,294520,294610,294620,294700,294810,294820,294830,294900,295101,296100,296210,296220,296300,296400,296500,296600,296900,297000,297110,297120,297200,297300,297400,297500,297600,300100,300200,300300,300400,300501,300502,300600,300701,300702,300800,300901,300902,301000,301100,301202,301203,301204,301300,301400,301501,301502,301601,301602,301701,301702,301800,301900,302001,302002,302102,302103,302104,302201,302202,302301,302302,302400,302501,302502,310100,310200,310300,310400,310500,310600,310701,310702,310703,310800,310900,311000,311100,311200,311300,311400,311500,311600,311700,311800,320000,320100,320200,320300,400203,400204,400205,400206,400302,400303,400304,400401,400402,400500,400602,400603,400604,400800,400900,401001,401002,401101,401102,401201,401202,401203,401302,401311,401312,401500,401601,401602,401603,401701,401703,401704,401800,401901,401902,402000,402101,402102,402200,402301,402302,402401,402402,402403,402404,402501,402502,402600,402702,402703,402704,402801,402802,402901,402902,403000,403200,403303,403304,403305,403312,403316,403317,403318,403319,403320,403321,403322,403323,403324,403325,403401,403402,403403,403404,403405,403406,403407,403408,403500,403600,403702,403703,403721,403722,403801,403802,403901,403902,404000,404100,404200,404301,404302,404401,404402,404501,404502,404600,404701,404702,404703,404801,404802,404803,404901,404902,404903,405001,405002,405101,405102,405201,405202,405203,405300,405400,405500,405600,405700,405800,405900,406000,406101,406102,406200,406300,406402,406411,406412,406500,406601,406602,406700,406800,406900,407001,407002,407101,407102,407200,407301,407302,407400,407500,407600,407701,407702,407800,407900,408001,408002,408101,408102,408132,408133,408134,408135,408202,408211,408212,408301,408302,408303,408401,408402,408501,408502,408503,408601,408623,408624,408625,408626,408627,408628,408629,408703,408704,408705,408706,408721,408722,408800,430001,430002,430101,430102,430200,430301,430302,430400,430501,430502,430600,430701,430721,430723,430724,430801,430802,430803,430900,431001,431002,431100,431200,431300,431400,431500,431600,431700,431800,431900,432000,432101,432102,432201,432202,432300,432401,432402,432500,432601,432602,432700,432801,432802,432901,432902,433100,433200,433301,433302,433303,433401,433402,433403,433501,433502,433601,433602,433700,433801,433802,433901,433902,434001,434002,460000,460100,460200,460301,460302,460400,460501,460502,460600,460700,460800,460900,461000,461100,461200,461300,461400,461500,461600,461700,461900,462000,462100,462200,462300,462400,462500,462600,462700,462800,462900,463000,463101,463102,463200,463300,463400,463500,463600,463700,463800,463900,464000,464100,464200,480002,480011,480012,480101,480102,480201,480202,480301,480302,480400,480500,480600,480702,480703,480704,480802,480803,480804,480901,480902,480903,481001,481002,481101,481102,481103,481201,481202,481300,481401,481402,481500,481602,481603,481604,481711,481712,481713,481714,481800,481901,481902,482001,482002,482101,482102,482201,482202,482301,482303,482304,482401,482402,482502,482503,482521,482522,482600,482701,482702,482800,500100,500201,500202,500300,500401,500402,500500,500600,500700,500800,500900,501000,501200,501300,501400,501501,501503,501504,501600,501700,501801,501802,501900,502001,502002,502100,502200,502301,502302,502401,502402,502500,502601,502602,502700,502800,502901,502902,503000,503101,503102,503201,503202,503301,503302,503401,503402,503501,503502,503601,503602,503701,503702,503703,503801,503802,503901,503902,504001,504002,504101,504102,530003,530004,530005,530006,530101,530102,530202,530203,530204,530301,530302,530400,530500,530601,530602,530700,530801,530802,530901,530902,531000,531101,531102,531201,531202,531301,531302,531501,531502,531602,531603,531604,531701,531702,531800,531901,531902,532001,532002,532101,532102,532200,532302,532303,532304,532400,532500,532603,532604,532605,532606,532700,532800,532900,533000,533103,533104,533105,533106,533107,533201,533202,533203,533300,533401,533402,533403,533501,533502,533503,533601,533602,533603,533701,533702,533703,533801,533803,533804,533901,533902,534001,534002,534101,534102,534201,534202,534203,534301,534302,534403,534404,534405,534406,534501,534502,534700,534802,534803,534804,534900,535000,535101,535102,535200,535300,535400,535501,535502,535503,535603,535604,535605,535606,535607,535701,535702,535802,535803,535804,535901,535902,536000,536101,536102,536200,540000,540101,540102,540201,540202,540203,540300,540400,540501,540502,540600,540700,540800,540901,540902,541001,541002,541100,541200,541300,541400,541500,541603,541604,541605,541606,541700,541801,541802,542000,542101,542102,542200,542401,542402,542501,542502,542601,542602,542700,542800,542900,543000,543100,543201,543202,543303,543304,543305,543321,543322,543400,543501,543502,543503,543601,543602,543603,543604,543701,543702,543703,543801,543802,543903,543904,544000,550000,550100,550200,550300,550400,550500,550600,550700,550800,550900,551000,551100,551201,551202,551300,551400,551500,551600,551700,551800,551900,552000,552100,552200,552300,552400,552601,552602,552700,552800,552900,553000,553100,553200,553300,553400,553501,553502,553601,553602,553701,553702,553801,553802,553901,553902,554001,554002,554101,554102,554201,554202,554300,554401,554403,554404,554511,554512,554513,554514,554515,554516,554517,554518,554519,554521,554522,554600,554700,554801,554802,554900,555001,555002,555102,555103,555104,555202,555211,555212,570001,570002,570003,570100,570202,570203,570204,570301,570303,570304,570401,570402,570501,570502,570601,570602,570603,570701,570702,570800,570901,570902,571000,571101,571102,571200,571300,571400,571501,571502,571600,571701,571702,571800,571900,572001,572002,572100,572201,572202,572301,572302,572400,572500,572600,572700,572800,572900,573001,573002,573100,573201,573202,573300,573401,573402,573403,573500,573600,573700,573800,573901,573902,574000,574100,574201,574202,574300,574400,574500,574601,574602,574700,574800,574901,574902,575001,575002,575101,575102,575103,575201,575202,575300,575401,575402,575500,575600,575801,575802,575803,575901,575902,576000,576100,576200,576300,576401,576402,576403,576501,576502,576503,576601,576602,576700,576801,576802,576901,576902,577000,577100,577200,577300,577400,577501,577502,577601,577602,577603,599000,599100,600100,600201,600202,600301,600302,600400,600501,600502,600601,600602,600702,600703,600704,600801,600802,600902,600911,600912,601001,601002,601100,601202,601211,601212,601301,601302,601303,601401,601402,601501,601502,601600,601700,601801,601802,601900,602002,602003,602004,602103,602104,602105,602106,602200,602301,602302,602402,602403,602404,602501,602502,602503,602600,602700,602800,602900,603001,603003,603004,603101,603102,603200,603301,603302,603400,603500,603600,603702,603703,603704,603800,603900,604000,604100,609900,620001,620002,620003,620101,620102,620201,620301,620302,620303,620400,620501,620521,620522,620601,620602,620701,620702,620800,620901,620902,621001,621002,621101,621102,621201,621202,621301,621321,621322,621400,650001,650002,650101,650102,650200,650300,650400,650501,650502,650601,650602,650603,650701,650702,650800,650901,650902,651001,651002,651101,651102,651201,651221,651222,651301,651302,651400,670001,670002,670003,670100,670201,670202,670301,670321,670322,670403,670405,670406,670407,670411,670413,670414,670500,670600,670701,670702,700100,700200,700300,700400,700500,700600,700700,700800,700901,700902,701000,701100,701201,701202,701301,701302,701400,701501,701502,701601,701602,701701,701702,701801,701802,701900,702000,702100,702201,702202,702300,702400,702501,702502,702600,702700,702801,702802, 702803, 702901, 703001, 703002, 703100, 703200, 800101, 800102, 800201, 800202, 800302, 800303, 800323, 800324, 800325, 800326, 800401, 800403, 800404, 800501, 800502, 900101, 900102, 900200, 900300, 900501, 900502, 900503, 900504, 900602, 900604, 900605, 900606, 900607, 900701, 900703, 900704, 900705, 900803, 900804, 900805, 900806, 900900, 901003, 901004, 901005, 901006, 901007, 901101, 901102, 901203, 901204, 901205, 901206, 901207, 910000, 910100, 910201, 910202, 910203, 910204, 910205, 910206, 910301, 910302, 910401, 910402, 910403, 910404, 910501, 910502, 910503, 910601, 910602, 910603, 910604, 910703, 910704, 910705, 910706, 910707, 910708, 910709, 910710, 910803, 910804, 910805, 910806, 910807, 910808, 910809, 910810, 910901, 910902, 911000, 920013, 920014, 920015, 920016, 920017, 920018, 920019, 920020, 920023, 920026, 920027, 920028, 920029, 920030, 920031, 920032, 920033, 920034, 920035, 920036, 920037, 920038, 920039, 920040, 920041, 920042, 920043, 920103, 920104, 920105, 920106, 920107, 920108, 920109, 920110, 920111, 920112, 920113, 920200, 920303, 920312, 920313, 920314, 920322, 920326, 920327, 920328, 920329, 920330, 920331, 920332, 920334, 920335, 930000, 930100, 930200],

    '003' : [10000],
    '005' : [100,200,301,302,401,402,500],
    '007' : [101,102,201,202,300,400,501,502,601,603,604,700,800,900,1000,1100,1200,1300,1400,1500,1600,1701,1702,1800,1900,2000,2100,2200,2300,2400,2500,2600,2700,2800,2900,3000,3100,3200,3300,3400,3500,3600],
    '009' : [110,120,210,220,300,400,500],
    '011' : [100,200,300,400,500],
    '015' : [101,102,103,201,202,203],
    '017' : [30101,30102,30200,30300,30401,30402,30501,30502,30503,30601,30602,30603,30701,30702,30703,30704,30801,30803,30804,30805,30806,30901,30902,31000,31100,31200,31301,31302,31402,31403,31404,31405,31406,31502,31503,31504],
    '019' : [100,200,300,400,500,600,700,800,900,1000,1100,1201,1202,1301,1302,1403,1404,1405,1406,1500,1600,1700,1800,1900,2000,2100,2200,2300,2400,2501,2502,2601,2602,2701,2702,2800,2901,2902,3001,3002,3101,3102,3201,3202,3300,3400,3500,3600,3700,3801,3803,3804,3805,3806,3900,4000,4100,4205,4206,4207,4208,4209,4210,4211,4212,4301,4302,4303,4404,4405,4406,4407,4503,4504,4505,4506,4601,4602,4701,4703,4704,4800,4900,5000,5100,5201,5202,5301,5302,5304,5305,5403,5404,5405,5406,5407,5408,5503,5504,5505,5506,5507,5508,5509,5510,5511,5512,5513,5514,5515,5602,5604,5605,5606,5701,5702,5703,5704,5801,5802,5803,5902,5903,5904,6000,6100,6200,6300,6401,6402,6403,6500,6601,6602,6700,6801,6802,6900,7002,7003,7004,7100,7201,7202,7300,7400,7500,7600,7700,7800,7900,8000,8100,8200,8301,8302,8401,8402],
    '021' : [10100,10200,10300,10400,10501,10502],
    '023' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,10101,10102,10200,10300,10400,10501,10502,10600,10700,10800,10900,11000,11100,11200,11300],
    '025' : [10100,10200,10300,10400,10500,10600,10700,10800,10900,11000,11100,11201,11202,11300,11400,11500,11600,11700,11801,11802,11803,11900,12000,12100,12200,12301,12302,12400,12500],
    '027' : [100,200,300,400,500,600,700],
    '029' : [101,102,200,300,400,503,504,505,506,507,600,700,800,902,903,904,905,906,907,908,909,910,1000,1101,1102,1103,1201,1202,1300,1400,1500,1600,1700,1801,1802,1901,1902,2000,2100,2200,2301,2302,2400,2500,2600,2700,2804,2806,2807,2808,2811,2812,2813,2814,2815,2816,2817,2818,2819,2820,2821,2900,3000,3103,3112,3113,3114,3115,3121,3122,3123,3124,3201,3202,3203,3204,3302,3303,3304,3400,3500,3600,3700,3803,3804,3805,3806,3807,3808,3809,3810,3811,3812,3813,3900,4000,4101,4102,4200,4301,4302,4401,4402,4500,4601,4602,4700,4800,4901,4902,5000,5103,5104,5201,5202,5300,5401,5402,5403,5404,5501,5503,5504,5505,5506,5600,5700,5800,5900,6002,6003,6004,6005,6100,6201,6202,6301,6302,6401,6402],
    '031' : [100,200,300,402,403,404,405,500,601,602,701,702,800,900,1001,1002,1003,1100,1200,1300,1400,1500,1601,1602,1701,1702],
    '033' : [100,300,400,500,600,700,800,900,1000,1100,1200,1300],
    '035' : [40100,40200,40301,40302,40400,40500,40600],
    '039' : [102,103,104,105,200,300,400,502,503,506,507,508,509,601,602,700,800,900,1000],
    '043' : [100,200,300,400],
    '045' : [10100,10200,10300,10400,10500,10600,10700,10801,10802,10900,11000,11100,11200,11300,11400,11500,11600,11700,11800],
    '047' : [100,200,301,303,304,400,503,504,505,601,602,603,701,702,801,802,901,902,903,1002,1003,1004,1005,1101,1102,1200,1301,1302,1401,1402,1501,1502,1503,1601,1602,1700,1801,1802,1901,1902,2000,2100,2201,2202,2301,2302,2400],
    '049' : [100,200,300,400],
    '051' : [100,200],
    '055' : [200201,200202,200203,200300,200400,200501,200502,200503,200600,200701,200702,200703,200801,200802,200900,201001,201002,201100,201200,201300,201400,201500,201600,201700,201800,201900,202000],
    '057' : [102,103,104,105,200,300,401,402,501,502,600,701,702,801,802,900,1201,1202],
    '059' : [1101,1102,1103,1201,1202,1301,1303,1304,1401,1402,1403,1404,1501,1503,1504,1505,1506,1507,1601,1602,1704,1705,1706,1707,1708,1801,1802,1901,1902,1903,11000,11101,11102,11200,11300,11401,11402,11403,11502,11503,11504,11601,11602,11707,11708,11709,11710,11711,11712,11714,11715,11716,11717,11718,11720,11721,11722,21802,21807,21809,21810,21812,21813,21814,21815,21816,21817,21820,21821,21822,21823,21824,21825,21826,21827,21828,21829,21830,21903,21905,21912,21913,21914,21915,21916,21917,21918,21919,21920,21921,21922,21923,21924,32002,32003,32011,32012,32013,32014,32015,32020,32022,32023,32027,32028,32029,32030,32031,32032,32033,32034,32035,32036,32037,32038,32039,32040,32041,32042,32043,32044,32045,32046,32047,32048,32049,32050,32051,32052,32053,32054,32055,32056,42103,42106,42107,42108,42109,42111,42112,42113,42114,42201,42203,42205,42206,42305,42307,42310,42311,42312,42313,42315,42317,42319,42320,42323,42324,42325,42326,42327,42328,42329,42330,42331,42332,42333,42334,42335,42336,42337,42338,42339,52404,52408,52410,52411,52415,52416,52417,52418,52419,52420,52421,52422,52423,52424,52425,52426,52427,52428,52502,52505,52506,52511,52513,52514,52515,52517,52518,52519,52520,52521,52522,52523,52524,52525,52526,52527,52528,62604,62605,62610,62611,62612,62614,62619,62620,62621,62622,62623,62625,62626,62627,62628,62629,62630,62631,62632,62633,62634,62635,62636,62637,62638,62639,62640,62641,62642,62643,62644,62645,62646,62647,62701,62702,62800,62900,63004,63005,63006,63007,63008,63009,63010,63101,63102,63103,63201,63202,63301,63302,63400,63500,63601,63603,63604,63605,63701,63702,63802,63803,63805,63806,63807,63808,63902,63903,63904,63905,63906,63907,63908,74003,74004,74005,74006,74102,74103,74106,74107,74108,74109,74110,74111,74200,74300,74403,74405,74406,74407,74408,74501,74502,74601,74602,74701,74702,74801,74802,74803,74805,74806,74901,74902,75002,75003,75004,75100,75201,75202,75301,75302,75303,75401,75403,75404,75405,75504,75505,75506,75507,75512,75513,75514,75515,75603,75604,75605,75606,75607,75701,75702,75703,75805,75806,75807,75808,75809,75810,75811,75812,75813,75814,75815,75816,75901,75902,76000,76101,76102,76103,76201,76202,76204,76205,76206,76208,86301,86303,86304,86305,86306,86402,86404,86405,86406,86407,86501,86502,86601,86602,86701,86702,86801,86802,86803,86901,86902,86903,87001,87002,87101,87102,87103,87105,87106,87200,87300,87401,87403,87404,87405,87501,87503,87504,87601,87602,87701,87703,87704,87801,87802,87803,87805,87806,87901,87902,88001,88002,88101,88104,88105,88106,88107,88201,88202,88203,88301,88302,88401,88402,88403,88501,88502,88601,88602,88701,88702,88801,88802,88901,88902,88903,88904,88905,89001,89003,89004,89102,89104,89105,89106,89107,99202,99203,99204,99212,99214,99215,99216,99217,99220,99222,99223,99224,99225,99226,99227,99229,99230,99231,99232,99233,99234,99235,99237,99238,99239,99240,99241,99242,99243,99244,99245,99246,99247,99248,99249,99250,99251,99305,99306,99307,99308,99309,99310,99311,99402,99404,99405,99406,99407,99408,99410,99411,99412,99413,99415,99416,99417,99502,99504,99506,99508,99509,99510,99511,99512,99513,99514,99601,99602,99603,99604,99605,99701,99702,99703,99801,99802,99803,99902,99903,99904,99905,99906,110001,110003,110004,110005,110006,110007,110008,110010,110011,110012,110014,110015,110102,110104,110106,110108,110109,110110,110111,110113,110114,110115,110116,110117,110118,110201,110202,110203,110301,110302,110303,110304,110401,110402,110500,110603,110604,110605,110606,110607],
    '061' : [20101,20102,20103,20104,20105,20106,20107,20200,20300,20400,20500,20601,20602,20604,20605,20606,20702,20703,20704,20705,20800,20901,20902,21003,21004,21005,21006,21007,21008,21103,21104,21105,21106,21107,21108,21109,21200,21301,21303,21304,21401,21402,21501,21502,21600,21801,21802,21901,21902,22001,22002],
    '063' : [100,201,202,300,400,500],
    '065' : [10000,10100,10200,10300,10400,10500,10600,10700,10800,10900,30100,30200,30300,30400,30501,30502,30503,30601,30602,30603,30700,30800,30900,31001,31002,31100,31200,31300,31401,31402,31501,31502,31600,31701,31702,31703,31704,40100,40201,40202,40203,40204,40301,40302,40303,40401,40402,40403,40501,40502,40503,40602,40603,40604,40605,40606,40701,40702,40703,40803,40804,40805,40806,40807,40808,40809,40810,40811,40901,40902,40903,40904,41001,41002,41003,41004,41100,41201,41202,41203,41300,41403,41404,41405,41406,41407,41408,41409,41410,41411,41412,41500,41600,41702,41703,41704,41803,41804,41805,41806,41807,41808,41809,41810,41811,41812,41813,41903,41904,41905,41906,41907,41908,41909,42003,42004,42005,42006,42007,42008,42009,42010,42100,42202,42205,42206,42207,42208,42209,42210,42211,42212,42213,42214,42300,42401,42402,42403,42404,42405,42406,42407,42408,42409,42410,42411,42412,42504,42505,42506,42507,42508,42509,42510,42511,42512,42513,42514,42515,42516,42517,42518,42519,42520,42521,42522,42523,42602,42603,42604,42605,42606,42706,42708,42709,42710,42711,42712,42713,42714,42715,42716,42717,42718,42719,42720,42721,42722,42723,42800,42901,42902,42903,42904,43001,43002,43003,43004,43005,43006,43203,43206,43207,43208,43209,43210,43211,43212,43213,43214,43215,43216,43217,43218,43219,43220,43221,43222,43223,43224,43225,43304,43305,43306,43307,43308,43309,43310,43311,43312,43313,43314,43315,43401,43403,43404,43405,43503,43504,43505,43506,43507,43508,43509,43510,43511,43600,43701,43702,43703,43704,43802,43805,43806,43807,43808,43809,43900,44000,44101,44102,44103,44104,44200,44300,44401,44402,44403,44503,44504,44505,44506,44507,44508,44509,44510,44601,44602,44604,44701,44702,44804,44805,44806,44807,44808,44904,44905,44906,44907,44909,44910,44911,44912,44913,44914,44915,44916,45000,45103,45105,45106,45107,45108,45109,45110,45111,45112,45113,45203,45204,45205,45206,45207,45208,45209,45301,45302,45400,45501,45502,45603,45604,45605,45702,45703,45704,45705,45706,45800,45900,46000,46101,46102,46103,46200,46401,46402,46403,46404,46405,940100,940300],
    '067' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,2400,2500,2600,2700,2800,2900,3000,3101,3102,3201,3202,3300,3400,3501,3502,3600,3700,3800,3900,4001,4004,4005,4006,4008,4009,4010,4011,4012,4100,4201,4202,4203,4300,4401,4402,4500,4601,4602,4700,4801,4802,4903,4904,4905,4906,5001,5002,5101,5102,5103,5201,5202,5203,5300,5402,5403,5404,5502,5505,5506,5507,5508,5601,5605,5606,5701,5702,5801,5803,5804,5901,5902,6002,6003,6004,6101,6102,6201,6202,6300,6400,6500,6600,6701,6702,6800,6900,7001,7004,7007,7008,7009,7010,7011,7012,7013,7014,7100,7202,7204,7206,7207,7208,7209,7300,7402,7403,7404,7406,7413,7414,7415,7416,7417,7418,7419,7420,7421,7422,7423,7424,7425,7501,7503,7504,7601,7602,7701,7702,7801,7802,7903,7904,7905,7906,8005,8006,8007,8008,8009,8010,8111,8113,8117,8119,8120,8122,8124,8125,8127,8128,8129,8130,8131,8132,8133,8134,8135,8136,8137,8138,8139,8140,8141,8142,8143,8144,8145,8203,8204,8206,8207,8208,8209,8210,8211,8300,8402,8403,8404,8501,8502,8503,8504,8600,8701,8702,8800,8905,8907,8908,8909,8910,8911,8912,8913,9004,9005,9006,9007,9008,9009,9103,9105,9106,9107,9108,9109,9110,9111,9112,9200,9307,9308,9309,9310,9311,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,9322,9323,9403,9404,9405,9406,9501,9502,9503,9504,9601,9604,9605,9606,9607,9608,9609,9610,9611,9612,9613,9614,9615,9616,9617,9618,9619,9700,9800],
    '071' : [103,104,105,106,107,108,109,110,111,112,201,202,301,303,304,401,402,500,601,602,700,804,805,806,807,808,809,810,811,812,900,1000,1100,1200,1301,1303,1304,1400,1500,1600,1701,1702,1703,1801,1802,1803,1900,2002,2003,2004,2005,2006,2007,2008,2009,2010,2100,2201,2203,2204,2301,2302,2303,2401,2402,2501,2502,2601,2602,2603,2701,2702,2800,2901,2902,3000,3100,3200,3300,3401,3402,3403,3501,3502,3601,3602,3700,3800,3900,4000,4100,4201,4202,4300,4401,4402,4502,4503,4504,4601,4602,4700,4800,4900,5000,5100,5200,5300,5400,5500,5600,5700,5800,5900,6000,6100,6201,6202,6301,6302,6401,6402,6500,6600,6700,6800,6900,7000,7102,7104,7105,7106,7107,7108,7200,7301,7302,7403,7404,7406,7407,7408,7500,7601,7602,7700,7800,7901,7902,8001,8002,8100,8200,8301,8302,8401,8402,8403,8404,8500,8600,8703,8704,8705,8706,8707,8708,8800,8901,9102,9104,9105,9106,9107,9200,9300,9400,9500,9707,9708,9709,9710,9711,9712,9713,9714,9715,9716,9717,9800,9901,9902,9903,10003,10004,10009,10010,10011,10012,10013,10014,10015,10016,10017,10018,10019,10020,10021,10022,10023,10024,10300,10402,10403,10405,10409,10410,10411,10412,10413,10414,10415,10416,10500,10600,10700,10801,10802,10900,11000,11100,11201,11202,11300,11400,11500,11600,11700,11800,11900,12000,12100,940100,940500],
    '073' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2001,2002,2100,2201,2202,2301,2302,2401,2402,2501,2502,2601,2602,2702,2703,2705,2706,2707,2708,2709,2710,2801,2803,2804,2902,2903,2904,2905,3001,3003,3004,3101,3103,3105,3107,3108,3109,3111,3112,3113,3114,3115,3201,3202,3204,3207,3208,3209,3211,3212,3213,3214,3301,3302,3303,3401,3403,3404,3501,3502,3601,3602,3603,3800,3901,3902,4000,4100,4200,4300,4400,4501,4502,4600,4700,4800,4900,5000,5100,5200,5300,5400,5500,5600,5700,5800,5900,6000,6100,6200,6300,6400,6500,6600,6801,6802,6900,7001,7002,7100,7200,7301,7302,7400,7501,7502,7600,7700,7800,7901,7903,7904,8001,8002,8101,8102,8200,8301,8303,8305,8306,8307,8310,8311,8312,8313,8315,8324,8327,8328,8329,8330,8331,8332,8333,8334,8335,8336,8337,8338,8339,8340,8341,8342,8343,8344,8345,8346,8347,8348,8349,8350,8351,8352,8353,8354,8355,8356,8357,8358,8359,8360,8501,8502,8503,8504,8505,8506,8507,8509,8510,8511,8512,8513,8600,8701,8702,8800,8901,8902,9000,9101,9102,9103,9104,9106,9107,9201,9202,9301,9303,9304,9400,9502,9504,9505,9506,9507,9508,9509,9602,9603,9604,9703,9704,9705,9706,9801,9802,9804,9805,9901,9902,10001,10003,10004,10005,10009,10010,10011,10012,10013,10014,10015,10103,10104,10106,10107,10109,10110,10111,10112,10200,10300,10401,10402,10501,10502,10601,10602,10603,10700,10800,10900,11000,11100,11200,11300,11400,11500,11601,11602,11700,11801,11802,11901,11902,12001,12002,12003,12101,12102,12200,12302,12303,12304,12401,12402,12500,12600,12700,12800,12900,13000,13102,13103,13104,13203,13204,13205,13206,13301,13302,13303,13306,13307,13308,13309,13310,13311,13312,13313,13401,13409,13410,13411,13412,13413,13414,13415,13416,13417,13418,13419,13503,13504,13505,13506,13601,13604,13605,13606,13701,13702,13801,13802,13903,13905,13906,13907,13908,13909,14001,14002,14101,14102,14200,14300,14400,14500,14601,14602,14700,14801,14803,14804,14900,15000,15100,15200,15301,15302,15403,15404,15405,15406,15501,15502,15601,15602,15701,15703,15704,15801,15802,15901,15902,16000,16100,16201,16202,16301,16302,16401,16402,16501,16502,16605,16606,16607,16608,16609,16610,16612,16613,16614,16615,16616,16617,16701,16702,16802,16804,16806,16807,16809,16810,16811,16901,16902,17006,17007,17009,17010,17014,17015,17018,17019,17020,17021,17022,17026,17029,17030,17031,17032,17033,17034,17035,17036,17037,17038,17039,17040,17041,17042,17043,17044,17045,17046,17047,17048,17049,17050,17104,17105,17106,17107,17108,17200,17303,17304,17305,17306,17401,17403,17404,17501,17502,17601,17603,17604,17701,17702,17801,17805,17806,17808,17809,17810,17811,17812,17900,18000,18100,18200,18300,18400,18504,18507,18509,18510,18511,18512,18513,18514,18515,18516,18517,18518,18519,18601,18603,18607,18608,18609,18610,18611,18612,18700,18801,18802,18803,18903,18904,18905,18906,19001,19002,19101,19103,19105,19106,19107,19203,19205,19206,19207,19208,19301,19302,19303,19403,19404,19405,19406,19501,19502,19503,19601,19602,19701,19702,19803,19804,19805,19806,19807,19902,19903,19904,19905,20009,20010,20013,20014,20015,20016,20017,20018,20019,20020,20021,20022,20023,20024,20025,20103,20105,20106,20107,20108,20109,20202,20206,20207,20208,20209,20210,20211,20212,20302,20304,20305,20306,20307,20401,20403,20404,20405,20500,20601,20602,20705,20706,20707,20708,20709,20710,20801,20805,20806,20807,20808,20809,20902,20903,20904,21000,21100,21202,21203,21204,21302,21303,21304],
    '077' : [100,300,401,402,500,600,700,800,900,1000,1101,1102,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,2400,2501,2502,2701,2702,2800,3106,3108,3109,3110,3111,3112,3113,3114,3203,3205,3208,3209,3210,3211,3213,3214,3215,3305,3306,3307,3308,3309,3310,3311,3403,3404,3405,3406,3407,3408,3500,3601,3602,3700,3801,3802,3803,3900,4001,4002,4102,4103,4104,4201,4202,4203,4204,4302,4303,4305,4306,4401,4402,4500,4600,4701,4702,4800,4901,4902,5001,5003,5004,5106,5108,5109,5110,5111,5112,5113,5114,5115,5118,5119,5122,5123,5124,5125,5126,5127,5128,5202,5203,5205,5302,5303,5305,5306,5403,5404,5500],
    '079' : [10000,10100,10201,10202,10203,10300,10400,10500,10600,10701,10702,10703,10800,10901,10902,11000,11101,11102,11103,11200,11300,11400,11501,11502,11600,11700,11800,11901,11902,12000,12100,12200,12301,12302,12401,12402,12501,12502,12503,12600,12702,12703,12704,12800],
    '083' : [101,102,103,200,300,400,501,502,600,700,801,802,900,1000,1101,1102,1202,1203,1204,1301,1302,1400,1500,1601,1602,1701,1702,1800,1901,1903,1905,1906,2005,2006,2007,2008,2009,2010,2011,2012,2013,2101,2102,2103,2205,2206,2209,2210,2211,2303,2304,2305,2306,2402,2403,2404,2500,2603,2604,2702,2703,2705,2706,2707,2708,2802,2805,2806,2807,2808,2809,2902,2903,2904,2906,2907,2909,2910,2911,2912,2913,2914,3001,3002,3004,3005],
    '089' : [10100,10200,10300,10400,10500,10600,10701,10702,10801,10802,10900,11000,11100,11200,11300,11400,11500,11600,11700,11800,11900,12000,12100,12200,12301,12302,12303,12400,12500,12601,12602,12701,12702],
    '091' : [10000],
    '093' : [100,200,300,400,500,600,701,702,703,800,900,1000,1100,1200],
    '095' : [250101,250102,250200,250300,250400,250501,250502,250601,250603,250701,250702,250800,250900,251000,251100,251200,251300,251400,251500,251600,251701,251702,251802,251803,251804,251901,251902,251903,252000,252102,252103,252104,252105,252106,252107,252108,252201,252202,252305,252306,252307,252308,252309,252401,252402,252501,252502,252604,252605,252606,252607,252608,252609,252702,252703,252704,252705,252706,252707,252800,252902,252903,252904,252907,252908,252909,252910,253000,253101,253105,253106,253107,253108,253201,253202,253203,253300,253401,253402,253500],
    '097' : [150100,150201,150202,150302,150303,150304,150500,150601,150602,150603,150605,150606,150701,150702,150800,150901,150902,151000,151100,151201,151203,151204,151301,151305,151306,151307,151308,151309,151310,151311,151401,151402,151502,151503,151504,151600,151700,151800,151900,152000,152100,152201,152202,152203,152300,152400,152501,152502,152600,152701,152702,152801,152802,152901,152903,152904,153001,153002,153003,153005,153006,153101,153102,153200,153300,153401,153403,153404,153501,153502,153600,153703,153704,153705,153706,153801,153802,153803,153901,153902,153903,154000,154100,154200,154301,154302],
    '099' : [101,102,201,202,203,301,302,303,304,402,403,404,501,503,504,505,506,507,508,601,602,801,803,805,806,807,905,906,907,908,909,910,911,912,1001,1002,1100,1200,1300,1400,1500,1601,1603,1604,1700,1800,1900,2002,2003,2004,2100,2200,2301,2302,2400,2501,2502,2602,2603,2604,2605,2701,2702,2801,2802,2803,2901,2902,3001,3002,3100,3201,3202,3300,3400,3500,3602,3603,3604,3700,3801,3802,3803,3904,3905,3906,3907,3908,3909],
    '101' : [50101,50102,50201,50202,50301,50302,50400,50501,50503,50504,50601,50603,50604,50700,50800,50900,51000,51100],
    '103' : [100,200,300,400,500,600,700,800,900,1000,1100],
    '105' : [100,200,300,400],
    '107' : [100,201,202,301,302,401,402,501,502,600,701,702,800,900,1003,1004,1005,1006,1100,1200,1301,1302,1400,1501,1502,1601,1602,1701,1703,1704,1800,1901,1902,2002,2003,2004,2006,2007,2008,2009,2100,2201,2202,2302,2303,2304,2400,2500,2601,2602,2700,2800,2901,2903,2904,3001,3002,3100,3200,3300,3400,3500,3601,3602,3700,3801,3802,3901,3902,4000,4101,4102,4200,4300,4400,4500],
    '109' : [1100,1200,2100,2200,3100,3200,4100,4200,5100,5201,5202],
    '111' : [100,200,301,302,400,500,600,700,800,901,902,903,1001,1002,1101,1102,1201,1202,1204,1205,1301,1302,1401,1402,1502,1503,1506,1507,1601,1602,1700,1800,1900,2000,2102,2200,2300,2400,2500,2600,2700,2800,2901,2902,3001,3002,3100,3201,3202,3300,3401,3402,3500,3603,3604,3605,3607,3608,3700,3800,3900,4000,4101,4102,4200,4301,4302,4400,4501,4503,4504,4600,4702,4703,4704,4705,4706,4900,5001,5002,5100,5201,5202,5203,5303,5304,5305,5306,5401,5403,5404,5502,5503,5504,5600,5700,5800,5901,5906,5907,5908,5909,5910,5911,6000,6100,6200,6301,6302,6400,6500,6600,6700,6800,6900,7000,7100,7201,7202,7300,7402,7403,7404,7501,7503,7504,7505,7506,7507,7508,7602,7604,7606,7607,7608,7700,7800,7901,7903,7904,8001,8002,8004,8005,8101,8201,8202,8302,8303,8304,8305,8306,8401,8402,8500],
    '113' : [10101,10102,10201,10203,10204,10300,10400,10501,10505,10506,10507,10508,10509,10510,10602,10605,10606,10607,10608,10701,10703,10704,10800,10901,10902,11001,11002,11101,11102,11103,11203,11204,11205,11206,11300,11400,11500],
    '115' : [40100,40200,40300,40400,40500,40600,40700,40800,40901,40902,41000,41100]
]]]></entry>
        <entry id="census2000_ct" type="java"><![CDATA[[
    '001' : [0,10101,10102,10201,10202,10300,10400,10500,10600,10700,10800,10900,11000,11100,11200,11300,20100,20200,20300,20400,20500,20600,20700,20800,20900,21000,21100,21200,21300,21400,21500,21600,21700,21801,21802,21900,22000,22100,22200,22300,22400,30100,30200,30300,30400,30500,35100,35200,35300,35400,42500,42600,42700,42800,42900,43000,43100,43200,43300,43400,43500,43600,43700,43800,43900,44000,44100,44200,44300,44400,44500,44600,45101,45102,45200,45300,45400,50100,50200,50300,50400,50500,50600,55100,55200,60100,60200,60300,60400,60500,60600,60700,60800,60900,61000,61100,61200,61300,61400,61500,61600,70100,70200,70300,70400,70500,70600,70900,71000,71100,71200,71300,71400,71600,71700,71800,71900,72000,72100,72200,72300,72400,72500,72600,72700,72800,72900,73000,73100,73200,73300,73400,73500,73600,73700,73800,73900,74000,74300,74400,80100,80200,80400,80500,80600,80700,80800,80900,81000,81100,81200,81300,90100,90200,90300,90400,90500,90600,90700,100100,100200,100300,105100,105200,110100,110201,110202,110301,110302,110400,110500,110600,200100,200200,200301,200302,205100,205200,205300,210100,210200,210300,210400,210500,210600,210700,210800,210900,211000,211100,211200,211300,211400,220100,220200,220300,230100,230200,230300,230400,230500,240100,240200,245100,245200,245300,245400,245500,245600,257100],
    '003' : [330100,400100,400200,400300,405100,405200,405300,405400,405500,405600,405700,405800,405900,406001,406002,406100,410100,415300,415400,415500,415600,415700,415800,415900,416000,416100,416200,416300,416400,416500,416600,416700,416800,417100,417200,417300,417400,417500,420400,420500,420600,420700,430100,430201,430202,430203,430301,430302,430400,430500,430601,430602,460100,460201,460202,460301,460302,462101,462102,462201,462202,464101,464102,466101,466102,466201,466202,466300,466400,468101,468102,470100,471100,471200,471300,471400,471500,473100,473400,473501,473502,473601,473602,473700,473800,476100,476200,476300,477101,477102,477200,480100,480200,480300,480400,480500,480600,480700,480800,480900,481000,481100,481200,481300,484100,484200,487100,487200,487300,487400,487500,490100,490200,490301,490302,492100,492200,492300,492400,492500,492600,494100,494201,494202,494300,494400,494500,494600,496100,496200,496300,496400,496500,496600,496700,496800,496900,497000,497100,497200,497300,497400,497500,497600,497700,500100,500200,500300,500400,500500,500700,500900,501000,501100,501200,501300,501400,501500,501700,501800,502100,502300,502400,502500,502600,502700,502800,502900,503000,503100,503200,503300,503400,503500,503600,503700,503800,503900,504000,504100,504200,504300,504400,504500,504600,504700,504800,504900,510100,510200,510300,510400,510500,510600,510700,510800,510900,511000,511100,511200,511300,511400,514100,514200,514300,514400,514500,514600,514700,514800,514900,515000,515101,515102,515200,520100,520201,520202,520300,520400,520501,524100],
    '005' : [250100,253100,253200,253300,253400,253500,253600,260200,261100,262100,262200,263200,265100,266100,267100,268100,290100,293100,296100,298300,298400,300100,300400,300500,303100,306100,308100,310100,310200,310300,310400,310500,310601,310602,310700,310801,310802,320100,320200,342100,349100,349200,360100,360200,360300,360400,362101,362102,425300,425400,425500],
    '007' : [0,541100,541200,541300,541400,541500,541600,541700,541800,541900,542000,542100,542200,550100,550200,560100,560200,570100,570200,570300,580100,585100,590100,595100,600100,610100,610200,610300,610400,620100,630100,640100,670100,670200,680100],
    '009' : [0,120100,120200,125100,125200,125300,125400,130100,130200,140100,140200,140300,140400,140500,140600,140700,140800,140900,141000,141100,141200,141300,141400,141500,141600,141700,141800,141900,142000,142100,142200,142300,142400,142500,142601,142602,142700,142800,150100,150200,150300,150400,150500,150600,150700,150800,150900,151000,151100,151200,154100,154200,154300,154400,154500,154600,154700,154800,154900,155000,155100,157100,157200,157300,157400,160100,160200,161100,165100,165200,165300,165400,165500,165600,165700,165801,165802,165900,166001,166002,167100,167201,167202,167300,170100,170200,170300,170400,170500,170600,170700,170800,170900,171000,171100,171200,171300,171400,171500,171600,171700,175100,175200,175300,175400,175500,175600,175700,175800,175900,176000,180100,180200,180300,180400,180500,180601,180602,184100,184200,184300,184400,184500,184600,184700,186100,186200,190100,190200,190301,190302,190303,194100,194201,194202,341100,343101,343102,343200,343300,343400,344100,344200,345100,345201,345202,345300,345400,346101,346102,347100,347200,348102,348111,348121,350100,350200,350300,350400,350500,350800,350900,351000,351100,351200,351300,351400,351500,351601,351602,351700,351800,351900,352000,352100,352200,352300,352400,352500,352600,352701,352702,352800,361100,361200,361300],
    '011' : [0,650100,660101,660102,690100,690200,690300,690400,690500,690700,690800,690900,693300,693400,693500,693600,693700,695100,695201,695202,696100,696200,696300,696400,696500,696600,696700,696800,697000,700100,701100,701200,702100,702201,702202,702300,702400,702500,702600,702700,702800,702900,703000,703100, 705100,705200,705300,705400,707100,708100,709100,709200,710100,711100,712100,713100,714101,714102,715100,716101,716102,716200,870100],
    '013' : [526100,528100,529100,530100,530200,530301,530302,530400,530500,530600,533101,533102,535100,535200,538100,538201,538202,840100,850100,850200,860100,881100,881200,881300,881500,890100,890200],
    '015' : [800300,800400,800500,800600,800700,815000,820000,825000,830100,900100,900200,901100,902200,902500,903100,903200,904100,904400,904500,905100,906100,907100,907200,907300,908100]
]]]></entry>
        <entry id="census2000_ga" type="java"><![CDATA[[
    '063' : [40100,40201,40202,40301,40302,40303,40304,40305,40405,40406,40407,40408,40409,40410,40411,40412,40413,40503,40506,40509,40510,40511,40512,40513,40514,40515,40516,40517,40518,40606,40607,40608,40609,40610,40611,40612,40613,40614],
    '067' : [30101,30102,30103,30205,30208,30209,30210,30211,30212,30213,30214,30215,30216,30217,30310,30311,30312,30313,30314,30318,30319,30320,30322,30323,30324,30325,30326,30327,30328,30329,30330,30331,30332,30333,30334,30335,30336,30337,30338,30339,30401,30402,30404,30405,30406,30501,30502,30504,30505,30600,30700,30800,30901,30902,30904,30905,31001,31002,31004,31005,31101,31105,31106,31107,31108,31109,31110,31111,31112,31202,31203,31204,31302,31306,31307,31308,31309,31310,31311,31404,31405,31406,31407,31501,31503,31504,31505],
    '089' : [20100,20200,20300,20400,20500,20600,20700,20801,20802,20900,21100,21202,21204,21207,21208,21209,21210,21211,21212,21213,21214,21301,21302,21303,21304,21401,21403,21404,21405,21406,21501,21502,21601,21602,21603,21703,21704,21705,21706,21805,21806,21808,21809,21810,21811,21812,21902,21904,21906,21907,21908,21909,22001,22004,22005,22006,22007,22008,22100,22200,22301,22302,22401,22402,22403,22500,22600,22700,22800,22900,23000,23101,23102,23105,23106,23107,23108,23203,23204,23206,23208,23209,23210,23211,23212,23302,23303,23305,23306,23307,23309,23310,23404,23405,23410,23411,23412,23413,23414,23415,23416,23417,23418,23501,23504,23505,23506,23507,23601,23602,23603,23700,23801,23802,23803],
    '121' : [100,200,400,500,600,700,800,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2100,2200,2300,2400,2500,2600,2700,2800,2900,3000,3100,3200,3300,3500,3600,3700,3800,3900,4000,4100,4200,4300,4400,4600,4800,4900,5000,5200,5300,5501,5502,5600,5700,5800,6000,6100,6200,6300,6400,6500,6601,6602,6700,6801,6802,6900,7001,7002,7100,7200,7300,7400,7500,7601,7602,7701,7702,7802,7805,7806,7807,7808,7900,8000,8101,8102,8201,8202,8301,8302,8400,8500,8601,8602,8701,8702,8800,8901,8902,9000,9100,9200,9300,9401,9402,9500,9600,9700,9800,9900,10000,10101,10106,10107,10108,10109,10110,10111,10112,10204,10205,10206,10207,10208,10209,10210, 10301,10303,10304,10400,10507,10508,10509,10510,10511,10512,10513,10514,10601,10603,10604,10700,10800,10900,11000,11100,11201,11202,11301,11303,11304,11403,11404,11405,11406,11407,11410,11411,11412,11413,11414,11415,11501,11502,11604,11605,11606,11607,11608,11609],
    '135' : [50103,50104,50105,50106,50202,50204,50205,50206,50207,50304,50306,50307,50308,50309,50310,50311,50312,50313,50314,50315,50316,50403,50410,50411,50415,50416,50417,50418,50419,50420,50421,50422,50423,50424,50425,50426,50427,50428,50429,50430,50507,50509,50510,50511,50512,50513,50514,50515,50516,50517,50518,50519,50520,50521,50522,50602,50603,50604,50704,50705,50709,50712,50713,50714,50715,50716,50717,50718,50719,50720,50721],

    '125' : [990100],
    '133' : [950100,950200,950300,950400,950500],
    '141' : [980100,980200,980300],
    '159' : [990100,990200,990300,990400],
    '163' : [960100,960200,960300,960400],
    '211' : [980100,980200,980300,980400,980500],
    '237' : [960100,960200,960300],
    '265' : [990200],
    '301' : [970100,970300,970400],
    '303' : [950100,950300,950400,950500,950700],

    '001' : [950100,950200,950300,950400,950500],
    '003' : [960100,960200,960300],
    '005' : [970100,970200],
    '007' : [960100,960200],
    '009' : [970100,970200,970300,970400,970500,970600,970701,970702,970800],
    '011' : [980100,980200,980300,980400],
    '013' : [180101,180102,180201,180202,180300,180400,180500],
    '015' : [960100,960200,960300,960400,960500,960600,960700,960801,960802,960803,960900,961000],
    '017' : [960100,960200,960300,960400,960500],
    '019' : [970100,970200,970300,970400,970500,970600],
    '021' : [10100,10200,10300,10400,10500,10600,10700,10800,11000,11100,11200,11300,11400,11500,11701,11702,11800,11900,12000,12100,12200,12300,12400,12500,12600,12700,12800,12900,13000,13101,13102,13201,13202,13301,13302,13401,13402,13501,13502,13601,13602],
    '023' : [990100,990200,990300],
    '025' : [980100,980200,980300],
    '027' : [990200,990300,990400,990500,990600],
    '029' : [920100,920200,920300],
    '031' : [990100,990200,990300,990401,990402,990500,990600,990700,990800,990900],
    '033' : [950100,950200,950300,950400,950500,950700,950800],
    '035' : [150100,150200,150301,150302],
    '037' : [950100,950200],
    '039' : [10100,10200,10301,10302,10400,10500,10600],
    '043' : [950100,950200,950300],
    '045' : [990101,990102,990200,990300,990400,990501,990502,990600,990701,990702,990703,990800,990900,991000,991100,991200],
    '047' : [30100,30200,30300,30401,30402,30500,30600,30700],
    '049' : [990100,990200],
    '051' : [100,300,601,800,900,1100,1200,1300,1500,1800,1900,2000,2100,2200,2300,2400,2500,2600,2700,2800,2900,3000,3200,3301,3302,3400,3501,3502,3601,3602,3700,3800,3900,4001,4002,4100,4202,4205,4206,4207,4208,4300,4400,4500,10101,10102,10200,10501,10502,10601,10603,10604,10605,10700,10801,10802,10803,10804,10805,10901,10902,11002,11003,11004,11101,11103,11104,11105],
    '053' : [20100,20200],
    '055' : [980100,980200,980300,980400,980500,980600],
    '057' : [90100,90200,90300,90400,90501,90502,90601,90602,90701,90702,90801,90802,90901,90902,90903,91001,91003,91004,91005,91006,91101,91102,91103],
    '059' : [100,400,600,900,1200,1700,1800,1900,2000,2100,2200,30100,30200,130300,130400,130500,130600,130700,140300,140400,140500,140600,150300,150400,150500,150600,150700,150800,150900],
    '061' : [960100,960200],
    '065' : [970100,970200],
    '069' : [990100,990200,990300,990400,990500,990600,990700,990800],
    '071' : [970100,970200,970300,970400,970500,970600,970700,970800,970900],
    '073' : [30101,30102,30201,30202,30203,30302,30303,30304,30305,30400,30501,30502,30603],
    '075' : [980100,980200,980300,980400],
    '077' : [170100,170200,170301,170302,170401,170402,170500,170600,170700,170800],
    '079' : [70100,70200],
    '081' : [980100,980200,980300,980400,980500],
    '083' : [40100,40200,40300],
    '085' : [970100,970200],
    '087' : [970100,970200,970300,970400,970600,970700,970800],
    '091' : [960100,960200,960300,960400,960500,960600],
    '093' : [970100,970200,970300],
    '095' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1401,1402,1500,10100,10200,10301,10302,10401,10402,10403,10500,10601,10602,10700,10800,10900,11000,11100],
    '097' : [80101,80201,80202,80301,80302,80401,80402,80503,80504,80505,80506,80507,80601,80602],
    '099' : [990100,990200,990300,990400,990500],
    '101' : [980100,980200],
    '103' : [30100,30201,30202,30301,30302,30400],
    '105' : [990100,990200,990300,990400,990500],
    '107' : [980100,980200,980300,980400,980500,980600],
    '109' : [970100,970200,970300],
    '111' : [50100,50200,50300,50400,50500],
    '113' : [140101,140102,140203,140204,140205,140206,140303,140304,140305,140306,140307,140403,140404,140405,140406,140407,140408,140501,140502],
    '115' : [100,200,300,400,500,600,700,800,900,1100,1200,1300,1400,1500,1600,1701,1702,1800,1900,2000],
    '117' : [130100,130200,130300,130401,130402,130501,130502,130600],
    '119' : [990100,990200,990300,990400],
    '123' : [80100,80200,80300,80400,80500],
    '127' : [100,200,300,401,402,501,502,600,700,800,900,1000],
    '129' : [970100,970200,970300,970400,970500,970600,970700,970800,970900],
    '131' : [950100,950200,950300,950400,950500,950600],
    '137' : [990100,990200,990300,990400,990500,990601,990602],
    '139' : [100,201,202,301,302,400,500,600,700,800,900,1001,1002,1100,1200,1300,1401,1402,1500,1601,1602,1603],
    '143' : [980100,980200,980300,980400],
    '145' : [980198,980200,980300,980400],
    '147' : [960100,960200,960300,960400,960500],
    '149' : [970100,970200,970300],
    '151' : [70101,70102,70104,70105,70106,70201,70202,70203,70303,70304,70305,70306,70401,70402,70500],
    '153' : [20101,20102,20200,20300,20400,20600,20700,20800,20900,21000,21103,21104,21105,21106,21107,21200,21300,21400,21500],
    '155' : [950100,950200],
    '157' : [10100,10200,10300,10400,10500,10600,10700],
    '161' : [960100,960200,960300],
    '165' : [960100,960200],
    '167' : [980100,980200,980300],
    '169' : [30101,30102,30200,30301,30302],
    '171' : [970100,970200,970300],
    '173' : [950100,950200],
    '175' : [950100,950200,950300,950400,950500,950600,950700,950800,950900,951000,951100,951200,951300],
    '177' : [20100,20200,20300,20400],
    '179' : [10100,10201,10202,10203,10204,10300,10400,10500,10600],
    '181' : [970100,970200],
    '183' : [980100,980200],
    '185' : [10101,10102,10103,10201,10202,10301,10302,10401,10402,10500,10601,10602,10603,10700,10800,10900,11000,11100,11200,11301,11302,11401,11402,11403,11500,11600],
    '187' : [960100,960201,960202],
    '189' : [950100,950200,950300,950400,950500],
    '191' : [990100,990200,990300],
    '193' : [980100,980200,980300,980400],
    '195' : [20100,20200,20300,20400,20500,20600],
    '197' : [980100,980200],
    '199' : [970100,970200,970300,970400,970500,970600],
    '201' : [950100,950200,950300],
    '205' : [980100,980200,980300,980400,980500],
    '207' : [50100,50200,50300],
    '209' : [950100,950200,950300],
    '213' : [10100,10200,10300,10400,10500,10600,10700],
    '215' : [100,200,300,400,500,800,900,1000,1100,1200,1300,1400,1500,1600,1800,1900,2000,2100,2200,2300,2400,2500,2600,2700,2800,2901,2902,3000,3100,3200,3300,3400,10102,10104,10105,10106,10201,10203,10204,10205,10301,10302,10401,10402,10501,10502,10602,10604,10605,10606,10701,10702,10703,10800,10900,11000],
    '217' : [100100,100200,100300,100400,100500,100600,100700,100800,100900],
    '219' : [30100,30200,30300,30400,30500,30600],
    '221' : [960100,960200,960300],
    '223' : [120100,120201,120202,120300,120400,120500,120600],
    '225' : [40100,40200,40301,40302,40400],
    '227' : [50100,50200,50300,50400,50500,50600],
    '229' : [960100,960200,960300,960400],
    '231' : [980100,980200,980300,980400],
    '233' : [990100,990200,990300,990400,990500,990600,990700],
    '235' : [950100,950200,950300],
    '239' : [980100,980200],
    '241' : [970100,970200,970300],
    '243' : [990100,990200],
    '245' : [100,200,300,400,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,10101,10102,10104,10105,10201,10203,10204,10300,10400,10504,10505,10506,10507,10508,10509,10510,10511,10600,10703,10704,10705,10706,10800,10901,10902],
    '247' : [60101,60102,60201,60202,60304,60305,60306,60307,60308,60309,60403,60404,60405,60406,60407],
    '249' : [960100,960200],
    '251' : [970200,970300,970400,970500,970600],
    '253' : [980100,980200,980300],
    '255' : [160100,160200,160300,160400,160500,160600,160700,160800,160900,161000,161100,161200],
    '257' : [970100,970200,970300,970400],
    '259' : [950100,950200,950300],
    '261' : [950100,950200,950300,950400,950500,950600,950700,950800],
    '263' : [960100,960200,960300],
    '267' : [990100,990200,990300,990400],
    '269' : [950100,950200,950300],
    '271' : [950100,950200,950300,950400],
    '273' : [980200,980300,980400,980500],
    '275' : [960100,960200,960300,960400,960500,960600,960700,960800,960900,961000,961100],
    '277' : [990100,990200,990300,990400,990500,990600,990700,990800,990900],
    '279' : [970100,970200,970300,970400,970500,970600],
    '281' : [960100,960200,960300],
    '283' : [960100,960200],
    '285' : [960100,960200,960300,960400,960501,960502,960600,960700,960800,960901,960902,961000,961100],
    '287' : [970200,970300],
    '289' : [60100,60200],
    '291' : [990100,990201,990202],
    '293' : [990100,990201,990202,990300,990400,990500,990600],
    '295' : [20100,20200,20301,20302,20400,20501,20502,20601,20602,20700,20800,20901,20902],
    '297' : [110100,110200,110300,110400,110501,110502,110600,110700,110800],
    '299' : [950100,950200,950300,950400,950500,950600,950700,950800,950900],
    '305' : [970100,970200,970300,970400,970500,970600],
    '307' : [960100,960200],
    '309' : [980100,980200],
    '311' : [950100,950200,950300],
    '313' : [101,102,200,301,302,400,501,502,600,700,800,900,1000,1100,1200,1300,1400,1500],
    '315' : [990100,990200,990300,990400],
    '317' : [980100,980300],
    '319' : [960200,960300,960400],
    '321' : [950100,950200,950400,950500,950600]
 ]]]></entry>
        <entry id="census2000_hi" type="java"><![CDATA[[
    '001' : [20100,20200,20300,20400,20500,20600,20701,20702,20801,20802,20900,21001,21002,21100,21200,21300,21400,21501,21502,21503,21601,21602,21701,21702,21800,21900,22000,22100],
    '003' : [102,104,105,106,107,108,109,110,200,301,302,401,402,500,600,700,800,901,902,903,1000,1100,1201,1202,1300,1400,1500,1600,1700,1801,1802,1901,1902,2001,2002,2100,2200,2300,2401,2402,2500,2600,2701,2702,2800,2900,3000,3101,3102,3200,3300,3403,3404,3405,3406,3407,3500,3601,3602,3700,3800,3900,4000,4100,4200,4300,4400,4500,4600,4700,4800,4900,5000,5100,5200,5300,5400,5500,5600,5700,5800,5900,6000,6100,6201,6202,6301,6302,6401,6402,6500,6600,6701,6702,6802,6803,6804,6805,6806,6808,6809,6900,7000,7100,7200,7300,7400,7502,7503,7504,7505,7506,7701,7702,7802,7804,7805,7806,7807,7808,7809,7810,8001,8002,8003,8005,8006,8007,8100,8200,8301,8302,8401,8402,8403,8404,8500,8603,8604,8605,8606,8607,8608,8609,8610,8701,8702,8703,8800,8905,8906,8907,8908,8909,8912,8913,8914,8915,8916,8917,8918,8919,8920,8921,8922,8923,9000,9100,9200,9300,9400,9501,9502,9503,9504,9505,9601,9603,9604,9701,9702,9801,9802,9901,9902,10000,10100,10201,10202,10302,10303,10305,10306,10503,10504,10505,10506,10601,10602,10701,10702,10801,10802,10901,10903,10904,10905,11000,11103,11104,11105,11106,11201,11202,11301,11302,11498],
    '005' : [31900],
    '007' : [40100,40201,40202,40300,40400,40500,40600,40700,40800,40900,41000,41100],
    '009' : [30100,30200,30301,30302,30401,30402,30500,30600,30701,30702,30703,30800,30901,30902,30903,31000,31101,31102,31103,31200,31300,31401,31402,31403,31500,31600,31700,31800]
 ]]]></entry>
        <entry id="census2000_ia" type="java"><![CDATA[[
    '001' : [960100,960200,960300],
    '003' : [950100,950200],
    '005' : [960100,960200,960300,960400,960500],
    '007' : [950100,950200,950300,950400,950500],
    '009' : [970100,970200,970300],
    '011' : [980100,980200,980300,980400,980500,980600,980700],
    '013' : [100,200,300,400,500,700,800,900,1000,1100,1200,1301,1302,1400,1501,1502,1503,1600,1701,1702,1800,1900,2000,2200,2301,2302,2400,2500,2601,2603,2604,2700,2800,2901,2902,3001,3002],
    '015' : [20100,20200,20300,20400,20500,20600,20700],
    '017' : [4000,4100,4200,4300,4400,4500,4600,4700],
    '019' : [950100,950200,950300,950400,950500,950600],
    '021' : [960100,960200,960300,960400,960500,960600],
    '023' : [970100,970200,970300,970400,970500],
    '025' : [950100,950200,950300,950400],
    '027' : [960100,960200,960300,960400,960500,960600],
    '029' : [990100,990200,990300,990400,990500],
    '031' : [950100,950200,950300,950400,950500],
    '033' : [950100,950200,950300,950400,950500,950600,950700,950800,950900,951000],
    '035' : [980100,980200,980300,980400],
    '037' : [970100,970200,970300,970400],
    '039' : [990100,990200,990300],
    '041' : [980100,980200,980300,980400],
    '043' : [970100,970200,970300,970400,970500,970600],
    '045' : [100,200,300,400,500,600,700,800,900,1000,1100,1200],
    '047' : [970100,970200,970300,970400,970500],
    '049' : [50100,50200,50300,50400,50500,50600,50700,50801,50802],
    '051' : [980100,980200],
    '053' : [960100,960200,960300],
    '055' : [950100,950200,950300,950400],
    '057' : [200,300,400,500,600,700,800,900,1000,1100,1200],
    '059' : [950200,950500,950800,951000,951100],
    '061' : [100,300,400,500,600,701,702,801,802,900,1101,1102,1201,1202,1203,10101,10102,10103,10200,10300,10400,10500,10600],
    '063' : [970100,970200,970300,970400],
    '065' : [980100,980200,980300,980400,980500,980600,980700],
    '067' : [980100,980200,980300,980400,980500],
    '069' : [960100,960200,960300],
    '071' : [970100,970200,970300],
    '073' : [980100,980200,980300,980500],
    '075' : [990100,990200,990300,990400],
    '077' : [950100,950200,950300],
    '079' : [960100,960200,960300,960400,960500],
    '081' : [970100,970200,970300,970400],
    '083' : [980100,980200,980300,980400,980500,980600],
    '085' : [990100,990200,990300,990400,990500],
    '087' : [970100,970200,970300,970400,970500],
    '089' : [960100,960200,960300],
    '091' : [970100,970200,970300,970400],
    '093' : [990100,990200,990300],
    '095' : [990100,990200,990300,990400],
    '097' : [950100,950200,950300,950400,950500,950600],
    '099' : [40100,40200,40300,40400,40500,40600,40700,40800,40900],
    '101' : [990100,990200,990300,990400],
    '103' : [100,200,301,302,400,500,600,1100,1200,1300,1400,1500,1600,1700,1800,2100,2300,10100,10200,10300,10400,10500],
    '105' : [970100,970300,970400,970500,970600],
    '107' : [980100,980200,980300,980400],
    '109' : [950100,950200,950300,950400,950500,950600],
    '111' : [990100,990200,990300,990400,990500,990600,990700,990800,990900,991000,991100],
    '113' : [100,201,203,204,205,300,400,500,600,700,800,901,902,1001,1002,1003,1100,1200,1300,1400,1500,1600,1700,1800,1900,2200,2300,2400,2500,2600,2700,2800,2900,3001,3002,10100,10200,10300,10400,10500,10600,10700,10800],
    '115' : [950100,950200,950300],
    '117' : [950100,950200,950300,950400],
    '119' : [950100,950200,950300],
    '121' : [60100,60200,60300],
    '123' : [950100,950200,950300,950400,950500,950600,950700],
    '125' : [30100,30200,30300,30401,30402,30500,30600,30700],
    '127' : [950100,950200,950300,950400,950500,950600,950700,950800,950900,951000],
    '129' : [40100,40201,40202,40301,40302],
    '131' : [960100,960200,960300],
    '133' : [940100,960100,960200,960300,960400],
    '135' : [970100,970200,970300],
    '137' : [980100,980200,980300,980400],
    '139' : [50100,50200,50300,50400,50500,50600,50700,50800,50900,51000],
    '141' : [990100,990200,990300,990400],
    '143' : [960100,960200],
    '145' : [990100,990200,990300,990400,990500,990600],
    '147' : [960100,960200,960300,960400],
    '149' : [970100,970200,970300,970400,970500,970600],
    '151' : [980100,980200,980300],
    '153' : [101,102,103,201,202,300,400,500,600,701,702,703,704,801,802,803,901,902,1000,1100,1200,1500,1700,1800,1900,2100,2600,2700,2800,2900,3001,3002,3100,3200,3900,4001,4002,4100,4200,4300,4400,4501,4502,4601,4602,4700,4800,4900,5000,5100,5200,5300,10101,10102,10203,10204,10205,10206,10401,10403,10404,10405,10500,10600,10701,10702,10801,10802,11001,11021,11023,11024,11102,11111,11112,11201,11202,11300,11400,11500],
    '155' : [21200,21400,21501,21502,21601,21602,21603,21701,21702,30100,30200,30300,30401,30402,30501,30502,30601,30602,30700,30800,30900,31000,31100,31200,31300,31400,31500,31601,31602,31700,31800],
    '157' : [970100,970200,970300,970400,970500],
    '159' : [950100,950200],
    '161' : [980100,980200,980300,980400],
    '163' : [10101,10102,10201,10202,10300,10400,10600,10700,10800,10900,11000,11100,11200,11300,11400,11500,11600,11700,11800,11900,12000,12100,12200,12300,12400,12501,12502,12601,12602,12701,12702,12801,12802,12901,12902,13000,13100,13200,13300,13400,13500,13600,13702,13703,13704],
    '165' : [960100,960200,960300,960400],
    '167' : [970100,970200,970300,970400,970500,970600,970700],
    '169' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1301,1302,10100,10200,10300,10400,10500,10600],
    '171' : [990100,990200,990300,990400,990500,990600],
    '173' : [980100,980200,980300],
    '175' : [990100,990200,990300,990400],
    '177' : [950100,950200],
    '179' : [960100,960200,960300,960400,960500,960600,960700,960800,960900,961000,961100],
    '181' : [20100,20200,20300,20400,20500,20600,20700,20800,20900,21000,21100,21200],
    '183' : [960100,960200,960300,960400,960500],
    '185' : [970100,970200,970300],
    '187' : [100,200,300,400,500,600,700,900,10100,10200,10300,10400],
    '189' : [980100,980200,980300],
    '191' : [950100,950200,950300,950400,950500],
    '193' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2101,2102,3100,3200,3300,3500,940200],
    '195' : [990100,990200,990300],
    '197' : [980100,980200,980300,980400,980500]
 ]]]></entry>
        <entry id="census2000_id" type="java"><![CDATA[['001' : [000100, 000200, 000301, 000302, 000400, 000500, 000600, 000700, 000801, 000802, 000803, 000900, 001000, 001100, 001201, 001202, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002201, 002221, 002222, 002302, 002310, 002311, 002410, 002411, 002412, 002413, 010100, 010201, 010221, 010222, 010223, 010310, 010313, 010321, 010322, 010331, 010332, 010333, 010401, 010402, 010501, 010502],
'003' : [950100, 950200],
'005' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001101, 001102, 001200, 001300, 001400, 001500, 001601, 001602, 001603, 001700, 001800, 001900],
'007' : [950100, 950200],
'009' : [950100, 950200],
'011' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
'013' : [960100, 960200, 960300, 960500],
'015' : [950200],
'017' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900],
'019' : [970100, 970200, 970300, 970401, 970402, 970403, 970501, 970502, 970503, 970601, 970602, 970603, 970700, 970800, 970900, 971000, 971100, 971200, 971301, 971302, 971400, 971500],
'021' : [970100, 970200],
'023' : [970100],
'025' : [970100],
'027' : [020100, 020200, 020300, 020400, 020500, 020600, 020700, 020900, 021000, 021100, 021200, 021300, 021500, 021600, 021700, 021800, 021901, 021902, 022100, 022200, 022300, 022400],
'029' : [960100, 960200],
'031' : [950100, 950200, 950300, 950400, 950500, 950600],
'033' : [950100],
'035' : [970100, 970200],
'037' : [990200],
'039' : [980100, 980200, 980300, 980400, 980500],
'041' : [970100, 970200],
'043' : [970100, 970200, 970300],
'045' : [960100, 960200, 960300],
'047' : [960100, 960200],
'049' : [960100, 960200, 960300, 960400, 960500],
'051' : [960100, 960200, 960300, 960400],
'053' : [970100, 970200, 970300, 970400, 970500],
'055' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100],
'057' : [005100, 005200, 005300, 005400, 005500, 005600, 005700],
'059' : [980100, 980200, 980300],
'061' : [950100, 950200, 950300],
'063' : [950100],
'065' : [950100, 950200, 950301, 950302, 950400, 950500],
'067' : [980100, 980200, 980300, 980400, 980500],
'069' : [990100, 990200, 990300, 990400, 990500, 990600, 990700, 990800, 990900, 991000],
'071' : [960100],
'073' : [940300, 950101, 950102, 950200],
'075' : [980100, 980200, 980300, 980400],
'077' : [980100, 980200],
'079' : [960200, 960300, 960400],
'081' : [960100],
'083' : [980100, 980200, 980300, 980400, 980500, 980600, 980700, 980800, 980900, 981000, 981100, 981200, 981300, 981400],
'085' : [970100, 970200, 970300],
'087' : [970100, 970200, 970300]]]]></entry>
        <entry id="census2000_il" type="java"><![CDATA[['001' : [000100, 000201, 000202, 000400, 000500, 000600, 000700, 000800, 000900, 001001, 001002, 001100, 010100, 010200, 010300, 010400, 010500, 010600],
'003' : [957600, 957700, 957800, 957900],
'005' : [951200, 951300, 951400, 951500],
'007' : [010100, 010200, 010300, 010400, 010500, 010600],
'009' : [970400, 970500],
'011' : [964700, 964800, 964900, 965000, 965100, 965200, 965300, 965400, 965500, 965600],
'013' : [951200, 951300],
'015' : [960100, 960200, 960300, 960400, 960500, 960600],
'017' : [960100, 960200, 960300, 960400, 960500],
'019' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000901, 000902, 001000, 001100, 001201, 001203, 001204, 001205, 001206, 001301, 001302, 001400, 005100, 005200, 005300, 005400, 005500, 005600, 005700, 005800, 005900, 006000, 010100, 010201, 010203, 010300, 010400, 010500, 010601, 010602, 010700, 010800, 010900],
'021' : [958100, 958200, 958300, 958400, 958500, 958600, 958700, 958800, 958900, 959000],
'023' : [060100, 060200, 060300, 060400],
'025' : [971900, 972000, 972100, 972200],
'027' : [900100, 900200, 900300, 900400, 900500, 900600],
'029' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200],
'031' : [000000, 010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 020100, 020200, 020300, 020400, 020500, 020600, 020700, 020800, 020900, 030100, 030200, 030300, 030400, 030500, 030600, 030700, 030800, 030900, 031000, 031100, 031200, 031300, 031400, 031500, 031600, 031700, 031800, 031900, 032000, 032100, 040100, 040200, 040300, 040400, 040500, 040600, 040700, 040800, 040900, 041000, 050100, 050200, 050300, 050400, 050500, 050600, 050700, 050800, 050900, 051000, 051100, 051200, 051300, 051400, 051500, 060100, 060200, 060300, 060400, 060500, 060600, 060700, 060800, 060900, 061000, 061100, 061200, 061300, 061400, 061500, 061600, 061700, 061800, 061900, 062000, 062100, 062200, 062300, 062400, 062500, 062600, 062700, 062800, 062900, 063000, 063100, 063200, 063300, 063400, 070100, 070200, 070300, 070400, 070500, 070600, 070700, 070800, 070900, 071000, 071100, 071200, 071300, 071400, 071500, 071600, 071700, 071800, 071900, 072000, 080100, 080200, 080300, 080400, 080500, 080600, 080700, 080800, 080900, 081000, 081100, 081200, 081300, 081400, 081500, 081600, 081700, 081800, 081900, 090100, 090200, 090300, 100100, 100200, 100300, 100400, 100500, 100600, 100700, 110100, 110200, 110300, 110400, 110500, 120100, 120200, 120300, 120400, 130100, 130200, 130300, 130400, 130500, 140100, 140200, 140300, 140400, 140500, 140600, 140700, 140800, 150100, 150200, 150300, 150400, 150500, 150600, 150700, 150800, 150900, 151000, 151100, 151200, 160100, 160200, 160300, 160400, 160500, 160600, 160700, 160800, 160900, 161000, 161100, 161200, 161300, 170100, 170200, 170300, 170400, 170500, 170600, 170700, 170800, 170900, 171000, 171100, 180100, 180200, 180300, 190100, 190200, 190300, 190400, 190500, 190600, 190700, 190800, 190900, 191000, 191100, 191200, 191300, 191400, 200100, 200200, 200300, 200400, 200500, 200600, 210100, 210200, 210300, 210400, 210500, 210600, 210700, 210800, 210900, 220100, 220200, 220300, 220400, 220500, 220600, 220700, 220800, 220900, 221000, 221100, 221200, 221300, 221400, 221500, 221600, 221700, 221800, 221900, 222000, 222100, 222200, 222300, 222400, 222500, 222600, 222700, 222800, 222900, 230100, 230200, 230300, 230400, 230500, 230600, 230700, 230800, 230900, 231000, 231100, 231200, 231300, 231400, 231500, 231600, 231700, 231800, 240100, 240200, 240300, 240400, 240500, 240600, 240700, 240800, 240900, 241000, 241100, 241200, 241300, 241400, 241500, 241600, 241700, 241800, 241900, 242000, 242100, 242200, 242300, 242400, 242500, 242600, 242700, 242800, 242900, 243000, 243100, 243200, 243300, 243400, 243500, 243600, 250100, 250200, 250300, 250400, 250500, 250600, 250700, 250800, 250900, 251000, 251100, 251200, 251300, 251400, 251500, 251600, 251700, 251800, 251900, 252000, 252100, 252200, 252300, 252400, 260100, 260200, 260300, 260400, 260500, 260600, 260700, 260800, 260900, 261000, 270100, 270200, 270300, 270400, 270500, 270600, 270700, 270800, 270900, 271000, 271100, 271200, 271300, 271400, 271500, 271600, 271700, 271800, 271900, 280100, 280200, 280300, 280400, 280500, 280600, 280700, 280800, 280900, 281000, 281100, 281200, 281300, 281400, 281500, 281600, 281700, 281800, 281900, 282000, 282100, 282200, 282300, 282400, 282500, 282600, 282700, 282800, 282900, 283000, 283100, 283200, 283300, 283400, 283500, 283600, 283700, 283800, 283900, 284000, 284100, 284200, 284300, 290100, 290200, 290300, 290400, 290500, 290600, 290700, 290800, 290900, 291000, 291100, 291200, 291300, 291400, 291500, 291600, 291700, 291800, 291900, 292000, 292100, 292200, 292300, 292400, 292500, 292600, 292700, 300100, 300200, 300300, 300400, 300500, 300600, 300700, 300800, 300900, 301000, 301100, 301200, 301300, 301400, 301500, 301600, 301700, 301800, 301900, 302000, 310100, 310200, 310300, 310400, 310500, 310600, 310700, 310800, 310900, 311000, 311100, 311200, 311300, 311400, 311500, 320100, 320200, 320300, 320400, 320500, 320600, 330100, 330200, 330300, 330400, 330500, 340100, 340200, 340300, 340400, 340500, 340600, 350100, 350200, 350300, 350400, 350500, 350600, 350700, 350800, 350900, 351000, 351100, 351200, 351300, 351400, 351500, 360100, 360200, 360300, 360400, 360500, 370100, 370200, 370300, 370400, 380100, 380200, 380300, 380400, 380500, 380600, 380700, 380800, 380900, 381000, 381100, 381200, 381300, 381400, 381500, 381600, 381700, 381800, 381900, 382000, 390100, 390200, 390300, 390400, 390500, 390600, 390700, 400100, 400200, 400300, 400400, 400500, 400600, 400700, 400800, 410100, 410200, 410300, 410400, 410500, 410600, 410700, 410800, 410900, 411000, 411100, 411200, 411300, 411400, 420100, 420200, 420300, 420400, 420500, 420600, 420700, 420800, 420900, 421000, 421100, 421200, 430100, 430200, 430300, 430400, 430500, 430600, 430700, 430800, 430900, 431000, 431100, 431200, 431300, 431400, 440100, 440200, 440300, 440400, 440500, 440600, 440700, 440800, 440900, 450100, 450200, 450300, 460100, 460200, 460300, 460400, 460500, 460600, 460700, 460800, 460900, 461000, 470100, 480100, 480200, 480300, 480400, 480500, 490100, 490200, 490300, 490400, 490500, 490600, 490700, 490800, 490900, 491000, 491100, 491200, 491300, 491400, 500100, 500200, 500300, 510100, 510200, 510300, 510400, 510500, 520100, 520200, 520300, 520400, 520500, 520600, 530100, 530200, 530300, 530400, 530500, 530600, 540100, 550100, 550200, 560100, 560200, 560300, 560400, 560500, 560600, 560700, 560800, 560900, 561000, 561100, 561200, 561300, 570100, 570200, 570300, 570400, 570500, 580100, 580200, 580300, 580400, 580500, 580600, 580700, 580800, 580900, 581000, 581100, 590100, 590200, 590300, 590400, 590500, 590600, 590700, 600100, 600200, 600300, 600400, 600500, 600600, 600700, 600800, 600900, 601000, 601100, 601200, 601300, 601400, 601500, 601600, 610100, 610200, 610300, 610400, 610500, 610600, 610700, 610800, 610900, 611000, 611100, 611200, 611300, 611400, 611500, 611600, 611700, 611800, 611900, 612000, 612100, 612200, 620100, 620200, 620300, 620400, 630100, 630200, 630300, 630400, 630500, 630600, 630700, 630800, 630900, 640100, 640200, 640300, 640400, 640500, 640600, 640700, 640800, 650100, 650200, 650300, 650400, 650500, 660100, 660200, 660300, 660400, 660500, 660600, 660700, 660800, 660900, 661000, 661100, 670100, 670200, 670300, 670400, 670500, 670600, 670700, 670800, 670900, 671000, 671100, 671200, 671300, 671400, 671500, 671600, 671700, 671800, 671900, 672000, 680100, 680200, 680300, 680400, 680500, 680600, 680700, 680800, 680900, 681000, 681100, 681200, 681300, 681400, 690100, 690200, 690300, 690400, 690500, 690600, 690700, 690800, 690900, 691000, 691100, 691200, 691300, 691400, 691500, 700100, 700200, 700300, 700400, 700500, 710100, 710200, 710300, 710400, 710500, 710600, 710700, 710800, 710900, 711000, 711100, 711200, 711300, 711400, 711500, 720100, 720200, 720300, 720400, 720500, 720600, 720700, 730100, 730200, 730300, 730400, 730500, 730600, 730700, 740100, 740200, 740300, 740400, 750100, 750200, 750300, 750400, 750500, 750600, 760800, 760900, 770200, 770300, 770400, 770500, 770600, 770700, 770800, 770900, 800100, 800200, 800300, 800400, 800500, 800600, 800700, 800800, 800900, 801000, 801100, 801200, 801300, 801400, 801500, 801601, 801603, 801605, 801606, 801607, 801608, 801701, 801702, 801800, 801901, 801902, 802001, 802002, 802100, 802200, 802300, 802401, 802402, 802502, 802503, 802504, 802601, 802605, 802606, 802701, 802702, 802801, 802802, 802900, 803005, 803006, 803007, 803008, 803009, 803010, 803011, 803100, 803200, 803300, 803400, 803500, 803603, 803604, 803605, 803606, 803607, 803608, 803609, 803610, 803700, 803800, 803901, 803902, 804000, 804102, 804104, 804105, 804106, 804107, 804201, 804202, 804304, 804305, 804306, 804307, 804401, 804402, 804501, 804503, 804504, 804505, 804603, 804604, 804605, 804606, 804607, 804701, 804705, 804706, 804707, 804708, 804709, 804710, 804711, 804712, 804803, 804804, 804805, 804806, 804807, 804808, 804809, 804810, 804901, 804902, 805001, 805002, 805105, 805106, 805107, 805108, 805109, 805110, 805111, 805112, 805201, 805202, 805301, 805302, 805401, 805402, 805501, 805502, 805600, 805701, 805702, 805801, 805802, 805901, 805902, 806001, 806002, 806003, 806004, 806101, 806102, 806200, 806300, 806400, 806501, 806502, 806600, 806700, 806801, 806802, 806900, 807000, 807100, 807200, 807300, 807400, 807500, 807600, 807700, 807800, 807900, 808001, 808002, 808100, 808200, 808301, 808302, 808400, 808500, 808600, 808702, 808800, 808900, 809000, 809100, 809200, 809300, 809400, 809500, 809600, 809700, 809800, 809900, 810000, 810100, 810200, 810301, 810302, 810400, 810501, 810502, 810600, 810701, 810702, 810800, 810900, 811000, 811100, 811200, 811301, 811302, 811401, 811402, 811500, 811600, 811701, 811702, 811800, 811900, 812000, 812100, 812200, 812300, 812400, 812500, 812600, 812700, 812800, 812900, 813000, 813100, 813200, 813300, 813400, 813500, 813600, 813700, 813800, 813900, 814000, 814100, 814200, 814300, 814400, 814500, 814600, 814700, 814800, 814900, 815000, 815100, 815200, 815300, 815400, 815500, 815600, 815701, 815702, 815800, 815900, 816000, 816100, 816200, 816300, 816401, 816402, 816500, 816600, 816700, 816800, 816900, 817000, 817101, 817102, 817200, 817300, 817400, 817500, 817600, 817700, 817900, 818000, 818100, 818200, 818300, 818401, 818402, 818500, 818600, 818700, 818800, 818900, 819000, 819100, 819200, 819300, 819400, 819500, 819600, 819700, 819801, 819802, 819900, 820000, 820101, 820103, 820104, 820201, 820202, 820300, 820400, 820501, 820502, 820601, 820602, 820700, 820800, 820901, 820902, 821001, 821002, 821101, 821102, 821200, 821300, 821401, 821402, 821500, 821600, 821700, 821800, 821900, 822000, 822101, 822102, 822200, 822301, 822302, 822400, 822500, 822601, 822602, 822701, 822702, 822801, 822802, 822900, 823001, 823002, 823101, 823102, 823200, 823302, 823303, 823304, 823400, 823500, 823602, 823603, 823604, 823605, 823702, 823703, 823704, 823705, 823801, 823803, 823804, 823901, 823903, 823904, 824001, 824002, 824104, 824105, 824106, 824107, 824108, 824109, 824110, 824111, 824112, 824300, 824400, 824503, 824505, 824506, 824507, 824601, 824602, 824701, 824702, 824800, 824900, 825000, 825200, 825301, 825302, 825400, 825501, 825503, 825504, 825505, 825600, 825700, 825801, 825802, 825803, 825900, 826000, 826100, 826201, 826202, 826301, 826303, 826304, 826401, 826402, 826500, 826600, 826700, 826800, 826901, 826902, 827000, 827100, 827200, 827300, 827400, 827500, 827600, 827700, 827801, 827802, 827804, 827805, 827901, 827902, 828000, 828100, 828201, 828202, 828300, 828401, 828402, 828503, 828504, 828505, 828506, 828601, 828602, 828701, 828702, 828801, 828802, 828900, 829000, 829100, 829200, 829301, 829302, 829401, 829402, 829500, 829600, 829700, 829800, 829901, 829902, 830001, 830002, 830003, 830004, 830005, 830006, 830100, 830201, 830202, 830300, 830400],
'033' : [980100, 980200, 980300, 980400, 980500, 980600],
'035' : [972400, 972500, 972600],
'037' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100],
'039' : [971400, 971500, 971600, 971700, 971800],
'041' : [952000, 952100, 952200, 952300, 952400],
'043' : [840000, 840101, 840102, 840103, 840104, 840201, 840202, 840301, 840302, 840400, 840500, 840600, 840701, 840702, 840801, 840802, 840901, 840902, 840903, 841001, 841002, 841102, 841103, 841104, 841105, 841106, 841107, 841108, 841202, 841203, 841204, 841205, 841206, 841301, 841302, 841303, 841304, 841305, 841306, 841307, 841401, 841402, 841501, 841502, 841601, 841602, 841603, 841701, 841702, 841801, 841802, 841900, 842000, 842100, 842200, 842300, 842400, 842500, 842601, 842602, 842603, 842604, 842605, 842702, 842703, 842704, 842705, 842706, 842707, 842800, 842900, 843000, 843100, 843200, 843300, 843400, 843500, 843600, 843700, 843800, 843900, 844000, 844100, 844201, 844202, 844301, 844302, 844303, 844401, 844402, 844500, 844601, 844602, 844701, 844702, 844800, 844900, 845000, 845100, 845200, 845300, 845400, 845501, 845502, 845503, 845504, 845601, 845602, 845701, 845702, 845703, 845704, 845801, 845802, 845803, 845804, 845805, 845900, 846001, 846002, 846101, 846102, 846103, 846104, 846201, 846202, 846203, 846204, 846205, 846206, 846207, 846301, 846302, 846304, 846305, 846306, 846307, 846401, 846403, 846404, 846405, 846501, 846502, 846503, 846504, 846505, 846506],
'045' : [070100, 070200, 070300, 070400, 070500],
'047' : [956900, 957000, 957100],
'049' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
'051' : [950500, 950600, 950700, 950800, 950900, 951000, 951100],
'053' : [961600, 961700, 961800, 961900, 962000],
'055' : [040100, 040200, 040300, 040400, 040500, 040600, 040700, 040800, 040900, 041000, 041100, 041200],
'057' : [952800, 952900, 953000, 953100, 953200, 953300, 953400, 953500, 953600, 953700, 953800, 953900],
'059' : [972700, 972800],
'061' : [973600, 973700, 973800, 973900, 974000],
'063' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900],
'065' : [973001, 973002, 973100, 973200],
'067' : [953700, 953800, 953900, 954000, 954100, 954200, 954300],
'069' : [970801, 970802, 970900],
'071' : [973300, 973400, 973500],
'073' : [030100, 030201, 030202, 030203, 030300, 030400, 030500, 030600, 030800, 030900, 031000, 031100, 031200],
'075' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900],
'077' : [010100, 010200, 010300, 010400, 010600, 010700, 010800, 010900, 011000, 011100, 011200, 011300, 011400, 011500, 011600],
'079' : [977300, 977400, 977500],
'081' : [050100, 050200, 050300, 050400, 050500, 050600, 050700, 050800, 050900, 051000, 051100],
'083' : [010100, 010200, 010300, 010400, 010500],
'085' : [020100, 020200, 020300, 020400, 020500],
'087' : [977600, 977700, 977800],
'089' : [850100, 850201, 850202, 850301, 850302, 850400, 850500, 850600, 850701, 850702, 850703, 850800, 850900, 851000, 851100, 851200, 851300, 851400, 851500, 851600, 851700, 851801, 851802, 851902, 851903, 851904, 852001, 852002, 852003, 852100, 852201, 852202, 852300, 852401, 852402, 852403, 852500, 852601, 852602, 852700, 852801, 852802, 852902, 852903, 852904, 852905, 853001, 853002, 853003, 853004, 853100, 853200, 853300, 853400, 853500, 853600, 853700, 853800, 853900, 854001, 854002, 854100, 854200, 854300, 854400, 854501, 854502],
'091' : [010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 011900, 012000, 012100, 012200, 012300, 012400, 012500, 012600],
'093' : [890100, 890201, 890202, 890300, 890400, 890500, 890600, 890700],
'095' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600],
'097' : [000000, 860101, 860103, 860104, 860200, 860301, 860302, 860400, 860500, 860600, 860701, 860702, 860805, 860806, 860807, 860808, 860809, 860810, 860811, 860903, 860904, 860905, 860906, 861007, 861008, 861009, 861010, 861011, 861012, 861013, 861014, 861104, 861105, 861106, 861201, 861202, 861301, 861303, 861304, 861402, 861403, 861404, 861504, 861505, 861506, 861507, 861508, 861509, 861510, 861603, 861604, 861605, 861607, 861608, 861701, 861702, 861803, 861804, 861805, 861815, 861901, 861902, 862000, 862100, 862200, 862300, 862401, 862402, 862501, 862502, 862603, 862604, 862605, 862700, 862800, 862901, 862902, 863001, 863002, 863100, 863201, 863202, 863300, 863400, 863500, 863601, 863603, 863604, 863701, 863702, 863801, 863802, 863902, 863903, 863904, 864001, 864002, 864101, 864105, 864106, 864107, 864108, 864203, 864204, 864205, 864206, 864303, 864305, 864306, 864307, 864308, 864402, 864403, 864407, 864408, 864409, 864410, 864411, 864412, 864502, 864505, 864510, 864511, 864512, 864513, 864514, 864515, 864516, 864517, 864518, 864519, 864520, 864521, 864522, 864601, 864602, 864700, 864801, 864802, 864901, 864903, 864904, 865000, 865200, 865300, 865400, 865501, 865502, 865600, 865700, 865801, 865802],
'099' : [961700, 961800, 961900, 962000, 962100, 962200, 962300, 962400, 962500, 962600, 962700, 962800, 962900, 963000, 963100, 963200, 963300, 963400, 963500, 963600, 963700, 963800, 963900, 964000, 964100, 964200, 964300],
'101' : [980700, 980800, 980900, 981000, 981100],
'103' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900],
'105' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000],
'107' : [952900, 953000, 953100, 953200, 953300, 953400, 953500, 953600],
'109' : [010100, 010200, 010300, 010400, 010500, 010600, 010700, 010900, 011000, 011100],
'111' : [870101, 870102, 870200, 870300, 870401, 870402, 870500, 870603, 870604, 870605, 870606, 870702, 870703, 870704, 870803, 870807, 870808, 870809, 870810, 870811, 870812, 870902, 870903, 870904, 870905, 871002, 871003, 871004, 871101, 871102, 871103, 871104, 871201, 871202, 871204, 871205, 871206, 871301, 871304, 871305, 871306, 871307, 871308, 871309, 871402, 871403, 871404],
'113' : [000102, 000104, 000105, 000200, 000301, 000302, 000400, 000501, 000502, 000504, 000505, 001101, 001103, 001104, 001200, 001301, 001302, 001303, 001401, 001402, 001500, 001600, 001700, 001800, 001901, 001902, 002001, 002002, 002101, 002102, 005100, 005201, 005202, 005301, 005302, 005400, 005501, 005502, 005601, 005602, 005700],
'115' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001801, 001802, 001900, 002000, 002100, 002200, 002300, 002401, 002402, 002500, 002601, 002602, 002700, 002800, 002901, 002902, 002903, 002904, 003000],
'117' : [956000, 956100, 956200, 956300, 956400, 956500, 956600, 956700, 956800, 956900, 957000, 957100, 957200],
'119' : [400101, 400102, 400200, 400300, 400400, 400500, 400600, 400700, 400801, 400802, 400901, 400903, 400904, 400951, 400952, 401000, 401100, 401200, 401300, 401400, 401500, 401701, 401721, 401722, 401800, 401901, 401902, 402000, 402100, 402200, 402300, 402400, 402500, 402600, 402701, 402721, 402722, 402801, 402802, 402803, 402900, 403001, 403002, 403101, 403121, 403122, 403200, 403300, 403401, 403402, 403501, 403502, 403531, 403532, 403601, 403602, 403700, 403801, 403802],
'121' : [951600, 951700, 951800, 951900, 952000, 952100, 952200, 952300, 952400, 952500, 952600, 952700],
'123' : [961100, 961200, 961300, 961400, 961500],
'125' : [956300, 956400, 956500, 956600, 956700, 956800],
'127' : [970100, 970200, 970300, 970400],
'129' : [010100, 010200, 010300],
'131' : [040100, 040200, 040300, 040400],
'133' : [600100, 600200, 600300],
'135' : [957300, 957400, 957500, 957600, 957700, 957800, 957900, 958000],
'137' : [951400, 951500, 951600, 951700, 951800, 951900, 952000, 952100, 952200, 952300],
'139' : [976900, 977000, 977100, 977200],
'141' : [960700, 960800, 960900, 961000, 961100, 961200, 961300, 961400, 961500, 961600, 961700],
'143' : [000100, 000200, 000300, 000500, 000600, 000700, 000800, 000900, 001200, 001300, 001500, 001600, 001800, 001900, 002000, 002100, 002200, 002300, 002400, 002500, 002600, 002700, 002800, 002900, 003000, 003101, 003102, 003200, 003300, 003401, 003402, 003601, 003602, 003700, 003800, 003900, 004000, 004101, 004102, 004200, 004300, 004400, 004500, 004600, 004801, 004802, 004901, 004902],
'145' : [030100, 030200, 030300, 030400, 030500, 030600],
'147' : [954500, 954600, 954700, 954800],
'149' : [952400, 952500, 952600, 952700, 952800],
'151' : [971200, 971300],
'153' : [971000, 971100],
'155' : [954500, 954600],
'157' : [950500, 950600, 950700, 950800, 950900, 951000, 951100, 951200, 951300],
'159' : [977900, 978000, 978100, 978200, 978300],
'161' : [020100, 020200, 020300, 020400, 020600, 020700, 020800, 020900, 021000, 021100, 021200, 021300, 021400, 021500, 021600, 021700, 021800, 021900, 022000, 022100, 022200, 022300, 022500, 022600, 022700, 022800, 022900, 023000, 023100, 023200, 023300, 023500, 023600, 023700, 024000, 024101, 024102, 024103, 024200, 024300, 024400],
'163' : [500400, 500500, 500600, 500900, 501100, 501200, 501300, 501400, 501501, 501502, 501601, 501602, 501603, 501700, 501800, 501900, 502100, 502200, 502300, 502401, 502404, 502500, 502602, 502603, 502700, 502800, 502900, 503100, 503202, 503203, 503211, 503301, 503304, 503321, 503322, 503331, 503332, 503402, 503404, 503405, 503411, 503412, 503800, 503901, 503902, 504001, 504002, 504201, 504302, 504303, 504304, 504351, 504352, 504353, 504500],
'165' : [955100, 955500, 955600, 955700, 955800, 955900, 956000, 956100, 956200],
'167' : [000100, 000201, 000202, 000300, 000400, 000501, 000503, 000504, 000600, 000700, 000800, 000900, 001001, 001002, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002300, 002400, 002500, 002600, 002700, 002801, 002802, 002900, 003000, 003100, 003201, 003202, 003203, 003300, 003400, 003500, 003601, 003602, 003603, 003604, 003700, 003801, 003802, 003901, 003902, 004000],
'169' : [970100, 970200, 970300],
'171' : [970600, 970700],
'173' : [959100, 959200, 959300, 959400, 959500, 959600],
'175' : [951400, 951500],
'177' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300],
'179' : [020100, 020301, 020302, 020400, 020500, 020600, 020700, 020800, 020900, 021000, 021101, 021102, 021201, 021202, 021203, 021500, 021603, 021604, 021605, 021606, 021701, 021702, 021801, 021802, 021900, 022000, 022100, 022200, 022300, 022400],
'181' : [950100, 950200, 950300, 950400, 950500],
'183' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 010100, 010200, 010300, 010400, 010500, 010600, 010701, 010702, 010800, 010900, 011000, 011100],
'185' : [957200, 957300, 957400, 957500],
'187' : [870100, 870200, 870300, 870400, 870500],
'189' : [950100, 950200, 950300, 950400],
'191' : [954900, 955000, 955100, 955200, 955300],
'193' : [958000, 958100, 958200, 958300, 958400],
'195' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800],
'197' : [880103, 880104, 880105, 880106, 880107, 880108, 880109, 880110, 880111, 880112, 880113, 880201, 880202, 880301, 880302, 880404, 880405, 880406, 880407, 880501, 880502, 880600, 880700, 880800, 880900, 881001, 881002, 881003, 881004, 881005, 881006, 881103, 881104, 881105, 881106, 881200, 881300, 881400, 881500, 881600, 881700, 881800, 881900, 882000, 882100, 882200, 882300, 882400, 882500, 882600, 882700, 882800, 882900, 883000, 883100, 883203, 883204, 883205, 883206, 883207, 883301, 883302, 883400, 883501, 883502, 883503, 883504, 883505, 883506, 883602, 883603, 883604, 883700, 883803, 883804, 883805, 883806, 883807, 883901, 883902, 884001, 884002],
'199' : [020100, 020200, 020300, 020400, 020500, 020600, 020700, 020800, 020900, 021000, 021100, 021200, 021300, 021400],
'201' : [000101, 000103, 000104, 000105, 000200, 000300, 000401, 000402, 000403, 000501, 000502, 000504, 000506, 000507, 000510, 000511, 000512, 000513, 000514, 000600, 000700, 000800, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002301, 002302, 002400, 002500, 002600, 002700, 002800, 002900, 003000, 003100, 003200, 003300, 003400, 003500, 003601, 003602, 003604, 003605, 003606, 003701, 003705, 003706, 003707, 003708, 003709, 003710, 003801, 003805, 003806, 003807, 003808, 003809, 003901, 003903, 003904, 004001, 004002, 004003, 004100, 004200, 004300],
'203' : [030100, 030200, 030300, 030400, 030501, 030502, 030601, 030602, 030700]]]]></entry>
        <entry id="census2000_ky" type="java"><![CDATA[[
    '001' : [970100,970200,970300,970400,970500,970600],
    '003' : [980100,980200,980300,980400,980500,980600],
    '005' : [950100,950200,950300,950400],
    '007' : [950100,950200,950300],
    '009' : [950100,950200,950300,950400,950500,950600,950700,950800,950900,951000],
    '011' : [970100,970200,970300],
    '013' : [960100,960200,960300,960400,960500,960600,960700,960800,960900,961000],
    '015' : [70100,70200,70301,70304,70305,70306,70307,70308,70309,70401,70402,70501,70502,70601,70603,70604],
    '017' : [30100,30200,30300,30400,30500,30600],
    '019' : [30200,30300,30400,30500,30600,30700,30800,30900,31000,31100,31200,31300],
    '021' : [990100,990200,990300,990400,990500,990600,990700],
    '023' : [950100,950200,950300],
    '025' : [980100,980200,980300,980400,980500,980600,980700],
    '027' : [960100,960200,960300,960400,960500],
    '029' : [20100,20200,20300,20400,20500,20600,20700,20800,20900,21100,21200],
    '031' : [990100,990200,990300,990400,990500],
    '033' : [980100,980200,980300],
    '035' : [10100,10200,10300,10400,10500,10600,10700,10800],
    '037' : [50100,50200,50300,50400,50500,50600,51101,51102,51200,51300,51901,51903,51904,52001,52002,52100,52200,52301,52302,52400,52500,52600,52800,52900,53000,53100],
    '039' : [960100,960200,960300],
    '041' : [950100,950200,950300],
    '043' : [960100,960200,960300,960400,960500,960600,960700],
    '045' : [950100,950200,950300,950400,950500],
    '047' : [200100,200200,200300,200400,200500,200600,200700,200800,200900,201000,201100,201200,201300,201400,201500],
    '049' : [20101,20103,20104,20200,20300,20400,20500,20600],
    '051' : [950100,950200,950300,950400,950500,950600],
    '053' : [970100,970200],
    '055' : [990100,990200,990300,990400],
    '057' : [950100,950200],
    '059' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1401,1402,1501,1502,1601,1602,1701,1702,1703,1800],
    '061' : [980200,980300,980400],
    '063' : [980100,980200],
    '065' : [980100,980200,980300,980400],
    '067' : [100,200,300,400,500,600,700,801,802,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2301,2302,2400,2500,2600,2700,2800,2900,3000,3101,3102,3200,3300,3402,3404,3405,3406,3407,3501,3502,3600,3700,3801,3802,3901,3904,3905,3906,3907,4001,4003,4004,4101,4102,4202,4204,4205,4206],
    '069' : [980100,980200,980300,980400],
    '071' : [980100,980200,980300,980400,980500,980600,980700,980800,980900,981000],
    '073' : [70100,70200,70300,70400,70500,70600,70700,70800,71000,71100],
    '075' : [980100,980200],
    '077' : [960100],
    '079' : [970100,970200,970300,970400],
    '081' : [980100,980200,980300,980400],
    '083' : [20100,20200,20300,20400,20500,20600,20700,20800,20900],
    '085' : [950100,950200,950300,950400,950500,950600,950700],
    '087' : [990100,990200,990300,990400],
    '089' : [40100,40200,40300,40400,40500,40600,40700],
    '091' : [990100,990200,990300],
    '093' : [100,200,300,400,500,600,700,800,901,902,1001,1002,1100,1200,1300,1400,1500,1600,1700],
    '095' : [970100,970200,970300,970400,970500,970600,970700,970800,970900,971000,971100,971200],
    '097' : [950100,950200,950300,950400,950500],
    '099' : [970100,970200,970300,970400,970500],
    '101' : [20100,20200,20300,20400,20500,20601,20602,20701,20702,20800,20900],
    '103' : [90100,90200,90300,90400],
    '105' : [970100],
    '107' : [970100,970200,970300,970400,970500,970600,970700,970800,970900,971000,971100,971300],
    '109' : [960100,960200,960300],
    '111' : [200,300,400,600,700,800,900,1000,1100,1200,1400,1500,1600,1700,1800,2100,2300,2400,2700,2800,3000,3500,3600,3700,3800,3900,4000,4100,4301,4302,4400,4500,4600,4900,5000,5100,5200,5300,5600,5900,6200,6300,6400,6500,6600,6800,6900,7000,7100,7400,7501,7502,7601,7602,7603,7700,7800,7900,8100,8200,8300,8400,8500,8700,8800,8900,9000,9103,9104,9300,9400,9600,9700,9800,9900,10001,10004,10005,10006,10007,10008,10101,10102,10303,10306,10307,10308,10309,10310,10311,10402,10403,10404,10500,10600,10701,10702,10705,10706,10800,10901,10902,11002,11003,11004,11005,11101,11102,11105,11106,11109,11110,11200,11301,11302,11403,11404,11405,11406,11504,11505,11506,11508,11509,11510,11511,11512,11601,11602,11703,11704,11705,11706,11707,11800,11901,11904,11905,11906,11907,12001,12002,12003,12103,12104,12105,12106,12107,12202,12203,12204,12301,12302,12405,12406,12407,12408,12409,12501,12502,12503,12601,12603,12604,12701,12702,12703,12801,12802,13100],
    '113' : [60101,60102,60200,60300,60400,60501,60502,60600],
    '115' : [960100,960200,960300,960400,960500,960600],
    '117' : [60300,60700,60900,61000,61100,61200,61300,61400,61600,63603,63604,63605,63606,63701,63702,63800,64000,64100,64200,64300,64400,64500,64600,64700,64800,64900,65000,65100,65200,65300,65400,65501,65502,65600,65700,65800,65900,66800,66900,67000,67100],
    '119' : [960100,960200,960300,960400,960500],
    '121' : [990100,990200,990300,990400,990500,990600,990700],
    '123' : [960100,960200,960300],
    '125' : [970100,970200,970300,970400,970500,970600,970700,970800,970900,971000,971100],
    '127' : [990100,990200,990300,990400,990500],
    '129' : [950100,950200,950300],
    '131' : [980100,980200,980300],
    '133' : [950100,950200,950300,950400,950500,950600],
    '135' : [990100,990200,990300,990400],
    '137' : [980100,980200,980300,980400],
    '139' : [40100,40200],
    '141' : [960100,960200,960300,960400,960500,960600],
    '143' : [960100,960200],
    '145' : [30100,30200,30300,30400,30500,30600,30700,30800,30900,31000,31100,31200,31300,31400,31500,31600],
    '147' : [960100,960200,960300,960400],
    '149' : [970100,970200,970300,970400],
    '151' : [10100,10200,10300,10400,10500,10600,10700,10800,10900,11000,11100,11200,11300,11400],
    '153' : [970100,970200,970300,970400],
    '155' : [970200,970300,970400,970500,970700,970800],
    '157' : [950100,950200,950300,950400,950500,950600],
    '159' : [950100,950200,950300],
    '161' : [960100,960200,960300,960400,960500],
    '163' : [970100,970200,970300,970400,970500],
    '165' : [960100,960200],
    '167' : [960100,960200,960300,960400,960500],
    '169' : [960100,960200,960300],
    '171' : [990100,990200,990300,990400],
    '173' : [980100,980200,980300,980400,980500],
    '175' : [950100,950200,950300,950400,950500],
    '177' : [960100,960200,960300,960400,960500,960600,960700,960800,960900],
    '179' : [990100,990200,990300,990400,990500,990600,990700],
    '181' : [960100,960200],
    '183' : [980100,980200,980300,980400,980500,980600,980700],
    '185' : [30100,30200,30300,30400,30501,30502,30601,30602,30700,30801,30802],
    '187' : [970100,970200,970300],
    '189' : [990100,990200],
    '191' : [990100,990200,990300],
    '193' : [970100,970200,970300,970400,970500,970600,970700,970800,970900],
    '195' : [990100,990200,990300,990400,990500,990600,990700,990800,990900,991000,991100,991200,991300,991400,991500,991600,991700,991800,991900],
    '197' : [970100,970200],
    '199' : [990100,990200,990300,990400,990500,990600,990700,990800,990900,991000,991100],
    '201' : [970100],
    '203' : [950100,950200,950300,950400],
    '205' : [950100,950200,950300,950400],
    '207' : [960100,960200,960300,960400],
    '209' : [40100,40201,40202,40300,40400,40500,40600],
    '211' : [40100,40200,40300,40400,40500],
    '213' : [970100,970200,970300,970400],
    '215' : [80100,80200],
    '217' : [980100,980200,980300,980400,980500],
    '219' : [950100,950200,950300,950400],
    '221' : [970100,970200,970300],
    '223' : [100100,100200],
    '225' : [950100,950200,950300],
    '227' : [10100,10200,10300,10400,10500,10600,10700,10800,10900,11000,11100,11200,11300,11400,11500,11600,11700,11800,11900],
    '229' : [980100,980200,980300],
    '231' : [980100,980200,980300,980400,980500,980600],
    '233' : [960100,960200,960300,960400],
    '235' : [980100,980200,980300,980400,980500,980600,980700,980800],
    '237' : [990100,990200,990300],
    '239' : [50101,50102,50200,50300,50400]
 ]]]></entry>
        <entry id="census2000_la" type="java"><![CDATA[[
    '001' : [960100,960200,960300,960400,960500,960600,960700,960800,960900,961000,961100,961200],
    '003' : [950100,950200,950300,950400,950500],
    '005' : [30101,30102,30103,30203,30204,30205,30206,30300,30401,30402,30500,30600,30900,31000],
    '007' : [50100,50200,50300,50400,50500,50600],
    '009' : [30100,30200,30300,30400,30500,30600,30700,30800,30900],
    '011' : [960100,960200,960300,960400,960500,960600,960700],
    '013' : [970100,970200,970300,970400,970500],
    '015' : [10400,10500,10601,10602,10701,10702,10801,10803,10804,10900,11000,11103,11104,11105,11106,11107,11108,11200,11300],
    '017' : [20100,20200,20400,20500,20600,20700,20800,20900,21000,21100,21200,21300,21400,21500,21600,21700,21800,21900,22000,22100,22200,22300,22400,22500,22600,22700,22800,22900,23000,23100,23200,23300,23400,23500,23600,23700,23800,23901,23902,23903,24000,24102,24104,24106,24107,24108,24109,24201,24202,24203,24301,24303,24304,24400,24502,24503,24504,24601,24602,24700,24800,24900,25000,25100],
    '019' : [100,200,300,400,500,600,700,800,900,1000,1100,1201,1202,1300,1400,1500,1600,1700,1800,1901,1902,2000,2100,2201,2203,2204,2300,2400,2500,2600,2700,2800,2900,3000,3101,3102,3200,3300,3400,3500,3600],
    '021' : [990100,990200,990300],
    '023' : [970100,970200],
    '025' : [980100,980200,980300],
    '027' : [950100,950200,950300,950400,950500],
    '029' : [990100,990200,990300,990400,990500],
    '031' : [950100,950200,950300,950400,950500,950600,950700],
    '033' : [100,200,300,400,500,601,602,701,702,800,900,1000,1102,1103,1104,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,2400,2500,2601,2602,2700,2800,3000,3101,3102,3201,3202,3300,3400,3501,3504,3505,3506,3507,3601,3603,3604,3701,3702,3703,3801,3802,3804,3805,3903,3904,3906,3907,3908,4005,4006,4007,4009,4010,4011,4012,4201,4203,4204,4205,4301,4302,4401,4402,4403,4502,4503,4504,4505,4507,4508,4602,4603,4604,4700,4800,4900,5000],
    '035' : [990100,990200,990300],
    '037' : [951300,951400,951500,951600],
    '039' : [950100,950200,950300,950400,950500,950600,950700,950800],
    '041' : [950100,950200,950300,950400,950500,950600],
    '043' : [20100,20200,20300,20401,20402],
    '045' : [30100,30200,30300,30400,30500,30600,30700,30800,30900,31000,31100,31200,31300,31400,31500],
    '047' : [952501,952502,952600,952700,952900,953000,953101,953102],
    '049' : [970100,970200,970300,970400,970500],
    '051' : [20101,20102,20201,20202,20203,20301,20302,20303,20400,20502,20505,20506,20507,20508,20509,20510,20511,20512,20513,20514,20600,20700,20800,20900,21000,21100,21200,21300,21400,21500,21600,21700,21801,21802,21900,22001,22002,22101,22102,22200,22301,22302,22303,22400,22500,22600,22700,22800,22900,23001,23002,23003,23100,23200,23300,23400,23500,23600,23700,23800,23901,23902,23903,23904,24001,24002,24100,24200,24300,24400,24500,24600,24700,24800,24900,25001,25002,25003,25102,25103,25104,25201,25202,25300,25400,25500,25600,25700,25800,25900,26000,26100,26200,26300,26400,26500,26600,26700,26800,26900,27000,27100,27200,27300,27400,27501,27502,27601,27602,27701,27703,27704,27705,27803,27804,27805,27806,27807,27809,27810,27811,27812,27900],
    '053' : [980100,980200,980300,980400,980500,980600,980700],
    '055' : [100,200,300,400,500,601,602,700,800,900,1001,1002,1003,1100,1200,1300,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1500,1600,1700,1800,1901,1902,1903,1904,1905,2001,2002,2101,2102,2103,2104],
    '057' : [20100,20201,20202,20300,20400,20500,20600,20701,20702,20800,20900,21000,21100,21200,21300,21400,21500,21601,21602,21700,21800,21900],
    '059' : [970100,970200,970300],
    '061' : [960100,960200,960300,960400,960500,960600,960700,960800,960900,961000],
    '063' : [40100,40200,40301,40302,40400,40500,40600,40700,40802,40803,40804,40901,40902],
    '065' : [960100,960200,960300,960400,960500],
    '067' : [950100,950200,950300,950400,950500,950600,950700,950800],
    '069' : [990100,990200,990300,990400,990500,990600,990700,990800,990900],
    '071' : [100,200,300,400,601,602,603,604,605,606,607,608,611,612,613,614,701,702,800,901,902,903,904,1100,1200,1301,1302,1303,1304,1401,1402,1500,1600,1701,1702,1703,1706,1714,1720,1722,1723,1724,1725,1726,1728,1730,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1800,1900,2000,2100,2200,2300,2401,2402,2501,2502,2503,2504,2600,2700,2800,2900,3000,3100,3301,3302,3303,3304,3305,3306,3307,3308,3400,3500,3600,3701,3702,3800,3900,4000,4100,4200,4401,4402,4500,4600,4700,4800,4900,5000,5400,5500,5601,5602,5603,5604,5700,5800,5900,6000,6300,6400,6500,6700,6800,6900,7000,7100,7200,7501,7502,7603,7604,7605,7700,7800,7900,8000,8101,8102,8200,8300,8400,8500,8600,8700,8800,8900,9000,9100,9200,9301,9302,9400,9600,9700,9900,10000,10100,10200,10300,10400,10500,10600,10700,10800,10900,11100,11200,11400,11500,11600,11700,11900,12000,12101,12102,12200,12300,12400,12500,12600,12700,12800,12900,13000,13100,13200,13301,13302],
    '073' : [100,200,300,401,402,500,600,700,800,900,1001,1002,1100,1400,1500,1600,1700,5100,5201,5202,5301,5302,5400,5500,5600,5700,5800,5900,10101,10102,10201,10202,10301,10302,10400,10501,10502,10601,10603,10604,10700],
    '075' : [50100,50200,50300,50400,50500,50600,50700,50800],
    '077' : [951900,952000,952100,952200,952300,952400],
    '079' : [10100,10200,10300,10400,10500,10600,10700,10800,10900,11000,11100,11300,11400,11500,11600,11700,11900,12000,12100,12200,12300,12400,12500,12600,12700,12800,12900,13000,13100,13200,13300,13400,13500,13600],
    '081' : [960100,960300],
    '083' : [970100,970200,970300,970400,970500,970600],
    '085' : [980100,980200,980300,980400,980500,980600,980700],
    '087' : [30101,30103,30104,30203,30204,30206,30207,30208,30209,30300,30400,30500,30601,30602,30603,30700,30800],
    '089' : [60100,62100,62200,62301,62302,62400,62500,62700,62800,62900,63000,63100,63200],
    '091' : [951100,951200],
    '093' : [40100,40200,40300,40400,40500,40600,40700],
    '095' : [70100,70200,70300,70400,70500,70600,70700,70800,70900,71000,71100],
    '097' : [960100,960200,960300,960400,960500,960600,960700,960800,960900,961000,961100,961200,961300,961400,961500,961600,961700,961800,961900],
    '099' : [20100,20200,20300,20400,20500,20600,20800,20900,21000],
    '101' : [40100,40200,40300,40400,40500,40600,40700,40800,40900,41000,41100,41200,41300,41400,41500,41600],
    '103' : [40101,40102,40201,40202,40301,40303,40304,40400,40501,40502,40601,40602,40603,40701,40704,40705,40706,40707,40708,40801,40802,40803,40900,41002,41003,41004,41101,41102,41103,41104,41202,41204,41205,41206,41300],
    '105' : [953200,953300,953400,953500,953600,953700,953800,953900,954000,954101,954102,954200,954300,954400,954500,954600,954700,954800],
    '107' : [980100,980200,980300],
    '109' : [101,102,201,202,300,400,500,600,700,800,900,1000,1100,1201,1202,1300,1400,1500,1600,1700],
    '111' : [960100,960200,960300,960400,960500,960600],
    '113' : [950100,950200,950400,950500,950600,950700,950800,950900,951000,951100],
    '115' : [950100,950200,950300,950400,950500,950600,950700,950800,950900],
    '117' : [950100,950200,950300,950400,950500,950600,950700,950800,950900,951000],
    '119' : [31100,31200,31300,31400,31500,31600,31700,31800,31900,32000,32100],
    '121' : [20100,20200,20300,20400],
    '123' : [980100,980200,980300],
    '125' : [951701,951702,951800],
    '127' : [960100,960200,960300,960400]
 ]]]></entry>
        <entry id="census2000_ma" type="java"><![CDATA[['001' : [000000, 010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 012000, 012100, 012200, 012300, 012400, 012500, 012600, 012700, 012800, 012900, 013000, 013100, 013200, 013300, 013400, 013500, 013600, 013700, 013800, 013900, 014000, 014100, 014300, 014400, 014500, 014600, 014700, 014800, 014900, 015000, 015100, 015200],
'003' : [900100, 900200, 900300, 900400, 900500, 900600, 900700, 900800, 900900, 901000, 901100, 901200, 911100, 912100, 913100, 914100, 920101, 920102, 921100, 921200, 921300, 921400, 921500, 922100, 922200, 922300, 923100, 924100, 925100, 926100, 931100, 931300, 931400, 932200, 932300, 933200, 933300, 933400, 934200, 934300, 935100],
'005' : [000000, 600100, 600201, 600202, 610100, 610201, 610202, 611100, 611200, 612100, 612200, 613100, 613300, 613400, 613600, 613700, 613800, 613900, 614000, 614101, 614102, 615100, 616100, 617101, 617102, 630100, 630200, 630300, 630400, 631100, 631200, 631300, 631400, 631500, 631600, 631700, 631800, 632100, 632200, 633100, 633200, 640100, 640200, 640300, 640400, 640500, 640600, 640700, 640800, 640900, 641000, 641100, 641200, 641300, 641400, 641500, 641600, 641700, 641800, 641900, 642000, 642100, 642200, 642300, 642400, 642500, 644101, 644102, 644200, 645101, 645102, 645103, 646101, 646102, 650101, 650102, 650201, 650202, 650300, 650400, 650500, 650600, 650700, 650800, 650900, 651001, 651002, 651100, 651200, 651300, 651400, 651500, 651600, 651700, 651800, 651900, 652000, 652100, 652200, 652300, 652400, 652500, 652600, 652700, 652800, 653101, 653102, 653201, 653202, 653301, 653302, 654100, 654200, 655100, 655200, 655300, 655400],
'007' : [200100, 200200, 200300, 200400],
'009' : [000000, 201100, 202100, 202200, 203100, 203200, 203300, 204101, 204102, 204200, 204300, 204400, 204500, 204600, 204701, 204702, 205100, 205200, 205300, 205400, 205500, 205600, 205700, 205800, 205900, 206000, 206100, 206200, 206300, 206400, 206500, 206600, 206700, 206800, 206900, 207000, 207100, 207200, 208101, 208102, 208200, 208300, 208400, 209100, 209200, 210100, 210200, 210300, 210400, 210500, 210600, 210700, 210800, 210900, 211100, 211200, 211300, 211400, 212100, 213100, 214100, 215100, 216100, 217100, 217201, 217202, 217300, 217400, 217500, 217600, 218100, 220100, 221100, 221300, 221400, 221500, 221600, 221700, 221800, 221900, 222100, 223100, 223200, 223300, 250100, 250200, 250300, 250400, 250500, 250600, 250700, 250800, 250900, 251000, 251100, 251200, 251300, 251400, 251500, 251600, 251700, 251800, 252101, 252102, 252201, 252202, 252300, 252400, 252501, 252502, 252601, 252602, 252603, 253100, 253201, 253202, 253203, 253204, 253205, 254100, 254200, 254301, 254302, 254401, 254402, 254403, 260100, 260200, 260301, 260302, 260401, 260402, 260500, 260600, 260700, 260800, 260900, 261000, 261101, 261102, 262100, 263100, 264100, 265101, 265102, 266100, 266200, 266300, 266400, 267101, 267102, 268100, 268200, 268300, 268400, 269100, 270100],
'011' : [040100, 040200, 040300, 040400, 040500, 040600, 040701, 040702, 040800, 040900, 041000, 041100, 041200, 041300, 041400, 041500],
'013' : [800100, 800201, 800202, 800300, 800400, 800500, 800600, 800700, 800800, 800900, 801101, 801102, 801200, 801300, 801401, 801402, 801501, 801502, 801503, 801601, 801602, 801603, 801604, 801605, 801700, 801800, 801900, 802000, 802100, 802200, 802300, 802400, 802500, 802601, 802602, 810100, 810200, 810300, 810403, 810404, 810412, 810414, 810601, 810602, 810700, 810800, 810901, 810902, 811000, 811101, 811102, 811200, 811301, 811302, 811400, 811500, 811600, 811700, 811800, 811900, 812000, 812101, 812102, 812200, 812300, 812401, 812402, 812500, 812600, 812701, 812702, 812800, 812901, 812902, 812903, 813000, 813100, 813203, 813204, 813205, 813206, 813207, 813301, 813302, 813401, 813403, 813404, 813500, 813601, 813602, 813700, 813800],
'015' : [820101, 820102, 820202, 820203, 820204, 820300, 820400, 820500, 820600, 820700, 820801, 820802, 820900, 821000, 821100, 821200, 821300, 821400, 821500, 821601, 821602, 821700, 821901, 821902, 822000, 822200, 822300, 822401, 822402, 822500, 822600, 822700],
'017' : [300100, 301101, 301102, 302100, 302200, 310100, 310200, 310300, 310400, 310500, 310601, 310602, 310700, 310800, 311000, 311100, 311200, 311300, 311400, 311500, 311600, 311700, 311800, 311900, 312000, 312100, 312200, 312300, 312400, 312501, 312502, 313101, 313102, 314101, 314102, 314200, 314301, 314302, 315100, 315200, 315401, 315402, 315403, 315500, 316101, 316102, 316201, 316202, 316300, 316400, 316500, 317101, 317102, 317103, 317201, 317202, 317203, 317300, 318100, 318200, 318300, 318400, 320101, 320102, 321100, 321200, 321300, 321400, 321500, 321600, 322100, 322200, 322300, 322400, 323100, 324100, 325100, 326100, 327101, 327102, 327103, 328100, 330100, 330200, 331101, 331102, 331200, 331300, 332100, 332200, 332300, 332400, 333100, 333200, 333300, 333400, 333501, 333502, 333600, 334100, 334200, 334300, 334400, 335100, 335200, 335300, 335400, 336100, 336200, 336300, 336401, 336402, 337101, 337102, 337201, 337202, 337300, 338100, 338200, 338300, 338400, 338500, 339100, 339200, 339300, 339400, 339500, 339600, 339700, 339800, 339900, 340000, 340100, 341100, 341200, 341300, 341400, 341500, 341600, 341700, 341800, 341900, 342100, 342200, 342300, 342400, 342500, 342600, 350100, 350200, 350300, 350400, 350500, 350600, 350700, 350800, 350900, 351000, 351100, 351200, 351300, 351400, 351500, 352100, 352200, 352300, 352400, 352500, 352600, 352700, 352800, 352900, 353000, 353100, 353200, 353300, 353400, 353500, 353600, 353700, 353800, 353900, 354000, 354100, 354200, 354300, 354400, 354500, 354600, 354700, 354800, 354900, 355000, 356100, 356200, 356300, 356400, 356500, 356601, 356602, 356700, 357100, 357200, 357300, 357400, 357500, 357600, 357700, 357800, 358100, 358300, 358400, 358500, 358600, 358700, 359100, 359300, 360100, 360200, 361100, 361200, 361300, 362100, 363101, 363102, 363201, 363202, 364101, 364102, 365100, 365201, 365202, 366100, 366200, 367100, 367200, 368101, 368102, 368200, 368300, 368400, 368500, 368600, 368700, 368800, 368901, 368902, 369000, 369100, 370101, 370102, 370200, 370300, 370400, 373100, 373200, 373300, 373400, 373500, 373600, 373700, 373800, 373900, 374000, 374100, 374200, 374300, 374400, 374500, 374600, 374700, 374800, 382100, 382200, 382300, 382400, 382500, 382600, 383100, 383200, 383300, 383400, 383501, 383502, 383600, 383700, 383800, 383901, 383902, 384000, 385100, 385200, 386100, 387100, 387201, 387202, 388100],
'019' : [000000, 950100, 950200, 950300, 950400, 950500],
'021' : [400100, 400200, 400300, 400400, 400500, 400600, 400700, 400800, 400900, 401000, 401100, 401200, 402101, 402102, 402200, 402300, 402400, 402500, 403100, 403200, 403300, 403400, 403500, 404100, 404201, 404202, 404301, 404302, 404400, 405100, 406101, 406102, 407100, 408101, 408102, 409101, 409102, 410100, 410300, 410400, 411100, 411200, 411300, 412100, 412200, 412300, 413100, 413200, 413300, 413400, 413500, 414100, 414200, 414300, 415101, 415102, 415200, 415300, 416100, 416200, 416300, 416400, 417100, 417200, 417300, 417400, 417501, 417502, 417601, 417602, 417700, 417801, 417802, 417901, 417902, 418001, 418002, 418100, 418200, 419100, 419200, 419300, 419400, 419500, 419600, 419700, 419800, 420100, 420201, 420202, 420301, 420302, 421100, 421200, 422100, 422200, 422301, 422302, 422400, 422501, 422502, 422600, 422700, 422800, 423100, 440100, 441201, 441202, 442101, 442102, 442103, 442200, 443101, 443102, 456101, 456102, 456200, 456300, 456401, 456402, 457100],
'023' : [000000, 500101, 500102, 501101, 501102, 501201, 501202, 502101, 502102, 502200, 503101, 503102, 504101, 504102, 505101, 505102, 505200, 506101, 506102, 506202, 506203, 506204, 507101, 507103, 507104, 508101, 508102, 508200, 509100, 510100, 510200, 510300, 510400, 510501, 510502, 510503, 510600, 510700, 510800, 510900, 511000, 511100, 511200, 511301, 511302, 511400, 511500, 511600, 511701, 511702, 520100, 520201, 520202, 521101, 521102, 521201, 521202, 522101, 522102, 523100, 523201, 523202, 524101, 524102, 525101, 525102, 525200, 525300, 526100, 530100, 530200, 530300, 530400, 530500, 530600, 530700, 530800, 530900, 540100, 541100, 542100, 542200, 542300, 543100, 544100, 544200, 545100, 545200, 545300, 545400, 560100, 561100],
'025' : [000000, 000100, 000201, 000202, 000301, 000302, 000401, 000402, 000501, 000502, 000601, 000602, 000701, 000702, 000801, 000802, 010101, 010102, 010201, 010202, 010300, 010401, 010402, 010500, 010600, 010700, 010800, 020100, 020200, 020300, 030100, 030200, 030300, 030400, 030500, 040100, 040200, 040300, 040400, 040600, 040800, 050100, 050200, 050300, 050400, 050500, 050600, 050700, 050900, 051000, 051100, 051200, 060100, 060200, 060300, 060400, 060500, 060600, 060700, 060800, 061000, 061100, 061200, 070100, 070200, 070300, 070400, 070500, 070600, 070700, 070800, 070900, 071100, 071200, 080100, 080300, 080400, 080500, 080600, 080800, 080900, 081000, 081100, 081200, 081300, 081400, 081500, 081700, 081800, 081900, 082000, 082100, 090100, 090200, 090300, 090400, 090600, 090700, 090900, 091000, 091100, 091200, 091300, 091400, 091500, 091600, 091700, 091800, 091900, 092000, 092100, 092200, 092300, 092400, 100100, 100200, 100300, 100400, 100500, 100601, 100602, 100700, 100800, 100900, 101001, 101002, 101101, 101102, 110100, 110200, 110300, 110401, 110402, 110501, 110502, 110601, 110602, 120101, 120102, 120200, 120300, 120400, 120500, 120600, 120700, 130100, 130200, 130300, 130401, 130402, 140102, 140103, 140104, 140201, 140202, 140300, 140400, 150100, 160100, 160200, 160300, 160400, 160500, 160600, 170100, 170200, 170300, 170400, 170500, 170600, 170700, 170800, 180100, 180200, 180300, 180400, 180500],
'027' : [700100, 701100, 702200, 703100, 703200, 703300, 704200, 705100, 706100, 707100, 707200, 707300, 707400, 707500, 708100, 709100, 709201, 709202, 709400, 709500, 709600, 709701, 709702, 710100, 710200, 710300, 710400, 710500, 710600, 710700, 710800, 711000, 711100, 712101, 712102, 713100, 714100, 714200, 715100, 716100, 716200, 716300, 717100, 718100, 719100, 720100, 721100, 722100, 723100, 724100, 725100, 726100, 726200, 727100, 728100, 728200, 728300, 728400, 729100, 729200, 730100, 730200, 730300, 730401, 730402, 730500, 730600, 730700, 730801, 730802, 730901, 730902, 731000, 731101, 731102, 731201, 731202, 731300, 731400, 731500, 731600, 731700, 731800, 731900, 732001, 732002, 732100, 732201, 732202, 732203, 732300, 732400, 732500, 732600, 732700, 732800, 732901, 732902, 733000, 733101, 733102, 735100, 735200, 736100, 736200, 736300, 736400, 736500, 737100, 737200, 737300, 738100, 738200, 738300, 738400, 739100, 739200, 739300, 739400, 739500, 740101, 740102, 740200, 741100, 742100, 742200, 742300, 742400, 743100, 744101, 744102, 744200, 744300, 744400, 745100, 746100, 747100, 748100, 749100, 749200, 750100, 750200, 750300, 751100, 752100, 753100, 753200, 754100, 754200, 754300, 754400, 755100, 755200, 756101, 756102, 757100, 757200, 757300, 757400, 757500, 758100, 759100, 760100, 761100]]]]></entry>
        <entry id="census2000_mi" type="java"><![CDATA[[
    '099' : [0,206700,210000,211000,212000,214000,214500,215000,215200,215300,215500,216000,217000,218000,220000,221100,221200,221400,221500,221800,222100,222500,222800,223400,223500,223800,223900,224000,224100,224200,224300,224400,224500,224600,225100,225200,225300,225400,225500,225600,225700,225800,225900,226100,226400,226700,227000,227300,228000,228100,230000,230200,230300,230400,230500,230600,230700,230800,230900,231000,231100,231200,231300,231400,231500,231600,231700,231800,231900,232000,232100,232200,232300,232400,232500,233000,240000,240300,240400,240500,240600,240700,240800,240900,241000,241200,241300,241400,241500,241600,241700,241800,241900,242000,242100,242500,243000,243500,244000,245000,245100,245200,245300,245400,247000,247100,247200,247300,247400,247500,247600,250000,250100,250200,250300,250400,250500,250600,250700,250800,250900,251000,251100,251200,251300,251400,251500,251600,251700,251800,251900,252000,252100,252200,254000,254100,254200,254500,255000,255100,255200,255300,255400,255500,255600,255700,255800,255900,256000,256100,256200,256300,256400,256500,256600,256700,256800,258000,258100,258200,258300,258400,258500,258600,258700,258800,258900,260000,260100,260200,260300,260400,260500,260600,260700,260800,260900,261000,261100,261200,261300,261400,261500,261600,261700,261800,261900,262000,262100,262200,262300,262400,262500,262600,262700,262800,262900,263000,263100,263200,263300,263400,263500,263600,263700,263800,263900,264000,264100,264200,267600,268000,268100],
    '125' : [120000,120300,121000,121400,121500,121600,122200,122400,122700,122900,123000,123100,124000,124500,125000,125600,126200,126300,126400,126500,127000,127100,127200,127300,127400,127500,127600,127700,128000,128100,128200,128300,128400,128500,128600,128700,128800,128900,129000,130000,130100,130200,130300,130400,130500,130600,130700,131100,131300,131400,131500,131600,131800,132100,132500,132600,132700,133000,133100,134000,134100,134200,134300,134400,134500,134600,134700,134800,134900,136000,136100,136300,136500,136600,136700,136800,137100,137400,137700,137800,138100,138300,138600,139200,139400,140100,140300,140500,140600,140700,140800,141000,141100,141200,141300,141400,141500,141600,141700,141800,141900,142000,142100,142200,142300,142400,142500,142600,142700,143000,144000,144100,144200,144300,144400,144500,144600,144700,144800,144900,145100,145200,145300,145400,145500,145600,145700,150000,150100,150200,150300,150400,150500,150600,150700,150800,150900,151000,152000,152600,152700,152900,153000,153100,153200,153300,154000,154100,154200,154500,154600,156000,156100,156200,156300,156400,156500,156900,157000,157100,157200,157300,157400,157500,157600,157700,157800,157900,158000,158100,158200,159000,160000,160300,160400,160500,160600,160700,160800,160900,161000,161100,161200,161300,161400,161500,161600,161700,161800,161900,162000,162100,162200,162300,162400,162500,165000,165100,165200,166000,166100,166200,166400,166500,166600,166700,166800,166900,167000,167100,167300,167400,167500,167800,167900,168000,168100,168200,168300,168400,168500,168600,170000,170100,170200,170300,170400,171000,171100,171200,171300,171400,171500,171600,172400,172500,173000,173100,173200,173300,173400,173500,173600,175000,175100,175200,175300,180000,180100,180200,180300,181000,181100,181200,181300,181400,181500,181600,183000,183100,183200,183300,183400,183500,183600,183700,183800,183900,184000,184100,184200,184300,184400,184500,184600,184700,187000,188000,188100,190200,190300,190400,190500,190600,190700,190800,191000,191100,191200,191300,192000,192200,192400,192500,192700,192800,193000,193100,193300,193400,193500,193600,193700,194000,194100,194200,194300,194400,194500,194600,196000,196100,196200,196300,196400,196500,196600,196700,196800,196900,197000,197100,197200,197300,197400,197500,197600,197700,197900,198000,198100],
    '163' : [0,500100,500200,500300,500400,500500,500600,500700,500800,500900,501000,501100,501200,501300,501400,501500,501600,501700,501800,501900,502000,503100,503200,503300,503400,503500,503600,503700,503900,504000,504100,504200,504300,504400,504500,504600,504700,504800,504900,505000,505100,505200,505300,506100,506200,506300,506400,506500,506600,506700,506800,506900,507000,507100,507200,507300,507400,507500,507600,507700,507800,507900,508000,510200,510300,510400,510500,510600,510700,510800,510900,511100,511200,511500,511600,511700,512100,512200,512300,512400,512600,512900,513200,513300,513400,513500,513600,513900,514000,514100,514300,514500,514600,514700,514800,514900,515000,515100,515200,515300,515400,515600,515700,515800,516100,516200,516300,516400,516500,516600,516700,516800,516900,517000,517100,517200,517400,517500,517600,517700,517800,517900,518000,518100,518400,518500,518600,518800,520100,520200,520300,520400,520500,520600,520700,520800,520900,521100,521300,521400,521500,521800,521900,522000,522100,522200,522300,522400,523100,523200,523300,523400,523500,523600,523700,523800,524000,524100,524200,524300,524500,524700,524800,525100,525200,525300,525400,525500,525600,525700,525800,526000,526100,526200,526300,526400,526500,530100,530200,530300,530400,530500,530700,530800,531000,531100,531200,531300,531400,531500,531600,531700,531800,531900,532200,532300,532400,532500,532600,532700,533000,533100,533200,533300,533400,533500,533600,533700,534100,534200,534300,534400,534500,534600,534700,535000,535100,535200,535300,535400,535500,535600,535700,536100,536200,536300,536400,536500,536600,536700,536800,536900,537000,537100,537200,537300,537500,537600,537700,537800,538100,538200,538300,538400,538500,538600,538700,538800,538900,539000,539100,539200,539300,539400,539500,539600,539700,540100,540200,540300,540400,540500,540600,540700,540800,540900,541000,541100,541200,541300,541400,541500,541700,541800,542100,542200,542300,542400,542500,542600,542700,542800,542900,543000,543100,543200,543400,543500,543600,543700,543800,543900,544000,544100,544200,544300,545100,545200,545300,545400,545500,545600,545700,545800,545900,546000,546100,546200,546300,546400,546500,546600,546700,546800,546900,550100,550200,550300,550400,550500,550600,550700,550800,550900,551100,551200,551300,551400,551500,551600,551700,551800,552000,552100,552200,552300,552400,552600,552700,553000,553100,553200,553300,553400,553600,553800,554100,554200,554300,554400,554500,554600,554700,554800,554900,555100,555300,555400,555500,555600,556100,556200,556300,556400,556500,556600,556700,556800,556900,557000,557100,557200,557300,557400,557500,557600,557700,557900,558000,558100,558200,558300,558400,558500,558600,558700,558800,558900,559000,559100,559200,560100,560200,560300,560400,560700,560900,561600,561700,561900,562300,562400,562500,562600,562700,562800,562900,563200,563300,563400,563500,563600,563700,563800,563900,564000,564100,564200,564300,564400,564500,564600,564700,564800,564900,565000,565100,565200,565300,565400,565500,565600,565700,565800,565900,566400,566500,566600,566700,566800,566900,567000,567100,567200,567300,567400,567800,567900,568000,568200,568300,568400,568500,568700,569100,569200,569300,569400,569500,569600,569700,569800,569900,570100,570200,570400,570500,570600,570800,570900,571000,571500,571600,571700,571800,571900,572000,572100,572200,572400,572500,572600,572700,572800,572900,573000,573100,573300,573400,573500,573600,573700,573800,573900,574000,574100,574200,574300,574400,574500,574600,574700,574800,574900,575000,575100,575200,575300,575400,575500,575600,576000,576100,576200,576300,576400,576500,576600,576700,577000,577100,577200,577300,577400,577500,577600,577700,577800,577900,578000,578500,578600,579000,579100,579200,579300,579500,579600,579700,579800,580100,580200,580300,580400,580500,580600,580700,580800,580900,581100,581200,581500,581600,581800,581900,582000,582100,583000,583100,583200,583300,583400,583500,583600,583700,583800,583900,584000,584100,584200,584300,584400,584500,584600,584700,584800,585500,585600,585700,585800,585900,586000,586200,586300,587000,587900,588000,588100,588200,588300,588400,589300,589400,590400,590500,590600,591500,591600,591700,591800,591900,592000,593000,593200,593300,594000,594100,594200,594300,594400,594500,595000,595100,595200,596100,596200,596300,597000,598000,599000,599100]
]]]></entry>
        <entry id="census2000_nj" type="java"><![CDATA[[
    '001' : [0,100,200,300,400,500,1100,1200,1300,1400,1500,1900,2300,2400,2500,10101,10102,10103,10200,10300,10401,10402,10403,10501,10503,10504,10600,10700,10800,10900,11000,11100,11201,11202,11300,11401,11402,11500,11600,11701,11702,11801,11802,11803,11900,12000,12100,12200,12302,12401,12402,12501,12502,12601,12602,12701,12702,12801,12802,12900,13000,13100,13200,13300],
    '003' : [1000,2100,2200,2300,3100,3200,3300,3401,3402,3500,4000,5000,6100,6200,6300,7001,7002,8000,9100,9200,10100,10200,10300,11100,11200,11300,11400,12000,13000,14000,15100,15200,15300,15400,15500,16000,17100,17200,17300,17400,17500,18100,18200,19101,19102,19201,19202,19301,19302,20100,20200,21100,21200,21300,21400,21500,21600,22100,22200,23100,23200,23300,23401,23402,23500,23600,24100,24200,25100,25200,26100,26200,27000,28001,28002,29100,29200,30100,30200,30300,30400,31100,31200,31300,31400,32101,32102,32200,33100,33200,33300,34000,35100,35200,36100,36200,37100,37201,37202,38100,38200,38300,39100,39200,39300,40000,41100,41200,41300,42100,42301,42302,42400,42500,43001,43002,44100,44200,45100,45200,46100,46200,46300,47100,47200,47300,47400,47500,48100,48200,49001,49002,50000,51100,51200,51300,51400,52100,52200,53100,53200,54100,54200,54300,54400,54500,54600,55100,55200,56100,56200,57101,57102,57200,58100,58200,59100,59200,60000,61100,61200,61300,61400],
    '005' : [700102,700103,700104,700200,700303,700304,700305,700306,700307,700401,700402,700403,700405,700406,700501,700502,700503,700504,700505,700602,700603,700605,700701,700702,700703,700800,700900,701001,701002,701102,701103,701104,701105,701201,701203,701204,701205,701301,701302,701303,701401,701402,701501,701502,701600,701700,701801,701802,701900,702000,702101,702104,702106,702107,702108,702109,702110,702111,702112,702203,702204,702205,702206,702207,702208,702300,702400,702500,702601,702602,702603,702604,702700,702801,702802,702803,702804,702805,702806,702807,702808,702809,702810,702811,702905,702906,702907,702908,702909,702910,702911,702912,703000,703101,703102,703201,703202,703203,703300,703400,703500,703600,703700,703801,703802,703803,703804,703900,704004,704005,704006,704007,704008,704009,704011,704012,704013,704014,704100],
    '007' : [600100,600200,600300,600400,600500,600600,600700,600800,600900,601000,601101,601102,601200,601300,601400,601500,601600,601700,601800,601900,602000,602501,602502,602503,602601,602602,602701,602702,602703,602800,602901,602902,603001,603002,603100,603200,603301,603302,603303,603400,603501,603503,603504,603505,603506,603507,603601,603602,603603,603700,603800,603901,603902,604001,604002,604100,604200,604300,604400,604500,604600,604700,604800,604900,605000,605100,605200,605300,605400,605500,605601,605602,605700,605800,605900,606000,606100,606200,606300,606400,606500,606600,606700,606800,606901,606902,607000,607100,607200,607300,607401,607402,607501,607502,607503,607504,607505,607600,607701,607702,607801,607802,607900,608001,608002,608100,608202,608204,608205,608206,608207,608208,608209,608301,608302,608401,608402,608403,608404,608501,608502,608503,608504,608600,608700,608800,608901,608903,608904,609000,609102,609103,609104,609201,609202,609203,609204,609205,610100,610200],
    '009' : [0,20101,20102,20200,20301,20302,20400,20500,20600,20700,20800,20900,21000,21100,21200,21300,21400,21500,21600,21700,21802,21803,21804,21900,22000],
    '011' : [0,10101,10102,10103,10200,10300,10401,10402,10500,10600,10700,10800,20100,20200,20300,20400,20501,20600,30100,30200,30300,30400,30501,30502,40100,40200,40300,40400,40500,40600,40700,40800,40901,40902,41000],
    '013' : [100,200,300,400,500,600,700,800,900,1000,1100,1300,1400,1500,1600,1700,1800,1900,2000,2100,2201,2202,2300,2400,2500,2600,2700,2800,2900,3000,3100,3400,3500,3700,3800,3900,4000,4100,4200,4300,4400,4500,4600,4700,4801,4802,4900,5000,5100,5200,5300,5400,5700,5800,6200,6400,6600,6700,6800,6900,7000,7100,7200,7300,7400,7501,7502,7600,7700,7800,7900,8000,8100,8200,8500,8600,8700,8800,8900,9000,9100,9200,9300,9400,9500,9600,9700,9800,9900,10000,10100,10200,10300,10400,10500,10600,10700,10800,10900,11100,11200,11300,11400,11500,11600,11700,11800,11900,12000,12100,12200,12300,12400,12500,12600,12700,12800,12900,13000,13100,13200,13300,13400,13500,13600,13700,13800,13900,14000,14100,14200,14300,14400,14500,14600,14700,14800,14900,15000,15100,15200,15300,15400,15500,15600,15700,15800,15900,16000,16100,16200,16300,16400,16500,16600,16700,16800,16900,17000,17100,17200,17301,17302,17400,17500,17600,17700,17800,17900,18000,18100,18200,18300,18400,18600,18700,18800,18900,19000,19100,19200,19300,19400,19500,19600,19700,19800,19900,20000,20100,20200,20300,20400,20500,20600,20700,20800,20901,20902,21000,21100,21200,21300,21400,21601,21602,21700,21801,21802,21803,22700,22800],
    '015' : [500100,500201,500202,500203,500204,500205,500300,500400,500500,500600,500701,500702,500703,500800,500900,501001,501002,501003,501101,501102,501103,501104,501105,501106,501107,501201,501202,501203,501204,501205,501206,501208,501209,501210,501211,501301,501302,501303,501401,501402,501403,501404,501500,501603,501604,501605,501606,501607,501701,501702,501703,501704,501800,501900,502000,502100,502200,502300,502400],
    '017' : [100,200,300,400,500,600,700,800,901,902,1000,1100,1201,1202,1300,1400,1500,1601,1602,1700,1800,1900,2000,2100,2200,2300,2400,2500,2600,2700,2800,2900,3000,3100,3200,3300,3400,3500,3600,3700,3800,3900,4000,4101,4102,4200,4300,4400,4500,4600,4700,4800,4900,5000,5100,5200,5300,5400,5500,5600,5801,5802,5900,6000,6100,6200,6300,10100,10200,10300,10400,10500,10600,10700,10800,10900,11000,11100,11200,11300,11400,11500,11600,12300,12400,12500,12600,12700,12800,12900,13000,13100,13200,13300,13400,13500,13600,13700,13800,13900,14000,14100,14200,14300,14400,14500,14600,14700,14800,14900,15000,15100,15200,15300,15500,15600,15700,15800,15900,16000,16100,16200,16300,16400,16500,16600,16700,16800,16900,17000,17100,17200,17300,17400,17500,17600,17700,17800,17900,18000,18100,18200,18300,18400,18500,18600,18700,18800,18900,19000,19100,19200,19300,19400,19500,19600,19700,32400],
    '019' : [10100,10200,10300,10400,10500,10600,10701,10702,10801,10802,10900,11001,11002,11100,11201,11202,11301,11302,11303,11304,11400,11500,11600,11700,11800,11900],
    '021' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1401,1402,1500,1600,1700,1800,1900,2000,2100,2200,2400,2500,2601,2602,2701,2702,2800,2902,2903,2904,3001,3002,3003,3004,3006,3007,3008,3009,3100,3201,3202,3301,3302,3400,3500,3601,3602,3703,3704,3705,3706,3800,3901,3902,3903,4000,4100,4201,4203,4204,4301,4304,4306,4307,4308,4403,4404,4405,4406,4407],
    '023' : [100,200,300,401,403,404,501,502,603,605,606,607,608,701,702,801,802,901,902,1001,1002,1100,1200,1300,1409,1410,1411,1412,1413,1414,1415,1416,1417,1502,1503,1504,1600,1701,1702,1803,1804,1805,1806,1901,1902,1903,2000,2101,2102,2200,2301,2302,2401,2402,2500,2603,2604,2605,2701,2703,2705,2804,2805,2806,2901,2902,3001,3002,3101,3102,3201,3203,3204,3300,3401,3500,3600,3700,3800,3900,4000,4100,4200,4300,4400,4500,4600,4700,4800,4900,5000,5100,5200,5300,5400,5500,5600,5700,5800,5900,6000,6101,6103,6104,6203,6204,6205,6206,6207,6300,6402,6403,6404,6500,6601,6604,6605,6606,6607,6608,6701,6703,6800,6900,7000,7101,7102,7103,7201,7202,7203,7301,7303,7304,7401,7402,7500,7600,7702,7703,7704,7801,7804,7805,7806,7902,7905,7906,7907,7908,7909,7910,8001,8101,8102,8103,8202,8204,8205,8206,8207,8208,8209,8300,8403,8404,8405,8406,8501,8502,8503,8504,8601,8602,8603,8604,8700],
    '025' : [0,800100,800200,800300,800400,800500,800601,800602,800701,800702,800800,800900,801000,801100,801200,801300,801400,801500,801600,801700,801800,801900,802000,802100,802200,802300,802400,802500,802600,802700,802800,802900,803000,803100,803200,803300,803400,803500,803600,803700,803800,803900,804000,804100,804200,804300,804400,804500,804600,804700,804800,805001,805002,805100,805200,805300,805400,805500,805600,805700,805800,805900,806000,806100,806200,806300,806400,806501,806502,806503,806504,806600,806700,806800,806900,807003,807004,807100,807200,807300,807400,807500,807600,807700,807800,807900,808001,808002,808100,808200,808300,808401,808402,808500,808600,808700,808800,808900,809000,809100,809200,809300,809400,809501,809502,809600,809701,809703,809704,809901,809902,809903,810001,810002,810003,810004,810100,810200,810300,810401,810402,810501,810502,810503,810600,810700,810800,810900,811000,811100,811200,811301,811303,811304,811401,811402,811500,811600,811700,811800,811900,812000],
    '027' : [40101,40102,40200,40300,40400,40500,40600,40701,40702,40801,40803,40804,40805,40900,41000,41100,41200,41300,41400,41500,41601,41602,41603,41604,41701,41702,41703,41704,41801,41802,41803,41901,41902,42000,42100,42200,42301,42302,42500,42600,42700,42800,42900,43000,43100,43200,43301,43302,43303,43401,43402,43500,43600,43700,43800,43900,44000,44101,44102,44200,44300,44401,44403,44404,44501,44502,44601,44602,44701,44702,44800,44900,45000,45100,45200,45300,45401,45402,45501,45502,45601,45602,45603,45604,45701,45702,45801,45802,45901,45902,46000,46103,46104,46105,46106,46201,46202,46297,46298],
    '029' : [0,710100,711100,711200,711300,711400,712000,713000,713100,713201,713202,713203,713300,713401,713402,713500,713600,713700,713800,713900,714000,714100,714200,714300,714400,715000,715200,715301,715302,715401,715402,715500,715600,715700,715800,715900,716000,717001,717002,717101,717102,717200,717300,717400,717501,717502,718000,719000,720000,720101,720102,720103,720201,720202,720203,720204,721000,722000,722100,722200,722300,722401,722402,722500,722600,722701,722702,722800,722900,723000,723100,723200,723300,723400,723500,723600,724000,725001,725002,725100,726000,727001,727002,728000,729000,730000,731001,731002,731101,731102,731103,731201,731202,731203,731204,731205,731206,732001,732002,732101,732102,733000,734001,734002,734003,735000,735100,736001,736002,736101,736102,736103,737000,738001,738002,738100,739000],
    '031' : [116500,124200,124311,124312,124321,124322,124323,124401,124402,124500,124601,124602,124700,124800,124900,125000,125100,133700,143200,143300,143400,154000,163500,175200,175300,175400,175500,175600,175700,175800,175900,180100,180200,180300,180400,180500,180600,180700,180800,180900,181000,181100,181200,181300,181400,181500,181702,181800,181900,182000,182100,182200,182300,182400,182500,182600,182700,182800,182900,183000,183100,183200,196400,203600,216700,223800,223900,236600,246001,246002,246003,246101,246102,246103,246104,246201,246202,246203,246300,256801,256802,256803,256804,256805,264100],
    '033' : [0,20100,20200,20300,20400,20500,20600,20700,20800,20900,21000,21101,21102,21201,21202,21300,21400,21500,21600,21700,21900,22000,22100,22201,22202],
    '035' : [50100,50200,50300,50400,50500,50600,50700,50801,50802,50901,50902,50903,51000,51100,51200,51300,51400,51500,51600,51700,51800,51900,52001,52002,52100,52201,52202,52300,52400,52500,52601,52602,52603,52700,52800,52901,52902,53000,53102,53103,53104,53105,53200,53300,53401,53402,53501,53502,53601,53602,53701,53703,53704,53705,53801,53803,53804,53805,53901,53902,53903,54000],
    '037' : [371000,371100,371200,371300,371400,371500,371600,371700,371800,371900,372000,372100,372200,372300,372400,372500,372600,372700,372800,372900,373000,373100,373200,373300,373400,373500,373600,373700,373800,373900,374000,374100,374200,374300,374400,374500,374600,374700,374800,374900],
    '039' : [30100,30200,30300,30400,30500,30600,30700,30801,30802,30900,31000,31100,31200,31300,31400,31500,31600,31700,31800,31901,31902,32001,32002,32100,32200,32300,32400,32500,32600,32700,32800,32901,32902,33000,33100,33200,33300,33400,33500,33600,33700,33800,33900,34000,34100,34200,34300,34400,34500,34600,34700,34800,34900,35000,35100,35200,35300,35400,35500,35600,35700,35800,35900,36000,36100,36200,36301,36302,36400,36500,36600,36700,36800,36900,37000,37100,37200,37300,37400,37500,37601,37602,37700,37800,37900,38000,38101,38102,38201,38202,38300,38400,38500,38601,38602,38700,38800,38900,39000,39100,39200,39300,39400,39500,39600,39700],
    '041' : [30600,30700,30800,30900,31101,31102,31200,31301,31302,31401,31402,31500,31601,31602,31700,31800,31900,32000,32101,32102,32200,32300,32400]
 ]]]></entry>
        <entry id="census2000_nm" type="java"><![CDATA[[
    '001' : [107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,203,204,205,206,207,208,300,401,402,500,601,603,604,704,707,708,710,711,712,713,714,801,901,903,904,1101,1102,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,2401,2402,2500,2600,2700,2900,3001,3002,3100,3201,3202,3400,3501,3502,3600,3707,3712,3714,3715,3717,3718,3719,3720,3721,3722,3723,3724,3725,3726,3727,3728,3729,3730,3731,3732,3733,3734,3803,3804,3805,3806,3807,4001,4300,4401,4402,4501,4502,4602,4603,4604,4705,4712,4713,4714,4715,4716,4717,4718,4719,4720,4721,4722,4723,4724,4725,4726,4727,4728,4729,4730,4731,4732,4800,940100,940200,940300,940400,945900],
    '003' : [941500,976200],
    '005' : [200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400],
    '006' : [940100,940400,941500,945800,945900,946000,974201,974202,974400,974500],
    '007' : [950500,950600,950700],
    '009' : [100,201,202,301,302,400,500,600,900],
    '011' : [960100],
    '013' : [101,102,200,300,401,402,500,600,700,800,900,1000,1101,1102,1201,1202,1301,1302,1303,1400,1500,1600,1701,1702,1703,1704,1705,1801,1802,1803,1804,1900],
    '015' : [100,200,300,401,402,500,600,700,800,900,1000,1100],
    '017' : [984100,984200,984300,984400,984500,984600,984700,984800],
    '019' : [961600],
    '021' : [100],
    '023' : [988100,988200],
    '025' : [100,200,300,400,501,502,600,700,800,900,1002,1003,1100],
    '027' : [980200,980300,980400,980600,980800],
    '028' : [100,200,400,500],
    '029' : [100,200,300,400,500,600],
    '031' : [940200,940300,940400,943400,943500,943600,943700,943800,943900,945200,945300,945400,945500,945600,945700,945800,946000,972100,972800],
    '033' : [955200],
    '035' : [100,200,301,302,401,402,500,601,602,603,700,800,900],
    '037' : [958500,958601,958602,958800],
    '039' : [100,200,300,400,500,600,940700,940800,940900,943300,954100],
    '041' : [100,200,300,400],
    '043' : [10101,10102,10200,10301,10302,10502,10503,10601,10602,10702,10703,10705,10709,10710,10711,10712,10713,10714,10715,10716,940100,940200,940300,940400,940500,940800,940900,943300,945900],
    '045' : [100,201,202,204,205,301,302,401,402,501,502,601,605,606,702,703,704,941000,942800,942900,943000,943100,943200],
    '047' : [957200,957300,957400,957500,957600,957700,957800],
    '049' : [101,200,300,400,500,600,700,800,900,1001,1002,1102,1103,1105,1106,1107,1201,1202,1203,1300,10102,10103,10201,10202,10302,10304,10305,10306,10307,10308,10400,10500,10600,10700,10800,940100,940200,940300,940700,940800],
    '051' : [982200,982300,982400],
    '053' : [941500,946100,978100,978200,978301,978302,978303],
    '055' : [952100,952300,952400,952600,952700,952900],
    '057' : [940300,963201,963202,963203,963400,963500],
    '059' : [950200],
    '061' : [940100,940200,940300,970101,970102,970200,970301,970302,970303,970401,970402,970403,970700,970800,970901,970902,971000,971100,971200]
 ]]]></entry>
        <entry id="census2000_ny" type="java"><![CDATA[['001' : [000100, 000200, 000300, 000401, 000403, 000404, 000501, 000502, 000600, 000700, 000800, 001100, 001400, 001500, 001600, 001700, 001801, 001802, 001901, 001902, 002000, 002100, 002200, 002300, 002500, 002600, 012700, 012800, 012900, 013000, 013100, 013200, 013300, 013400, 013502, 013503, 013505, 013506, 013601, 013602, 013703, 013705, 013706, 013707, 013801, 013802, 013901, 013902, 014001, 014002, 014100, 014201, 014202, 014203, 014301, 014302, 014401, 014402, 014501, 014502, 014503, 014606, 014607, 014608, 014609, 014610, 014611, 014612, 014613, 014700, 014801, 014802, 014803],
'003' : [940200, 950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000, 951100, 951200],
'005' : [000100, 000200, 000400, 000500, 001100, 001500, 001600, 001700, 002000, 002300, 002400, 002500, 002701, 002702, 002800, 003100, 003300, 003500, 003600, 003700, 003800, 003900, 004001, 004002, 004100, 004300, 004400, 004600, 004700, 004800, 004900, 005000, 005200, 005301, 005302, 005400, 005600, 005700, 005800, 005901, 005902, 006000, 006100, 006200, 006400, 006500, 006600, 006700, 006800, 006900, 007000, 007100, 007200, 007300, 007400, 007500, 007700, 007800, 007900, 008100, 008300, 008400, 008500, 008600, 008700, 008800, 008900, 009100, 009200, 009400, 009700, 009800, 009900, 010200, 010500, 011000, 011501, 011502, 011800, 011900, 012101, 012102, 012300, 012500, 012701, 012702, 012901, 012902, 013000, 013100, 013200, 013300, 013500, 013700, 013800, 013900, 014100, 014300, 014400, 014500, 014700, 014900, 015100, 015300, 015400, 015500, 015600, 015700, 015800, 016000, 016100, 016200, 016300, 016400, 016500, 016600, 016700, 016900, 017100, 017300, 017500, 017700, 017900, 018100, 018300, 018400, 018700, 018900, 019300, 019400, 019500, 019600, 019700, 019800, 019900, 020100, 020200, 020400, 020500, 020601, 020602, 020800, 021000, 021100, 021200, 021301, 021302, 021400, 021501, 021502, 021601, 021602, 021701, 021702, 021800, 021900, 022000, 022100, 022300, 022401, 022402, 022500, 022701, 022702, 022703, 022800, 022901, 022902, 023000, 023100, 023200, 023301, 023302, 023400, 023501, 023502, 023600, 023701, 023702, 023900, 024000, 024100, 024200, 024300, 024400, 024500, 024600, 024700, 024800, 024900, 025000, 025100, 025200, 025300, 025400, 025500, 025600, 025700, 025800, 026100, 026300, 026400, 026500, 026601, 026602, 026700, 026900, 027101, 027102, 027300, 027400, 027600, 027700, 027900, 028100, 028300, 028400, 028500, 028600, 028700, 028800, 028900, 029300, 029500, 029600, 029700, 030000, 030100, 030200, 030700, 031000, 031200, 031400, 031600, 031700, 031800, 031900, 032000, 032200, 032300, 032400, 032800, 032900, 033000, 033200, 033300, 033400, 033600, 033800, 033900, 034000, 034100, 034200, 034300, 034400, 034500, 034600, 035000, 035100, 035200, 035400, 035600, 035800, 035900, 036100, 036300, 036400, 036501, 036502, 036600, 036700, 036800, 036901, 036902, 037000, 037100, 037200, 037300, 037400, 037501, 037502, 037503, 037600, 037700, 037800, 037900, 038000, 038100, 038200, 038300, 038500, 038600, 038700, 038800, 038900, 039000, 039100, 039200, 039300, 039400, 039600, 039700, 039800, 039901, 039902, 040100, 040301, 040302, 040400, 040500, 040600, 040701, 040702, 040800, 040900, 041000, 041100, 041300, 041400, 041500, 041800, 041900, 042000, 042100, 042200, 042300, 042400, 042500, 042600, 042800, 042901, 042902, 043000, 043100, 043200, 043500, 043600, 043800, 044000, 044200, 044600, 044800, 044901, 044902, 045101, 045102, 045400, 045800, 046000, 046201, 046202, 048400, 050200, 050400, 051600],
'007' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000900, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 010200, 011901, 011902, 011903, 012000, 012101, 012102, 012103, 012201, 012202, 012300, 012400, 012500, 012600, 012701, 012702, 012800, 012900, 013000, 013100, 013201, 013202, 013301, 013303, 013304, 013400, 013500, 013600, 013700, 013800, 013900, 014000, 014100, 014200, 014301, 014302, 014400, 014500, 014600],
'009' : [940000, 940200, 960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100, 961200, 961300, 961400, 961500, 961600, 961700, 961800, 962100],
'011' : [000000, 040100, 040200, 040300, 040400, 040500, 040600, 040700, 040800, 040900, 041000, 041100, 041200, 041300, 041400, 041500, 041600, 041700, 041800, 041900, 042000],
'013' : [000000, 030100, 030200, 030300, 030400, 030500, 030600, 030700, 030800, 035100, 035200, 035300, 035400, 035500, 035600, 035700, 035800, 035901, 035902, 036000, 036100, 036300, 036400, 036500, 036600, 036700, 036800, 036900, 037000, 037100, 037200, 037300, 037400, 037500, 940000],
'015' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011100, 011200],
'017' : [990100, 990200, 990300, 990400, 990500, 990601, 990602, 990700, 990800, 990900, 991000],
'019' : [100100, 100200, 100300, 100400, 100600, 100700, 100800, 100900, 101000, 101100, 101200, 101300, 101400, 101500, 101600, 101700, 101800, 101900, 102000],
'021' : [990100, 990200, 990300, 990400, 990500, 990600, 990700, 990800, 990900, 991000, 991100, 991200, 991300, 991400, 991500, 991600, 991700, 991800, 991900, 992000],
'023' : [990100, 990200, 990300, 990400, 990500, 990600, 990700, 990800, 990900, 991000, 991100, 991200],
'025' : [990100, 990200, 990300, 990400, 990500, 990600, 990700, 990800, 990900, 991000, 991100, 991200, 991300, 991400],
'027' : [010000, 020001, 020002, 030000, 040001, 040002, 050101, 050102, 050201, 050202, 060100, 060200, 060300, 070101, 070102, 070200, 070300, 070400, 080101, 080102, 080200, 090000, 100000, 110001, 110002, 120000, 130001, 130002, 140100, 140200, 140300, 140400, 140500, 140600, 140700, 140800, 150001, 150002, 160001, 160002, 170000, 180000, 190100, 190201, 190202, 190300, 190400, 200000, 210100, 210200, 210300, 220100, 220200, 220300, 220400, 220500, 220600, 220700, 220800, 220900, 221000, 300000, 410000, 610000, 620000, 640000],
'029' : [000000, 000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001301, 001302, 001401, 001402, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002300, 002400, 002501, 002502, 002600, 002701, 002702, 002800, 002900, 003000, 003100, 003201, 003202, 003301, 003302, 003400, 003500, 003600, 003700, 003800, 003901, 003902, 004001, 004002, 004100, 004200, 004300, 004401, 004402, 004500, 004601, 004602, 004700, 004800, 004900, 005000, 005100, 005201, 005202, 005300, 005400, 005500, 005600, 005700, 005800, 005900, 006000, 006100, 006201, 006202, 006301, 006302, 006400, 006501, 006502, 006601, 006602, 006701, 006702, 006800, 006900, 007000, 007101, 007102, 007201, 007202, 007302, 007303, 007304, 007400, 007500, 007600, 007700, 007800, 007901, 007902, 007903, 007904, 007905, 008001, 008002, 008003, 008101, 008102, 008201, 008202, 008300, 008400, 008500, 008600, 008700, 008800, 008900, 009003, 009004, 009006, 009007, 009008, 009104, 009106, 009107, 009108, 009109, 009110, 009112, 009113, 009114, 009200, 009301, 009302, 009401, 009402, 009501, 009502, 009600, 009701, 009702, 009800, 009900, 010001, 010002, 010003, 010101, 010102, 010103, 010200, 010300, 010400, 010500, 010600, 010700, 010803, 010804, 010805, 010806, 010807, 010901, 010902, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 011901, 011902, 012001, 012002, 012003, 012100, 012200, 012300, 012400, 012501, 012502, 012600, 012700, 012800, 012901, 012902, 013001, 013002, 013101, 013102, 013201, 013202, 013300, 013400, 013501, 013502, 013600, 013701, 013702, 013800, 013900, 014000, 014101, 014102, 014203, 014204, 014205, 014300, 014400, 014501, 014502, 014601, 014602, 014701, 014702, 014801, 014803, 014901, 014903, 014904, 015001, 015002, 015003, 015101, 015102, 015201, 015202, 015301, 015302, 015401, 015402, 015501, 015502, 015600, 015700, 015800, 015900, 016001, 016002, 016100, 940000, 940100],
'031' : [960100, 960200, 960300, 960498, 960598, 960700, 960800, 960900, 961000, 961100, 961200, 961300, 961400],
'033' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000, 951100, 951200, 991300],
'035' : [990100, 990200, 990300, 990400, 990500, 990600, 990700, 990800, 990900, 991000, 991100, 991200, 991300, 991400, 991500],
'037' : [940100, 950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000, 951100, 951200, 951300, 951400],
'039' : [080100, 080200, 080300, 080400, 080500, 080600, 080700, 080800, 080900, 081000, 081100],
'041' : [950100, 950300, 950400, 950500],
'043' : [010100, 010201, 010202, 010300, 010400, 010501, 010502, 010600, 010700, 010800, 010900, 011001, 011002, 011100, 011200, 011301, 011302, 011400, 011500],
'045' : [000000, 060100, 060200, 060300, 060400, 060500, 060600, 060700, 060800, 060900, 061000, 061100, 061200, 061300, 061400, 061500, 061600, 061700, 061800, 061900, 062100, 062200, 062400, 062500],
'047' : [000100, 000200, 000301, 000302, 000500, 000700, 000900, 001100, 001300, 001800, 002000, 002100, 002200, 002300, 002500, 002700, 002901, 002902, 003000, 003100, 003200, 003300, 003400, 003500, 003600, 003700, 003800, 003900, 004000, 004100, 004200, 004300, 004500, 004600, 004700, 004900, 005000, 005100, 005201, 005202, 005400, 005500, 005601, 005602, 005700, 005800, 005900, 006000, 006200, 006300, 006400, 006500, 006600, 006700, 006800, 006900, 007000, 007100, 007200, 007400, 007500, 007600, 007700, 007800, 008000, 008200, 008400, 008500, 008600, 008800, 009000, 009200, 009400, 009600, 009800, 010000, 010100, 010200, 010400, 010600, 010800, 011000, 011200, 011400, 011600, 011700, 011800, 012000, 012100, 012200, 012300, 012400, 012500, 012700, 012801, 012802, 012901, 012902, 013000, 013100, 013200, 013300, 013400, 013500, 013600, 013700, 013800, 013900, 014000, 014100, 014200, 014300, 014400, 014500, 014600, 014700, 014800, 014900, 015000, 015100, 015300, 015400, 015500, 015600, 015700, 015800, 015900, 016000, 016100, 016200, 016300, 016400, 016500, 016700, 016800, 016900, 017000, 017100, 017200, 017300, 017400, 017500, 017600, 017700, 017800, 017900, 018000, 018100, 018200, 018300, 018400, 018501, 018502, 018600, 018700, 018800, 018900, 019000, 019100, 019200, 019300, 019400, 019500, 019600, 019700, 019800, 019900, 020000, 020100, 020200, 020300, 020400, 020500, 020600, 020700, 020800, 021000, 021200, 021300, 021400, 021500, 021600, 021700, 021800, 021900, 022000, 022100, 022200, 022300, 022400, 022500, 022600, 022700, 022800, 022900, 023000, 023100, 023200, 023300, 023400, 023500, 023600, 023700, 023800, 023900, 024000, 024100, 024200, 024300, 024400, 024500, 024600, 024700, 024800, 024900, 025000, 025100, 025200, 025300, 025400, 025500, 025600, 025700, 025800, 025901, 025902, 026000, 026100, 026200, 026300, 026400, 026500, 026600, 026700, 026800, 026900, 027000, 027101, 027102, 027200, 027300, 027400, 027500, 027600, 027700, 027800, 027900, 028000, 028100, 028200, 028300, 028400, 028501, 028502, 028600, 028700, 028800, 028900, 029000, 029100, 029200, 029300, 029400, 029500, 029600, 029700, 029800, 029900, 030000, 030100, 030200, 030300, 030400, 030600, 030700, 030800, 030900, 031100, 031300, 031400, 031500, 031701, 031702, 031900, 032000, 032100, 032300, 032500, 032600, 032700, 032800, 032900, 033000, 033100, 033300, 033500, 033600, 033700, 033900, 034000, 034100, 034200, 034300, 034500, 034700, 034801, 034802, 034900, 035000, 035100, 035200, 035300, 035400, 035500, 035600, 035700, 035900, 036001, 036002, 036100, 036200, 036300, 036400, 036501, 036502, 036600, 036700, 036900, 037000, 037100, 037300, 037400, 037500, 037700, 037900, 038100, 038200, 038300, 038500, 038600, 038700, 038800, 038900, 039000, 039100, 039200, 039300, 039400, 039500, 039600, 039700, 039800, 039900, 040000, 040100, 040200, 040300, 040400, 040500, 040600, 040700, 040800, 040900, 041000, 041100, 041200, 041300, 041401, 041402, 041500, 041600, 041700, 041800, 041900, 042000, 042100, 042200, 042300, 042400, 042500, 042600, 042700, 042800, 042900, 043000, 043100, 043200, 043300, 043400, 043500, 043600, 043700, 043800, 043900, 044000, 044100, 044200, 044300, 044400, 044500, 044600, 044700, 044800, 045000, 045200, 045300, 045400, 045500, 045600, 045800, 046001, 046002, 046201, 046202, 046400, 046500, 046800, 047000, 047200, 047300, 047400, 047600, 047700, 047800, 048000, 048100, 048200, 048300, 048400, 048600, 048700, 048800, 048900, 049000, 049100, 049200, 049300, 049400, 049500, 049600, 049700, 049800, 049900, 050000, 050100, 050201, 050202, 050300, 050400, 050500, 050600, 050700, 050800, 050900, 051000, 051100, 051200, 051300, 051400, 051500, 051600, 051700, 051800, 051900, 052000, 052200, 052300, 052400, 052500, 052600, 052700, 052800, 052900, 053000, 053100, 053200, 053300, 053400, 053500, 053600, 053700, 053800, 053900, 054000, 054200, 054300, 054400, 054500, 054600, 054700, 054800, 054900, 055000, 055100, 055200, 055300, 055400, 055500, 055600, 055700, 055800, 055900, 056000, 056200, 056300, 056400, 056500, 056600, 056700, 056800, 056900, 057000, 057100, 057200, 057300, 057400, 057500, 057600, 057700, 057800, 057900, 058000, 058200, 058400, 058600, 058800, 058900, 059000, 059100, 059200, 059300, 059401, 059402, 059600, 059800, 060000, 060600, 060800, 061001, 061002, 061200, 061400, 061600, 061800, 062200, 062600, 062800, 063200, 063600, 063800, 064000, 064200, 064400, 064600, 064800, 065000, 065200, 065400, 065600, 065800, 066000, 066200, 066600, 067000, 067200, 067400, 067600, 067800, 068000, 068200, 068600, 068800, 069000, 069200, 069600, 069800, 070000, 070201, 070202, 070203, 070600, 072000, 072200, 072400, 072600, 072800, 073000, 073200, 073400, 073600, 073800, 074000, 074200, 074400, 074600, 074800, 075000, 075200, 075400, 075600, 075800, 076000, 076200, 076400, 076600, 077000, 077200, 077400, 077600, 078000, 078200, 078400, 078600, 078800, 079000, 079200, 079400, 079600, 079800, 080000, 080200, 080400, 080600, 081000, 081200, 081400, 081600, 081800, 082000, 082200, 082400, 082600, 082800, 083000, 083200, 083400, 083600, 083800, 084000, 084200, 084400, 084600, 084800, 085000, 085200, 085400, 085600, 085800, 086000, 086200, 086400, 086600, 086800, 087000, 087200, 087401, 087402, 087600, 087800, 088000, 088200, 088400, 088600, 088800, 089000, 089200, 089400, 089600, 089800, 090000, 090200, 090400, 090600, 090800, 091000, 091200, 091400, 091600, 091800, 092000, 092200, 092800, 093000, 093400, 093600, 093800, 094000, 094200, 094401, 094402, 095000, 095400, 095600, 095800, 096000, 096200, 096400, 096600, 096800, 097000, 097400, 098200, 098400, 098600, 098800, 099000, 099200, 099400, 099600, 099800, 100400, 100600, 100800, 101000, 101200, 101400, 101600, 101800, 102000, 102200, 102400, 102600, 102800, 103400, 105800, 107000, 107800, 109800, 110000, 110200, 110600, 111000, 111200, 111400, 111800, 112000, 112200, 112400, 112600, 112800, 113000, 113200, 113400, 113600, 113800, 114000, 114201, 114202, 114600, 114800, 115000, 115200, 115400, 115600, 115800, 116000, 116200, 116400, 116600, 116800, 117000, 117201, 117202, 117400, 117601, 117602, 117800, 118000, 118201, 118202, 118400, 118600, 118800, 119000, 119200, 119400, 119600, 120000, 120200, 120800, 121000, 121400, 122000],
'049' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
'051' : [030100, 030201, 030202, 030300, 030400, 030500, 030600, 030700, 030800, 030900, 031000, 031100, 031200, 031300, 031400],
'053' : [030101, 030102, 030103, 030200, 030300, 030401, 030402, 030403, 030501, 030502, 030600, 030700, 030800, 030900, 031000, 031100],
'055' : [000000, 000200, 000700, 001000, 001300, 001500, 001800, 001900, 002000, 002100, 002200, 002300, 002400, 002700, 002900, 003000, 003100, 003200, 003300, 003400, 003500, 003600, 003700, 003801, 003802, 003803, 003804, 003900, 004000, 004100, 004602, 004701, 004702, 004800, 004900, 005000, 005100, 005200, 005300, 005400, 005500, 005600, 005700, 005800, 005900, 006000, 006100, 006200, 006300, 006400, 006500, 006600, 006700, 006800, 006900, 007000, 007100, 007500, 007600, 007700, 007801, 007802, 007900, 008000, 008100, 008200, 008301, 008302, 008400, 008500, 008600, 008701, 008702, 008800, 008900, 009200, 009301, 009302, 009400, 009500, 009601, 009602, 009603, 009604, 010100, 010200, 010300, 010400, 010500, 010601, 010602, 010700, 010800, 010901, 010902, 011000, 011100, 011201, 011203, 011205, 011206, 011301, 011302, 011400, 011501, 011503, 011504, 011505, 011601, 011603, 011604, 011605, 011703, 011705, 011706, 011707, 011708, 011800, 011901, 011902, 012000, 012100, 012201, 012202, 012301, 012303, 012304, 012400, 012500, 012600, 012700, 012800, 012900, 013001, 013002, 013101, 013103, 013104, 013202, 013203, 013204, 013300, 013401, 013402, 013503, 013504, 013505, 013506, 013601, 013603, 013604, 013701, 013702, 013800, 013901, 013902, 014001, 014003, 014004, 014102, 014103, 014104, 014202, 014203, 014204, 014301, 014302, 014400, 014501, 014503, 014504, 014505, 014600, 014700, 014802, 014803, 014804, 014901, 014903, 014904, 015000, 015101, 015102, 015200, 015301, 015302, 015400],
'057' : [070200, 070300, 070400, 070500, 070600, 070700, 070800, 070900, 072100, 072200, 072300, 072400, 072500, 072600, 072700, 072800],
'059' : [300100, 300300, 300400, 300500, 300600, 300700, 300800, 300900, 301000, 301101, 301102, 301200, 301300, 301400, 301500, 301600, 301700, 301800, 301900, 302000, 302101, 302102, 302200, 302300, 302400, 302501, 302502, 302600, 302700, 302800, 302900, 303000, 303101, 303102, 303201, 303202, 303301, 303302, 303400, 303500, 303600, 303700, 303800, 303900, 304001, 304002, 304100, 304201, 304202, 404300, 404400, 404500, 404600, 404700, 404800, 404901, 404902, 405000, 405100, 405200, 405301, 405302, 405400, 405500, 405600, 405700, 405800, 405900, 406001, 406002, 406100, 406201, 406202, 406300, 406400, 406501, 406502, 406600, 406700, 406800, 406900, 407000, 407101, 407102, 407201, 407202, 407301, 407302, 407401, 407402, 407501, 407502, 407600, 407700, 407801, 407802, 407900, 408000, 408100, 408200, 408300, 408400, 408500, 408600, 408700, 408800, 408900, 409000, 409100, 409200, 409300, 409400, 409500, 409600, 409700, 409800, 409900, 410000, 410100, 410200, 410300, 410400, 410500, 410600, 410700, 410800, 410900, 411000, 411100, 411200, 411301, 411302, 411400, 411500, 411600, 411700, 411800, 411901, 411902, 412000, 412100, 412200, 412301, 412302, 412400, 412500, 412600, 412700, 412800, 412900, 413001, 413002, 413100, 413200, 413300, 413400, 413500, 413600, 413700, 413803, 413804, 413900, 414001, 414002, 414100, 414201, 414202, 414301, 414302, 414400, 414501, 414502, 414600, 414700, 414800, 414900, 415000, 415101, 415102, 415201, 415202, 415300, 415401, 415402, 415500, 415600, 415700, 415801, 415802, 415900, 416000, 416100, 416201, 416202, 416300, 416400, 416500, 416600, 416701, 416702, 416800, 416900, 517000, 517101, 517102, 517200, 517301, 517302, 517400, 517500, 517600, 517701, 517704, 517705, 517706, 517801, 517802, 517901, 517902, 518000, 518100, 518201, 518203, 518204, 518300, 518400, 518501, 518502, 518600, 518700, 518800, 518900, 519000, 519100, 519200, 519300, 519400, 519500, 519601, 519602, 519702, 519703, 519704, 519801, 519802, 519900, 520001, 520002, 520100, 520200, 520300, 520401, 520402, 520501, 520502, 520600, 520700, 520800, 520900, 521000, 521100, 521200, 521301, 521302, 521400, 521500, 521601, 521602, 521700, 521801, 521802, 521900, 522000, 522100, 522200, 522300, 522400],
'061' : [000100, 000201, 000202, 000500, 000600, 000700, 000800, 000900, 001001, 001002, 001200, 001300, 001401, 001402, 001501, 001502, 001600, 001800, 002000, 002100, 002201, 002202, 002400, 002500, 002601, 002602, 002700, 002800, 002900, 003001, 003002, 003100, 003200, 003300, 003400, 003601, 003602, 003800, 003900, 004000, 004100, 004200, 004300, 004401, 004402, 004500, 004700, 004800, 004900, 005000, 005100, 005200, 005300, 005400, 005501, 005502, 005600, 005700, 005800, 005900, 006000, 006100, 006200, 006300, 006400, 006500, 006600, 006700, 006800, 006900, 007000, 007100, 007200, 007300, 007400, 007500, 007600, 007700, 007800, 007900, 008000, 008100, 008200, 008300, 008400, 008600, 008700, 008800, 008900, 009000, 009100, 009200, 009300, 009400, 009500, 009600, 009700, 009800, 009900, 010000, 010100, 010200, 010300, 010400, 010601, 010602, 010800, 010900, 011000, 011100, 011201, 011202, 011203, 011300, 011401, 011402, 011500, 011600, 011700, 011800, 011900, 012000, 012100, 012200, 012400, 012500, 012600, 012700, 012800, 012900, 013000, 013100, 013200, 013300, 013400, 013500, 013600, 013700, 013800, 013900, 014000, 014200, 014300, 014401, 014402, 014500, 014601, 014602, 014700, 014801, 014802, 014900, 015001, 015002, 015100, 015200, 015300, 015400, 015500, 015601, 015602, 015700, 015801, 015802, 015900, 016001, 016002, 016100, 016200, 016300, 016400, 016500, 016600, 016700, 016800, 016900, 017000, 017100, 017201, 017202, 017300, 017401, 017402, 017500, 017700, 017800, 017900, 018000, 018100, 018200, 018300, 018400, 018500, 018600, 018700, 018800, 018900, 019000, 019100, 019200, 019300, 019400, 019500, 019600, 019701, 019702, 019800, 019900, 020000, 020101, 020102, 020200, 020300, 020400, 020500, 020600, 020701, 020702, 020800, 020901, 020902, 021000, 021100, 021200, 021301, 021302, 021400, 021600, 021701, 021702, 021800, 021900, 022000, 022101, 022102, 022200, 022301, 022302, 022400, 022500, 022600, 022701, 022702, 022800, 022900, 023000, 023101, 023102, 023200, 023300, 023400, 023501, 023502, 023600, 023700, 023800, 023900, 024000, 024100, 024301, 024302, 024500, 024700, 024900, 025100, 025300, 025500, 026100, 026300, 026500, 026700, 026900, 027100, 027300, 027500, 027700, 027900, 028100, 028300, 028500, 028700, 028900, 029100, 029300, 029500, 029700, 030100, 030300, 030700, 030900, 031100, 031300, 031500, 031701, 031702, 031900],
'063' : [000000, 020100, 020200, 020300, 020400, 020500, 020600, 020700, 020900, 021000, 021100, 021200, 021300, 021400, 021700, 022000, 022100, 022200, 022300, 022401, 022500, 022601, 022602, 022702, 022711, 022712, 022801, 022803, 022804, 022900, 023000, 023100, 023200, 023300, 023401, 023402, 023403, 023500, 023600, 023700, 023800, 023901, 023902, 024001, 024002, 024101, 024102, 024201, 024202, 024301, 024302, 024303, 024401, 024403, 024404, 024405, 024406, 024501, 024502, 940100],
'065' : [020100, 020300, 020701, 020702, 020802, 020803, 020900, 021000, 021101, 021102, 021103, 021201, 021202, 021301, 021302, 021303, 021401, 021402, 021404, 021500, 021601, 021602, 021701, 021702, 021800, 021900, 022000, 022100, 022200, 022300, 022400, 022500, 022600, 022701, 022702, 022800, 022900, 023000, 023100, 023200, 023300, 023400, 023501, 023502, 023600, 023701, 023702, 023800, 023901, 023902, 024000, 024100, 024200, 024301, 024302, 024303, 024400, 024500, 024600, 024700, 024800, 024900, 025001, 025002, 025003, 025100, 025200, 025300, 025400, 025500, 025600, 025700, 025800],
'067' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001300, 001400, 001500, 001600, 001701, 001702, 001800, 001900, 002000, 002100, 002200, 002300, 002400, 002700, 002800, 002900, 003000, 003200, 003400, 003500, 003601, 003602, 003800, 003900, 004000, 004200, 004300, 004400, 004500, 004600, 004800, 004900, 005000, 005100, 005200, 005300, 005400, 005500, 005601, 005602, 005700, 005800, 005900, 006000, 006101, 006102, 006103, 010100, 010200, 010301, 010321, 010322, 010400, 010500, 010600, 010700, 010800, 010900, 011011, 011012, 011021, 011022, 011101, 011102, 011201, 011202, 011231, 011232, 011241, 011242, 011300, 011401, 011402, 011500, 011600, 011700, 011800, 011900, 012000, 012100, 012200, 012300, 012400, 012500, 012600, 012700, 012800, 012900, 013000, 013100, 013200, 013300, 013400, 013500, 013600, 013700, 013800, 013900, 014000, 014100, 014200, 014300, 014400, 014500, 014600, 014700, 014800, 014900, 015000, 015100, 015201, 015202, 015203, 015300, 015400, 015500, 015600, 015700, 015800, 015900, 016001, 016002, 016100, 016200, 016300, 016400, 016501, 016502, 016600, 016700, 016801, 016802, 016901, 016902],
'069' : [050100, 050201, 050202, 050301, 050302, 050400, 050500, 050600, 050800, 050900, 051000, 051100, 051200, 051300, 051400, 051500, 051600, 051700, 051800, 051900, 052000, 052100, 052200],
'071' : [000100, 000200, 000300, 000400, 000500, 000600, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 002100, 002200, 002300, 010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 011900, 012100, 012200, 012300, 012400, 012500, 012600, 012700, 012800, 012900, 013000, 013100, 013200, 013300, 013400, 013500, 013600, 013700, 013800, 013900, 014100, 014201, 014202, 014301, 014302, 014400, 014500, 014600, 014700, 014800, 014900, 015001, 015002],
'073' : [000000, 040200, 040300, 040400, 040500, 040600, 040700, 040800, 401001, 401002],
'075' : [000000, 020100, 020200, 020301, 020302, 020400, 020500, 020600, 020701, 020702, 020703, 020800, 020901, 020902, 021000, 021101, 021102, 021103, 021104, 021200, 021300, 021401, 021402, 021501, 021502, 021601, 021602, 021603, 021604, 021605],
'077' : [990100, 990200, 990300, 990400, 990500, 990600, 990700, 990800, 990900, 991000, 991100, 991200, 991300, 991400, 991500, 991600],
'079' : [010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 011900],
'081' : [000100, 000200, 000400, 000600, 000700, 000800, 001000, 001200, 001400, 001600, 001800, 001900, 002000, 002200, 002400, 002500, 002600, 002700, 002800, 002900, 003000, 003100, 003200, 003400, 003500, 003600, 003700, 003800, 003900, 004001, 004002, 004100, 004200, 004300, 004401, 004402, 004500, 004700, 004900, 005000, 005100, 005200, 005300, 005400, 005500, 005700, 005800, 005900, 006100, 006200, 006300, 006500, 006700, 006900, 007100, 007300, 007500, 007700, 007900, 008100, 008300, 008600, 008700, 008800, 009100, 009400, 009500, 009600, 009700, 009800, 009900, 010000, 010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 011900, 012000, 012100, 012200, 012300, 012400, 012601, 012602, 012800, 013000, 013200, 013400, 013500, 013600, 013700, 013800, 014000, 014100, 014201, 014202, 014300, 014400, 014500, 014700, 014800, 014900, 015000, 015100, 015200, 015300, 015400, 015500, 015600, 015700, 015800, 015900, 016100, 016300, 016400, 016600, 016800, 016900, 017000, 017100, 017200, 017400, 017600, 017800, 017900, 018000, 018100, 018200, 018300, 018401, 018402, 018500, 018600, 018700, 018800, 018900, 019000, 019100, 019200, 019401, 019402, 019600, 019700, 019800, 020200, 020400, 020501, 020502, 020600, 020800, 021200, 021400, 021600, 021900, 022001, 022002, 022900, 023000, 023200, 023500, 023600, 023800, 024000, 024300, 024400, 024500, 024600, 024700, 024800, 024900, 025000, 025100, 025200, 025300, 025500, 025700, 025800, 025900, 026000, 026100, 026200, 026300, 026400, 026500, 026600, 026700, 026900, 027000, 027100, 027200, 027300, 027400, 027500, 027600, 027700, 027800, 027900, 028000, 028100, 028200, 028300, 028400, 028500, 028700, 028800, 028900, 029100, 029200, 029300, 029500, 029700, 029900, 030400, 030901, 030902, 031700, 032000, 032700, 032800, 032900, 033000, 033100, 033401, 033402, 033700, 033900, 034700, 035100, 035200, 035300, 035500, 035800, 036100, 036300, 036500, 036600, 036700, 036800, 036900, 037100, 037300, 037500, 037600, 037700, 037900, 038100, 038300, 038400, 039400, 039800, 039900, 040000, 040100, 040200, 040300, 040400, 040500, 040700, 040900, 041000, 041100, 041300, 041400, 041500, 042000, 042200, 042600, 042700, 043200, 043400, 043700, 043900, 044000, 044200, 044300, 044601, 044602, 044800, 045000, 045200, 045400, 045500, 045600, 045700, 045800, 045900, 046000, 046100, 046200, 046300, 046400, 046500, 046600, 046700, 046800, 046900, 047000, 047100, 047200, 047300, 047500, 047600, 047800, 047900, 048000, 048100, 048200, 048300, 048400, 048500, 048900, 049200, 049301, 049302, 049500, 049600, 049700, 049900, 050000, 050201, 050202, 050400, 050500, 050600, 050700, 050800, 051000, 051100, 051200, 051300, 051500, 051600, 051700, 051800, 052000, 052100, 052200, 052400, 052500, 052600, 052700, 052800, 052900, 053000, 053200, 053400, 053500, 053600, 053800, 053900, 054000, 054200, 054500, 054700, 054800, 054900, 055100, 055200, 055300, 055400, 055500, 055600, 055700, 055800, 055900, 056000, 056100, 056200, 056400, 056500, 056600, 056700, 056800, 057700, 057800, 057900, 058000, 058100, 058300, 058500, 058700, 058800, 058900, 059000, 059100, 059200, 059300, 059400, 059500, 059600, 059800, 059900, 060000, 060100, 060200, 060300, 060400, 060600, 060700, 060800, 061000, 061200, 061300, 061400, 061601, 061602, 061800, 061900, 062000, 062100, 062300, 062400, 062500, 062600, 062700, 062900, 063000, 063200, 063301, 063302, 063500, 063700, 063800, 063900, 064101, 064102, 064500, 064600, 065000, 065400, 065500, 065600, 065701, 065702, 065900, 066000, 066100, 066300, 066400, 066500, 066700, 066900, 067101, 067102, 067700, 067900, 068000, 068200, 068300, 068700, 069000, 069300, 069400, 069500, 069701, 069702, 070300, 070700, 070900, 071100, 071301, 071302, 071600, 071700, 071900, 072100, 072500, 072700, 072900, 073100, 073300, 073500, 073700, 073900, 074100, 074300, 074500, 074700, 075700, 076600, 076800, 076901, 076902, 077100, 077300, 077500, 077901, 077902, 077903, 077904, 077905, 078800, 079000, 079200, 079300, 079700, 079900, 080301, 080302, 080900, 081400, 081800, 083700, 083800, 084000, 084500, 084601, 084602, 085100, 085300, 085500, 085700, 085900, 086100, 086300, 086400, 086500, 086700, 087100, 087500, 088400, 088901, 088902, 089200, 090700, 091601, 091602, 091800, 091900, 092200, 092500, 092800, 092900, 093400, 093800, 093900, 094201, 094202, 094203, 094500, 094700, 095200, 096200, 096400, 097201, 097202, 097300, 098100, 098700, 099100, 099200, 099701, 099702, 099800, 099900, 100800, 101001, 101002, 101700, 102900, 103201, 103202, 103300, 103900, 104700, 105900, 107201, 107202, 108101, 108102, 108300, 109100, 109700, 109900, 111300, 112300, 112900, 113300, 113900, 114100, 114700, 115100, 115500, 115700, 115900, 116100, 116300, 116700, 117100, 117500, 118100, 118500, 118700, 118900, 119100, 119300, 119500, 119900, 120100, 120300, 120500, 120700, 121100, 121500, 122300, 122701, 122702, 124100, 124700, 125700, 126500, 126700, 127300, 127500, 128300, 129101, 129102, 130100, 131900, 133300, 133900, 134100, 134700, 136700, 137700, 138501, 138502, 139900, 140300, 140901, 140902, 141701, 141702, 142900, 143500, 144100, 144700, 145101, 145102, 145900, 146300, 146700, 147100, 147900, 148300, 150701, 150702, 152901, 152902, 155101, 155102, 156700, 157101, 157102, 157901, 157902, 157903, 161700, 162100, 162200],
'083' : [040100, 040200, 040300, 040400, 040500, 040600, 040700, 040800, 040900, 041000, 041100, 041200, 041300, 041400, 051500, 051600, 051701, 051702, 051800, 051901, 051902, 052002, 052003, 052004, 052101, 052102, 052103, 052201, 052202, 052301, 052303, 052304, 052402, 052403, 052404, 052501, 052502, 052503, 052601, 052602, 052603],
'085' : [000300, 000600, 000700, 000800, 000900, 001100, 001500, 001700, 001800, 002001, 002002, 002100, 002700, 002900, 003300, 003600, 003900, 004000, 004700, 005000, 005900, 006400, 006500, 007000, 007400, 007500, 007700, 008100, 008900, 009100, 009601, 009602, 009700, 010500, 011201, 011202, 011401, 011402, 012100, 012200, 012500, 012803, 012804, 013201, 013203, 013204, 013301, 013302, 013400, 013800, 014100, 014603, 014604, 014605, 014606, 014700, 015100, 015400, 015601, 015602, 015603, 016901, 016902, 017005, 017006, 017007, 017008, 017009, 017010, 017300, 017600, 017700, 017900, 018500, 018701, 018702, 018901, 018902, 019600, 019700, 020100, 020700, 020801, 020803, 020804, 021300, 021900, 022300, 022600, 023100, 023600, 023900, 024400, 024700, 024800, 025100, 027301, 027302, 027702, 027703, 027704, 027900, 029102, 029103, 029104, 030301, 030302, 031901, 031902, 032300],
'087' : [010101, 010102, 010200, 010501, 010502, 010503, 010601, 010602, 010701, 010702, 010703, 010801, 010802, 010803, 010804, 010901, 010902, 011000, 011101, 011102, 011200, 011301, 011302, 011303, 011401, 011402, 011403, 011501, 011502, 011503, 011504, 011601, 011602, 011603, 011700, 011800, 011900, 012000, 012101, 012102, 012103, 012104, 012201, 012202, 012300, 012400, 012501, 012502, 012600, 012700, 012800, 013001, 013002, 013003, 013100, 013200, 013300, 013400],
'089' : [990100, 990200, 990300, 990400, 990500, 990600, 990700, 990800, 990900, 991000, 991100, 991200, 991300, 991400, 991500, 991600, 991700, 991800, 991900, 992000, 992100, 992300, 992400, 992500, 992600, 992700, 992800, 992900],
'091' : [060101, 060102, 060200, 060300, 060400, 060501, 060502, 060503, 060600, 060701, 060702, 060800, 060901, 060902, 061000, 061100, 061200, 061301, 061302, 061303, 061401, 061402, 061500, 061600, 061701, 061702, 061800, 061901, 061903, 062000, 062100, 062200, 062300, 062402, 062403, 062404, 062501, 062502, 062503, 062504, 062505, 062601, 062602, 062700, 062800],
'093' : [020101, 020102, 020200, 020300, 020401, 020402, 020500, 020600, 020700, 020800, 020900, 021001, 021002, 021101, 021102, 021200, 021301, 021302, 021400, 021500, 021600, 021700, 021800, 031900, 032000, 032101, 032102, 032200, 032300, 032402, 032403, 032404, 032502, 032503, 032504, 032601, 032602, 032700, 032801, 032802, 032901, 032902, 033002, 033003, 033004, 033101, 033102],
'095' : [990100, 990200, 990300, 990400, 990500, 990600, 990700, 990800],
'097' : [950100, 950200, 950300, 950400, 950500],
'099' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000],
'101' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100, 961200, 961300, 961400, 961500, 961600, 961700, 961800, 961900, 962000, 962100, 962200, 962300, 962400, 962500, 962600, 962700, 962800, 962900, 963000],
'103' : [110101, 110102, 110200, 110300, 110401, 110402, 110501, 110502, 110600, 110801, 110803, 110901, 110902, 111001, 111002, 111100, 111201, 111202, 111300, 111401, 111402, 111503, 111504, 111505, 111506, 111601, 111602, 111701, 111703, 111704, 111801, 111802, 111803, 111804, 111900, 112001, 112002, 112102, 112103, 112104, 112204, 112206, 112210, 112211, 112212, 112213, 112214, 122300, 122403, 122404, 122405, 122406, 122501, 122502, 122601, 122602, 122603, 122704, 122705, 122706, 122707, 122801, 122802, 122901, 122902, 123001, 123002, 123101, 123102, 123201, 123202, 123301, 123302, 123401, 123402, 123500, 123600, 123701, 123702, 123801, 123802, 123900, 124001, 124002, 124101, 124102, 124200, 124300, 124401, 124402, 124500, 124601, 124602, 134702, 134703, 134704, 134902, 134903, 134904, 134906, 134907, 135002, 135003, 135004, 135005, 135101, 135102, 135103, 135104, 135201, 135202, 135204, 135205, 135206, 135301, 135303, 135304, 135401, 135402, 135403, 145500, 145601, 145602, 145603, 145604, 145605, 145701, 145702, 145703, 145704, 145803, 145804, 145805, 145807, 145808, 145901, 145902, 145903, 146001, 146002, 146003, 146101, 146102, 146103, 146104, 146105, 146201, 146202, 146203, 146204, 146205, 146206, 146300, 146402, 146403, 146404, 146500, 146604, 146605, 146606, 146607, 146608, 146611, 146612, 146613, 146614, 146615, 146703, 146704, 146705, 146706, 146800, 146901, 146902, 147001, 147002, 147100, 147200, 147300, 147401, 147402, 147501, 147502, 147503, 147601, 147602, 147701, 147702, 147802, 147803, 147804, 147901, 147902, 158001, 158002, 158005, 158006, 158007, 158009, 158102, 158103, 158104, 158107, 158108, 158110, 158111, 158112, 158114, 158115, 158116, 158202, 158203, 158205, 158206, 158207, 158304, 158306, 158308, 158309, 158310, 158311, 158315, 158317, 158318, 158319, 158320, 158321, 158401, 158402, 158403, 158405, 158406, 158407, 158408, 158502, 158505, 158506, 158507, 158508, 158509, 158510, 158511, 158512, 158604, 158605, 158606, 158607, 158608, 158609, 158704, 158705, 158707, 158708, 158709, 158710, 158711, 158712, 158802, 158803, 158804, 158900, 159000, 159102, 159103, 159105, 159106, 159107, 159108, 159201, 159203, 159204, 159300, 159404, 159406, 159407, 159408, 159409, 159410, 159504, 159505, 159506, 159507, 159508, 159601, 159602, 169701, 169702, 169800, 169900, 170001, 170002, 170101, 170201, 170202, 180300, 190401, 190402, 190403, 190501, 190502, 190601, 190602, 190704, 190705, 190706, 190707, 190708, 190800, 200900, 201001, 201003, 201004, 201100, 201200, 201300, 201400, 201500, 201600, 201800, 201900],
'105' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000, 951100, 951200, 951300, 951500, 951600, 951700, 951800, 951900, 952000, 952100, 952200, 952300, 952400, 952500],
'107' : [020100, 020200, 020300, 020401, 020402, 020500, 020600, 020701, 020702, 020703],
'109' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002300],
'111' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000, 951100, 951200, 951300, 951400, 951500, 951600, 951700, 951800, 951900, 952000, 952100, 952200, 952300, 952400, 952500, 952600, 952700, 952800, 952900, 953000, 953300, 953400, 953500, 953600, 953700, 953800, 953900, 954000, 954100, 954200, 954300, 954400, 954500, 954600, 954700, 954800, 954900, 955000, 955200],
'113' : [070100, 070200, 070300, 070400, 070500, 070600, 070700, 070800, 070900, 071000, 072000, 073000, 073500, 074000, 075000, 076000, 078000],
'115' : [080100, 080200, 080300, 081000, 082000, 084000, 085000, 086000, 087000, 088000, 089000, 090000, 091000, 092000, 093000, 094000],
'117' : [000000, 020101, 020102, 020200, 020300, 020401, 020402, 020500, 020600, 020700, 020800, 020900, 021000, 021100, 021200, 021400, 021501, 021502, 021600, 021700, 021800],
'119' : [000101, 000103, 000104, 000201, 000202, 000203, 000300, 000401, 000402, 000500, 000600, 000701, 000702, 000801, 000802, 000803, 000900, 001000, 001101, 001102, 001200, 001301, 001302, 001303, 001401, 001402, 001403, 001502, 001503, 001504, 001505, 001600, 001700, 001800, 001900, 002000, 002101, 002103, 002104, 002105, 002106, 002107, 002201, 002202, 002203, 002204, 002300, 002401, 002402, 002403, 002404, 002405, 002600, 002700, 002800, 002900, 003000, 003100, 003200, 003300, 003400, 003500, 003600, 003700, 003800, 003900, 004000, 004100, 004200, 004300, 004400, 004500, 004600, 004700, 004800, 004900, 005001, 005002, 005100, 005200, 005300, 005400, 005500, 005600, 005701, 005702, 005800, 005901, 005902, 006000, 006100, 006200, 006300, 006400, 006500, 006600, 006700, 006801, 006802, 006900, 007000, 007100, 007200, 007300, 007401, 007402, 007500, 007600, 007700, 007800, 007900, 008000, 008100, 008200, 008301, 008302, 008401, 008403, 008404, 008500, 008601, 008602, 008700, 008800, 008901, 008902, 009000, 009100, 009200, 009300, 009400, 009500, 009600, 009701, 009702, 009703, 009800, 009900, 010000, 010100, 010200, 010300, 010400, 010500, 010600, 010701, 010702, 010801, 010803, 010804, 010901, 010902, 010903, 011000, 011101, 011102, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 011901, 011902, 012000, 012101, 012102, 012200, 012301, 012303, 012304, 012400, 012501, 012502, 012503, 012600, 012700, 012800, 012900, 013000, 013102, 013103, 013104, 013201, 013202, 013301, 013303, 013304, 013400, 013500, 013600, 013700, 013800, 013900, 014000, 014100, 014200, 014300, 014400, 014500, 014603, 014604, 014605, 014606, 014607, 014701, 014703, 014704, 014804, 014805, 014806, 014807, 014808, 014809, 014902, 014905, 014906, 014907, 014908, 015000],
'121' : [990100, 990200, 990300, 990400, 990500, 990600, 990700, 990800, 990900, 991000, 991100],
'123' : [990100, 990200, 990300, 990400, 990500]]]]></entry>
        <entry id="census2000_tx" type="java"><![CDATA[['001' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000],
'003' : [950100, 950200, 950300, 950400],
'005' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300],
'007' : [950100, 950200, 950300, 950400, 950500],
'009' : [020100, 020200, 020300],
'011' : [950100],
'013' : [960100, 960201, 960202, 960300, 960401, 960402, 960500, 960600],
'015' : [760100, 760200, 760300, 760400, 760500],
'017' : [950100],
'019' : [980100, 980200, 980300, 980400],
'021' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
'023' : [950100, 950200],
'025' : [950100, 950200, 950300, 950400, 950500, 950600],
'027' : [020100, 020200, 020300, 020400, 020500, 020600, 020701, 020702, 020800, 020900, 021000, 021100, 021201, 021202, 021203, 021301, 021302, 021303, 021400, 021500, 021601, 021602, 021700, 021800, 021901, 021902, 022000, 022101, 022102, 022103, 022200, 022300, 022401, 022402, 022500, 022600, 022801, 022900, 023000, 023102, 023103, 023104, 023200, 023300, 023401, 023402, 023500],
'029' : [110100, 110200, 110300, 110400, 110500, 110600, 110700, 110800, 110900, 111000, 120100, 120200, 120300, 120400, 120501, 120502, 120600, 120701, 120702, 120800, 120901, 120902, 121000, 121108, 121109, 121110, 121111, 121112, 121114, 121115, 121116, 121117, 121118, 121203, 121204, 121205, 121206, 121300, 121402, 121403, 121404, 121501, 121504, 121505, 121506, 121507, 121508, 121601, 121603, 121604, 121700, 121801, 121802, 121803, 121804, 121806, 121807, 121901, 121902, 130100, 130200, 130300, 130400, 130500, 130600, 130700, 130800, 130900, 131000, 131100, 131200, 131300, 131400, 131501, 131502, 131601, 131604, 131605, 131606, 131607, 131700, 131800, 140100, 140200, 140300, 140400, 140500, 140600, 140700, 140800, 140900, 141000, 141100, 141200, 141300, 141401, 141402, 141500, 141600, 141700, 141800, 141900, 150100, 150200, 150300, 150400, 150501, 150502, 150600, 150700, 150800, 150900, 151000, 151100, 151200, 151300, 151400, 151500, 151600, 151700, 151800, 151900, 152000, 152100, 152200, 160100, 160200, 160300, 160400, 160500, 160600, 160701, 160702, 160800, 160900, 161000, 161100, 161200, 161301, 161302, 161401, 161402, 161501, 161502, 161600, 161700, 161800, 161900, 162001, 162002, 170101, 170102, 170200, 170300, 170401, 170402, 170500, 170600, 170700, 170800, 170900, 171000, 171100, 171200, 171300, 171400, 171500, 171600, 171700, 171801, 171802, 171902, 171903, 171906, 171907, 171908, 171909, 171910, 171911, 171912, 172001, 172002, 180100, 180201, 180202, 180300, 180400, 180501, 180503, 180504, 180601, 180602, 180701, 180702, 180800, 180901, 180902, 181001, 181003, 181004, 181005, 181100, 181200, 181301, 181302, 181303, 181401, 181402, 181503, 181504, 181505, 181506, 181601, 181602, 181701, 181703, 181704, 181705, 181706, 181711, 181712, 181713, 181714, 181715, 181716, 181717, 181718, 181719, 181801, 181803, 181806, 181807, 181808, 181809, 181810, 181811, 181812, 181900, 182000, 182101, 182102, 182103, 182104, 190100, 190200, 190300, 190400, 190501, 190502, 190601, 190602, 190700, 190800, 190901, 190902, 191002, 191003, 191004, 191101, 191102, 191200, 191301, 191302, 191402, 191403, 191405, 191406, 191407, 191408, 191409, 191501, 191502, 191600, 191700, 191802, 191803, 191804, 191805],
'031' : [950100, 950200],
'033' : [950100],
'035' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
'037' : [010100, 010400, 010500, 010600, 010700, 010800, 010901, 010902, 011000, 011100, 011200, 011300, 011401, 011402, 011500, 011600, 011700],
'039' : [660100, 660200, 660300, 660400, 660500, 660600, 660700, 660800, 660900, 661000, 661100, 661200, 661300, 661400, 661500, 661600, 661700, 661800, 661900, 662000, 662100, 662200, 662300, 662400, 662500, 662600, 662700, 662800, 662900, 663000, 663100, 663200, 663300, 663400, 663500, 663600, 663700, 663800, 663900, 664000, 664100, 664200, 664300, 664400, 664500],
'041' : [000100, 000201, 000202, 000300, 000400, 000500, 000603, 000604, 000700, 000800, 000900, 001000, 001100, 001301, 001302, 001303, 001400, 001500, 001601, 001603, 001604, 001700, 001801, 001802, 001900, 002001, 002002, 002003, 002004, 002005],
'043' : [950100, 950200, 950300, 950400],
'045' : [950200],
'047' : [950100, 950200],
'049' : [950100, 950200, 950300, 950500, 950600, 950700, 950800, 950900, 951000, 951100, 951200, 951300],
'051' : [970100, 970200, 970300, 970400, 970500],
'053' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800],
'055' : [960100, 960200, 960300, 960400, 960500, 960600, 960700],
'057' : [990100, 990200, 990300, 990400, 990500],
'059' : [030100, 030200],
'061' : [010100, 010201, 010202, 010300, 010401, 010402, 010500, 010601, 010602, 010700, 010800, 010900, 011000, 011100, 011200, 011301, 011302, 011400, 011500, 011600, 011700, 011801, 011802, 011901, 011902, 011903, 012000, 012100, 012200, 012301, 012302, 012303, 012304, 012401, 012402, 012403, 012504, 012505, 012506, 012507, 012508, 012604, 012605, 012606, 012607, 012608, 012609, 012610, 012611, 012612, 012613, 012700, 012800, 012900, 013002, 013003, 013004, 013102, 013104, 013106, 013203, 013204, 013205, 013206, 013207, 013208, 013303, 013304, 013305, 013306, 013307, 013308, 013309, 013401, 013402, 013500, 013600, 013700, 013801, 013802, 013901, 013902, 013903, 014001, 014002, 014100],
'063' : [950100, 950200],
'065' : [950100, 950200],
'067' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
'069' : [950100, 950200, 950300],
'071' : [710100, 710200, 710300, 710400, 710500, 710600],
'073' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000, 951100],
'075' : [950100, 950200],
'077' : [030200, 030301, 030302],
'079' : [950100],
'081' : [950100, 950200],
'083' : [950300, 950600, 950700],
'085' : [030100, 030200, 030300, 030401, 030402, 030501, 030502, 030503, 030601, 030602, 030700, 030800, 030900, 031001, 031002, 031100, 031200, 031303, 031304, 031305, 031306, 031307, 031401, 031403, 031404, 031503, 031504, 031505, 031506, 031611, 031612, 031613, 031620, 031621, 031622, 031623, 031624, 031625, 031626, 031627, 031628, 031629, 031630, 031631, 031632, 031633, 031634, 031635, 031636, 031637, 031638, 031639, 031640, 031641, 031642, 031643, 031644, 031645, 031646, 031647, 031648, 031649, 031650, 031651, 031652, 031653, 031703, 031704, 031705, 031706, 031707, 031708, 031709, 031710, 031802, 031803, 031804, 031805, 031900, 032003, 032004, 032005, 032007, 032008, 032009],
'087' : [950100, 950200],
'089' : [750100, 750200, 750300, 750400, 750500],
'091' : [310100, 310200, 310300, 310401, 310402, 310500, 310601, 310602, 310700, 310800, 310900],
'093' : [950100, 950200, 950300, 950400],
'095' : [950100, 950200],
'097' : [990100, 990200, 990400, 990500, 990600, 990700, 990800, 990900, 991000],
'099' : [010100, 010200, 010300, 010400, 010500, 010601, 010602, 010701, 010702, 010801, 010802],
'101' : [950100],
'103' : [950100],
'105' : [950100],
'107' : [950100, 950200, 950300],
'109' : [950100, 950200],
'111' : [950100, 950300],
'113' : [000100, 000201, 000202, 000300, 000401, 000403, 000404, 000405, 000500, 000601, 000603, 000604, 000701, 000702, 000800, 000900, 001001, 001002, 001101, 001102, 001202, 001203, 001204, 001301, 001302, 001400, 001502, 001503, 001504, 001600, 001701, 001702, 001800, 001900, 002000, 002100, 002200, 002400, 002500, 002701, 002702, 002900, 003101, 003201, 003300, 003400, 003500, 003700, 003800, 003901, 003902, 004000, 004100, 004201, 004202, 004300, 004400, 004500, 004600, 004700, 004800, 004900, 005000, 005100, 005200, 005300, 005400, 005500, 005600, 005700, 005901, 005902, 006001, 006002, 006100, 006200, 006301, 006302, 006400, 006501, 006502, 006700, 006800, 006900, 007101, 007102, 007201, 007202, 007301, 007302, 007400, 007500, 007601, 007604, 007605, 007700, 007801, 007804, 007805, 007806, 007809, 007810, 007811, 007812, 007813, 007814, 007815, 007816, 007818, 007819, 007902, 007903, 007905, 007906, 007907, 007908, 008000, 008100, 008200, 008400, 008500, 008603, 008604, 008701, 008703, 008704, 008705, 008801, 008802, 008900, 009000, 009101, 009103, 009104, 009105, 009201, 009202, 009301, 009303, 009304, 009401, 009402, 009500, 009603, 009604, 009605, 009607, 009608, 009609, 009610, 009611, 009701, 009702, 009802, 009803, 009804, 009900, 010000, 010101, 010102, 010200, 010400, 010500, 010601, 010602, 010701, 010703, 010704, 010801, 010802, 010803, 010901, 010902, 011001, 011002, 011101, 011103, 011104, 011105, 011200, 011300, 011401, 011402, 011500, 011601, 011602, 011701, 011702, 011800, 011900, 012000, 012100, 012204, 012206, 012207, 012208, 012209, 012210, 012211, 012301, 012302, 012400, 012500, 012601, 012602, 012701, 012702, 012800, 012900, 013004, 013005, 013006, 013007, 013008, 013009, 013101, 013102, 013103, 013200, 013300, 013400, 013500, 013605, 013606, 013607, 013608, 013609, 013610, 013611, 013612, 013613, 013614, 013615, 013616, 013617, 013618, 013619, 013704, 013711, 013712, 013713, 013714, 013715, 013716, 013717, 013718, 013719, 013720, 013721, 013722, 013723, 013724, 013725, 013801, 013803, 013804, 013901, 013902, 014001, 014002, 014103, 014109, 014110, 014112, 014113, 014114, 014115, 014116, 014117, 014118, 014119, 014120, 014121, 014122, 014123, 014124, 014125, 014126, 014201, 014203, 014204, 014302, 014304, 014306, 014307, 014308, 014309, 014310, 014403, 014405, 014406, 014407, 014408, 014501, 014502, 014601, 014602, 014603, 014701, 014702, 014703, 014801, 014802, 014901, 014902, 015000, 015100, 015202, 015204, 015205, 015206, 015303, 015304, 015305, 015306, 015401, 015403, 015404, 015500, 015600, 015700, 015800, 015900, 016001, 016002, 016100, 016201, 016202, 016301, 016302, 016401, 016404, 016406, 016407, 016408, 016409, 016410, 016411, 016501, 016502, 016509, 016510, 016511, 016513, 016514, 016515, 016516, 016517, 016518, 016519, 016605, 016606, 016607, 016610, 016611, 016612, 016613, 016614, 016615, 016616, 016617, 016618, 016619, 016620, 016701, 016703, 016704, 016705, 016802, 016803, 016804, 016901, 016902, 016903, 017001, 017003, 017004, 017101, 017102, 017201, 017202, 017301, 017303, 017304, 017305, 017306, 017400, 017500, 017602, 017603, 017604, 017702, 017703, 017704, 017804, 017805, 017806, 017807, 017808, 017811, 017812, 017813, 017814, 017900, 018001, 018002, 018104, 018105, 018110, 018111, 018116, 018117, 018118, 018119, 018120, 018121, 018122, 018123, 018124, 018125, 018126, 018127, 018128, 018129, 018130, 018131, 018132, 018203, 018204, 018205, 018206, 018300, 018401, 018402, 018403, 018501, 018503, 018504, 018600, 018700, 018801, 018802, 018900, 019004, 019010, 019012, 019013, 019014, 019016, 019018, 019019, 019020, 019021, 019023, 019024, 019025, 019026, 019027, 019028, 019029, 019030, 019031, 019032, 019033, 019034, 019035, 019036, 019037, 019100, 019202, 019203, 019204, 019205, 019206, 019208, 019209, 019210, 019211, 019301, 019302, 019400, 019501, 019502, 019600, 019700, 019800, 019900],
'115' : [950400, 950500, 950600],
'117' : [950100, 950200, 950300, 950400, 950500],
'119' : [950100, 950200],
'121' : [020101, 020102, 020201, 020202, 020301, 020303, 020304, 020305, 020401, 020402, 020403, 020501, 020502, 020601, 020602, 020700, 020800, 020900, 021000, 021100, 021200, 021301, 021302, 021401, 021402, 021403, 021502, 021504, 021505, 021506, 021508, 021509, 021510, 021511, 021601, 021603, 021604, 021605, 021606, 021610, 021611, 021612, 021613, 021614, 021615, 021616, 021617, 021703, 021705, 021707, 021709, 021710, 021711, 021712, 021713, 021714],
'123' : [970100, 970200, 970300, 970400, 970500],
'125' : [950300],
'127' : [950100, 950200, 950300],
'129' : [950200, 950300],
'131' : [950100, 950200, 950300, 950400],
'133' : [950100, 950200, 950300, 950400, 950500],
'135' : [000100, 000300, 000400, 000500, 000600, 000700, 000800, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002200, 002300, 002400, 002501, 002502, 002503, 002700, 002801, 002802, 002900, 003000],
'137' : [950100, 950200],
'139' : [060101, 060102, 060203, 060204, 060205, 060206, 060207, 060300, 060400, 060500, 060600, 060700, 060800, 060900, 061000, 061100, 061200, 061300, 061400, 061500, 061600, 061700],
'141' : [000101, 000106, 000107, 000108, 000109, 000110, 000111, 000112, 000203, 000204, 000205, 000206, 000301, 000302, 000401, 000403, 000404, 000500, 000600, 000700, 000800, 000900, 001001, 001002, 001104, 001105, 001107, 001109, 001110, 001111, 001112, 001113, 001201, 001202, 001203, 001301, 001302, 001400, 001501, 001502, 001600, 001700, 001800, 001900, 002000, 002100, 002201, 002202, 002300, 002400, 002500, 002600, 002800, 002900, 003000, 003100, 003200, 003300, 003401, 003403, 003404, 003501, 003502, 003601, 003602, 003701, 003702, 003801, 003803, 003804, 003901, 003902, 003903, 004002, 004003, 004004, 004103, 004104, 004105, 004106, 004107, 004201, 004202, 004303, 004305, 004307, 004309, 004310, 004311, 004312, 004313, 004314, 004315, 004316, 010101, 010102, 010103, 010203, 010204, 010206, 010207, 010208, 010209, 010303, 010307, 010309, 010310, 010311, 010312, 010313, 010314, 010315, 010316, 010317, 010318, 010319, 010320, 010321, 010401, 010402, 010403, 010404, 010501, 010502, 010503, 010504],
'143' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
'145' : [990100, 990200, 990300, 990400, 990500, 990600, 990700],
'147' : [950100, 950201, 950202, 950300, 950400, 950500, 950600, 950701, 950702],
'149' : [970100, 970200, 970300, 970400, 970500, 970600, 970700],
'151' : [950300, 950400],
'153' : [950500, 950600],
'155' : [950100],
'157' : [670100, 670200, 670300, 670400, 670500, 670600, 670700, 670800, 670900, 671000, 671100, 671200, 671300, 671400, 671500, 671600, 671700, 671800, 671900, 672000, 672100, 672200, 672300, 672400, 672500, 672600, 672700, 672800, 672900, 673000, 673100, 673200, 673300, 673400, 673500, 673600, 673700, 673800, 673900, 674000, 674100, 674200, 674300, 674400, 674500, 674600, 674700, 674800, 674900, 675000, 675100, 675200, 675300, 675400, 675500, 675600, 675700, 675800],
'159' : [950100, 950200, 950300],
'161' : [980100, 980200, 980300, 980400, 980600, 980700, 980900],
'163' : [950100, 950200, 950300],
'165' : [950100, 950200, 950300],
'167' : [720100, 720200, 720300, 720400, 720500, 720600, 720700, 720800, 720900, 721000, 721100, 721200, 721300, 721400, 721500, 721600, 721700, 721800, 721900, 722000, 722100, 722200, 722300, 722400, 722500, 722600, 722700, 722800, 722900, 723000, 723100, 723200, 723300, 723400, 723500, 723600, 723700, 723800, 723900, 724000, 724100, 724200, 724300, 724400, 724500, 724600, 724700, 724800, 724900, 725000, 725100, 725200, 725300, 725400, 725500, 725600, 725700, 725800, 725900, 726000, 726100],
'169' : [950100],
'171' : [950100, 950200, 950300, 950400, 950500],
'173' : [950100],
'175' : [960100, 960200],
'177' : [990100, 990200, 990300, 990400, 990500, 990600],
'179' : [950100, 950300, 950400, 950500, 950600, 950700, 950800],
'181' : [000101, 000102, 000200, 000301, 000302, 000400, 000501, 000502, 000600, 000700, 000800, 000901, 000902, 001101, 001102, 001200, 001300, 001400, 001500, 001601, 001602, 001700, 001801, 001802, 001803, 001900],
'183' : [000200, 000300, 000400, 000501, 000502, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 010100, 010200, 010301, 010302, 010400, 010500, 010600, 010700],
'185' : [180101, 180102, 180103, 180104, 180200, 180301, 180302],
'187' : [210100, 210200, 210300, 210400, 210501, 210503, 210504, 210603, 210604, 210605, 210606, 210701, 210703, 210705, 210706, 210801, 210802, 210901, 210902],
'189' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900],
'191' : [950200, 950400],
'193' : [950100, 950200, 950300],
'195' : [950100, 950300],
'197' : [950100],
'199' : [030100, 030200, 030300, 030400, 030501, 030502, 030600, 030700, 030800, 030900, 031000],
'201' : [100000, 210100, 210200, 210300, 210400, 210500, 210600, 210700, 210800, 210900, 211000, 211100, 211200, 211300, 211400, 211500, 211600, 211700, 211800, 211900, 212000, 212100, 212200, 220100, 220200, 220300, 220400, 220500, 220600, 220700, 220800, 220900, 221000, 221100, 221200, 221300, 221400, 221500, 221600, 221700, 221800, 221900, 222000, 222100, 222200, 222300, 222400, 222500, 222600, 222700, 222800, 222900, 223000, 223100, 230100, 230200, 230300, 230400, 230500, 230600, 230700, 230800, 230900, 231000, 231100, 231200, 231300, 231400, 231500, 231600, 231700, 231800, 231900, 232000, 232100, 232200, 232300, 232400, 232500, 232600, 232700, 232800, 232900, 233000, 233100, 233200, 233300, 233400, 233500, 233600, 233700, 240100, 240200, 240300, 240400, 240500, 240600, 240700, 240800, 240900, 241000, 241100, 241200, 241300, 241400, 250100, 250200, 250300, 250400, 250500, 250600, 250700, 250800, 250900, 251000, 251100, 251200, 251300, 251400, 251500, 251600, 251700, 251800, 251900, 252000, 252100, 252200, 252300, 252400, 252500, 252600, 252700, 252800, 252900, 253000, 253100, 253200, 253300, 253400, 253500, 253600, 253700, 253800, 253900, 254000, 254100, 254200, 254300, 254400, 254500, 254600, 254700, 310100, 310200, 310300, 310400, 310500, 310600, 310700, 310800, 310900, 311000, 311100, 311200, 311300, 311400, 311500, 311600, 311700, 311800, 311900, 312000, 312100, 312200, 312300, 312400, 312500, 312600, 312700, 312800, 312900, 313000, 313100, 313200, 313300, 313400, 313500, 313600, 313700, 313800, 313900, 314000, 314100, 314200, 314300, 320100, 320200, 320300, 320400, 320500, 320600, 320700, 320800, 320900, 321000, 321100, 321200, 321300, 321400, 321500, 321600, 321700, 321800, 321900, 322000, 322100, 322200, 322300, 322400, 322500, 322600, 322700, 322800, 322900, 323000, 323100, 323200, 323300, 323400, 323500, 323600, 323700, 323800, 323900, 324000, 330100, 330200, 330300, 330400, 330500, 330600, 330700, 330800, 330900, 331000, 331100, 331200, 331300, 331400, 331500, 331600, 331700, 331800, 331900, 332000, 332100, 332200, 332300, 332400, 332500, 332600, 332700, 332800, 332900, 333000, 333100, 333200, 333300, 333400, 333500, 333600, 333700, 333800, 333900, 334000, 340100, 340200, 340300, 340400, 340500, 340600, 340700, 340800, 340900, 341000, 341100, 341200, 341300, 341400, 341500, 341600, 341700, 341800, 341900, 342000, 342100, 342200, 342300, 342400, 342500, 342600, 342700, 342800, 342900, 343000, 343100, 343200, 343300, 343400, 343500, 350100, 350200, 350300, 350400, 350500, 350600, 350700, 350800, 410100, 410200, 410300, 410400, 410500, 410600, 410700, 410800, 410900, 411000, 411100, 411200, 411300, 411400, 411500, 411600, 411700, 411800, 411900, 412000, 412100, 412200, 412300, 412400, 412500, 412600, 412700, 412800, 412900, 413000, 413100, 413200, 413300, 420100, 420200, 420300, 420400, 420500, 420600, 420700, 420800, 420900, 421000, 421100, 421200, 421300, 421400, 421500, 421600, 421700, 421800, 421900, 422000, 422100, 422200, 422300, 422400, 422500, 422600, 422700, 422800, 422900, 423000, 423100, 423200, 423300, 423400, 423500, 423600, 430100, 430200, 430300, 430400, 430500, 430600, 430700, 430800, 430900, 431000, 431100, 431200, 431300, 431400, 431500, 431600, 431700, 431800, 431900, 432000, 432100, 432200, 432300, 432400, 432500, 432600, 432700, 432800, 432900, 433000, 433100, 433200, 433300, 433400, 433500, 433600, 440100, 450100, 450200, 450300, 450400, 450500, 450600, 450700, 450800, 450900, 451000, 451100, 451200, 451300, 451400, 451500, 451600, 451700, 451800, 451900, 452000, 452100, 452200, 452300, 452400, 452500, 452600, 452700, 452800, 452900, 453000, 453100, 453200, 453300, 453400, 453500, 453600, 453700, 453800, 453900, 454000, 454100, 454200, 454300, 454400, 454500, 454600, 454700, 454800, 454900, 455000, 455100, 455200, 455300, 510100, 510200, 510300, 510400, 510500, 510600, 510700, 510800, 510900, 511000, 511100, 511200, 511300, 511400, 511500, 511600, 520100, 520200, 520300, 520400, 520500, 520600, 520700, 520800, 520900, 521000, 521100, 521200, 521300, 521400, 521500, 521600, 521700, 521800, 521900, 522000, 522100, 522200, 522300, 522400, 530100, 530200, 530300, 530400, 530500, 530600, 530700, 530800, 530900, 531000, 531100, 531200, 531300, 531400, 531500, 531600, 531700, 531800, 531900, 532000, 532100, 532200, 532300, 532400, 532500, 532600, 532700, 532800, 532900, 533000, 533100, 533200, 533300, 533400, 533500, 533600, 533700, 533800, 533900, 534000, 534100, 534200, 540100, 540200, 540300, 540400, 540500, 540600, 540700, 540800, 540900, 541000, 541100, 541200, 541300, 541400, 541500, 541600, 541700, 541800, 541900, 542000, 542100, 542200, 542300, 542400, 542500, 542600, 542700, 542800, 542900, 543000, 543100, 550100, 550200, 550300, 550400, 550500, 550600, 550700, 550800, 550900, 551000, 551100, 551200, 551300, 551400, 551500, 551600, 551700, 551800, 551900, 552000, 552100, 552200, 552300, 552400, 552500, 552600, 552700, 552800, 552900, 553000, 553100, 553200, 553300, 553400, 553500, 553600, 553700, 553800, 553900, 554000, 554100, 554200, 554300, 554400, 554500, 554600, 554700, 554800, 554900, 555000, 555100, 555200, 555300, 555400, 555500, 555600, 555700, 555800, 555900],
'203' : [020101, 020102, 020200, 020300, 020401, 020402, 020500, 020601, 020602],
'205' : [950200],
'207' : [950300, 950400],
'209' : [010100, 010200, 010301, 010302, 010400, 010500, 010600, 010700, 010801, 010802, 010901, 010902, 010903, 010904],
'211' : [950100, 950200],
'213' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000, 951100, 951200, 951300, 951400],
'215' : [020100, 020201, 020202, 020203, 020300, 020401, 020402, 020501, 020502, 020503, 020600, 020701, 020721, 020722, 020723, 020724, 020801, 020802, 020901, 020902, 021000, 021100, 021201, 021202, 021301, 021302, 021303, 021401, 021402, 021500, 021600, 021700, 021801, 021802, 021901, 021902, 022001, 022002, 022101, 022102, 022201, 022202, 022300, 022400, 022501, 022502, 022600, 022701, 022702, 022800, 022900, 023000, 023101, 023102, 023503, 023504, 023505, 023506, 023507, 023508, 023600, 023700, 023800, 023901, 023902, 024000, 024101, 024102, 024103, 024104, 024105, 024106, 024201, 024202, 024301, 024302, 024401, 024402, 024500, 024600],
'217' : [960100, 960200, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100, 961200, 961300],
'219' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
'221' : [160100, 160201, 160202, 160203, 160300],
'223' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
'225' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
'227' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900],
'229' : [950100, 950200],
'231' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100, 961200, 961300, 961400, 961500, 961600, 961700],
'233' : [950200, 950500, 950600, 950700, 950800, 950900, 951000],
'235' : [950100],
'237' : [950100, 950200, 950300, 950400],
'239' : [950100, 950200, 950300],
'241' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
'243' : [950100],
'245' : [000101, 000102, 000103, 000200, 000301, 000302, 000304, 000305, 000306, 000400, 000500, 000600, 000700, 000900, 001000, 001100, 001200, 001301, 001302, 001303, 001600, 001700, 001900, 002000, 002100, 002200, 002300, 002400, 002500, 002600, 005100, 005300, 005400, 005500, 005600, 005900, 006100, 006200, 006300, 006400, 006500, 006600, 006700, 006800, 006900, 007001, 007002, 007100, 010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010901, 010902, 011001, 011002, 011101, 011102, 011201, 011202, 011203, 011301, 011302, 011400, 011500, 011600],
'247' : [950200, 950400],
'249' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
'251' : [130100, 130201, 130204, 130205, 130206, 130207, 130208, 130209, 130301, 130302, 130405, 130406, 130407, 130408, 130409, 130410, 130500, 130600, 130700, 130800, 130900, 131000, 131100],
'253' : [020101, 020102, 020200, 020300, 020400, 020500],
'255' : [970100, 970200, 970300, 970400],
'257' : [050201, 050202, 050300, 050400, 050500, 050600, 050701, 050702, 050800, 051000, 051100, 051200, 051300],
'259' : [970100, 970300, 970400, 970500],
'261' : [950100],
'263' : [950100],
'265' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800],
'267' : [950100, 950200],
'269' : [950100],
'271' : [950100],
'273' : [020100, 020200, 020300, 020400, 020500],
'275' : [950100, 950200],
'277' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000],
'279' : [950100, 950200, 950300, 950500, 950600],
'281' : [950100, 950300, 950400, 950500],
'283' : [950100, 950200],
'285' : [980100, 980200, 980300, 980400, 980500, 980600],
'287' : [980100, 980200, 980300, 980400],
'289' : [950100, 950200, 950300],
'291' : [700100, 700200, 700300, 700400, 700500, 700600, 700700, 700800, 700900, 701000, 701100, 701200, 701300, 701400],
'293' : [970100, 970200, 970300, 970400, 970500, 970600, 970700, 970800],
'295' : [950200, 950300],
'297' : [950100, 950200, 950300, 950400],
'299' : [970100, 970200, 970300, 970400, 970500, 970600],
'301' : [950100],
'303' : [000100, 000201, 000202, 000301, 000302, 000402, 000403, 000404, 000405, 000500, 000603, 000605, 000607, 000700, 000900, 001000, 001200, 001300, 001400, 001501, 001502, 001601, 001602, 001702, 001703, 001705, 001706, 001707, 001801, 001803, 001804, 001901, 001903, 001904, 002001, 002002, 002101, 002102, 002202, 002203, 002204, 002300, 002400, 002500, 010101, 010102, 010200, 010301, 010302, 010401, 010402, 010403, 010404, 010502, 010504, 010505, 010506, 010507, 010508, 010600, 010700],
'305' : [950400, 950500, 950600],
'307' : [950300, 950400, 950500],
'309' : [000100, 000200, 000300, 000400, 000598, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002301, 002302, 002498, 002501, 002503, 002504, 002600, 002700, 002800, 002900, 003000, 003200, 003300, 003400, 003500, 003601, 003602, 003701, 003703, 003706, 003707, 003708, 003801, 003802, 003900, 004000, 004101, 004102, 004201, 004202],
'311' : [950100],
'313' : [980100, 980200, 980300, 980400],
'315' : [950100, 950200, 950300, 950400],
'317' : [950100, 950200],
'319' : [950100, 950200],
'321' : [730100, 730200, 730300, 730400, 730500, 730600, 730700],
'323' : [950100, 950201, 950202, 950203, 950300, 950400, 950500, 950601, 950602],
'325' : [990100, 990200, 990300, 990400, 990500, 990800],
'327' : [950100, 950200],
'329' : [000100, 000200, 000302, 000303, 000304, 000305, 000401, 000402, 000500, 000600, 000900, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 010104, 010105, 010106, 010107, 010108, 010109, 010111, 010112, 010113],
'331' : [950100, 950300, 950400, 950500, 950700, 950800],
'333' : [950100, 950200],
'335' : [950100, 950200, 950300],
'337' : [950100, 950200, 950300, 950400, 950500, 950600],
'339' : [690100, 690200, 690300, 690400, 690500, 690600, 690700, 690800, 690900, 691000, 691100, 691200, 691300, 691400, 691500, 691600, 691700, 691800, 691900, 692000, 692100, 692200, 692300, 692400, 692500, 692600, 692700, 692800, 692900, 693000, 693100, 693200, 693300, 693400, 693500, 693600, 693700, 693800, 693900, 694000, 694100, 694200, 694300, 694400, 694500, 694600, 694700],
'341' : [950100, 950200, 950300, 950400],
'343' : [950100, 950200, 950300],
'345' : [950100],
'347' : [950100, 950200, 950301, 950302, 950400, 950500, 950600, 950700, 950800, 950900, 951000, 951100],
'349' : [970100, 970200, 970300, 970400, 970500, 970600, 970700, 970800, 970900, 971000],
'351' : [950100, 950200, 950300, 950400],
'353' : [950100, 950200, 950300, 950400, 950500],
'355' : [000100, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001601, 001602, 001700, 001801, 001802, 001901, 001902, 002000, 002100, 002200, 002301, 002303, 002304, 002400, 002500, 002600, 002701, 002703, 002704, 002900, 003000, 003100, 003201, 003202, 003301, 003302, 003401, 003402, 003500, 003601, 003602, 003603, 003700, 005000, 005101, 005102, 005103, 005401, 005402, 005403, 005404, 005405, 005406, 005601, 005602, 005801, 005802, 005900, 006000, 006100],
'357' : [950100, 950300, 950400],
'359' : [950100],
'361' : [020200, 020300, 020500, 020700, 020800, 020900, 021000, 021100, 021200, 021300, 021400, 021500, 021600, 021700, 021800, 021900, 022000, 022200, 022300, 022400],
'363' : [980100, 980200, 980300, 980400, 980500, 980600, 980700, 980800, 980900],
'365' : [950100, 950200, 950300, 950400, 950500, 950600],
'367' : [140100, 140200, 140300, 140403, 140404, 140405, 140406, 140407, 140500, 140601, 140602, 140701, 140702],
'369' : [950200, 950300],
'371' : [950100, 950300, 950400, 950500],
'373' : [210101, 210102, 210201, 210202, 210300, 210400, 210500],
'375' : [010100, 010200, 010300, 010400, 010600, 010700, 011000, 011100, 011500, 011600, 011700, 011800, 011900, 012000, 012200, 012600, 012800, 013000, 013200, 013300, 013400, 013900, 014100, 014300, 014400, 014500, 014600, 014700, 014800, 014900, 015000, 015100, 015200, 015300],
'377' : [950100, 950200],
'379' : [950100, 950200],
'381' : [020100, 020200, 020300, 020400, 020500, 020600, 020800, 020900, 021000, 021100, 021200, 021300, 021500, 021602, 021603, 021604, 021605, 021606, 021607, 021701, 021702, 021801, 021802, 021900, 022000],
'383' : [950100],
'385' : [950100],
'387' : [950100, 950200, 950300, 950500, 950600],
'389' : [950100, 950200, 950300, 950400, 950500],
'391' : [950100, 950200, 950300],
'393' : [950100],
'395' : [960100, 960200, 960300, 960400, 960500],
'397' : [040100, 040200, 040301, 040302, 040400, 040501, 040502],
'399' : [950100, 950200, 950500, 950600],
'401' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000, 951100, 951200],
'403' : [950100, 950200, 950300],
'405' : [950100, 950200, 950300],
'407' : [200101, 200102, 200200, 200300],
'409' : [010200, 010300, 010500, 010601, 010602, 010603, 010604, 010700, 010800, 010900, 011000, 011100, 011200, 011300],
'411' : [950100, 950200],
'413' : [950100, 950200],
'415' : [950100, 950200, 950300, 950600],
'417' : [950300],
'419' : [950100, 950200, 950300, 950400, 950500, 950600],
'421' : [950200],
'423' : [000100, 000201, 000202, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001101, 001102, 001200, 001300, 001401, 001402, 001500, 001601, 001602, 001603, 001700, 001801, 001802, 001803, 001901, 001903, 001904, 002003, 002004, 002006, 002007, 002008, 002009, 002100, 002200],
'425' : [990100, 990200],
'427' : [950101, 950102, 950103, 950201, 950202, 950400, 950500, 950600, 950701, 950702],
'429' : [950100, 950200, 950300, 950400],
'431' : [950100],
'433' : [950300],
'435' : [950100, 950200],
'437' : [950200, 950300, 950400],
'439' : [100101, 100102, 100201, 100202, 100300, 100400, 100501, 100502, 100601, 100602, 100700, 100800, 100900, 101000, 101100, 101201, 101202, 101301, 101302, 101401, 101402, 101403, 101500, 101600, 101700, 101800, 101900, 102000, 102100, 102201, 102202, 102301, 102302, 102401, 102402, 102500, 102600, 102700, 102800, 102900, 103000, 103100, 103300, 103400, 103500, 103601, 103602, 103701, 103702, 103800, 103900, 104000, 104100, 104201, 104202, 104300, 104400, 104502, 104503, 104504, 104505, 104601, 104602, 104603, 104604, 104605, 104700, 104801, 104802, 104900, 105001, 105005, 105006, 105100, 105201, 105203, 105204, 105205, 105300, 105403, 105404, 105405, 105406, 105502, 105503, 105505, 105506, 105507, 105508, 105510, 105511, 105512, 105600, 105701, 105703, 105704, 105800, 105900, 106001, 106002, 106004, 106101, 106102, 106201, 106202, 106300, 106400, 106502, 106503, 106507, 106508, 106509, 106510, 106511, 106512, 106513, 106514, 106515, 106516, 106600, 106700, 110101, 110102, 110202, 110203, 110204, 110301, 110302, 110401, 110402, 110500, 110601, 110602, 110701, 110703, 110704, 110801, 110804, 110901, 110903, 110905, 110906, 110907, 111003, 111005, 111008, 111009, 111010, 111011, 111012, 111013, 111014, 111101, 111102, 111201, 111202, 111301, 111303, 111304, 111305, 111306, 111401, 111402, 111404, 111405, 111505, 111506, 111513, 111514, 111516, 111518, 111519, 111521, 111522, 111523, 111524, 111525, 111526, 111527, 111529, 111530, 111531, 111532, 111533, 111534, 111536, 111537, 111538, 111539, 111540, 111541, 111542, 111543, 111544, 111545, 111546, 113001, 113002, 113101, 113102, 113103, 113104, 113107, 113108, 113109, 113110, 113111, 113112, 113206, 113207, 113210, 113212, 113213, 113214, 113215, 113216, 113217, 113218, 113219, 113301, 113302, 113403, 113404, 113405, 113407, 113408, 113507, 113509, 113510, 113511, 113512, 113513, 113514, 113515, 113516, 113607, 113610, 113611, 113612, 113613, 113618, 113619, 113620, 113621, 113622, 113623, 113624, 113625, 113626, 113627, 113628, 113629, 113630, 113703, 113705, 113706, 113707, 113708, 113803, 113806, 113807, 113808, 113809, 113810, 113811, 113904, 113906, 113907, 113908, 113909, 113910, 113911, 113912, 113913, 113914, 113915, 113916, 114001, 114003, 114005, 114006, 114101, 114102, 114202, 114203, 114204, 114205, 121601, 121604, 121605, 121606, 121608, 121609, 121610, 121611, 121702, 121703, 121704, 121901, 121902, 122000, 122100, 122200, 122300, 122400, 122500, 122600, 122700, 122800, 122900],
'441' : [010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011200, 011300, 011400, 011500, 011600, 011700, 011900, 012000, 012100, 012200, 012300, 012400, 012500, 012600, 012700, 012800, 012900, 013000, 013100, 013200, 013300, 013401, 013402, 013403, 013500, 013600],
'443' : [950100],
'445' : [950100, 950300, 950400],
'447' : [950300],
'449' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
'451' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001101, 001102, 001200, 001301, 001303, 001304, 001400, 001500, 001600, 001702, 001703, 001704, 001705],
'453' : [000101, 000102, 000201, 000203, 000204, 000301, 000302, 000303, 000401, 000402, 000500, 000601, 000603, 000604, 000700, 000801, 000802, 000803, 000804, 000901, 000902, 001000, 001100, 001200, 001303, 001304, 001305, 001307, 001308, 001401, 001402, 001403, 001501, 001503, 001504, 001505, 001602, 001603, 001604, 001605, 001606, 001705, 001706, 001707, 001712, 001713, 001714, 001715, 001716, 001718, 001719, 001722, 001728, 001729, 001732, 001733, 001737, 001738, 001739, 001740, 001741, 001742, 001743, 001744, 001745, 001746, 001747, 001748, 001749, 001750, 001751, 001752, 001753, 001754, 001755, 001756, 001757, 001758, 001759, 001760, 001761, 001762, 001764, 001765, 001766, 001767, 001768, 001769, 001804, 001805, 001806, 001811, 001812, 001813, 001817, 001818, 001819, 001820, 001821, 001822, 001823, 001824, 001826, 001828, 001829, 001832, 001833, 001834, 001835, 001836, 001837, 001839, 001840, 001841, 001842, 001843, 001844, 001845, 001846, 001847, 001848, 001849, 001850, 001851, 001852, 001853, 001901, 001904, 001906, 001908, 001909, 001910, 001911, 001912, 001913, 002002, 002003, 002004, 002005, 002104, 002105, 002106, 002107, 002108, 002109, 002110, 002111, 002112, 002113, 002201, 002202, 002205, 002206, 002303, 002304, 002307, 002308, 002310, 002311, 002312, 002313, 002314, 002315, 002316, 002402, 002403, 002407, 002409, 002410, 002411, 002412, 002413, 002416, 002417, 002418, 002419, 002420, 002421, 002422, 002423, 002424],
'455' : [950100, 950200, 950300, 950400, 950500],
'457' : [950100, 950200, 950300, 950400, 950500],
'459' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
'461' : [950100, 950200],
'463' : [950100, 950200, 950300, 950400, 950500],
'465' : [950100, 950201, 950202, 950300, 950400, 950500, 950601, 950602, 950700],
'467' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000],
'469' : [000100, 000201, 000202, 000301, 000302, 000400, 000501, 000502, 000601, 000602, 000700, 000800, 001300, 001400, 001501, 001502, 001601, 001603, 001604, 001605, 001700],
'471' : [790100, 790200, 790300, 790400, 790500, 790600, 790700, 790800],
'473' : [680100, 680200, 680300, 680400, 680500, 680600],
'475' : [950100, 950200, 950300],
'477' : [170100, 170200, 170300, 170400, 170500, 170600],
'479' : [000101, 000103, 000104, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000901, 000902, 001001, 001002, 001101, 001102, 001200, 001300, 001400, 001501, 001502, 001600, 001702, 001705, 001706, 001707, 001708, 001709, 001801, 001803, 001804, 001805],
'481' : [740100, 740200, 740300, 740400, 740500, 740600, 740700, 740800, 740900, 741000, 741100],
'483' : [950100, 950300],
'485' : [010100, 010200, 010400, 010600, 010700, 010800, 010900, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 011900, 012000, 012100, 012200, 012300, 012400, 012600, 012700, 012800, 012900, 013000, 013100, 013200, 013300, 013400, 013501, 013502, 013600, 013700, 013800],
'487' : [950300, 950500, 950600, 950700],
'489' : [950300, 950400, 950500, 950600, 950700],
'491' : [020101, 020102, 020103, 020104, 020200, 020301, 020302, 020303, 020305, 020306, 020307, 020308, 020309, 020310, 020402, 020403, 020404, 020405, 020406, 020407, 020501, 020502, 020503, 020504, 020601, 020602, 020701, 020703, 020704, 020705, 020801, 020802, 020900, 021000, 021100, 021201, 021202, 021203, 021300, 021401, 021402, 021403, 021501, 021502, 021503, 021600],
'493' : [980101, 980102, 980201, 980202, 980300, 980401, 980402, 980500, 980600],
'495' : [950200, 950300, 950400],
'497' : [150101, 150102, 150200, 150300, 150401, 150402, 150403, 150500, 150601, 150602, 150603],
'499' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
'501' : [950100, 950200],
'503' : [950200, 950400, 950500, 950600],
'505' : [950100, 950200, 950300],
'507' : [950100, 950200, 950301, 950302]]]]></entry>
        <entry id="census2000_ut" type="java"><![CDATA[[
    '001' : [100100,100200],
    '003' : [960100,960200,960300,960400,960500,960600,960701,960702,960801,960802],
    '005' : [101,102,201,202,300,401,402,403,500,600,701,702,800,900,1000,1101,1102,1200,1300,1400,1500,1600],
    '007' : [100,200,300,400,500,940100],
    '009' : [990100],
    '011' : [125102,125103,125104,125200,125301,125303,125304,125305,125401,125403,125404,125501,125502,125503,125600,125700,125801,125804,125805,125806,125904,125905,125906,126000,126101,126102,126104,126105,126106,126202,126203,126204,126303,126304,126305,126306,126402,126403,126404,126500,126600,126700,126801,126802,126901,126902,127002,127003,127004],
    '013' : [940100,940300,940400,940500],
    '015' : [976100,976200,976300,976400],
    '017' : [100,200,300],
    '019' : [100,200,940100],
    '021' : [110100,110200,110300,110400,110500,110600,110700],
    '023' : [10100,10200],
    '025' : [130100,130200],
    '027' : [974100,974200,974300],
    '029' : [970100,970200],
    '031' : [980100],
    '033' : [950100],
    '035' : [100100,100200,100302,100303,100305,100306,100400,100500,100600,100700,100800,100900,101000,101100,101200,101300,101400,101500,101600,101700,101800,101900,102000,102100,102200,102300,102400,102500,102600,102700,102801,102802,102900,103000,103100,103200,103300,103400,103500,103600,103700,103800,103900,104000,104100,104200,104300,104400,104500,104600,104700,104800,104900,110102,110103,110104,110200,110300,110400,110500,110600,110701,110702,110800,110900,111001,111002,111101,111102,111103,111201,111202,111302,111304,111305,111306,111400,111500,111600,111700,111800,111901,111902,112000,112100,112201,112202,112301,112302,112401,112402,112501,112502,112503,112604,112605,112606,112608,112609,112610,112611,112612,112613,112614,112615,112616,112617,112700,112804,112805,112807,112808,112809,112810,112811,112812,112813,112814,112815,112904,112905,112907,112911,112912,112913,112914,112915,112916,112917,112918,112919,113007,113008,113009,113010,113011,113012,113013,113014,113015,113016,113017,113018,113101,113102,113103,113104,113304,113305,113306,113307,113308,113405,113406,113407,113408,113409,113410,113411,113412,113413,113505,113509,113510,113511,113512,113513,113514,113515,113517,113519,113520,113521,113522,113523,113525,113526,113527,113528,113529,113530,113531,113532,113533,113600,113700,113801,113802,113803,113901,113903,113904,113905],
    '037' : [942000,942100,978100,978200],
    '039' : [972100,972200,972300,972400,972500],
    '041' : [975100,975200,975300,975400,975500],
    '043' : [994100,994200,994301,994302,994400],
    '045' : [130600,130700,130800,130900,131000,131100,131200],
    '047' : [940100,940200,988200,988300,988400],
    '049' : [101,102,103,201,202,203,204,300,400,501,502,503,601,602,703,704,705,706,707,801,802,901,903,904,1001,1002,1101,1103,1104,1201,1202,1300,1401,1402,1501,1503,1504,1601,1602,1603,1700,1801,1802,1803,1900,2000,2101,2102,2201,2202,2203,2300,2400,2500,2600,2700,2800,2900,3000,3101,3102,3201,3202,3203,3300,3401,3402,3403,10101,10102,10202,10203,10204,10205,10206,10207,10301,10302,10401,10402,10403,10501,10502,10600,940300],
    '051' : [940300,992200,992400,992500],
    '053' : [270100,270200,270300,270400,270500,270600,270700,270800,270900,271000,271100,271200,271300,271400,271500,271600,271700,271800],
    '055' : [979100],
    '057' : [200100,200201,200202,200300,200400,200500,200600,200700,200800,200900,201100,201200,201300,201400,201500,201600,201700,201800,201900,202000,210100,210201,210202,210301,210302,210401,210402,210501,210504,210505,210506,210507,210600,210701,210703,210704,210800,210900,211000,211100,211201,211202]
 ]]]></entry>
        <entry id="census2000_wa" type="java"><![CDATA[[
    '009' : [980100,980200,980300,980400,980600,980700,980800,980900,981000,981100,981200,981300,981400,981500,981600,981700,981800,981900,982000,982100,982300],
    '027' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600],
    '029' : [970100,970200,970300,970400,970500,970601,970602,970700,970800,970900,971000,971100,971300,971400,971500,971600,971700,971800,971900,972000,972100],
    '031' : [950100,950201,950202,950300,950400,950500,950601,950602],
    '033' : [100,200,300,401,402,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2400,2500,2600,2700,2800,2900,3000,3100,3200,3300,3400,3500,3600,3800,3900,4000,4100,4200,4300,4400,4500,4600,4700,4800,4900,5000,5100,5200,5301,5302,5400,5600,5700,5801,5802,5900,6000,6100,6200,6300,6400,6500,6600,6700,6800,6900,7000,7100,7200,7300,7400,7500,7600,7700,7800,7900,8001,8002,8100,8200,8300,8400,8500,8600,8700,8800,8900,9000,9100,9200,9300,9400,9500,9600,9701,9702,9800,9900,10000,10100,10200,10300,10400,10500,10600,10700,10800,10900,11000,11101,11102,11200,11300,11400,11500,11600,11700,11800,11900,12000,12100,20100,20200,20300,20401,20402,20500,20600,20700,20800,20900,21000,21100,21300,21400,21500,21600,21700,21802,21803,21804,21903,21904,21905,21906,22001,22003,22005,22006,22101,22102,22201,22202,22203,22300,22400,22500,22603,22604,22605,22606,22701,22702,22703,22801,22802,22803,22901,22902,23000,23100,23201,23202,23300,23401,23402,23500,23601,23603,23604,23700,23801,23802,23900,24000,24100,24200,24300,24400,24500,24601,24602,24701,24702,24800,24901,24902,24903,25001,25003,25004,25101,25102,25200,25300,25400,25500,25600,25701,25702,25801,25803,25804,26001,26002,26100,26200,26300,26400,26500,26600,26700,26801,26802,26900,27000,27100,27200,27300,27400,27500,27600,27701,27702,27800,27900,28000,28100,28200,28300,28402,28403,28500,28600,28700,28801,28802,28901,28902,29001,29003,29004,29100,29201,29203,29204,29303,29304,29305,29306,29307,29403,29405,29406,29407,29408,29502,29503,29504,29601,29602,29700,29801,29802,29901,29902,30002,30003,30004,30100,30201,30202,30303,30304,30305,30306,30308,30309,30310,30311,30312,30401,30403,30404,30501,30503,30504,30600,30700,30801,30802,30901,30902,31000,31100,31202,31204,31205,31206,31301,31302,31400,31501,31502,31601,31602,31603,31702,31703,31704,31800,31903,31904,31906,31907,31908,31909,32002,32003,32005,32006,32007,32008,32009,32102,32103,32104,32203,32207,32208,32209,32210,32211,32212,32307,32309,32311,32312,32313,32314,32315,32316,32317,32318,32319,32320,32321,32322,32323,32324,32325,32401,32402,32500,32601,32602,32702,32703,32704,32800],
    '035' : [80101,80102,80200,80300,80400,80500,80600,80700,80800,80900,81000,81100,81200,81400,90101,90102,90200,90300,90400,90500,90601,90602,90700,90800,90900,91000,91100,91201,91203,91204,91301,91302,91400,91500,91600,91700,91800,91900,92000,92100,92200,92300,92400,92500,92600,92700,92801,92802,92803,92901,92902],
    '045' : [960100,960200,960300,960400,960500,960600,960700,960800,960900,961000,961100,961200,961300,961400],
    '053' : [60102,60103,60104,60200,60300,60400,60500,60600,60700,60800,60903,60904,60905,60906,61001,61002,61100,61200,61300,61400,61500,61601,61602,61700,61800,61900,62000,62100,62200,62300,62400,62500,62600,62801,62802,62900,63000,63100,63200,63300,63400,63501,63502,70100,70203,70204,70205,70206,70207,70303,70306,70307,70308,70309,70310,70311,70401,70402,70500,70600,70701,70703,70704,70800,70900,71000,71100,71205,71206,71207,71208,71209,71210,71304,71305,71306,71307,71308,71403,71406,71407,71408,71409,71410,71411,71503,71504,71505,71506,71601,71602,71703,71704,71705,71706,71707,71803,71804,71805,71806,71901,71902,72000,72105,72106,72107,72108,72109,72111,72112,72305,72306,72307,72308,72309,72310,72311,72405,72406,72407,72408,72409,72410,72503,72504,72505,72506,72507,72601,72602,72603,72700,72800,72901,72903,72904,73001,73005,73006,73107,73108,73109,73110,73111,73112,73113,73114,73115,73116,73117,73118,73119,73200,73301,73302,73401,73403,73404],
    '055' : [960100,960300,960400,960500],
    '057' : [950100,950200,950300,950400,950500,950600,950700,950800,950900,951000,951100,951200,951300,951400,951500,951600,951700,951800,951900,952000,952100,952200,952300,952400,952500,952600,952700],
    '061' : [40100,40200,40300,40400,40500,40600,40700,40800,40900,41000,41100,41201,41202,41301,41302,41400,41500,41601,41605,41606,41607,41608,41701,41702,41804,41805,41806,41807,41808,41901,41903,41904,41905,42001,42003,42004,42005,42006,50101,50102,50200,50300,50401,50402,50500,50600,50700,50800,50900,51000,51100,51200,51300,51400,51500,51601,51602,51701,51702,51801,51802,51905,51909,51911,51912,51913,51914,51915,51916,51917,51918,51919,51920,52003,52004,52005,52006,52007,52104,52105,52107,52108,52110,52111,52112,52113,52203,52204,52205,52206,52207,52301,52302,52401,52402,52502,52503,52504,52603,52604,52605,52606,52607,52701,52703,52704,52705,52803,52804,52805,52806,52901,52903,52904,53001,53002,53101,53102,53201,53202,53301,53302,53400,53503,53504,53505,53506,53601,53602,53700,53801,53802,53803],
    '067' : [10100,10200,10300,10400,10500,10600,10700,10800,10900,11000,11100,11200,11300,11410,11420,11500,11610,11620,11700,11810,11820,11900,12000,12100,12210,12220,12310,12320,12330,12410,12420,12500,12600,12700],
    '073' : [100,200,300,400,500,600,700,801,802,900,1000,1100,1200,10100,10200,10301,10302,10303,10401,10402,10501,10502,10600,10700,10800,10900,11000]
 ]]]></entry>
        <entry id="census2000_wi" type="java"><![CDATA[['001' : [950100, 950200, 950400, 950500, 950700],
'003' : [000000, 950100, 950200, 950300, 950400, 950500, 950600, 950700],
'005' : [000100, 000200, 000300, 000400, 000500, 000600, 000800, 000900, 001000],
'007' : [000000, 960100, 960200, 960300, 960400, 960600],
'009' : [000100, 000200, 000301, 000302, 000303, 000401, 000402, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001501, 001502, 001600, 001700, 001801, 001802, 002001, 002002, 002003, 010100, 010201, 010202, 010300, 020100, 020200, 020300, 020400, 020501, 020502, 020600, 020701, 020702, 020800, 020900, 021000, 021100, 021200, 021301, 021302, 021303, 021304, 021400, 021500],
'011' : [960100, 960200, 960300, 960400, 960500],
'013' : [970400, 970600, 970700, 970800, 970900, 971000],
'015' : [020100, 020200, 020301, 020302, 020400, 020500, 020600],
'017' : [010100, 010200, 010300, 010400, 010500, 010700, 010800, 010900, 011000, 011100, 011200],
'019' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
'021' : [970100, 970200, 970300, 970400, 970500, 970600, 970700, 970800, 970900, 971000, 971100, 971200],
'023' : [980100, 980200, 980300, 980400, 980500, 980600],
'025' : [000100, 000201, 000202, 000204, 000205, 000300, 000401, 000402, 000403, 000404, 000501, 000503, 000504, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001401, 001402, 001403, 001501, 001502, 001601, 001602, 001701, 001702, 001703, 001800, 001900, 002000, 002100, 002200, 002301, 002302, 002401, 002402, 002500, 002601, 002602, 002603, 002700, 002800, 002900, 003001, 003002, 003100, 003200, 010100, 010200, 010300, 010400, 010500, 010600, 010701, 010702, 010800, 010901, 010902, 011000, 011101, 011102, 011200, 011301, 011302, 011400, 011503, 011504, 011505, 011506, 011600, 011700, 011800, 011900, 012001, 012002, 012100, 012201, 012202, 012300, 012400, 012500, 012600, 012700, 012800, 012900, 013000, 013100, 013200, 013300],
'027' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100, 961200, 961300, 961400, 961500, 961600, 961700, 961800, 961900, 962000],
'029' : [000000, 980100, 980300, 980400, 980500, 980600, 980700, 980800, 980900, 981000],
'031' : [000000, 020100, 020200, 020300, 020400, 020500, 020600, 020700, 020800, 020900, 021000, 030100, 030200, 030300],
'033' : [970100, 970200, 970300, 970400, 970500, 970600, 970700, 970800],
'035' : [000100, 000200, 000301, 000302, 000400, 000501, 000502, 000600, 000700, 000801, 000802, 000803, 000900, 001000, 001101, 001102, 001200, 001300, 001400, 001500, 001600],
'037' : [990100, 990200],
'039' : [040100, 040200, 040300, 040400, 040500, 040700, 040800, 040900, 041000, 041100, 041300, 041400, 041500, 041600, 041700, 041800, 041900, 042000, 042100, 042200],
'041' : [950100, 950200, 950300, 950400],
'043' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100, 961200],
'045' : [980100, 980200, 980300, 980400, 980500, 980600, 980700, 980800],
'047' : [980100, 980200, 980300, 980400, 980500, 980600],
'049' : [950100, 950200, 950300, 950400, 950500, 950600],
'051' : [000000, 980100, 980200, 980300],
'053' : [960100, 960200, 960300, 960400, 960500],
'055' : [990100, 990200, 990300, 990400, 990500, 990601, 990602, 990700, 990800, 990900, 991000, 991100, 991201, 991202, 991300, 991400, 991500, 991600, 991701, 991702],
'057' : [990100, 990200, 990301, 990302, 990400, 990500, 990600, 990700],
'059' : [000000, 000100, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002300, 002400, 002500, 002600, 002700, 002800, 002901, 002902, 003000],
'061' : [000000, 960100, 960200, 960400, 960500],
'063' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001101, 001102, 001200, 010101, 010102, 010201, 010202, 010203, 010300, 010401, 010402, 010500, 010600, 010700, 010800],
'065' : [970100, 970200, 970300, 970400, 970500],
'067' : [960100, 960300, 960400, 960500, 960600, 960700],
'069' : [980100, 980200, 980300, 980400, 980500, 980600, 980700, 980800, 980900, 981000],
'071' : [000000, 000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 005100, 005200, 005300, 005400, 010100, 010200, 010300, 010400, 010500, 010600, 010700],
'073' : [000100, 000200, 000300, 000400, 000500, 000601, 000602, 000700, 000800, 000900, 001000, 001102, 001103, 001104, 001201, 001202, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002300],
'075' : [960100, 960200, 960600, 960700, 960800, 960900, 961000, 961100, 961200, 961300, 961400, 961500, 961600],
'077' : [990100, 990200, 990300, 990400, 990500],
'078' : [970100],
'079' : [000000, 000100, 000201, 000202, 000301, 000302, 000303, 000304, 000400, 000501, 000502, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002300, 002400, 002500, 002600, 002700, 002800, 002900, 003000, 003100, 003200, 003300, 003400, 003500, 003600, 003700, 003800, 003900, 004000, 004100, 004200, 004300, 004400, 004500, 004600, 004700, 004800, 004900, 005000, 005100, 005200, 005300, 005400, 005500, 005600, 005700, 005800, 005900, 006000, 006100, 006200, 006300, 006400, 006500, 006600, 006700, 006800, 006900, 007000, 007100, 007200, 007300, 007400, 007500, 007600, 007700, 007800, 007900, 008000, 008100, 008200, 008300, 008400, 008500, 008600, 008700, 008800, 008900, 009000, 009100, 009200, 009300, 009400, 009500, 009600, 009700, 009800, 009900, 010000, 010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 011900, 012000, 012100, 012200, 012300, 012400, 012500, 012600, 012700, 012800, 012900, 013000, 013100, 013200, 013300, 013400, 013500, 013600, 013700, 013800, 013900, 014000, 014100, 014300, 014400, 014500, 014600, 014700, 014800, 014900, 015000, 015100, 015200, 015300, 015400, 015500, 015600, 015700, 015800, 015900, 016000, 016100, 016200, 016300, 016400, 016500, 016600, 016700, 016800, 016900, 017000, 017100, 017200, 017300, 017400, 017500, 017600, 017700, 017800, 017900, 018001, 018002, 018100, 018200, 018300, 018400, 018500, 018600, 018700, 018800, 018900, 019000, 019100, 019200, 019300, 019400, 019500, 019600, 019700, 019800, 019900, 020000, 020100, 020200, 020300, 020400, 020500, 020600, 020700, 020800, 020900, 021000, 021100, 021200, 021300, 021400, 021500, 021600, 021700, 021800, 030100, 035100, 035200, 040100, 050101, 050102, 060100, 060200, 070100, 070200, 070300, 080100, 080200, 080300, 080400, 090100, 090200, 090300, 090400, 090500, 090600, 090700, 090800, 090900, 091000, 091100, 091200, 091300, 091400, 100100, 100200, 100300, 100400, 100500, 100600, 100700, 100800, 100900, 101000, 101100, 101200, 101300, 101400, 101500, 101600, 101700, 101800, 110100, 120100, 120201, 120202, 120203, 120300, 120400, 120501, 120502, 130100, 130200, 140100, 140201, 140202, 150100, 150200, 150301, 150302, 150400, 160100, 160201, 160202, 160300, 170100, 170200, 170300, 170400, 170500, 170600, 170700, 180100, 180200, 180300, 180400, 180500, 185100, 185200],
'081' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900],
'083' : [000000, 990300, 990500, 990600, 990700, 990800, 990900, 991000, 991100, 991200, 991300],
'085' : [970100, 970400, 970500, 970600, 970800, 970900, 971000, 971100, 971300, 971400, 971500],
'087' : [010100, 010200, 010300, 010500, 010601, 010602, 010700, 010800, 010900, 011000, 011101, 011102, 011200, 011300, 011400, 011501, 011502, 011600, 011700, 011800, 011900, 012000, 012100, 012200, 012300, 012400, 012500, 012600, 012700, 012800, 012900, 013000, 013100, 013200, 013300],
'089' : [000000, 610100, 620100, 630100, 630201, 630202, 640100, 640200, 650101, 650102, 650200, 650300, 660100, 660200, 660301, 660303, 660304],
'091' : [950100, 950200],
'093' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800],
'095' : [960100, 960200, 960300, 960500, 960600, 960700, 960800, 960900, 961000, 961100],
'097' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100, 961200, 961300],
'099' : [970100, 970200, 970400, 970500, 970600, 970700],
'101' : [000000, 000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000901, 000903, 000904, 001001, 001002, 001003, 001100, 001201, 001202, 001301, 001302, 001400, 001501, 001502, 001503, 001601, 001602, 001701, 001702, 001703, 001704, 001800, 001900, 002000, 002100, 002200, 002401, 002402, 002600, 002700, 002800],
'103' : [970100, 970200, 970300, 970400, 970500],
'105' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001301, 001302, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002300, 002400, 002500, 002601, 002602, 002700, 002800, 002900, 003001, 003002, 003100, 003200, 003300],
'107' : [960100, 960200, 960300, 960400, 960500],
'109' : [120100, 120200, 120300, 120400, 120500, 120600, 120700, 120800, 120900, 121000],
'111' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100],
'113' : [980100, 980300, 980400, 980500, 980700, 980800],
'115' : [980100, 980200, 980300, 980400, 980500, 980600, 980700, 980800, 980900, 981000, 981100],
'117' : [000000, 000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011100, 011200, 011300],
'119' : [980100, 980200, 980300, 980400, 980500, 980600],
'121' : [990100, 990200, 990300, 990400, 990500, 990600, 990700, 990800],
'123' : [960100, 960200, 960300, 960400, 960500, 960600, 960700],
'125' : [950100, 950200, 950300, 950400, 950500],
'127' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001500, 001601, 001602, 001700],
'129' : [950100, 950200, 950300, 950500, 950600],
'131' : [400101, 400102, 410100, 420102, 420103, 420104, 420200, 420300, 420400, 430100, 440101, 440102, 440200, 450101, 450102, 460101, 460102, 470100, 470201, 470202],
'133' : [101000, 200101, 200102, 200103, 200200, 200300, 200400, 200500, 200600, 200700, 200801, 200802, 200901, 200902, 201000, 201101, 201102, 201201, 201202, 201203, 201300, 201401, 201402, 201503, 201504, 201505, 201506, 201600, 201701, 201702, 201800, 201900, 202001, 202002, 202100, 202201, 202202, 202301, 202302, 202400, 202500, 202600, 202700, 202800, 202900, 203000, 203101, 203102, 203103, 203200, 203301, 203302, 203402, 203403, 203404, 203405, 203406, 203500, 203601, 203602, 203701, 203702, 203802, 203803, 203804, 203900, 204001, 204002, 204100, 204200, 204300, 204400, 204500],
'135' : [990100, 990200, 990300, 990400, 990500, 990600, 990700, 990800, 990900, 991000, 991100, 991200],
'137' : [960100, 960200, 960300, 960400, 960500, 960600, 960700],
'139' : [000100, 000200, 000300, 000400, 000500, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002300, 002400, 002500, 002601, 002602, 002700, 002800, 002900, 003000, 003100, 003200, 003300, 003400, 003500, 003600, 003701, 003702],
'141' : [010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700]]]]></entry>
        <entry id="census2010_ak" type="java"><![CDATA[[
    '013' : [100],
    '016' : [100, 200],
    '020' : [101, 102, 201, 202, 203, 204, 300, 400, 500, 600, 701, 702, 703, 801, 802, 901, 902, 1000, 1100, 1200, 1300, 1400, 1500, 1601, 1602, 1701, 1702, 1731, 1732, 1801, 1802, 1900, 2000, 2100, 2201, 2202, 2301, 2302, 2303, 2400, 2501, 2502, 2601, 2602, 2603, 2702, 2711, 2712, 2811, 2812, 2813, 2821, 2822, 2823, 2900],
    '050' : [100, 200, 300],
    '060' : [100],
    '068' : [100],
    '070' : [100, 200],
    '090' : [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900],
    '100' : [100],
    '105' : [200, 300],
    '110' : [100, 200, 300, 400, 500, 600],
    '122' : [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300],
    '130' : [100, 200, 300, 400],
    '150' : [100, 200, 300, 400, 500],
    '164' : [100],
    '170' : [101, 102, 200, 300, 401, 402, 501, 502, 601, 603, 604, 701, 703, 705, 706, 800, 900, 1001, 1003, 1004, 1100, 1201, 1202, 1300],
    '180' : [100, 200],
    '185' : [100, 200, 300],
    '188' : [100, 200],
    '195' : [200],
    '198' : [100, 200, 300, 940100],
    '220' : [100, 200],
    '230' : [100],
    '240' : [100, 400],
    '261' : [100, 200, 300],
    '270' : [100],
    '275' : [300],
    '282' : [100],
    '290' : [100, 200, 300, 400]
]]]></entry>
        <entry id="census2010_az" type="java"><![CDATA[[
    '001' : [942600, 942700, 944000, 944100, 944201, 944202, 944300, 944901, 944902, 945001, 945002, 945100, 970200, 970300, 970501, 970502],
    '003' : [100, 201, 202, 203, 301, 302, 303, 400, 500, 600, 700, 800, 901, 902, 1000, 1100, 1200, 1300, 1401, 1402, 1501, 1502, 1601, 1602, 1701, 1702, 1703, 1800, 1900, 2001, 2002, 2100],
    '005' : [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1101, 1102, 1200, 1301, 1302, 1500, 1600, 1700, 2000, 2100, 2200, 2300, 942201, 942202, 944900, 945000, 945100, 945200],
    '007' : [100, 200, 301, 302, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 940200, 940400],
    '009' : [940500, 961100, 961201, 961202, 961300, 961400, 961500, 961600, 961700],
    '011' : [960100, 960200, 960300],
    '012' : [20100, 20201, 20202, 20501, 20502, 20602, 940200, 940300, 980000],
    '013' : [10101, 10102, 30401, 30402, 40502, 40506, 40507, 40512, 40513, 40514, 40515, 40516, 40517, 40518, 40519, 40520, 40521, 40522, 40523, 40524, 40525, 40526, 40527, 40528, 40529, 40530, 40531, 50603, 50604, 50605, 50606, 50607, 50608, 50609, 50610, 50611, 50701, 50702, 60801, 60802, 60901, 60902, 60903, 60904, 61009, 61010, 61011, 61012, 61013, 61014, 61015, 61016, 61017, 61018, 61019, 61020, 61021, 61022, 61023, 61024, 61025, 61026, 61027, 61028, 61029, 61030, 61031, 61032, 61033, 61034, 61035, 61036, 61037, 61038, 61039, 61040, 61041, 61042, 61043, 61044, 61045, 61046, 61047, 61100, 61200, 61300, 61401, 61402, 71503, 71504, 71505, 71506, 71509, 71510, 71511, 71512, 71513, 71514, 71515, 71516, 71517, 71600, 71701, 71702, 71801, 71802, 71903, 71906, 71909, 71910, 71911, 71912, 71913, 71914, 71915, 82002, 82007, 82008, 82009, 82010, 82012, 82016, 82017, 82018, 82019, 82020, 82021, 82022, 82023, 82024, 82025, 82026, 82027, 82028, 82203, 82204, 82205, 82206, 82207, 82208, 82209, 82210, 82211, 83000, 92305, 92306, 92307, 92308, 92309, 92311, 92312, 92401, 92402, 92500, 92600, 92705, 92708, 92709, 92710, 92711, 92712, 92713, 92715, 92716, 92717, 92718, 92719, 92720, 92721, 92723, 92724, 92801, 92802, 92900, 93001, 93002, 93101, 93104, 93105, 93106, 93200, 103205, 103206, 103207, 103208, 103209, 103210, 103211, 103212, 103214, 103215, 103216, 103217, 103219, 103220, 103302, 103303, 103304, 103305, 103306, 103400, 103501, 103502, 103604, 103605, 103606, 103607, 103608, 103609, 103611, 103612, 103614, 103615, 103701, 103702, 103900, 104000, 104100, 104202, 104203, 104204, 104205, 104206, 104207, 104212, 104214, 104215, 104216, 104217, 104218, 104219, 104221, 104222, 104223, 104224, 104225, 104226, 104227, 104301, 104302, 104401, 104402, 104501, 104502, 104600, 104701, 104702, 104801, 104802, 104900, 105002, 105003, 105004, 105101, 105102, 105103, 105200, 105300, 105400, 105501, 105502, 105503, 105601, 105602, 105701, 105702, 105800, 105900, 106001, 106002, 106003, 106100, 106200, 106300, 106400, 106501, 106502, 106600, 106701, 106702, 106703, 106801, 106802, 106900, 107000, 107101, 107102, 107201, 107202, 107300, 107400, 107500, 107601, 107602, 107700, 107800, 107900, 108000, 108100, 108200, 108301, 108302, 108400, 108501, 108502, 108601, 108602, 108802, 108901, 108902, 109001, 109002, 109003, 109101, 109102, 109200, 109300, 109400, 109500, 109601, 109602, 109603, 109604, 109701, 109702, 109703, 109704, 109705, 109801, 109802, 109900, 110001, 110002, 110100, 110400, 110501, 110502, 110600, 110701, 110702, 110801, 110802, 110901, 110902, 111000, 111100, 111201, 111202, 111203, 111204, 111300, 111401, 111402, 111501, 111502, 111601, 111602, 111700, 111800, 111900, 112100, 112201, 112202, 112301, 112302, 112401, 112402, 112502, 112503, 112504, 112505, 112507, 112508, 112509, 112510, 112511, 112512, 112513, 112514, 112601, 112602, 112700, 112900, 113000, 113100, 113201, 113202, 113203, 113300, 113400, 113501, 113502, 113601, 113602, 113700, 113801, 113802, 113900, 114000, 114100, 114200, 114301, 114302, 114401, 114402, 114500, 114600, 114703, 114800, 114900, 115200, 115300, 115400, 115500, 115600, 115700, 115801, 115802, 115900, 116000, 116100, 116202, 116203, 116204, 116205, 116300, 116400, 116500, 116602, 116603, 116604, 116605, 116606, 116607, 116608, 116609, 116610, 116611, 116612, 116613, 116702, 116703, 116704, 116707, 116708, 116709, 116710, 116711, 116712, 116713, 116714, 116715, 116717, 116718, 116719, 116720, 116721, 116725, 116727, 116728, 116729, 116730, 116731, 116732, 116733, 116800, 116900, 117000, 117100, 117200, 117300, 216806, 216807, 216809, 216810, 216813, 216816, 216818, 216819, 216820, 216821, 216822, 216826, 216829, 216830, 216831, 216832, 216833, 216834, 216835, 216836, 216837, 216838, 216839, 216840, 216841, 216842, 216843, 216844, 216845, 216846, 216847, 216848, 216849, 216850, 216851, 216852, 216853, 216901, 216902, 217001, 217002, 217101, 217102, 217201, 217203, 217204, 217300, 217400, 217501, 217502, 217600, 217700, 217800, 217900, 218000, 218100, 218200, 218300, 318400, 318501, 318700, 318800, 318900, 319000, 319101, 319103, 319104, 319201, 319202, 319300, 319401, 319402, 319403, 319404, 319500, 319600, 319703, 319704, 319705, 319706, 319800, 319902, 319903, 319904, 319905, 319906, 319907, 319908, 319909, 319910, 320001, 320002, 320007, 320100, 420104, 420105, 420107, 420108, 420109, 420110, 420111, 420112, 420113, 420114, 420115, 420116, 420202, 420206, 420207, 420208, 420209, 420210, 420211, 420212, 420213, 420214, 420215, 420216, 420301, 420302, 420303, 420304, 420401, 420402, 420501, 420503, 420504, 420602, 420603, 420604, 420704, 420705, 420706, 420707, 420708, 420709, 420710, 420800, 420901, 420902, 421001, 421002, 421101, 421102, 421201, 421202, 421302, 421303, 421304, 421400, 421501, 421502, 421601, 421602, 421701, 421702, 421801, 421802, 421901, 421902, 422001, 422002, 422102, 422103, 422104, 422105, 422106, 422107, 422203, 422204, 422205, 422209, 422210, 422211, 422212, 422213, 422215, 422216, 422217, 422218, 422219, 422220, 422221, 422222, 422301, 422302, 422304, 422305, 422307, 422308, 422309, 422401, 422402, 422403, 422404, 422501, 422502, 422503, 422504, 422506, 422507, 422508, 422509, 422510, 422511, 422512, 422513, 422514, 422606, 422607, 422609, 422610, 422615, 422616, 422617, 422618, 422620, 422621, 422622, 422623, 422624, 422625, 422626, 422627, 422628, 422629, 422630, 422631, 422632, 422633, 422634, 422635, 422636, 422637, 422638, 422639, 422640, 422641, 422642, 422643, 422644, 422646, 522800, 522901, 522903, 522904, 523002, 523003, 523005, 523006, 523102, 523103, 523104, 610000, 610100, 610200, 610300, 610400, 610500, 610600, 610700, 610800, 610900, 611000, 611100, 611200, 611300, 611400, 611500, 611600, 611700, 611800, 611900, 612000, 612200, 612300, 612400, 612500, 612600, 612700, 612800, 612900, 613000, 613100, 613200, 613300, 613400, 613500, 613600, 613700, 613800, 613900, 614000, 614100, 614200, 614300, 614400, 614500, 614600, 614700, 614800, 614900, 615000, 615100, 615200, 615300, 615400, 615500, 615600, 615700, 615800, 615900, 616000, 616100, 616200, 616300, 616400, 616500, 616600, 616700, 616800, 616900, 617000, 617100, 617200, 617300, 617400, 617500, 617600, 617700, 617800, 617900, 618000, 618100, 618200, 618300, 618400, 618500, 618600, 618700, 618800, 618900, 619000, 619100, 619200, 619300, 619400, 619500, 619600, 619700, 619800, 619900, 723303, 723304, 723305, 723306, 723307, 723308, 810000, 810100, 810200, 810300, 810400, 810500, 810600, 810700, 810800, 810900, 811000, 811100, 811200, 811300, 811400, 811500, 811600, 811700, 811800, 811900, 812000, 812100, 812200, 812300, 812400, 812500, 812600, 812700, 812800, 812900, 813000, 813100, 813200, 813300, 813400, 813500, 813600, 813700, 813800, 813900, 814000, 814100, 814200, 814300, 814400, 814500, 814600, 814700, 814800, 814900, 815000, 815100, 815200, 815300, 815400, 815500, 815600, 815700, 815800, 815900, 816000, 816100, 816200, 816300, 816400, 816500, 816600, 816700, 816800, 816900, 817000, 817100, 817200, 817300, 817400, 817500, 817600, 940700, 941000, 941100, 941200, 941300, 980100, 980400, 980500, 980600, 980700],
    '015' : [940400, 940501, 950100, 950401, 950402, 950500, 950600, 950703, 950704, 950705, 950706, 951401, 951402, 951501, 951502, 951601, 951602, 951700, 951800, 951900, 952001, 952002, 952003, 952004, 952400, 952500, 952600, 952700, 952800, 952900, 953000, 953100, 953200, 953300, 953401, 953402, 953601, 953602, 953800, 953900, 954800, 954900, 955000],
    '017' : [940008, 940010, 940011, 940012, 940013, 940014, 940015, 940100, 940301, 940302, 942300, 942400, 942500, 960100, 960200, 960400, 960500, 960600, 961300, 961700, 962500, 963300, 963400, 963700, 963800, 964201, 964202, 964800, 964900, 965200, 965300],
    '019' : [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1302, 1303, 1304, 1400, 1500, 1600, 1700, 1801, 1802, 1900, 2000, 2100, 2201, 2202, 2300, 2400, 2501, 2503, 2504, 2505, 2506, 2602, 2603, 2604, 2701, 2702, 2703, 2801, 2802, 2803, 2901, 2903, 2904, 2905, 3002, 3003, 3004, 3101, 3102, 3200, 3302, 3303, 3304, 3400, 3501, 3502, 3503, 3504, 3600, 3702, 3704, 3705, 3706, 3707, 3801, 3802, 3901, 3902, 3903, 4008, 4010, 4011, 4022, 4025, 4026, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4042, 4043, 4044, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4107, 4109, 4110, 4112, 4113, 4114, 4115, 4116, 4117, 4119, 4120, 4122, 4307, 4310, 4311, 4312, 4313, 4316, 4317, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4404, 4407, 4411, 4412, 4413, 4414, 4415, 4418, 4419, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4504, 4505, 4506, 4508, 4510, 4511, 4512, 4513, 4610, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 410501, 410502, 410503, 470400, 470500, 940600, 940700, 940800, 940900, 941000],
    '021' : [201, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 400, 603, 604, 700, 801, 802, 803, 901, 902, 1000, 1100, 1200, 1301, 1303, 1304, 1305, 1306, 1403, 1404, 1405, 1406, 1407, 1408, 1500, 1600, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1900, 2001, 2002, 2003, 2101, 2102, 2103, 2200, 2300, 2400, 941200, 941300, 941400],
    '023' : [966000, 966101, 966103, 966104, 966105, 966200, 966301, 966302, 966401, 966402],
    '025' : [202, 203, 204, 300, 401, 402, 500, 604, 605, 606, 607, 608, 609, 610, 700, 801, 802, 900, 1001, 1002, 1101, 1102, 1200, 1300, 1401, 1402, 1403, 1500, 1601, 1602, 1603, 1701, 1702, 1703, 1801, 1802, 1900, 2001, 2002, 2003, 2004, 2100],
    '027' : [100, 200, 301, 302, 402, 403, 404, 501, 502, 600, 700, 800, 901, 902, 903, 905, 907, 908, 1001, 1003, 1004, 1100, 1200, 10905, 10907, 10910, 10911, 10913, 10914, 11000, 11104, 11106, 11107, 11108, 11110, 11111, 11112, 11114, 11115, 11201, 11202, 11403, 11405, 11406, 11501, 11503, 11504, 11600, 11700, 11800, 12100, 980003, 980004, 980005, 980006]
]]]></entry>
        <entry id="census2010_ca" type="java"><![CDATA[[
    '001' : [400100, 400200, 400300, 400400, 400500, 400600, 400700, 400800, 400900, 401000, 401100, 401200, 401300, 401400, 401500, 401600, 401700, 401800, 402200, 402400, 402500, 402600, 402700, 402800, 402900, 403000, 403100, 403300, 403400, 403501, 403502, 403600, 403701, 403702, 403800, 403900, 404000, 404101, 404102, 404200, 404300, 404400, 404501, 404502, 404600, 404700, 404800, 404900, 405000, 405100, 405200, 405301, 405302, 405401, 405402, 405500, 405600, 405700, 405800, 405901, 405902, 406000, 406100, 406201, 406202, 406300, 406400, 406500, 406601, 406602, 406700, 406800, 406900, 407000, 407101, 407102, 407200, 407300, 407400, 407500, 407600, 407700, 407800, 407900, 408000, 408100, 408200, 408300, 408400, 408500, 408600, 408700, 408800, 408900, 409000, 409100, 409200, 409300, 409400, 409500, 409600, 409700, 409800, 409900, 410000, 410100, 410200, 410300, 410400, 410500, 420100, 420200, 420300, 420400, 420500, 420600, 421100, 421200, 421300, 421400, 421500, 421600, 421700, 421800, 421900, 422000, 422100, 422200, 422300, 422400, 422500, 422600, 422700, 422800, 422900, 423000, 423100, 423200, 423300, 423400, 423500, 423601, 423602, 423700, 423800, 423901, 423902, 424001, 424002, 425101, 425102, 425103, 425104, 426100, 426200, 427100, 427200, 427300, 427600, 427700, 427800, 427900, 428000, 428100, 428200, 428301, 428302, 428400, 428500, 428600, 428700, 430101, 430102, 430200, 430300, 430400, 430500, 430600, 430700, 430800, 430900, 431000, 431100, 431200, 432100, 432200, 432300, 432400, 432501, 432502, 432600, 432700, 432800, 433000, 433102, 433103, 433104, 433200, 433300, 433400, 433500, 433600, 433700, 433800, 433900, 434000, 435102, 435103, 435104, 435200, 435300, 435400, 435500, 435601, 435602, 435700, 435800, 435900, 436000, 436100, 436200, 436300, 436401, 436402, 436500, 436601, 436602, 436700, 436800, 436900, 437000, 437101, 437102, 437200, 437300, 437400, 437500, 437600, 437701, 437702, 437800, 437900, 438000, 438100, 438201, 438203, 438204, 438300, 438400, 440100, 440200, 440301, 440304, 440305, 440306, 440307, 440308, 440331, 440332, 440333, 440334, 440335, 440336, 441100, 441200, 441301, 441302, 441401, 441402, 441501, 441503, 441521, 441522, 441523, 441524, 441601, 441602, 441700, 441800, 441921, 441923, 441924, 441925, 441926, 441927, 442000, 442100, 442200, 442301, 442302, 442400, 442500, 442601, 442602, 442700, 442800, 442900, 443001, 443002, 443102, 443103, 443104, 443105, 443200, 443301, 443321, 443322, 444100, 444200, 444301, 444302, 444400, 444500, 444601, 444602, 450101, 450102, 450200, 450300, 450400, 450501, 450502, 450601, 450602, 450603, 450604, 450605, 450606, 450607, 450701, 450741, 450742, 450743, 450744, 450745, 450746, 450750, 450751, 450752, 451101, 451102, 451201, 451202, 451300, 451401, 451403, 451404, 451501, 451503, 451504, 451505, 451506, 451601, 451602, 451701, 451703, 451704, 981900, 982000, 983200, 990000],
    '013' : [301000, 302005, 302006, 302007, 302008, 302009, 302010, 303102, 303103, 303201, 303202, 303203, 303204, 303205, 304001, 304002, 304003, 304004, 304005, 305000, 306002, 306003, 306004, 307101, 307102, 307201, 307202, 307204, 307205, 308001, 308002, 309000, 310000, 311000, 312000, 313101, 313102, 313103, 313203, 313204, 313205, 313206, 314102, 314103, 314104, 314200, 315000, 316000, 317000, 318000, 319000, 320001, 320003, 320004, 321101, 321102, 321103, 321200, 322000, 323000, 324001, 324002, 325000, 326000, 327000, 328000, 329000, 330000, 331000, 332000, 333101, 333102, 333200, 334001, 334004, 334006, 334200, 335000, 336101, 336102, 336201, 336202, 337100, 337200, 337300, 338101, 338102, 338201, 338203, 338204, 338301, 338302, 339001, 339002, 340001, 340002, 341000, 343001, 343002, 343003, 345101, 345102, 345103, 345105, 345108, 345111, 345112, 345113, 345114, 345115, 345116, 345202, 345203, 345204, 346101, 346102, 346201, 346203, 346204, 347000, 348000, 349000, 350000, 351101, 351102, 351103, 351200, 352101, 352102, 352201, 352202, 353001, 353002, 354001, 354002, 355107, 355108, 355109, 355110, 355111, 355112, 355113, 355114, 355115, 355116, 355117, 355200, 355301, 355302, 355304, 355306, 356001, 356002, 357000, 358000, 359102, 359103, 359104, 359105, 359202, 359203, 359204, 360101, 360102, 360200, 361000, 362000, 363000, 364002, 365002, 365003, 366001, 366002, 367100, 367200, 368001, 368002, 369001, 369002, 370000, 371000, 372000, 373000, 374000, 375000, 376000, 377000, 378000, 379000, 380000, 381000, 382000, 383000, 384000, 385100, 385200, 386000, 387000, 388000, 389100, 389200, 390100, 390200, 391000, 392000, 392200, 392300, 990000],
    '041' : [101100, 101200, 102100, 102202, 102203, 103100, 103200, 104101, 104102, 104200, 104300, 105000, 106001, 106002, 107000, 108100, 108200, 109001, 109002, 110100, 110200, 111000, 112100, 112201, 112202, 113000, 114100, 114200, 115000, 116000, 117000, 118100, 119100, 119201, 119202, 120000, 121100, 121200, 122000, 123000, 124100, 124200, 125000, 126100, 126200, 127000, 128100, 128200, 129000, 130201, 130202, 131100, 132100, 132200, 133000, 990100],
    '075' : [10100, 10200, 10300, 10400, 10500, 10600, 10700, 10800, 10900, 11000, 11100, 11200, 11300, 11700, 11800, 11901, 11902, 12000, 12100, 12201, 12202, 12301, 12302, 12401, 12402, 12501, 12502, 12601, 12602, 12700, 12800, 12901, 12902, 13000, 13101, 13102, 13200, 13300, 13400, 13500, 15100, 15200, 15300, 15400, 15500, 15600, 15700, 15801, 15802, 15900, 16000, 16100, 16200, 16300, 16400, 16500, 16600, 16700, 16801, 16802, 16900, 17000, 17101, 17102, 17601, 17700, 17801, 17802, 17902, 18000, 20100, 20200, 20300, 20401, 20402, 20500, 20600, 20700, 20800, 20900, 21000, 21100, 21200, 21300, 21400, 21500, 21600, 21700, 21800, 22600, 22702, 22704, 22801, 22802, 22803, 22901, 22902, 22903, 23001, 23003, 23102, 23103, 23200, 23300, 23400, 25100, 25200, 25300, 25401, 25402, 25403, 25500, 25600, 25701, 25702, 25800, 25900, 26001, 26002, 26003, 26004, 26100, 26200, 26301, 26302, 26303, 26401, 26402, 26403, 26404, 30101, 30102, 30201, 30202, 30301, 30302, 30400, 30500, 30600, 30700, 30800, 30900, 31000, 31100, 31201, 31202, 31301, 31302, 31400, 32601, 32602, 32700, 32801, 32802, 32901, 32902, 33000, 33100, 33201, 33203, 33204, 35100, 35201, 35202, 35300, 35400, 40100, 40200, 42601, 42602, 42700, 42800, 45100, 45200, 47600, 47701, 47702, 47801, 47802, 47901, 47902, 60100, 60400, 60502, 60700, 61000, 61100, 61200, 61400, 61500, 980200, 980300, 980401, 980501, 980600, 980900, 990100],
    '081' : [600100, 600200, 600300, 600401, 600402, 600500, 600600, 600700, 600800, 600900, 601000, 601100, 601200, 601300, 601400, 601501, 601502, 601601, 601603, 601604, 601605, 601700, 601800, 601901, 601902, 602000, 602100, 602200, 602300, 602400, 602500, 602600, 602700, 602800, 602900, 603000, 603100, 603200, 603300, 603400, 603700, 603801, 603802, 603900, 604000, 604101, 604102, 604200, 604400, 604500, 604600, 604700, 604800, 604900, 605000, 605100, 605200, 605300, 605400, 605500, 605600, 605700, 605800, 605900, 606000, 606100, 606200, 606300, 606400, 606500, 606600, 606700, 606800, 606900, 607000, 607100, 607200, 607300, 607400, 607500, 607600, 607701, 607702, 607800, 607900, 608001, 608002, 608004, 608013, 608023, 608100, 608200, 608300, 608400, 608501, 608502, 608600, 608700, 608800, 608900, 609000, 609100, 609201, 609202, 609300, 609400, 609500, 609601, 609602, 609603, 609700, 609800, 609900, 610000, 610100, 610201, 610202, 610203, 610302, 610303, 610304, 610400, 610500, 610601, 610602, 610700, 610800, 610900, 611000, 611100, 611200, 611300, 611400, 611500, 611600, 611700, 611800, 611900, 612000, 612100, 612500, 612600, 612700, 612800, 612900, 613000, 613200, 613300, 613400, 613501, 613502, 613600, 613700, 613800, 613900, 614000, 984300, 990100],

    '053' : [101, 102, 103, 104, 200, 300, 400, 501, 502, 600, 701, 702, 800, 900, 1200, 1300, 1400, 1500, 1600, 1700, 1801, 1802, 10101, 10102, 10202, 10305, 10306, 10400, 10501, 10504, 10505, 10506, 10603, 10604, 10605, 10606, 10607, 10608, 10701, 10702, 10804, 10900, 11000, 11101, 11102, 11202, 11203, 11204, 11302, 11303, 11304, 11400, 11502, 11602, 11604, 11700, 11801, 11802, 11900, 12000, 12100, 12200, 12302, 12401, 12402, 12502, 12600, 12700, 12800, 13000, 13100, 13200, 13300, 13400, 13500, 13600, 13700, 13800, 13900, 14000, 14102, 14104, 14105, 14107, 14201, 14202, 14301, 14302, 14500, 14601, 14700, 14800, 980000, 990000],
    '069' : [100, 200, 300, 400, 501, 502, 600, 701, 702, 801, 802],
    '085' : [500100, 500200, 500300, 500400, 500500, 500600, 500800, 500901, 500902, 501000, 501101, 501102, 501200, 501300, 501401, 501402, 501501, 501502, 501600, 501700, 501800, 501900, 502001, 502002, 502101, 502102, 502201, 502202, 502301, 502302, 502400, 502500, 502601, 502603, 502604, 502701, 502702, 502800, 502901, 502902, 502903, 502906, 502907, 502908, 502909, 502910, 503001, 503002, 503003, 503105, 503108, 503110, 503111, 503112, 503113, 503115, 503116, 503117, 503118, 503121, 503122, 503123, 503204, 503207, 503208, 503210, 503211, 503212, 503213, 503214, 503217, 503218, 503304, 503305, 503306, 503312, 503313, 503315, 503321, 503322, 503323, 503324, 503325, 503326, 503327, 503329, 503330, 503331, 503332, 503333, 503334, 503336, 503337, 503401, 503402, 503504, 503506, 503507, 503508, 503509, 503510, 503511, 503601, 503602, 503703, 503707, 503708, 503709, 503710, 503711, 503712, 503713, 503802, 503803, 503804, 503902, 503903, 504001, 504002, 504101, 504102, 504201, 504202, 504307, 504308, 504311, 504314, 504315, 504316, 504317, 504318, 504319, 504320, 504321, 504322, 504323, 504410, 504411, 504412, 504413, 504414, 504415, 504416, 504417, 504418, 504420, 504421, 504422, 504423, 504504, 504505, 504506, 504507, 504601, 504602, 504700, 504802, 504803, 504805, 504806, 504901, 505001, 505006, 505007, 505008, 505009, 505100, 505202, 505203, 505301, 505302, 505303, 505304, 505305, 505401, 505402, 505403, 505500, 505600, 505700, 505800, 505900, 506000, 506101, 506102, 506103, 506202, 506203, 506204, 506301, 506302, 506304, 506305, 506401, 506402, 506501, 506502, 506503, 506601, 506603, 506604, 506605, 506606, 506701, 506702, 506703, 506801, 506802, 506803, 506804, 506900, 507001, 507002, 507100, 507203, 507205, 507206, 507301, 507302, 507401, 507402, 507500, 507600, 507701, 507702, 507703, 507805, 507806, 507807, 507808, 507903, 507904, 507905, 507906, 508001, 508003, 508004, 508101, 508102, 508202, 508203, 508204, 508301, 508303, 508304, 508401, 508403, 508404, 508503, 508504, 508505, 508507, 508508, 508601, 508602, 508703, 508704, 508800, 508900, 509000, 509102, 509105, 509106, 509107, 509108, 509109, 509201, 509202, 509302, 509303, 509304, 509401, 509403, 509404, 509500, 509600, 509700, 509801, 509802, 509901, 509902, 510001, 510002, 510100, 510200, 510300, 510400, 510500, 510600, 510700, 510801, 510802, 510803, 510900, 511000, 511100, 511200, 511301, 511302, 511400, 511500, 511608, 511609, 511701, 511702, 511704, 511705, 511707, 511800, 511905, 511907, 511909, 511910, 511911, 511912, 511913, 511914, 511915, 511916, 512001, 512005, 512017, 512019, 512020, 512021, 512022, 512023, 512024, 512025, 512026, 512027, 512029, 512030, 512031, 512032, 512033, 512034, 512035, 512036, 512037, 512038, 512039, 512042, 512043, 512045, 512047, 512052, 512053, 512100, 512200, 512305, 512307, 512308, 512309, 512310, 512311, 512312, 512313, 512314, 512401, 512402, 512503, 512505, 512506, 512508, 512509, 512510, 512602, 512603, 512604, 513000, 513500],
    '087' : [100100, 100200, 100300, 100400, 100500, 100600, 100700, 100800, 100900, 101000, 101100, 101200, 110100, 110200, 110300, 110400, 110501, 110502, 110600, 110700, 120200, 120301, 120302, 120400, 120500, 120600, 120700, 120800, 120900, 121000, 121100, 121200, 121300, 121401, 121402, 121403, 121500, 121600, 121700, 121800, 122001, 122002, 122003, 122100, 122201, 122202, 122203, 122300, 122400, 122500, 123100, 123300, 990100],

    '037' : [101110, 101122, 101210, 101220, 101300, 101400, 102103, 102104, 102105, 102107, 103101, 103102, 103200, 103300, 103400, 104103, 104105, 104108, 104124, 104201, 104203, 104204, 104310, 104320, 104401, 104403, 104404, 104500, 104610, 104620, 104701, 104703, 104704, 104810, 104821, 104822, 106010, 106020, 106111, 106112, 106113, 106114, 106403, 106405, 106406, 106407, 106408, 106510, 106520, 106603, 106604, 106641, 106642, 106643, 106645, 106646, 106648, 106649, 107010, 107020, 108101, 108102, 108103, 108104, 108201, 108202, 109100, 109200, 109300, 109400, 109500, 109601, 109603, 109604, 109700, 109800, 111100, 111201, 111202, 111204, 111205, 111206, 111301, 111302, 111400, 113101, 113102, 113211, 113212, 113213, 113231, 113232, 113233, 113234, 113235, 113237, 113301, 113303, 113321, 113322, 113401, 113421, 113422, 115101, 115103, 115104, 115201, 115202, 115301, 115302, 115401, 115403, 115404, 117101, 117102, 117201, 117202, 117301, 117302, 117303, 117404, 117405, 117407, 117408, 117510, 117520, 117530, 119001, 119002, 119201, 119202, 119310, 119320, 119340, 119341, 119342, 119400, 119700, 119800, 119900, 120010, 120020, 120030, 120103, 120104, 120105, 120106, 120107, 120108, 120300, 120400, 121010, 121020, 121101, 121102, 121210, 121221, 121222, 121600, 121801, 121802, 121900, 122000, 122120, 122121, 122122, 122200, 122410, 122420, 123010, 123020, 123103, 123104, 123203, 123204, 123205, 123206, 123301, 123303, 123304, 123410, 123420, 123510, 123520, 123601, 123602, 123700, 123800, 123901, 123902, 124000, 124102, 124103, 124104, 124105, 124201, 124203, 124204, 124300, 124400, 124500, 124600, 124700, 124902, 124903, 125100, 125200, 125310, 125320, 125401, 125402, 125501, 125502, 125600, 127102, 127103, 127104, 127210, 127220, 127300, 127400, 127520, 127603, 127604, 127605, 127606, 127711, 127712, 127803, 127804, 127805, 127806, 127910, 127920, 128101, 128102, 128210, 128220, 128302, 128303, 128400, 128500, 128601, 128602, 128702, 128801, 128802, 128910, 131010, 131020, 131100, 131200, 131300, 131400, 131600, 131701, 131702, 131800, 131900, 132001, 132002, 132101, 132102, 132300, 132501, 132502, 132700, 132900, 133000, 133100, 134001, 134002, 134101, 134103, 134104, 134201, 134302, 134303, 134304, 134305, 134306, 134421, 134422, 134423, 134424, 134520, 134521, 134522, 134710, 134720, 134800, 134901, 134903, 134904, 134905, 135102, 135111, 135113, 135114, 135201, 135202, 135203, 137103, 137104, 137201, 137301, 137302, 137401, 137402, 137501, 137502, 137504, 138000, 139001, 139200, 139301, 139302, 139303, 139401, 139402, 139502, 139503, 139504, 139600, 139701, 139702, 139703, 139801, 139802, 141101, 141102, 141201, 141202, 141302, 141303, 141304, 141400, 141500, 141600, 141700, 143100, 143200, 143300, 143400, 143500, 143602, 143603, 143604, 143700, 143800, 143901, 143902, 181000, 181300, 181400, 181500, 181600, 183101, 183103, 183104, 183220, 183221, 183222, 183300, 183401, 183402, 183510, 183520, 183610, 183620, 183701, 183702, 183810, 183820, 185100, 185202, 185203, 185204, 185310, 185320, 186100, 186201, 186202, 186203, 186301, 186302, 186401, 186403, 186404, 187101, 187102, 187200, 187300, 188100, 188201, 188202, 188300, 189101, 189102, 189201, 189202, 189300, 189400, 189500, 189600, 189701, 189702, 189800, 189902, 189903, 189904, 189905, 190100, 190201, 190202, 190301, 190401, 190402, 190510, 190520, 190700, 190801, 190802, 190901, 190902, 191000, 191110, 191120, 191201, 191203, 191204, 191301, 191302, 191410, 191420, 191500, 191610, 191620, 191710, 191720, 191810, 191820, 191901, 191902, 192001, 192002, 192300, 192410, 192420, 192510, 192520, 192610, 192620, 192700, 194101, 194102, 194200, 194300, 194401, 194402, 194500, 195100, 195201, 195202, 195300, 195400, 195500, 195600, 195710, 195720, 195802, 195803, 195804, 195901, 195902, 195903, 197200, 197300, 197410, 197420, 197500, 197600, 197700, 199000, 199110, 199120, 199201, 199202, 199300, 199400, 199700, 199800, 199900, 201110, 201120, 201200, 201301, 201302, 201401, 201402, 201501, 201503, 201504, 201601, 201602, 201700, 203100, 203200, 203300, 203500, 203600, 203710, 203720, 203800, 203900, 204110, 204120, 204200, 204300, 204410, 204420, 204600, 204700, 204810, 204820, 204910, 204920, 205110, 205120, 206010, 206020, 206031, 206032, 206050, 206200, 206300, 207101, 207102, 207103, 207301, 207302, 207400, 207501, 207502, 207710, 207900, 208000, 208301, 208302, 208401, 208402, 208501, 208502, 208610, 208620, 208710, 208720, 208801, 208802, 208902, 208903, 208904, 209102, 209103, 209104, 209200, 209300, 209401, 209402, 209403, 209510, 209520, 209810, 209820, 210010, 211000, 211120, 211121, 211122, 211201, 211202, 211310, 211320, 211410, 211420, 211500, 211701, 211703, 211704, 211802, 211803, 211804, 211910, 211921, 211922, 212101, 212102, 212202, 212203, 212204, 212303, 212304, 212305, 212306, 212410, 212420, 212501, 212502, 212610, 212620, 212701, 212702, 212800, 212900, 213100, 213201, 213202, 213310, 213320, 213401, 213402, 214000, 214100, 214400, 214501, 214502, 214503, 214600, 214700, 214800, 214901, 214902, 215101, 215102, 216100, 216200, 216300, 216401, 216402, 216700, 216800, 216900, 217001, 217002, 217100, 217200, 218110, 218120, 218210, 218220, 218300, 218400, 218500, 218600, 218701, 218702, 218800, 218900, 219010, 219020, 219300, 219500, 219700, 219800, 219901, 219902, 220000, 220100, 221110, 221120, 221210, 221220, 221302, 221303, 221304, 221401, 221402, 221500, 221601, 221602, 221710, 221810, 221820, 221900, 222001, 222002, 222100, 222200, 222500, 222600, 222700, 224010, 224020, 224200, 224310, 224320, 224410, 224420, 224600, 224700, 226001, 226002, 226410, 226420, 226700, 227010, 227020, 228100, 228210, 228220, 228310, 228320, 228410, 228420, 228500, 228600, 228710, 228720, 228800, 228900, 229100, 229200, 229300, 229410, 229420, 231100, 231210, 231220, 231300, 231400, 231500, 231600, 231710, 231720, 231800, 231900, 232110, 232120, 232200, 232300, 232400, 232500, 232600, 232700, 232800, 234000, 234200, 234300, 234501, 234502, 234600, 234700, 234800, 234901, 234902, 235100, 235201, 235202, 236000, 236100, 236202, 236203, 236204, 236400, 237101, 237102, 237201, 237202, 237300, 237401, 237402, 237500, 237600, 237710, 237720, 237800, 237900, 238000, 238100, 238200, 238310, 238320, 238400, 239201, 239202, 239310, 239320, 239330, 239501, 239502, 239601, 239602, 239701, 239702, 239801, 239802, 240010, 240020, 240200, 240300, 240401, 240402, 240500, 240600, 240700, 240800, 240900, 241001, 241002, 241110, 241120, 241201, 241202, 241300, 241400, 242000, 242100, 242200, 242300, 242600, 242700, 243000, 243100, 261101, 261102, 261200, 262100, 262200, 262301, 262302, 262303, 262400, 262501, 262601, 262604, 262704, 262706, 262802, 264000, 264102, 264103, 264301, 264302, 265100, 265201, 265202, 265301, 265303, 265304, 265305, 265410, 265420, 265510, 265520, 265601, 265602, 265700, 267100, 267200, 267300, 267402, 267403, 267404, 267501, 267502, 267600, 267700, 267800, 267901, 267902, 269000, 269100, 269300, 269500, 269601, 269602, 269700, 269800, 269903, 269904, 269905, 269906, 269907, 270100, 270200, 270300, 271100, 271200, 271300, 271400, 271500, 271600, 271701, 271702, 271801, 271802, 271901, 271902, 272100, 272201, 272202, 272301, 272302, 273100, 273200, 273300, 273402, 273502, 273600, 273700, 273800, 273902, 274100, 274202, 275101, 275102, 275200, 275302, 275311, 275400, 275500, 275602, 275603, 276000, 276100, 276400, 276500, 276601, 276603, 276604, 277000, 277100, 277200, 277400, 278001, 278102, 291110, 291120, 291130, 291210, 291220, 291300, 292000, 293201, 293202, 293301, 293302, 293304, 293306, 293307, 294110, 294120, 294200, 294301, 294302, 294410, 294421, 294510, 294520, 294610, 294620, 294701, 294810, 294820, 294830, 294900, 295103, 296210, 296220, 296300, 296401, 296402, 296500, 296600, 296901, 296902, 297000, 297110, 297120, 297201, 297202, 297300, 297400, 297500, 297601, 297602, 300100, 300200, 300301, 300400, 300501, 300502, 300600, 300701, 300702, 300800, 300901, 300902, 301000, 301100, 301203, 301204, 301205, 301206, 301300, 301400, 301501, 301502, 301601, 301602, 301701, 301702, 301801, 301802, 301900, 302002, 302003, 302004, 302102, 302103, 302104, 302201, 302202, 302301, 302302, 302401, 302503, 302504, 302505, 302506, 310100, 310201, 310202, 310300, 310400, 310501, 310601, 310602, 310701, 310702, 310703, 310800, 310900, 311000, 311100, 311200, 311300, 311400, 311500, 311600, 311700, 311801, 311802, 320000, 320100, 320201, 320202, 320300, 400204, 400205, 400206, 400207, 400302, 400304, 400402, 400403, 400404, 400501, 400602, 400603, 400604, 400800, 400900, 401001, 401002, 401101, 401102, 401201, 401202, 401203, 401303, 401304, 401311, 401312, 401500, 401601, 401602, 401603, 401701, 401703, 401704, 401800, 401901, 401902, 402001, 402002, 402101, 402102, 402200, 402301, 402303, 402304, 402402, 402403, 402404, 402405, 402406, 402501, 402502, 402600, 402702, 402703, 402705, 402706, 402801, 402803, 402804, 402902, 402903, 402904, 403000, 403200, 403303, 403304, 403305, 403312, 403316, 403317, 403318, 403319, 403320, 403321, 403322, 403323, 403324, 403325, 403401, 403402, 403403, 403404, 403405, 403406, 403407, 403408, 403500, 403600, 403702, 403703, 403721, 403722, 403801, 403802, 403901, 403902, 404000, 404100, 404201, 404202, 404301, 404302, 404401, 404402, 404501, 404503, 404504, 404600, 404701, 404702, 404703, 404801, 404802, 404803, 404901, 404902, 404903, 405001, 405002, 405101, 405102, 405201, 405202, 405203, 405301, 405302, 405400, 405500, 405600, 405701, 405702, 405800, 405900, 406000, 406101, 406102, 406200, 406300, 406402, 406411, 406412, 406500, 406601, 406602, 406701, 406702, 406800, 406901, 406902, 407001, 407002, 407101, 407102, 407200, 407301, 407302, 407400, 407501, 407502, 407601, 407602, 407701, 407702, 407801, 407802, 407900, 408003, 408004, 408005, 408006, 408133, 408134, 408135, 408136, 408137, 408138, 408139, 408140, 408141, 408202, 408211, 408212, 408301, 408302, 408303, 408401, 408402, 408501, 408503, 408504, 408505, 408623, 408624, 408625, 408626, 408627, 408628, 408629, 408630, 408631, 408703, 408704, 408705, 408706, 408722, 408723, 408724, 408800, 430002, 430003, 430101, 430102, 430200, 430301, 430302, 430400, 430501, 430502, 430600, 430701, 430721, 430723, 430724, 430801, 430802, 430803, 430901, 430902, 431001, 431002, 431100, 431200, 431300, 431400, 431501, 431502, 431600, 431700, 431800, 431900, 432000, 432101, 432102, 432201, 432202, 432300, 432401, 432402, 432500, 432601, 432602, 432700, 432801, 432802, 432901, 432902, 433101, 433102, 433200, 433302, 433304, 433305, 433306, 433307, 433401, 433402, 433403, 433501, 433503, 433504, 433601, 433602, 433700, 433801, 433802, 433901, 433902, 434001, 434003, 434004, 460000, 460100, 460200, 460301, 460302, 460401, 460501, 460502, 460600, 460700, 460800, 460900, 461000, 461100, 461200, 461300, 461400, 461501, 461502, 461600, 461700, 461901, 461902, 462001, 462002, 462100, 462201, 462202, 462301, 462302, 462400, 462500, 462600, 462700, 462800, 462900, 463000, 463101, 463102, 463200, 463300, 463400, 463500, 463601, 463602, 463700, 463800, 463900, 464000, 464100, 464200, 480002, 480011, 480012, 480101, 480102, 480201, 480202, 480302, 480303, 480304, 480400, 480500, 480600, 480702, 480703, 480704, 480802, 480803, 480804, 480901, 480902, 480903, 481001, 481002, 481101, 481102, 481103, 481201, 481202, 481300, 481401, 481402, 481500, 481603, 481604, 481605, 481606, 481711, 481712, 481713, 481714, 481800, 481901, 481902, 482001, 482002, 482101, 482102, 482201, 482202, 482301, 482303, 482304, 482401, 482402, 482502, 482503, 482521, 482522, 482600, 482701, 482702, 482800, 500100, 500201, 500202, 500300, 500402, 500403, 500404, 500500, 500600, 500700, 500800, 500900, 501001, 501002, 501200, 501300, 501400, 501501, 501503, 501504, 501600, 501700, 501802, 501803, 501804, 501900, 502003, 502004, 502005, 502100, 502200, 502301, 502302, 502401, 502402, 502500, 502601, 502602, 502700, 502801, 502802, 502901, 502902, 503000, 503103, 503104, 503105, 503106, 503201, 503202, 503301, 503302, 503401, 503402, 503501, 503502, 503601, 503602, 503701, 503702, 503703, 503801, 503802, 503901, 503902, 504001, 504002, 504101, 504102, 530003, 530004, 530005, 530006, 530101, 530102, 530202, 530203, 530204, 530301, 530302, 530400, 530500, 530601, 530602, 530700, 530801, 530802, 530901, 530902, 531000, 531101, 531102, 531201, 531202, 531301, 531302, 531502, 531503, 531504, 531602, 531603, 531604, 531701, 531702, 531800, 531901, 531902, 532001, 532002, 532101, 532102, 532200, 532302, 532303, 532304, 532400, 532500, 532603, 532604, 532605, 532606, 532700, 532800, 532900, 533001, 533002, 533103, 533104, 533105, 533106, 533107, 533201, 533202, 533203, 533300, 533401, 533402, 533403, 533501, 533502, 533503, 533601, 533602, 533603, 533701, 533702, 533703, 533803, 533804, 533805, 533806, 533901, 533902, 534001, 534002, 534101, 534102, 534201, 534202, 534203, 534301, 534302, 534403, 534404, 534405, 534406, 534501, 534502, 534700, 534802, 534803, 534804, 534900, 535001, 535002, 535101, 535102, 535200, 535300, 535400, 535501, 535502, 535503, 535603, 535604, 535605, 535606, 535607, 535701, 535702, 535802, 535803, 535804, 535901, 535902, 536000, 536102, 536103, 536104, 536200, 540000, 540101, 540102, 540201, 540202, 540203, 540300, 540400, 540501, 540502, 540600, 540700, 540800, 540901, 540902, 541001, 541002, 541100, 541200, 541300, 541400, 541500, 541603, 541604, 541605, 541606, 541700, 541801, 541802, 542000, 542103, 542104, 542105, 542106, 542200, 542401, 542402, 542501, 542502, 542601, 542602, 542700, 542800, 542900, 543000, 543100, 543201, 543202, 543304, 543305, 543306, 543321, 543322, 543400, 543501, 543502, 543503, 543601, 543602, 543603, 543604, 543701, 543702, 543703, 543801, 543802, 543903, 543905, 544001, 544002, 550000, 550100, 550201, 550202, 550300, 550400, 550500, 550601, 550602, 550700, 550800, 550901, 550902, 551000, 551101, 551102, 551201, 551202, 551300, 551401, 551402, 551501, 551502, 551600, 551700, 551800, 551900, 552001, 552002, 552100, 552200, 552301, 552302, 552400, 552601, 552602, 552700, 552800, 552900, 553000, 553100, 553200, 553300, 553400, 553502, 553503, 553504, 553601, 553602, 553701, 553702, 553801, 553802, 553901, 553902, 554001, 554002, 554101, 554103, 554104, 554105, 554201, 554203, 554204, 554301, 554302, 554403, 554404, 554405, 554406, 554511, 554512, 554513, 554514, 554515, 554516, 554517, 554518, 554519, 554521, 554522, 554600, 554700, 554801, 554802, 554900, 555001, 555002, 555102, 555103, 555104, 555202, 555211, 555212, 570001, 570002, 570003, 570100, 570202, 570203, 570204, 570301, 570303, 570304, 570402, 570403, 570404, 570501, 570502, 570601, 570602, 570603, 570701, 570702, 570800, 570901, 570902, 571000, 571101, 571102, 571200, 571300, 571400, 571502, 571503, 571504, 571600, 571701, 571703, 571704, 571800, 571900, 572001, 572002, 572100, 572201, 572202, 572301, 572302, 572400, 572500, 572600, 572700, 572800, 572900, 573002, 573003, 573004, 573100, 573201, 573202, 573300, 573401, 573402, 573403, 573601, 573700, 573800, 573902, 574000, 574100, 574201, 574202, 574300, 574400, 574500, 574601, 574602, 574700, 574800, 574901, 574902, 575001, 575002, 575101, 575102, 575103, 575201, 575202, 575300, 575401, 575402, 575500, 575801, 575802, 575803, 575901, 575902, 576001, 576200, 576301, 576302, 576401, 576402, 576403, 576501, 576502, 576503, 576601, 576602, 576700, 576801, 576802, 576901, 576903, 576904, 577000, 577100, 577200, 577300, 577400, 577501, 577504, 577602, 577603, 577604, 599000, 599100, 600100, 600201, 600202, 600302, 600303, 600304, 600400, 600501, 600502, 600601, 600602, 600702, 600703, 600704, 600801, 600802, 600902, 600911, 600912, 601001, 601002, 601100, 601202, 601211, 601212, 601301, 601302, 601303, 601401, 601402, 601501, 601502, 601600, 601700, 601801, 601802, 601900, 602002, 602003, 602004, 602103, 602104, 602105, 602106, 602200, 602301, 602302, 602402, 602403, 602404, 602504, 602505, 602506, 602507, 602508, 602509, 602600, 602700, 602801, 602802, 602900, 603001, 603004, 603005, 603006, 603101, 603102, 603200, 603301, 603302, 603400, 603500, 603600, 603702, 603703, 603704, 603801, 603802, 603900, 604001, 604002, 604100, 609900, 620001, 620002, 620101, 620102, 620201, 620301, 620303, 620305, 620400, 620501, 620521, 620522, 620601, 620602, 620701, 620702, 620800, 620901, 620904, 621001, 621002, 621004, 621102, 621104, 621201, 621204, 621301, 621324, 621326, 621400, 650001, 650003, 650004, 650101, 650102, 650200, 650300, 650401, 650501, 650502, 650602, 650603, 650604, 650605, 650701, 650702, 650800, 650901, 650902, 651001, 651002, 651101, 651102, 651201, 651221, 651222, 651302, 651304, 651401, 651402, 670001, 670002, 670003, 670100, 670201, 670202, 670324, 670326, 670328, 670403, 670405, 670406, 670407, 670411, 670413, 670416, 670500, 670602, 670701, 670702, 700101, 700102, 700200, 700300, 700400, 700501, 700502, 700600, 700700, 700801, 700802, 700901, 700902, 701000, 701100, 701201, 701202, 701302, 701304, 701402, 701501, 701502, 701601, 701602, 701701, 701702, 701801, 701802, 701902, 702002, 702102, 702201, 702202, 702300, 702400, 702501, 702502, 702600, 702700, 702801, 702802, 702803, 702901, 703001, 703002, 703100, 703200, 800101, 800102, 800202, 800203, 800204, 800324, 800325, 800326, 800327, 800328, 800329, 800330, 800331, 800332, 800406, 800408, 800410, 800504, 800506, 900102, 900103, 900104, 900201, 900300, 900501, 900504, 900505, 900506, 900507, 900508, 900602, 900605, 900606, 900607, 900608, 900609, 900701, 900703, 900704, 900705, 900803, 900804, 900805, 900806, 900900, 901003, 901004, 901007, 901008, 901009, 901010, 901011, 901101, 901102, 901205, 901209, 901210, 901213, 910001, 910002, 910101, 910201, 910202, 910205, 910206, 910207, 910208, 910209, 910210, 910301, 910302, 910401, 910402, 910403, 910404, 910501, 910502, 910504, 910505, 910601, 910602, 910603, 910605, 910606, 910705, 910706, 910707, 910709, 910711, 910712, 910713, 910714, 910715, 910716, 910804, 910805, 910807, 910808, 910809, 910810, 910811, 910812, 910813, 911001, 920011, 920012, 920013, 920015, 920016, 920017, 920018, 920020, 920023, 920026, 920028, 920029, 920030, 920031, 920032, 920033, 920034, 920035, 920036, 920037, 920038, 920039, 920040, 920041, 920042, 920043, 920044, 920045, 920102, 920104, 920106, 920107, 920108, 920109, 920110, 920111, 920112, 920114, 920115, 920116, 920118, 920119, 920200, 920303, 920312, 920313, 920314, 920322, 920326, 920328, 920329, 920330, 920331, 920332, 920334, 920336, 920337, 920338, 920339, 930101, 930200, 930301, 930401, 980001, 980002, 980003, 980004, 980005, 980006, 980007, 980008, 980009, 980010, 980013, 980014, 980015, 980018, 980019, 980020, 980021, 980022, 980023, 980024, 980025, 980026, 980028, 980030, 980031, 980033, 990100, 990200, 990300],

    '003' : [10000],
    '005' : [101, 102, 200, 301, 303, 304, 401, 402, 500],
    '007' : [102, 103, 104, 201, 202, 300, 401, 402, 501, 502, 601, 603, 604, 700, 800, 901, 903, 904, 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1702, 1703, 1704, 1800, 1900, 2000, 2100, 2200, 2300, 2400, 2500, 2601, 2602, 2700, 2800, 2900, 3001, 3002, 3100, 3200, 3300, 3400, 3501, 3502, 3600, 3700],
    '009' : [120, 121, 122, 210, 220, 300, 400, 501, 503, 504],
    '011' : [100, 200, 300, 400, 500],
    '015' : [101, 102, 104, 105, 201, 202, 203, 990000],
    '017' : [30200, 30301, 30302, 30401, 30402, 30502, 30504, 30505, 30601, 30602, 30603, 30701, 30704, 30706, 30709, 30710, 30801, 30803, 30804, 30807, 30808, 30809, 30810, 30901, 30902, 31000, 31100, 31200, 31301, 31302, 31402, 31404, 31405, 31406, 31502, 31503, 31504, 31600, 31700, 31800, 31900, 32000, 990000],
    '019' : [100, 200, 300, 400, 501, 502, 600, 700, 800, 901, 902, 1000, 1100, 1201, 1202, 1301, 1303, 1304, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1500, 1600, 1700, 1800, 1900, 2000, 2100, 2200, 2300, 2400, 2501, 2502, 2601, 2602, 2701, 2702, 2800, 2903, 2904, 2905, 2906, 3001, 3003, 3004, 3102, 3103, 3104, 3201, 3202, 3301, 3302, 3400, 3500, 3600, 3701, 3702, 3803, 3804, 3805, 3807, 3808, 3809, 3810, 3900, 4001, 4002, 4100, 4205, 4207, 4208, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4301, 4302, 4303, 4404, 4405, 4406, 4408, 4409, 4503, 4504, 4505, 4506, 4601, 4602, 4701, 4703, 4704, 4801, 4802, 4901, 4902, 5000, 5100, 5202, 5203, 5204, 5301, 5302, 5304, 5305, 5403, 5405, 5406, 5407, 5408, 5409, 5410, 5503, 5504, 5505, 5507, 5508, 5509, 5510, 5512, 5513, 5514, 5515, 5516, 5517, 5518, 5520, 5522, 5524, 5525, 5602, 5605, 5606, 5607, 5608, 5701, 5702, 5703, 5704, 5801, 5802, 5804, 5805, 5904, 5905, 5906, 5907, 5909, 5911, 5912, 6000, 6100, 6201, 6202, 6300, 6402, 6403, 6404, 6405, 6501, 6502, 6602, 6603, 6604, 6700, 6802, 6900, 7002, 7003, 7004, 7100, 7201, 7202, 7300, 7400, 7500, 7600, 7700, 7801, 7802, 7901, 7902, 8000, 8100, 8200, 8301, 8302, 8401, 8402, 8501, 8502],
    '021' : [10100, 10200, 10300, 10400, 10501, 10502],
    '023' : [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1101, 1200, 1300, 10102, 10200, 10300, 10400, 10501, 10502, 10600, 10700, 10800, 10901, 10902, 11000, 11100, 11200, 11500, 11600, 940000, 990100],
    '025' : [10101, 10102, 10200, 10300, 10400, 10500, 10600, 10700, 10800, 10900, 11000, 11100, 11201, 11202, 11300, 11400, 11500, 11600, 11700, 11801, 11802, 11803, 11900, 12001, 12002, 12100, 12200, 12301, 12302, 12400, 940000],
    '027' : [100, 200, 300, 400, 500, 800],
    '029' : [101, 102, 200, 300, 400, 503, 504, 505, 506, 507, 600, 700, 800, 902, 903, 904, 905, 906, 907, 908, 909, 910, 1000, 1101, 1102, 1103, 1201, 1202, 1300, 1400, 1500, 1600, 1700, 1801, 1802, 1901, 1902, 2000, 2100, 2200, 2301, 2302, 2400, 2500, 2600, 2700, 2804, 2806, 2807, 2808, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2900, 3000, 3103, 3112, 3113, 3114, 3115, 3121, 3122, 3123, 3124, 3202, 3203, 3204, 3205, 3206, 3303, 3304, 3305, 3306, 3400, 3500, 3600, 3700, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3900, 4000, 4101, 4102, 4200, 4301, 4302, 4401, 4402, 4500, 4601, 4603, 4604, 4701, 4702, 4800, 4901, 4902, 5003, 5004, 5103, 5104, 5201, 5203, 5204, 5300, 5401, 5402, 5403, 5404, 5501, 5506, 5507, 5508, 5600, 5700, 5801, 5802, 5900, 6002, 6003, 6004, 6006, 6007, 6008, 6100, 6201, 6202, 6301, 6303, 6304, 6401, 6403, 6404, 6500],
    '031' : [100, 200, 300, 402, 403, 404, 405, 500, 601, 602, 701, 702, 800, 900, 1001, 1002, 1003, 1100, 1200, 1300, 1401, 1402, 1500, 1601, 1602, 1701, 981800],
    '033' : [100, 300, 400, 501, 502, 600, 701, 702, 801, 802, 900, 1000, 1100, 1200, 1300],
    '035' : [40100, 40200, 40302, 40303, 40304, 40305, 40400, 40500, 40600],
    '039' : [102, 103, 104, 106, 108, 109, 201, 202, 300, 400, 502, 503, 506, 507, 508, 509, 602, 603, 604, 700, 800, 900, 1000],
    '043' : [101, 102, 200, 301, 302, 400],
    '045' : [10100, 10200, 10300, 10400, 10500, 10600, 10700, 10801, 10802, 10900, 11001, 11002, 11102, 11200, 11300, 11400, 11500, 11600, 11700, 11800, 990100],
    '047' : [201, 202, 203, 301, 303, 304, 401, 402, 503, 504, 505, 601, 602, 603, 701, 702, 801, 802, 901, 902, 1002, 1003, 1004, 1005, 1101, 1200, 1301, 1302, 1401, 1402, 1501, 1502, 1503, 1601, 1602, 1700, 1801, 1901, 1902, 2000, 2100, 2201, 2202, 2301, 2302, 2401, 2402, 2500, 2600],
    '049' : [100, 200, 300, 400],
    '051' : [101, 102, 200],
    '055' : [200201, 200202, 200203, 200301, 200302, 200400, 200501, 200503, 200504, 200505, 200601, 200602, 200703, 200704, 200705, 200706, 200707, 200802, 200803, 200804, 200900, 201003, 201004, 201005, 201006, 201007, 201101, 201102, 201200, 201300, 201401, 201402, 201403, 201500, 201601, 201602, 201700, 201800, 201900, 202000],
    '057' : [102, 103, 104, 105, 200, 300, 401, 402, 501, 502, 600, 701, 702, 801, 802, 900, 1203, 1204, 1205, 1206],
    '059' : [1101, 1102, 1103, 1201, 1202, 1301, 1303, 1304, 1401, 1402, 1403, 1404, 1501, 1503, 1504, 1505, 1506, 1507, 1601, 1602, 1704, 1705, 1706, 1707, 1708, 1801, 1802, 1901, 1902, 1903, 11000, 11101, 11102, 11200, 11300, 11401, 11402, 11403, 11502, 11503, 11504, 11601, 11602, 11707, 11708, 11709, 11710, 11711, 11712, 11714, 11715, 11716, 11717, 11718, 11720, 11721, 11722, 21802, 21807, 21809, 21810, 21812, 21813, 21814, 21815, 21816, 21817, 21820, 21821, 21822, 21823, 21824, 21825, 21826, 21827, 21828, 21829, 21830, 21903, 21905, 21912, 21913, 21914, 21915, 21916, 21917, 21918, 21919, 21920, 21921, 21922, 21923, 21924, 32002, 32003, 32011, 32012, 32013, 32014, 32015, 32020, 32022, 32023, 32027, 32028, 32029, 32030, 32031, 32032, 32033, 32034, 32035, 32036, 32037, 32038, 32039, 32040, 32041, 32042, 32043, 32044, 32045, 32046, 32047, 32048, 32049, 32050, 32051, 32053, 32054, 32055, 32056, 32057, 32058, 32059, 32061, 42103, 42106, 42107, 42108, 42109, 42111, 42112, 42113, 42114, 42201, 42203, 42205, 42206, 42305, 42307, 42310, 42311, 42312, 42313, 42315, 42317, 42319, 42320, 42323, 42324, 42325, 42326, 42327, 42328, 42329, 42330, 42331, 42332, 42333, 42334, 42335, 42336, 42337, 42338, 42339, 52404, 52408, 52410, 52411, 52415, 52416, 52417, 52418, 52419, 52420, 52421, 52422, 52423, 52424, 52425, 52426, 52427, 52428, 52502, 52505, 52506, 52511, 52513, 52514, 52515, 52517, 52518, 52519, 52520, 52521, 52522, 52523, 52524, 52525, 52526, 52527, 52528, 62604, 62605, 62610, 62611, 62612, 62614, 62619, 62620, 62621, 62622, 62625, 62626, 62627, 62628, 62629, 62630, 62631, 62632, 62633, 62634, 62635, 62636, 62637, 62638, 62639, 62640, 62641, 62642, 62643, 62644, 62645, 62646, 62647, 62648, 62649, 62701, 62702, 62800, 62900, 63004, 63005, 63006, 63007, 63008, 63009, 63010, 63101, 63102, 63103, 63201, 63202, 63301, 63302, 63400, 63500, 63601, 63603, 63604, 63605, 63701, 63702, 63802, 63803, 63805, 63806, 63807, 63808, 63902, 63903, 63904, 63905, 63906, 63907, 63908, 74003, 74004, 74005, 74006, 74102, 74103, 74106, 74107, 74108, 74109, 74110, 74111, 74200, 74300, 74403, 74405, 74406, 74407, 74408, 74501, 74502, 74601, 74602, 74701, 74702, 74801, 74802, 74803, 74805, 74806, 74901, 74902, 75002, 75003, 75004, 75100, 75201, 75202, 75301, 75302, 75303, 75401, 75403, 75404, 75405, 75504, 75505, 75506, 75507, 75512, 75513, 75514, 75515, 75603, 75604, 75605, 75606, 75607, 75701, 75702, 75703, 75805, 75806, 75807, 75808, 75809, 75810, 75811, 75812, 75813, 75814, 75815, 75816, 75901, 75902, 76000, 76101, 76102, 76103, 76201, 76202, 76204, 76205, 76206, 76208, 86301, 86303, 86304, 86305, 86306, 86402, 86404, 86405, 86406, 86407, 86501, 86502, 86601, 86602, 86701, 86702, 86801, 86802, 86803, 86901, 86902, 86903, 87001, 87002, 87101, 87102, 87103, 87105, 87106, 87200, 87300, 87401, 87403, 87404, 87405, 87503, 87504, 87505, 87601, 87602, 87701, 87703, 87704, 87801, 87802, 87803, 87805, 87806, 87901, 87902, 88001, 88002, 88101, 88104, 88105, 88106, 88107, 88201, 88202, 88203, 88301, 88302, 88401, 88402, 88403, 88501, 88502, 88601, 88602, 88701, 88702, 88801, 88802, 88901, 88902, 88903, 88904, 88905, 89001, 89003, 89004, 89102, 89104, 89105, 89106, 89107, 99202, 99203, 99204, 99212, 99214, 99215, 99216, 99217, 99220, 99222, 99223, 99224, 99225, 99226, 99227, 99229, 99230, 99231, 99232, 99233, 99234, 99235, 99237, 99238, 99239, 99240, 99241, 99242, 99243, 99244, 99245, 99246, 99247, 99248, 99249, 99250, 99251, 99305, 99306, 99307, 99308, 99309, 99310, 99311, 99402, 99404, 99405, 99406, 99407, 99408, 99410, 99411, 99412, 99413, 99415, 99416, 99417, 99502, 99504, 99506, 99508, 99509, 99510, 99511, 99512, 99513, 99514, 99601, 99602, 99603, 99604, 99605, 99701, 99702, 99703, 99801, 99802, 99803, 99902, 99903, 99904, 99905, 99906, 110001, 110003, 110004, 110005, 110006, 110007, 110008, 110010, 110011, 110012, 110014, 110015, 110102, 110104, 110106, 110108, 110109, 110110, 110111, 110113, 110114, 110115, 110116, 110117, 110118, 110201, 110202, 110203, 110301, 110302, 110303, 110304, 110401, 110402, 110500, 110603, 110604, 110605, 110606, 110607, 980000, 990100],
    '061' : [20104, 20105, 20106, 20107, 20200, 20300, 20401, 20402, 20501, 20502, 20601, 20602, 20604, 20605, 20606, 20710, 20711, 20712, 20713, 20714, 20715, 20717, 20805, 20806, 20901, 20908, 21003, 21034, 21035, 21037, 21038, 21039, 21040, 21043, 21044, 21045, 21046, 21103, 21106, 21108, 21109, 21122, 21123, 21128, 21129, 21130, 21131, 21203, 21204, 21304, 21309, 21322, 21401, 21403, 21501, 21502, 21603, 21604, 21801, 21802, 21901, 21902, 22002, 22011, 22013, 22014, 22100, 22200, 22300, 22400, 22500, 22600, 22800, 22900, 23000, 23100, 23200, 23300, 23400, 23500, 23600, 23700, 23800, 23900, 990000],
    '063' : [100, 201, 202, 300, 400, 501, 502],
    '065' : [30101, 30103, 30104, 30200, 30300, 30400, 30501, 30502, 30503, 30601, 30602, 30603, 30700, 30800, 30900, 31001, 31002, 31100, 31200, 31300, 31401, 31402, 31501, 31502, 31601, 31602, 31701, 31702, 31703, 31704, 40101, 40102, 40201, 40202, 40203, 40204, 40301, 40302, 40303, 40402, 40403, 40404, 40405, 40501, 40502, 40503, 40603, 40604, 40605, 40606, 40607, 40609, 40611, 40613, 40615, 40616, 40701, 40702, 40703, 40806, 40807, 40808, 40809, 40812, 40813, 40814, 40815, 40816, 40821, 40901, 40902, 40903, 40904, 41001, 41002, 41003, 41004, 41101, 41102, 41201, 41202, 41203, 41301, 41302, 41403, 41404, 41405, 41406, 41407, 41408, 41409, 41410, 41411, 41412, 41500, 41600, 41702, 41703, 41704, 41803, 41804, 41805, 41806, 41807, 41808, 41809, 41810, 41812, 41813, 41904, 41905, 41906, 41909, 41910, 41911, 41912, 41913, 42003, 42004, 42005, 42007, 42008, 42009, 42010, 42012, 42013, 42014, 42206, 42207, 42208, 42209, 42210, 42212, 42213, 42214, 42217, 42300, 42401, 42402, 42403, 42404, 42405, 42406, 42407, 42408, 42409, 42410, 42411, 42412, 42505, 42506, 42507, 42508, 42509, 42510, 42511, 42512, 42513, 42514, 42515, 42516, 42517, 42518, 42519, 42520, 42521, 42617, 42618, 42619, 42620, 42621, 42622, 42623, 42624, 42706, 42708, 42709, 42711, 42714, 42715, 42716, 42717, 42719, 42720, 42723, 42724, 42726, 42728, 42729, 42730, 42731, 42732, 42733, 42737, 42738, 42739, 42740, 42741, 42742, 42743, 42744, 42745, 42800, 42901, 42902, 42903, 42904, 43001, 43003, 43005, 43006, 43007, 43008, 43009, 43010, 43206, 43211, 43216, 43217, 43218, 43220, 43222, 43227, 43228, 43229, 43235, 43239, 43240, 43242, 43244, 43246, 43247, 43248, 43250, 43252, 43254, 43256, 43257, 43262, 43264, 43265, 43266, 43267, 43270, 43271, 43272, 43274, 43276, 43278, 43279, 43291, 43304, 43306, 43307, 43308, 43309, 43310, 43311, 43312, 43313, 43314, 43315, 43316, 43317, 43401, 43403, 43404, 43405, 43503, 43504, 43505, 43506, 43507, 43508, 43509, 43512, 43513, 43517, 43601, 43602, 43701, 43702, 43703, 43802, 43807, 43809, 43810, 43811, 43812, 43813, 43814, 43818, 43820, 43821, 43822, 43823, 43900, 44000, 44101, 44102, 44103, 44104, 44200, 44300, 44402, 44403, 44404, 44405, 44505, 44507, 44509, 44510, 44515, 44516, 44517, 44518, 44520, 44521, 44522, 44602, 44604, 44605, 44606, 44701, 44702, 44804, 44805, 44806, 44807, 44904, 44907, 44911, 44915, 44916, 44917, 44918, 44919, 44921, 44922, 44923, 44924, 44925, 44926, 44927, 44928, 44929, 44930, 44931, 44932, 45000, 45103, 45108, 45109, 45110, 45114, 45115, 45116, 45117, 45118, 45119, 45120, 45121, 45122, 45123, 45124, 45125, 45207, 45209, 45212, 45213, 45214, 45215, 45216, 45217, 45222, 45224, 45226, 45228, 45233, 45302, 45303, 45304, 45501, 45502, 45604, 45605, 45606, 45608, 45609, 45703, 45704, 45705, 45706, 45707, 45900, 46101, 46102, 46103, 46200, 46401, 46402, 46403, 46404, 46405, 46500, 46601, 46602, 46700, 46800, 46900, 47000, 47201, 47202, 47900, 48100, 48200, 48300, 48700, 48800, 48901, 48902, 49000, 49100, 49400, 49500, 49600, 49700, 49800, 50300, 50400, 50500, 50600, 50700, 50900, 51100, 51200, 51300, 51400, 940100, 940400, 940500, 940600, 940700, 940800, 940900, 941000, 941100, 941200, 941300, 941400, 941500, 980004, 981000],
    '067' : [100, 200, 300, 400, 500, 600, 700, 800, 1101, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000, 2100, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 2900, 3000, 3101, 3102, 3202, 3203, 3204, 3300, 3400, 3501, 3502, 3600, 3700, 3800, 3900, 4001, 4004, 4005, 4006, 4008, 4009, 4010, 4011, 4012, 4100, 4201, 4202, 4203, 4300, 4401, 4402, 4501, 4502, 4601, 4602, 4701, 4702, 4801, 4802, 4903, 4904, 4905, 4906, 5001, 5002, 5101, 5102, 5201, 5202, 5204, 5205, 5301, 5402, 5403, 5404, 5502, 5505, 5506, 5508, 5509, 5510, 5601, 5605, 5606, 5701, 5702, 5801, 5803, 5804, 5901, 5903, 5904, 6002, 6003, 6004, 6101, 6102, 6201, 6202, 6300, 6400, 6500, 6600, 6701, 6702, 6800, 6900, 7001, 7004, 7007, 7010, 7011, 7012, 7013, 7014, 7015, 7016, 7017, 7018, 7019, 7020, 7101, 7102, 7103, 7104, 7105, 7106, 7107, 7202, 7204, 7206, 7207, 7208, 7209, 7301, 7402, 7403, 7406, 7413, 7414, 7415, 7416, 7417, 7421, 7422, 7423, 7424, 7426, 7427, 7428, 7429, 7430, 7431, 7432, 7433, 7501, 7503, 7504, 7601, 7602, 7701, 7702, 7801, 7802, 7903, 7904, 7905, 7906, 8005, 8006, 8007, 8008, 8009, 8010, 8111, 8113, 8117, 8119, 8120, 8122, 8124, 8125, 8127, 8128, 8129, 8130, 8131, 8132, 8133, 8134, 8135, 8136, 8137, 8138, 8139, 8140, 8141, 8142, 8143, 8144, 8145, 8203, 8204, 8206, 8207, 8208, 8209, 8210, 8211, 8402, 8403, 8404, 8501, 8504, 8505, 8506, 8507, 8508, 8509, 8510, 8512, 8513, 8600, 8702, 8703, 8704, 8705, 8801, 8905, 8907, 8908, 8909, 8910, 8911, 8912, 8913, 9004, 9005, 9006, 9007, 9008, 9010, 9011, 9103, 9105, 9106, 9107, 9108, 9109, 9110, 9111, 9112, 9201, 9307, 9308, 9309, 9310, 9311, 9312, 9314, 9316, 9317, 9318, 9319, 9320, 9321, 9322, 9323, 9324, 9325, 9326, 9328, 9329, 9330, 9331, 9332, 9403, 9404, 9406, 9407, 9408, 9501, 9502, 9503, 9504, 9601, 9606, 9608, 9609, 9610, 9611, 9612, 9614, 9615, 9616, 9617, 9618, 9619, 9622, 9630, 9632, 9633, 9634, 9635, 9636, 9637, 9638, 9639, 9800, 9900, 988300],
    '071' : [103, 104, 105, 107, 108, 109, 111, 113, 115, 116, 117, 118, 201, 203, 205, 207, 208, 301, 303, 304, 401, 403, 404, 501, 503, 504, 603, 604, 605, 606, 804, 808, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 823, 824, 825, 826, 901, 903, 904, 1001, 1002, 1101, 1103, 1104, 1200, 1305, 1307, 1308, 1309, 1310, 1311, 1312, 1400, 1501, 1503, 1504, 1600, 1702, 1703, 1704, 1706, 1707, 1803, 1804, 1806, 1808, 1809, 1810, 1812, 1813, 1901, 1903, 1905, 1906, 2010, 2011, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2021, 2022, 2023, 2025, 2027, 2028, 2029, 2031, 2033, 2034, 2035, 2036, 2037, 2038, 2101, 2103, 2105, 2107, 2109, 2110, 2204, 2206, 2207, 2301, 2304, 2305, 2306, 2307, 2401, 2402, 2501, 2502, 2601, 2602, 2604, 2606, 2607, 2703, 2704, 2705, 2706, 2801, 2803, 2804, 2901, 2902, 3000, 3101, 3102, 3200, 3301, 3302, 3401, 3403, 3404, 3405, 3503, 3505, 3506, 3507, 3509, 3510, 3603, 3605, 3606, 3607, 3609, 3611, 3612, 3700, 3801, 3803, 3804, 3900, 4001, 4003, 4004, 4101, 4103, 4104, 4201, 4202, 4301, 4302, 4401, 4403, 4404, 4503, 4504, 4505, 4507, 4509, 4510, 4601, 4603, 4604, 4700, 4800, 4900, 5100, 5200, 5300, 5400, 5500, 5600, 5701, 5800, 6100, 6201, 6203, 6204, 6301, 6302, 6401, 6402, 6500, 6601, 6603, 6604, 6700, 7000, 7104, 7105, 7106, 7107, 7108, 7109, 7110, 7200, 7302, 7303, 7305, 7306, 7403, 7404, 7407, 7408, 7409, 7410, 7601, 7603, 7604, 7800, 7901, 7903, 7904, 8001, 8002, 8100, 8200, 8301, 8302, 8401, 8402, 8403, 8404, 8500, 8601, 8602, 8703, 8704, 8705, 8706, 8708, 8709, 8710, 8800, 8901, 9107, 9108, 9109, 9110, 9112, 9114, 9116, 9117, 9118, 9119, 9201, 9202, 9300, 9400, 9500, 9707, 9708, 9709, 9710, 9711, 9712, 9713, 9714, 9715, 9716, 9717, 9800, 9904, 9905, 9906, 9908, 9910, 9911, 9912, 9913, 10004, 10009, 10010, 10011, 10012, 10013, 10014, 10015, 10016, 10017, 10018, 10019, 10020, 10021, 10022, 10023, 10024, 10025, 10026, 10300, 10402, 10409, 10410, 10411, 10412, 10413, 10415, 10416, 10417, 10419, 10420, 10421, 10422, 10423, 10424, 10700, 10802, 10803, 10804, 10901, 10902, 11001, 11002, 11101, 11102, 11203, 11204, 11205, 11206, 11300, 11401, 11403, 11404, 11500, 11600, 11700, 11800, 11900, 12001, 12002, 12101, 12103, 12104, 12200, 12300, 12400, 12500, 12700, 25000, 25100, 940100, 980100, 980200],
    '073' : [100, 201, 202, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2001, 2002, 2100, 2201, 2202, 2301, 2302, 2401, 2402, 2501, 2502, 2601, 2602, 2702, 2703, 2705, 2707, 2708, 2709, 2710, 2711, 2712, 2801, 2803, 2804, 2902, 2903, 2904, 2905, 3001, 3003, 3004, 3101, 3103, 3105, 3107, 3108, 3109, 3111, 3112, 3113, 3114, 3115, 3201, 3202, 3204, 3207, 3208, 3209, 3211, 3212, 3213, 3214, 3301, 3303, 3304, 3305, 3401, 3403, 3404, 3501, 3502, 3601, 3602, 3603, 3800, 3901, 3902, 4000, 4100, 4200, 4300, 4400, 4501, 4600, 4700, 4800, 4900, 5000, 5100, 5200, 5300, 5400, 5500, 5600, 5700, 5800, 5900, 6000, 6100, 6200, 6300, 6500, 6600, 6801, 6802, 6900, 7002, 7100, 7200, 7301, 7302, 7400, 7501, 7502, 7600, 7701, 7702, 7800, 7903, 7905, 7907, 7908, 7910, 8002, 8003, 8006, 8101, 8102, 8200, 8301, 8303, 8305, 8306, 8307, 8310, 8311, 8312, 8313, 8324, 8327, 8328, 8329, 8330, 8331, 8333, 8335, 8336, 8337, 8339, 8340, 8341, 8343, 8344, 8345, 8346, 8347, 8348, 8349, 8350, 8351, 8352, 8353, 8354, 8355, 8356, 8357, 8358, 8359, 8360, 8361, 8362, 8363, 8364, 8365, 8366, 8501, 8502, 8503, 8504, 8505, 8506, 8507, 8509, 8510, 8511, 8512, 8513, 8600, 8701, 8702, 8800, 8901, 8902, 9000, 9101, 9102, 9103, 9104, 9106, 9107, 9201, 9202, 9301, 9304, 9305, 9306, 9400, 9502, 9504, 9505, 9506, 9507, 9509, 9510, 9511, 9602, 9603, 9604, 9703, 9704, 9705, 9706, 9801, 9802, 9804, 9805, 9901, 9902, 10001, 10003, 10004, 10005, 10009, 10010, 10011, 10012, 10013, 10014, 10015, 10103, 10104, 10106, 10107, 10109, 10110, 10111, 10112, 10200, 10300, 10401, 10402, 10501, 10502, 10601, 10800, 10900, 11000, 11100, 11300, 11601, 11602, 11700, 11801, 11802, 11902, 12002, 12003, 12101, 12102, 12200, 12302, 12303, 12304, 12401, 12402, 12501, 12502, 12600, 12700, 12800, 12900, 13000, 13102, 13103, 13104, 13203, 13204, 13205, 13206, 13301, 13302, 13303, 13306, 13307, 13308, 13309, 13310, 13311, 13312, 13313, 13314, 13401, 13409, 13410, 13411, 13412, 13414, 13415, 13416, 13417, 13418, 13419, 13420, 13421, 13503, 13504, 13505, 13506, 13601, 13604, 13605, 13606, 13701, 13702, 13801, 13802, 13903, 13905, 13906, 13907, 13908, 13909, 14001, 14002, 14101, 14102, 14200, 14300, 14400, 14500, 14601, 14602, 14700, 14803, 14804, 14805, 14806, 14901, 14902, 15000, 15100, 15200, 15301, 15302, 15403, 15404, 15405, 15406, 15501, 15502, 15601, 15602, 15701, 15703, 15704, 15801, 15802, 15901, 15902, 16000, 16100, 16201, 16202, 16301, 16302, 16401, 16402, 16502, 16503, 16504, 16605, 16606, 16607, 16608, 16609, 16610, 16612, 16613, 16614, 16615, 16616, 16617, 16701, 16702, 16802, 16804, 16806, 16807, 16809, 16810, 16811, 16901, 16902, 17006, 17009, 17010, 17014, 17015, 17018, 17019, 17020, 17021, 17022, 17029, 17030, 17031, 17032, 17033, 17034, 17035, 17036, 17037, 17039, 17040, 17041, 17042, 17043, 17044, 17045, 17046, 17047, 17048, 17049, 17050, 17051, 17052, 17053, 17054, 17055, 17056, 17104, 17106, 17107, 17108, 17109, 17110, 17200, 17303, 17304, 17305, 17306, 17401, 17403, 17404, 17501, 17502, 17601, 17603, 17604, 17701, 17702, 17801, 17808, 17809, 17810, 17811, 17813, 17900, 18000, 18100, 18200, 18300, 18400, 18504, 18507, 18509, 18510, 18511, 18512, 18513, 18514, 18515, 18516, 18517, 18518, 18519, 18601, 18603, 18608, 18609, 18610, 18611, 18612, 18613, 18614, 18700, 18801, 18802, 18803, 18903, 18904, 18905, 18906, 19001, 19002, 19101, 19103, 19105, 19106, 19107, 19203, 19205, 19206, 19207, 19208, 19301, 19302, 19303, 19403, 19404, 19405, 19406, 19501, 19502, 19503, 19601, 19602, 19701, 19702, 19803, 19804, 19805, 19806, 19808, 19809, 19902, 19903, 19904, 19905, 20013, 20014, 20015, 20016, 20017, 20018, 20019, 20020, 20021, 20022, 20023, 20024, 20025, 20026, 20027, 20028, 20029, 20103, 20105, 20106, 20107, 20108, 20109, 20202, 20206, 20207, 20208, 20209, 20210, 20211, 20213, 20214, 20304, 20305, 20306, 20307, 20308, 20309, 20401, 20403, 20404, 20405, 20500, 20601, 20602, 20705, 20706, 20707, 20708, 20709, 20710, 20801, 20805, 20806, 20807, 20809, 20810, 20811, 20902, 20903, 20904, 21000, 21100, 21202, 21204, 21205, 21206, 21302, 21303, 21304, 21400, 21500, 21600, 21800, 21900, 22000, 22100, 990100],
    '077' : [100, 300, 401, 402, 500, 600, 700, 801, 900, 1000, 1101, 1102, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000, 2100, 2201, 2202, 2300, 2401, 2402, 2503, 2504, 2701, 2702, 2800, 3106, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3203, 3205, 3208, 3209, 3210, 3213, 3214, 3215, 3216, 3217, 3305, 3306, 3307, 3308, 3310, 3311, 3312, 3313, 3403, 3404, 3405, 3406, 3407, 3409, 3410, 3500, 3601, 3602, 3700, 3801, 3802, 3803, 3900, 4001, 4002, 4102, 4104, 4105, 4106, 4201, 4202, 4203, 4204, 4302, 4303, 4305, 4307, 4308, 4402, 4403, 4404, 4501, 4502, 4600, 4701, 4703, 4704, 4800, 4901, 4902, 5001, 5003, 5004, 5106, 5108, 5109, 5110, 5113, 5114, 5119, 5122, 5123, 5124, 5125, 5126, 5127, 5129, 5130, 5131, 5132, 5133, 5134, 5135, 5202, 5206, 5207, 5208, 5209, 5210, 5302, 5303, 5305, 5307, 5308, 5403, 5405, 5406, 5501, 5502],
    '079' : [10002, 10016, 10101, 10102, 10201, 10202, 10204, 10205, 10300, 10403, 10404, 10503, 10504, 10602, 10603, 10701, 10703, 10707, 10901, 10902, 11001, 11002, 11101, 11102, 11103, 11200, 11300, 11400, 11501, 11503, 11504, 11600, 11701, 11704, 11800, 11901, 11902, 12000, 12102, 12200, 12302, 12304, 12401, 12402, 12502, 12503, 12505, 12600, 12702, 12704, 12800, 12900, 13000, 990000],
    '083' : [101, 102, 103, 200, 301, 302, 400, 501, 502, 600, 700, 801, 804, 900, 1000, 1101, 1102, 1203, 1206, 1208, 1304, 1306, 1402, 1500, 1601, 1604, 1704, 1706, 1800, 1901, 1903, 1905, 1906, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2101, 2102, 2103, 2205, 2206, 2209, 2210, 2211, 2303, 2304, 2305, 2306, 2402, 2403, 2404, 2502, 2604, 2606, 2702, 2703, 2705, 2706, 2707, 2708, 2802, 2806, 2808, 2809, 2906, 2907, 2909, 2913, 2914, 2915, 2922, 2924, 2926, 2928, 2930, 2932, 3001, 3004, 3005, 3007, 3102, 980000, 980100, 990000],
    '089' : [10100, 10200, 10300, 10400, 10500, 10601, 10602, 10603, 10702, 10703, 10704, 10803, 10804, 10805, 10806, 10807, 10900, 11001, 11002, 11100, 11209, 11300, 11401, 11402, 11403, 11500, 11600, 11701, 11702, 11703, 11801, 11802, 11803, 11900, 12000, 12101, 12102, 12200, 12301, 12302, 12303, 12400, 12500, 12601, 12603, 12604, 12701, 12702],
    '091' : [10000],
    '093' : [100, 200, 300, 400, 500, 600, 701, 702, 703, 800, 900, 1000, 1100, 1200],
    '095' : [250103, 250104, 250105, 250106, 250200, 250300, 250400, 250501, 250502, 250601, 250604, 250605, 250701, 250801, 250900, 251000, 251100, 251200, 251300, 251400, 251500, 251600, 251701, 251702, 251802, 251803, 251804, 251901, 251902, 251903, 252000, 252102, 252103, 252104, 252105, 252106, 252107, 252108, 252201, 252202, 252305, 252306, 252310, 252311, 252312, 252313, 252314, 252315, 252316, 252317, 252401, 252402, 252501, 252502, 252604, 252605, 252606, 252607, 252608, 252610, 252611, 252702, 252703, 252704, 252705, 252706, 252707, 252801, 252802, 252903, 252904, 252908, 252909, 252910, 252911, 252912, 252913, 252914, 252915, 253000, 253101, 253105, 253106, 253107, 253108, 253201, 253203, 253204, 253205, 253206, 253300, 253402, 253403, 253404, 253500, 980000],
    '097' : [150100, 150202, 150203, 150204, 150303, 150304, 150305, 150306, 150500, 150601, 150602, 150603, 150607, 150609, 150610, 150611, 150612, 150701, 150702, 150800, 150901, 150902, 151000, 151100, 151201, 151203, 151204, 151301, 151305, 151306, 151307, 151308, 151309, 151310, 151311, 151401, 151402, 151502, 151503, 151504, 151601, 151602, 151700, 151800, 151900, 152000, 152100, 152201, 152202, 152203, 152300, 152400, 152501, 152502, 152600, 152701, 152702, 152801, 152802, 152903, 152904, 152905, 152906, 153001, 153002, 153003, 153005, 153006, 153102, 153103, 153104, 153200, 153300, 153401, 153403, 153404, 153501, 153502, 153600, 153703, 153704, 153705, 153706, 153801, 153804, 153806, 153807, 153808, 153809, 153901, 153902, 153903, 154000, 154100, 154201, 154202, 154302, 154303, 154304, 990100],
    '099' : [101, 102, 201, 202, 203, 301, 302, 303, 304, 402, 403, 404, 501, 503, 504, 505, 506, 510, 601, 602, 801, 803, 805, 806, 807, 905, 906, 907, 908, 909, 910, 911, 912, 1001, 1002, 1100, 1200, 1300, 1400, 1500, 1601, 1603, 1604, 1700, 1800, 1900, 2002, 2004, 2005, 2006, 2100, 2200, 2301, 2302, 2401, 2402, 2501, 2503, 2504, 2602, 2603, 2604, 2605, 2701, 2702, 2801, 2802, 2803, 2901, 2902, 3001, 3002, 3100, 3201, 3202, 3300, 3400, 3500, 3603, 3604, 3605, 3606, 3700, 3802, 3803, 3804, 3805, 3904, 3905, 3906, 3907, 3908, 3909, 4000],
    '101' : [50101, 50102, 50201, 50202, 50301, 50302, 50401, 50402, 50403, 50501, 50503, 50504, 50601, 50603, 50604, 50701, 50702, 50800, 50900, 51000, 51100],
    '103' : [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100],
    '105' : [101, 102, 200, 300, 400],
    '107' : [100, 201, 202, 301, 302, 401, 402, 501, 502, 600, 701, 702, 800, 900, 1003, 1004, 1005, 1006, 1100, 1200, 1301, 1302, 1400, 1501, 1502, 1601, 1602, 1701, 1703, 1704, 1800, 1901, 1902, 2002, 2003, 2004, 2006, 2007, 2008, 2009, 2100, 2202, 2203, 2204, 2302, 2303, 2304, 2400, 2500, 2601, 2602, 2700, 2800, 2901, 2903, 2904, 3001, 3002, 3100, 3200, 3300, 3400, 3501, 3502, 3601, 3602, 3700, 3801, 3802, 3901, 3902, 4000, 4101, 4102, 4200, 4300, 4400, 4500],
    '109' : [1100, 1200, 2100, 2200, 3100, 3200, 4100, 4200, 5100, 5201, 985202],
    '111' : [100, 200, 302, 303, 304, 400, 500, 600, 701, 702, 800, 901, 902, 903, 1001, 1002, 1101, 1102, 1201, 1202, 1204, 1206, 1301, 1302, 1401, 1402, 1502, 1503, 1506, 1507, 1601, 1602, 1700, 1800, 1900, 2000, 2102, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 2901, 2905, 3010, 3011, 3012, 3013, 3100, 3201, 3300, 3605, 3608, 3609, 3612, 3700, 3801, 3802, 3900, 4000, 4101, 4200, 4304, 4305, 4400, 4503, 4504, 4505, 4506, 4600, 4704, 4710, 4711, 4715, 4716, 4717, 4901, 4902, 5002, 5003, 5004, 5100, 5202, 5203, 5204, 5205, 5303, 5304, 5305, 5306, 5401, 5403, 5404, 5502, 5503, 5504, 5600, 5700, 5801, 5802, 5901, 5906, 5907, 5908, 5909, 5910, 5911, 6000, 6100, 6200, 6301, 6302, 6400, 6500, 6600, 6700, 6800, 6900, 7000, 7100, 7201, 7202, 7300, 7402, 7403, 7405, 7406, 7505, 7506, 7507, 7508, 7509, 7510, 7511, 7512, 7513, 7514, 7606, 7607, 7609, 7610, 7611, 7612, 7613, 7614, 7700, 7800, 7901, 7903, 7904, 8001, 8002, 8004, 8005, 8101, 8201, 8202, 8302, 8303, 8304, 8305, 8306, 8401, 8402, 8500, 8600, 8700, 8800, 8900, 9100, 980000, 990100],
    '113' : [10101, 10102, 10201, 10203, 10204, 10302, 10310, 10312, 10401, 10402, 10501, 10505, 10508, 10509, 10510, 10511, 10512, 10513, 10602, 10605, 10606, 10607, 10608, 10701, 10703, 10704, 10800, 10901, 10902, 11001, 11002, 11101, 11102, 11103, 11203, 11204, 11205, 11206, 11300, 11400, 11500],
    '115' : [40100, 40200, 40301, 40302, 40303, 40400, 40500, 40600, 40700, 40800, 40901, 40902, 41000, 41100]
]]]></entry>
        <entry id="census2010_ct" type="java"><![CDATA[[
    '001' : [10101, 10102, 10201, 10202, 10300, 10400, 10500, 10600, 10700, 10800, 10900, 11000, 11100, 11200, 11300, 20100, 20200, 20300, 20400, 20500, 20600, 20700, 20800, 20900, 21000, 21100, 21200, 21300, 21400, 21500, 21600, 21700, 21801, 21802, 21900, 22000, 22100, 22200, 22300, 22400, 30100, 30200, 30300, 30400, 30500, 35100, 35200, 35300, 35400, 42500, 42600, 42700, 42800, 42900, 43000, 43100, 43200, 43300, 43400, 43500, 43600, 43700, 43800, 43900, 44000, 44100, 44200, 44300, 44400, 44500, 44600, 45101, 45102, 45200, 45300, 45400, 50100, 50200, 50300, 50400, 50500, 50600, 55100, 55200, 60100, 60200, 60300, 60400, 60500, 60600, 60700, 60800, 60900, 61000, 61100, 61200, 61300, 61400, 61500, 61600, 70100, 70200, 70300, 70400, 70500, 70600, 70900, 71000, 71100, 71200, 71300, 71400, 71600, 71900, 72000, 72100, 72200, 72300, 72400, 72500, 72600, 72700, 72800, 72900, 73000, 73100, 73200, 73300, 73400, 73500, 73600, 73700, 73800, 73900, 74000, 74300, 74400, 80100, 80200, 80400, 80500, 80600, 80700, 80800, 80900, 81000, 81100, 81200, 81300, 90100, 90200, 90300, 90400, 90500, 90600, 90700, 100100, 100200, 100300, 105100, 105200, 110100, 110201, 110202, 110301, 110302, 110400, 110500, 110600, 200100, 200200, 200301, 200302, 205100, 205200, 205300, 210100, 210200, 210300, 210400, 210500, 210600, 210701, 210702, 210800, 210900, 211000, 211100, 211200, 211300, 211400, 220100, 220200, 220300, 230100, 230200, 230300, 230400, 230501, 230502, 240100, 240200, 245100, 245200, 245300, 245400, 245500, 245600, 257100, 257200, 990000],
    '003' : [330100, 400100, 400200, 400300, 405100, 405200, 405300, 405401, 405402, 405500, 405600, 405700, 405800, 405900, 406001, 406002, 406100, 410101, 410102, 415300, 415400, 415500, 415600, 415700, 415800, 415900, 416000, 416100, 416200, 416300, 416400, 416500, 416600, 416700, 416800, 417100, 417200, 417300, 417400, 417500, 420400, 420500, 420600, 420700, 430100, 430201, 430202, 430203, 430301, 430302, 430400, 430500, 430601, 430602, 460100, 460202, 460203, 460204, 460301, 460302, 462101, 462102, 462201, 462202, 464101, 464102, 466101, 466102, 466201, 466202, 466300, 466400, 468101, 468102, 470100, 471100, 471200, 471300, 471400, 471500, 473100, 473400, 473501, 473502, 473601, 473602, 473700, 473800, 476100, 476200, 476300, 477101, 477102, 477200, 480300, 480400, 480500, 480600, 480700, 480800, 480900, 481000, 481100, 481200, 481300, 484100, 484200, 487100, 487201, 487202, 487300, 487400, 487500, 490100, 490302, 492100, 492200, 492300, 492400, 492500, 492600, 494100, 494201, 494202, 494300, 494400, 494500, 494600, 496100, 496200, 496300, 496400, 496500, 496600, 496700, 496800, 496900, 497000, 497100, 497200, 497300, 497400, 497500, 497600, 497700, 500100, 500200, 500300, 500400, 500500, 500700, 500900, 501200, 501300, 501400, 501500, 501700, 501800, 502100, 502300, 502400, 502500, 502600, 502700, 502800, 502900, 503000, 503100, 503300, 503500, 503700, 503800, 503900, 504000, 504100, 504200, 504300, 504500, 504800, 504900, 510100, 510200, 510300, 510400, 510500, 510600, 510700, 510800, 510900, 511000, 511100, 511200, 511300, 511400, 514101, 514102, 514200, 514300, 514400, 514500, 514600, 514700, 514800, 514900, 515000, 515101, 515102, 515200, 520100, 520201, 520202, 520301, 520302, 520400, 520501, 524100, 524200, 524300, 524400, 524501, 524502, 524600, 524700, 980000],
    '005' : [250100, 253100, 253200, 253300, 253400, 253500, 253600, 260200, 261100, 262100, 263200, 265100, 266100, 267100, 268100, 290100, 293100, 296100, 298300, 298400, 300100, 300400, 300500, 303100, 306100, 310100, 310200, 310300, 310400, 310500, 310601, 310602, 310700, 310801, 310803, 310804, 320100, 320200, 342100, 349100, 349200, 360100, 360200, 360300, 360400, 362101, 362102, 425300, 425400, 425500, 425600],
    '007' : [541100, 541200, 541300, 541401, 541402, 541500, 541600, 541700, 542000, 542100, 542200, 550100, 550201, 550202, 560100, 560200, 570100, 570200, 570300, 580100, 585100, 590100, 595101, 595102, 600100, 610100, 610200, 610300, 610400, 620100, 630100, 640100, 670100, 670200, 680100, 680200, 990100],
    '009' : [120100, 120200, 125100, 125200, 125300, 125400, 130101, 130102, 130200, 140100, 140200, 140300, 140400, 140500, 140600, 140700, 140800, 140900, 141000, 141100, 141200, 141300, 141400, 141500, 141600, 141800, 141900, 142000, 142100, 142200, 142300, 142400, 142500, 142601, 142603, 142604, 142700, 142800, 150100, 150200, 150300, 150400, 150500, 150600, 150700, 150800, 150900, 151000, 151100, 151200, 154100, 154200, 154500, 154600, 154700, 154800, 154900, 155000, 155100, 157100, 157200, 157300, 157400, 160100, 160200, 161100, 165100, 165200, 165300, 165400, 165500, 165600, 165700, 165801, 165802, 165900, 166001, 166002, 167100, 167201, 167202, 167300, 170100, 170200, 170300, 170400, 170500, 170600, 170700, 170800, 170900, 171000, 171100, 171200, 171300, 171400, 171500, 171600, 171700, 175100, 175200, 175300, 175400, 175500, 175600, 175700, 175800, 175900, 176000, 180100, 180200, 180300, 180400, 180500, 180601, 180602, 184100, 184200, 184300, 184400, 184500, 184600, 184700, 186100, 186200, 190100, 190200, 190301, 190302, 190303, 194100, 194201, 194202, 341100, 343101, 343102, 343200, 343300, 343400, 344100, 344200, 345100, 345201, 345202, 345300, 345400, 346101, 346102, 347100, 347200, 348111, 348122, 348123, 348124, 348125, 350100, 350200, 350300, 350400, 350500, 350800, 350900, 351000, 351100, 351200, 351300, 351400, 351500, 351601, 351602, 351700, 351800, 351900, 352000, 352100, 352200, 352300, 352400, 352500, 352600, 352701, 352702, 352800, 361100, 361200, 361300, 361401, 361402, 361500, 990000],
    '011' : [650100, 660101, 660102, 690300, 690400, 690500, 690700, 690800, 690900, 693300, 693400, 693500, 693600, 693700, 695201, 695202, 696100, 696200, 696300, 696400, 696500, 696600, 696700, 696800, 697000, 700100, 701100, 701200, 702100, 702300, 702400, 702500, 702600, 702700, 702800, 702900, 703000, 705101, 705102, 705200, 705300, 705400, 707100, 708100, 709100, 709200, 710100, 711100, 712100, 713100, 714101, 714103, 714104, 715100, 716101, 716102, 870100, 870200, 870300, 870501, 870502, 870701, 870703, 870704, 980000, 990100],
    '013' : [526101, 526102, 528100, 529100, 530100, 530200, 530301, 530302, 530400, 530500, 530600, 533101, 533102, 535100, 535200, 538100, 538201, 538202, 840100, 850100, 850200, 860100, 881100, 881200, 881300, 881500, 890100, 890201, 890202],
    '015' : [800300, 800400, 800500, 800600, 800700, 815000, 820000, 825000, 830100, 900100, 900200, 901100, 902200, 902500, 903100, 903200, 904100, 904400, 904500, 905100, 906100, 907100, 907200, 907300, 908100]
]]]></entry>
        <entry id="census2010_ga" type="java"><![CDATA[[
    '063' : [40202, 40203, 40204, 40302, 40303, 40306, 40307, 40308, 40407, 40408, 40409, 40410, 40411, 40412, 40413, 40414, 40415, 40416, 40417, 40509, 40510, 40512, 40513, 40514, 40515, 40516, 40518, 40519, 40520, 40521, 40522, 40523, 40524, 40525, 40526, 40606, 40608, 40609, 40611, 40612, 40613, 40614, 40615, 40616, 40617, 40619, 40620, 40621, 40622, 980000],
    '067' : [30101, 30103, 30104, 30106, 30107, 30209, 30214, 30215, 30218, 30219, 30220, 30222, 30223, 30224, 30226, 30227, 30228, 30229, 30230, 30231, 30232, 30233, 30234, 30235, 30236, 30238, 30239, 30310, 30311, 30312, 30313, 30314, 30318, 30319, 30320, 30322, 30324, 30326, 30327, 30328, 30329, 30330, 30331, 30332, 30333, 30334, 30335, 30336, 30337, 30339, 30340, 30341, 30342, 30343, 30344, 30345, 30405, 30407, 30408, 30409, 30410, 30411, 30412, 30413, 30414, 30502, 30504, 30505, 30506, 30507, 30601, 30602, 30700, 30800, 30901, 30902, 30904, 30905, 31001, 31002, 31004, 31005, 31101, 31106, 31108, 31110, 31111, 31112, 31113, 31114, 31115, 31116, 31117, 31118, 31205, 31206, 31207, 31208, 31209, 31211, 31212, 31306, 31307, 31308, 31309, 31310, 31311, 31312, 31313, 31404, 31405, 31406, 31408, 31409, 31503, 31505, 31506, 31507, 31508, 31509],
    '089' : [20100, 20200, 20300, 20400, 20500, 20600, 20700, 20801, 20802, 20900, 21101, 21102, 21202, 21204, 21208, 21209, 21210, 21211, 21213, 21214, 21215, 21216, 21217, 21218, 21301, 21303, 21305, 21306, 21307, 21308, 21405, 21409, 21410, 21411, 21412, 21413, 21414, 21415, 21416, 21417, 21502, 21503, 21504, 21602, 21603, 21604, 21605, 21703, 21704, 21705, 21706, 21805, 21806, 21808, 21809, 21810, 21812, 21813, 21814, 21906, 21907, 21908, 21909, 21910, 21911, 21912, 21913, 22001, 22004, 22005, 22007, 22008, 22009, 22010, 22100, 22203, 22204, 22301, 22302, 22401, 22402, 22403, 22500, 22600, 22700, 22800, 22900, 23000, 23101, 23102, 23107, 23108, 23111, 23112, 23113, 23114, 23115, 23204, 23206, 23208, 23209, 23210, 23211, 23212, 23213, 23214, 23303, 23306, 23309, 23310, 23311, 23312, 23313, 23314, 23315, 23316, 23410, 23411, 23412, 23413, 23414, 23416, 23418, 23419, 23421, 23422, 23423, 23424, 23425, 23426, 23427, 23428, 23501, 23504, 23505, 23506, 23507, 23601, 23602, 23603, 23700, 23801, 23802, 23803, 980000],
    '121' : [100, 200, 400, 500, 600, 700, 1001, 1002, 1100, 1201, 1202, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2100, 2300, 2400, 2500, 2600, 2800, 2900, 3000, 3100, 3200, 3500, 3600, 3700, 3800, 3900, 4000, 4100, 4200, 4300, 4400, 4800, 4900, 5000, 5200, 5300, 5501, 5502, 5700, 5800, 6000, 6100, 6200, 6300, 6400, 6500, 6601, 6602, 6700, 6801, 6802, 6900, 7001, 7002, 7100, 7200, 7300, 7400, 7500, 7602, 7603, 7604, 7703, 7704, 7705, 7706, 7802, 7805, 7806, 7807, 7808, 7900, 8000, 8101, 8102, 8201, 8202, 8301, 8302, 8400, 8500, 8601, 8602, 8700, 8800, 8902, 8903, 8904, 9000, 9101, 9102, 9200, 9300, 9402, 9403, 9404, 9501, 9502, 9601, 9602, 9603, 9700, 9801, 9802, 9900, 10001, 10002, 10106, 10107, 10108, 10110, 10113, 10114, 10115, 10117, 10118, 10119, 10120, 10121, 10122, 10123, 10204, 10205, 10206, 10208, 10209, 10210, 10211, 10212, 10301, 10303, 10304, 10400, 10507, 10508, 10510, 10511, 10512, 10513, 10514, 10515, 10516, 10601, 10603, 10604, 10800, 11000, 11100, 11201, 11202, 11301, 11303, 11305, 11306, 11405, 11410, 11411, 11412, 11414, 11416, 11417, 11418, 11419, 11420, 11421, 11422, 11423, 11424, 11425, 11426, 11427, 11503, 11504, 11505, 11506, 11610, 11611, 11612, 11613, 11614, 11615, 11616, 11617, 11618, 11619, 11620, 11621, 11622, 11623, 11624, 11625, 11626, 11800, 11900, 12000, 12300, 980000],
    '135' : [50103, 50105, 50106, 50107, 50108, 50109, 50205, 50208, 50209, 50210, 50211, 50212, 50213, 50214, 50215, 50216, 50217, 50218, 50219, 50220, 50304, 50306, 50308, 50309, 50310, 50311, 50313, 50314, 50315, 50317, 50318, 50319, 50320, 50321, 50322, 50410, 50415, 50416, 50417, 50418, 50419, 50421, 50422, 50423, 50424, 50425, 50426, 50427, 50428, 50429, 50430, 50431, 50432, 50433, 50434, 50435, 50436, 50511, 50520, 50521, 50522, 50523, 50524, 50525, 50526, 50527, 50528, 50529, 50530, 50531, 50532, 50533, 50534, 50535, 50536, 50537, 50538, 50539, 50540, 50541, 50542, 50543, 50544, 50545, 50546, 50547, 50548, 50549, 50605, 50606, 50607, 50608, 50609, 50610, 50709, 50712, 50713, 50714, 50715, 50718, 50719, 50720, 50721, 50722, 50723, 50724, 50725, 50726, 50727, 50728, 50729, 50730, 50731],

    '125' : [10100],
    '133' : [950100, 950200, 950301, 950302, 950303, 950400, 950500],
    '141' : [480300, 480400],
    '159' : [10100, 10200, 10500],
    '163' : [960100, 960200, 960300, 960400],
    '211' : [10100, 10200, 10300, 10400, 10500],
    '237' : [960101, 960102, 960201, 960202, 960300],
    '265' : [10200],
    '301' : [970400, 970500],
    '303' : [950100, 950300, 950400, 950500, 950700],

    '001' : [950100, 950200, 950300, 950400, 950500],
    '003' : [960100, 960200, 960300],
    '005' : [970100, 970201, 970202],
    '007' : [960100, 960200],
    '009' : [970100, 970200, 970300, 970400, 970500, 970600, 970701, 970702, 970800],
    '011' : [970100, 970200, 970300, 970400],
    '013' : [180103, 180104, 180105, 180106, 180107, 180108, 180203, 180204, 180205, 180206, 180301, 180302, 180303, 180401, 180402, 180501, 180502, 180503],
    '015' : [960101, 960102, 960200, 960300, 960401, 960402, 960500, 960600, 960700, 960801, 960802, 960803, 960901, 960902, 961000],
    '017' : [960100, 960200, 960300, 960400, 960500],
    '019' : [970100, 970200, 970300, 970400, 970500, 970600],
    '021' : [10100, 10200, 10300, 10400, 10500, 10800, 11000, 11100, 11500, 11701, 11702, 11800, 11900, 12000, 12101, 12102, 12200, 12300, 12400, 12500, 12600, 12700, 12800, 12900, 13101, 13102, 13201, 13202, 13302, 13407, 13408, 13409, 13410, 13411, 13502, 13503, 13504, 13603, 13604, 13605, 13606, 13700, 13800, 13900],
    '023' : [790100, 790200, 790300],
    '025' : [960100, 960200, 960300],
    '027' : [960200, 960300, 960400, 960500, 960600],
    '029' : [920101, 920102, 920301, 920303, 920305, 920306, 980000],
    '031' : [110100, 110200, 110300, 110401, 110403, 110404, 110500, 110601, 110602, 110700, 110800, 110900],
    '033' : [950100, 950200, 950400, 950500, 950700, 950900],
    '035' : [150100, 150200, 150300],
    '037' : [950100, 950200],
    '039' : [10100, 10200, 10301, 10302, 10401, 10402, 10403, 10500, 10601, 10602, 990000],
    '043' : [950100, 950200, 950300],
    '045' : [910101, 910103, 910104, 910200, 910300, 910400, 910501, 910502, 910600, 910701, 910702, 910703, 910800, 910900, 911000, 911100, 911200],
    '047' : [30100, 30201, 30202, 30301, 30303, 30304, 30401, 30402, 30500, 30600, 30700],
    '049' : [10100, 10200],
    '051' : [100, 300, 601, 900, 1100, 1200, 1500, 2000, 2100, 2200, 2300, 2600, 2700, 2800, 2900, 3000, 3301, 3302, 3400, 3501, 3502, 3601, 3602, 3700, 3800, 3900, 4001, 4002, 4100, 4207, 4208, 4209, 4210, 4211, 4212, 4300, 4400, 4500, 10101, 10102, 10200, 10501, 10502, 10601, 10603, 10605, 10700, 10801, 10802, 10803, 10806, 10807, 10808, 10809, 10901, 11003, 11004, 11005, 11006, 11103, 11104, 11106, 11107, 11108, 11109, 11200, 11300, 11400, 11500, 11600, 980000, 990000],
    '053' : [20100, 20201, 20203, 20205, 20206],
    '055' : [10100, 10200, 10300, 10400, 10500, 10600],
    '057' : [90100, 90200, 90300, 90400, 90501, 90502, 90601, 90602, 90701, 90702, 90802, 90803, 90804, 90901, 90902, 90904, 90905, 91001, 91003, 91005, 91006, 91007, 91008, 91101, 91102, 91103],
    '059' : [100, 401, 402, 600, 900, 1200, 1700, 1800, 1900, 2000, 2100, 2200, 30100, 30200, 130300, 130400, 130500, 130600, 130700, 140300, 140400, 140500, 140600, 150300, 150400, 150500, 150600, 150700, 150800, 150900],
    '061' : [960300],
    '065' : [970100, 970200],
    '069' : [10100, 10200, 10300, 10400, 10500, 10600, 10700, 10801, 10802],
    '071' : [970100, 970200, 970300, 970400, 970500, 970600, 970701, 970702, 970800, 970900],
    '073' : [30102, 30103, 30105, 30106, 30201, 30202, 30203, 30302, 30304, 30306, 30307, 30308, 30309, 30401, 30402, 30503, 30504, 30505, 30506, 30603],
    '075' : [960100, 960200, 960300, 960400],
    '077' : [170100, 170200, 170303, 170304, 170305, 170306, 170402, 170403, 170404, 170405, 170406, 170501, 170502, 170503, 170601, 170602, 170603, 170700, 170801, 170802],
    '079' : [70100, 70201, 70202],
    '081' : [10100, 10201, 10202, 10300, 10400, 10500],
    '083' : [40101, 40102, 40200, 40300],
    '085' : [970100, 970201, 970202],
    '087' : [970100, 970200, 970300, 970400, 970600, 970700, 970800],
    '091' : [960100, 960200, 960300, 960400, 960500, 960600],
    '093' : [970100, 970200, 970300],
    '095' : [100, 200, 400, 501, 502, 600, 700, 800, 900, 1000, 1100, 1403, 1500, 10302, 10401, 10402, 10403, 10500, 10601, 10602, 10700, 10900, 11000, 11200, 11300, 11400, 11600],
    '097' : [80102, 80103, 80201, 80202, 80301, 80303, 80304, 80402, 80403, 80404, 80505, 80506, 80507, 80508, 80509, 80510, 80511, 80602, 80603, 80604],
    '099' : [90100, 90200, 90300, 90400, 90500],
    '101' : [880100, 880200],
    '103' : [30100, 30202, 30203, 30204, 30301, 30303, 30304, 30305, 30401, 30402],
    '105' : [100, 200, 300, 400, 500],
    '107' : [970100, 970200, 970300, 970400, 970500, 970600],
    '109' : [970100, 970200, 970300],
    '111' : [50100, 50200, 50300, 50400, 50500],
    '113' : [140101, 140102, 140203, 140204, 140206, 140207, 140208, 140303, 140304, 140305, 140306, 140307, 140403, 140404, 140405, 140406, 140407, 140408, 140501, 140502],
    '115' : [100, 201, 202, 300, 400, 500, 600, 700, 800, 900, 1100, 1200, 1300, 1400, 1600, 1701, 1702, 1800, 2000, 2100],
    '117' : [130101, 130102, 130103, 130104, 130105, 130201, 130202, 130203, 130204, 130205, 130301, 130302, 130303, 130304, 130305, 130306, 130307, 130403, 130404, 130405, 130406, 130408, 130409, 130410, 130503, 130504, 130505, 130506, 130507, 130508, 130509, 130510, 130601, 130602, 130603, 130604, 130605, 130606, 130607, 130608, 130609, 130610, 130611, 130612, 130613],
    '119' : [890101, 890102, 890200, 890300, 890400],
    '123' : [80100, 80200, 80300, 80400, 80500],
    '127' : [101, 102, 200, 300, 401, 403, 404, 501, 503, 504, 600, 700, 800, 900, 1000, 990000],
    '129' : [970100, 970200, 970300, 970400, 970500, 970600, 970700, 970800, 970900],
    '131' : [950100, 950200, 950300, 950400, 950500, 950600],
    '137' : [100, 201, 202, 300, 400, 500, 601, 602],
    '139' : [101, 102, 201, 203, 204, 302, 303, 304, 305, 400, 500, 600, 701, 702, 800, 900, 1002, 1003, 1004, 1101, 1102, 1201, 1202, 1301, 1302, 1402, 1403, 1404, 1501, 1502, 1603, 1604, 1605, 1606, 1607, 1608],
    '143' : [10100, 10200, 10301, 10302, 10400],
    '145' : [120198, 120200, 120300, 120401, 120402],
    '147' : [960100, 960200, 960300, 960400, 960500],
    '149' : [970100, 970200, 970300],
    '151' : [70104, 70106, 70107, 70108, 70109, 70110, 70111, 70113, 70114, 70202, 70203, 70204, 70205, 70304, 70305, 70306, 70307, 70309, 70310, 70311, 70402, 70403, 70404, 70501, 70502],
    '153' : [20105, 20106, 20108, 20109, 20200, 20300, 20400, 20600, 20700, 20800, 20900, 21000, 21103, 21104, 21105, 21107, 21108, 21113, 21201, 21202, 21300, 21400, 21500],
    '155' : [950100, 950200],
    '157' : [10101, 10102, 10103, 10200, 10300, 10400, 10500, 10600, 10701, 10702, 10703],
    '161' : [960100, 960200, 960300],
    '165' : [960100, 960200],
    '167' : [960100, 960200, 960300],
    '169' : [30101, 30103, 30104, 30200, 30301, 30302],
    '171' : [970100, 970200, 970300],
    '173' : [950100, 950200],
    '175' : [950100, 950201, 950202, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000, 951100, 951400],
    '177' : [20100, 20200, 20300, 20402, 20403],
    '179' : [10101, 10102, 10103, 10202, 10204, 10205, 10206, 10207, 10208, 10300, 10400, 10501, 10502, 10600, 990000],
    '181' : [970100, 970200],
    '183' : [970100, 970200, 980000],
    '185' : [10101, 10102, 10103, 10201, 10202, 10301, 10302, 10401, 10402, 10500, 10601, 10604, 10700, 10800, 10900, 11000, 11100, 11200, 11301, 11302, 11401, 11402, 11403, 11500, 11600],
    '187' : [960101, 960102, 960201, 960202],
    '189' : [950100, 950200, 950300, 950400, 950500],
    '191' : [110100, 110200, 110300, 980000, 990000],
    '193' : [100, 200, 300, 400],
    '195' : [20100, 20200, 20300, 20400, 20500, 20600],
    '197' : [920100, 920200],
    '199' : [970500, 970600, 970700, 970800],
    '201' : [950100, 950200, 950300],
    '205' : [90100, 90200, 90300, 90400, 90500],
    '207' : [50101, 50102, 50200, 50301, 50302],
    '209' : [950100, 950200, 950300],
    '213' : [10100, 10201, 10202, 10300, 10400, 10500, 10600, 10700],
    '215' : [200, 300, 400, 800, 900, 1000, 1100, 1200, 1400, 1600, 1800, 2000, 2100, 2200, 2300, 2400, 2500, 2700, 2800, 2901, 2902, 3000, 3200, 3301, 3302, 3400, 10104, 10106, 10107, 10201, 10203, 10204, 10205, 10301, 10302, 10401, 10402, 10501, 10502, 10602, 10605, 10606, 10607, 10608, 10701, 10702, 10703, 10801, 10802, 11100, 11200, 11400, 11500],
    '217' : [100100, 100201, 100202, 100300, 100400, 100501, 100502, 100600, 100700, 100800, 100901, 100902, 100903],
    '219' : [30100, 30200, 30300, 30400, 30500, 30600],
    '221' : [960100, 960201, 960202, 960300],
    '223' : [120101, 120102, 120103, 120104, 120202, 120203, 120204, 120301, 120302, 120303, 120400, 120501, 120502, 120503, 120601, 120602, 120603, 120604, 120605],
    '225' : [40101, 40102, 40200, 40301, 40302, 40400],
    '227' : [50100, 50200, 50300, 50400, 50500, 50600],
    '229' : [960100, 960200, 960300, 960400],
    '231' : [10100, 10200, 10300, 10400],
    '233' : [10100, 10200, 10300, 10400, 10500, 10600, 10700],
    '235' : [950100, 950200, 950300],
    '239' : [960300],
    '241' : [970100, 970201, 970202, 970301, 970302],
    '243' : [790100, 790200],
    '245' : [100, 200, 300, 600, 700, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1601, 1602, 10101, 10104, 10105, 10106, 10107, 10201, 10203, 10204, 10300, 10400, 10504, 10506, 10507, 10508, 10509, 10510, 10511, 10512, 10513, 10600, 10706, 10707, 10708, 10709, 10710, 10711, 10712, 10800, 10903, 10904, 10905, 10906, 11000],
    '247' : [60101, 60102, 60201, 60202, 60304, 60305, 60306, 60307, 60308, 60309, 60403, 60404, 60405, 60406, 60407],
    '249' : [960100, 960200],
    '251' : [970200, 970300, 970400, 970500, 970600],
    '253' : [200100, 200200, 200300],
    '255' : [160100, 160200, 160300, 160400, 160500, 160600, 160700, 160800, 160900, 161000, 161100, 161200],
    '257' : [970100, 970200, 970301, 970302, 970400],
    '259' : [950100, 950400],
    '261' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
    '263' : [960100, 960200, 960300],
    '267' : [950100, 950201, 950202, 950300, 950400],
    '269' : [950100, 950200, 950300],
    '271' : [950100, 950200, 950500],
    '273' : [120200, 120300, 120400, 120500],
    '275' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100],
    '277' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900],
    '279' : [970100, 970200, 970300, 970400, 970500, 970600],
    '281' : [960100, 960200, 960300],
    '283' : [960100, 960200],
    '285' : [960100, 960201, 960202, 960300, 960400, 960501, 960502, 960600, 960700, 960800, 960901, 960902, 961000, 961100],
    '287' : [970200, 970300],
    '289' : [60100, 60200],
    '291' : [101, 102, 201, 203, 204, 205],
    '293' : [10100, 10201, 10202, 10300, 10400, 10500, 10600],
    '295' : [20100, 20200, 20301, 20302, 20400, 20501, 20502, 20601, 20602, 20700, 20800, 20901, 20902],
    '297' : [110100, 110200, 110300, 110400, 110503, 110504, 110505, 110506, 110507, 110508, 110601, 110602, 110603, 110700, 110800],
    '299' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900],
    '305' : [970100, 970200, 970300, 970400, 970500, 970600],
    '307' : [960100, 960200],
    '309' : [780100, 780200],
    '311' : [950100, 950201, 950202, 950203, 950300],
    '313' : [101, 102, 200, 301, 302, 400, 501, 502, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500],
    '315' : [960100, 960200, 960300, 960400],
    '317' : [10101, 10102, 10301, 10302],
    '319' : [960200, 960300, 960400],
    '321' : [950100, 950200, 950400, 950500, 950600]
]]]></entry>
        <entry id="census2010_hi" type="java"><![CDATA[[
    '001' : [20100, 20202, 20300, 20400, 20500, 20600, 20701, 20702, 20801, 20802, 20900, 21003, 21005, 21010, 21011, 21013, 21101, 21106, 21202, 21300, 21402, 21502, 21504, 21507, 21509, 21601, 21604, 21702, 21704, 21800, 21902, 22000, 22102, 990000, 990100, 990300, 990400, 990500, 990600, 990700, 990800, 990900, 991000, 991100, 991200, 991300, 991400, 991500, 991600, 991700],
    '003' : [106, 107, 108, 110, 111, 112, 114, 200, 301, 302, 401, 402, 500, 600, 700, 800, 901, 902, 903, 1000, 1100, 1201, 1202, 1300, 1400, 1500, 1600, 1700, 1801, 1803, 1804, 1901, 1903, 1904, 2003, 2004, 2005, 2006, 2100, 2201, 2202, 2300, 2401, 2402, 2500, 2600, 2701, 2702, 2800, 2900, 3000, 3101, 3102, 3200, 3300, 3403, 3404, 3405, 3406, 3407, 3501, 3502, 3601, 3603, 3604, 3700, 3800, 3900, 4000, 4100, 4200, 4300, 4400, 4500, 4600, 4700, 4800, 4900, 5000, 5100, 5200, 5300, 5400, 5500, 5600, 5700, 5800, 5900, 6000, 6100, 6201, 6202, 6301, 6302, 6401, 6402, 6500, 6600, 6701, 6702, 6802, 6804, 6805, 6806, 6808, 6809, 6900, 7000, 7100, 7302, 7303, 7400, 7502, 7503, 7504, 7505, 7506, 7701, 7702, 7804, 7805, 7807, 7808, 7809, 7810, 7811, 8001, 8002, 8003, 8005, 8006, 8007, 8301, 8302, 8402, 8405, 8406, 8407, 8408, 8410, 8411, 8412, 8502, 8606, 8609, 8610, 8611, 8612, 8613, 8614, 8617, 8622, 8701, 8702, 8703, 8800, 8906, 8907, 8908, 8909, 8912, 8913, 8914, 8915, 8917, 8918, 8920, 8921, 8922, 8923, 8924, 8925, 8926, 8927, 8928, 8929, 8930, 8931, 9000, 9100, 9200, 9300, 9400, 9501, 9502, 9503, 9504, 9507, 9603, 9608, 9701, 9703, 9704, 9801, 9802, 9902, 9904, 10000, 10100, 10201, 10202, 10303, 10305, 10306, 10308, 10503, 10504, 10505, 10507, 10508, 10601, 10602, 10701, 10702, 10801, 10802, 10901, 10903, 10904, 10905, 11000, 11103, 11104, 11105, 11106, 11201, 11202, 11300, 11400, 11500, 940001, 940002, 980000, 980200, 980300, 980600, 980700, 980800, 981000, 981100, 981200, 981300, 981400, 990001],
    '005' : [31900, 990000],
    '007' : [40103, 40104, 40204, 40205, 40300, 40400, 40500, 40603, 40604, 40700, 40800, 40900, 41200, 940000, 990100, 990200, 990300],
    '009' : [30100, 30201, 30202, 30301, 30303, 30402, 30403, 30404, 30501, 30705, 30706, 30707, 30708, 30709, 30710, 30800, 30901, 30902, 30903, 31000, 31101, 31102, 31103, 31402, 31404, 31405, 31501, 31502, 31503, 31601, 31700, 31801, 31900, 32000, 980000, 990000, 990200, 991200]
]]]></entry>
        <entry id="census2010_ia" type="java"><![CDATA[[
    '001' : [960100, 960200, 960300],
    '003' : [950100, 950200],
    '005' : [960100, 960200, 960300, 960400, 960500],
    '007' : [950100, 950200, 950300, 950400, 950500],
    '009' : [70100, 70200, 70300],
    '011' : [960100, 960200, 960300, 960400, 960500, 960600, 960700],
    '013' : [100, 200, 300, 400, 500, 700, 800, 900, 1000, 1100, 1200, 1301, 1302, 1400, 1501, 1502, 1503, 1600, 1701, 1702, 1800, 1900, 2000, 2200, 2301, 2303, 2304, 2400, 2500, 2601, 2603, 2604, 2700, 2800, 2901, 2902, 3001, 3002],
    '015' : [20100, 20200, 20300, 20400, 20500, 20600, 20700],
    '017' : [4000, 4100, 4200, 4300, 4400, 4500, 4600, 4700],
    '019' : [950100, 950200, 950300, 950400, 950500, 950600],
    '021' : [960100, 960200, 960300, 960400, 960500, 960600],
    '023' : [70100, 70200, 70300, 70400, 70500],
    '025' : [950100, 950200, 950300, 950400],
    '027' : [960100, 960200, 960300, 960400, 960500, 960600],
    '029' : [190100, 190200, 190300, 190400, 190500],
    '031' : [450100, 450200, 450300, 450400, 450500],
    '033' : [950102, 950200, 950300, 950402, 950600, 950700, 950800, 950900, 951000, 951400, 951600],
    '035' : [80100, 80200, 80300, 80400],
    '037' : [70100, 70200, 70300, 70400],
    '039' : [960100, 960200, 960300],
    '041' : [80100, 80200, 80300, 80400],
    '043' : [70100, 70200, 70300, 70400, 70500, 70600],
    '045' : [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200],
    '047' : [70100, 70200, 70300, 70400, 70500],
    '049' : [50100, 50200, 50300, 50400, 50500, 50600, 50700, 50803, 50805, 50807, 50809, 50811, 50812, 50901, 50902],
    '051' : [80100, 80200],
    '053' : [960100, 960200, 960300],
    '055' : [950100, 950200, 950300, 950400],
    '057' : [200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200],
    '059' : [450200, 450500, 450800, 451000, 451100],
    '061' : [100, 300, 400, 500, 600, 701, 702, 801, 802, 900, 1101, 1102, 1201, 1202, 1204, 1205, 10101, 10103, 10104, 10105, 10201, 10202, 10300, 10400, 10500, 10600],
    '063' : [70100, 70200, 70300, 70400],
    '065' : [80100, 80200, 80300, 80400, 80500, 80600, 80700],
    '067' : [480100, 480200, 480300, 480400, 480500],
    '069' : [360100, 360200, 360300],
    '071' : [970100, 970200, 970300],
    '073' : [80100, 80200, 80300, 80500],
    '075' : [960100, 960200, 960300, 960400],
    '077' : [950100, 950200, 950300],
    '079' : [960100, 960200, 960300, 960400, 960500],
    '081' : [270100, 270200, 270300, 270400],
    '083' : [480100, 480200, 480300, 480400, 480500, 480600],
    '085' : [290100, 290200, 290300, 290400, 290500],
    '087' : [970100, 970200, 970300, 970400, 970500],
    '089' : [960100, 960200, 960300],
    '091' : [970100, 970200, 970300, 970400],
    '093' : [90100, 90200, 90300],
    '095' : [960100, 960200, 960300, 960400],
    '097' : [950100, 950200, 950300, 950400, 950500, 950600],
    '099' : [40100, 40200, 40300, 40400, 40500, 40600, 40700, 40800, 40900],
    '101' : [90100, 90200, 90300, 90400],
    '103' : [100, 200, 301, 302, 400, 500, 600, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1801, 1802, 2100, 2300, 10100, 10200, 10301, 10302, 10400, 10500],
    '105' : [70100, 70300, 70400, 70500, 70600],
    '107' : [80100, 80200, 80300, 80400],
    '109' : [950100, 950200, 950300, 950400, 950500, 950600],
    '111' : [490100, 490200, 490300, 490400, 490500, 490600, 490700, 490800, 490900, 491000, 491100],
    '113' : [100, 201, 203, 205, 206, 207, 300, 400, 500, 600, 700, 800, 901, 902, 1001, 1002, 1003, 1101, 1102, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 2900, 3001, 3002, 10100, 10200, 10300, 10400, 10500, 10600, 10700, 10800],
    '115' : [450100, 450200, 450300],
    '117' : [950100, 950200, 950300, 950400],
    '119' : [950100, 950200, 950300],
    '121' : [60100, 60200, 60300],
    '123' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
    '125' : [30100, 30200, 30300, 30401, 30402, 30500, 30600, 30700],
    '127' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000],
    '129' : [40100, 40201, 40202, 40301, 40302],
    '131' : [560100, 560200, 560300],
    '133' : [960100, 960200, 960300, 960400],
    '135' : [70100, 70200, 70300],
    '137' : [960100, 960200, 960300, 960400],
    '139' : [50100, 50200, 50300, 50400, 50500, 50600, 50700, 50800, 50900, 51000],
    '141' : [490100, 490200, 490300, 490400],
    '143' : [460100, 460200],
    '145' : [490100, 490200, 490300, 490400, 490500, 490600],
    '147' : [960100, 960200, 960300, 960400],
    '149' : [970100, 970200, 970300, 970400, 970500, 970600],
    '151' : [780100, 780200, 780300],
    '153' : [101, 102, 103, 201, 202, 300, 400, 500, 600, 701, 702, 703, 704, 801, 802, 803, 901, 902, 1000, 1100, 1200, 1500, 1700, 1800, 1900, 2100, 2600, 2700, 2800, 2900, 3001, 3002, 3100, 3200, 3901, 3902, 4001, 4004, 4100, 4200, 4300, 4400, 4501, 4502, 4602, 4603, 4701, 4702, 4800, 4900, 5000, 5100, 5200, 5300, 10101, 10102, 10203, 10205, 10207, 10208, 10209, 10211, 10212, 10404, 10405, 10406, 10407, 10408, 10409, 10500, 10600, 10702, 10703, 10705, 10706, 10802, 10803, 10804, 11001, 11021, 11025, 11026, 11027, 11028, 11111, 11112, 11113, 11114, 11201, 11203, 11205, 11206, 11300, 11404, 11500, 11600, 11701, 11702],
    '155' : [21200, 21400, 21501, 21502, 21602, 21603, 21701, 21702, 30100, 30200, 30300, 30401, 30402, 30501, 30502, 30601, 30602, 30700, 30800, 30900, 31000, 31100, 31200, 31300, 31400, 31601, 31602, 31700, 31800, 31900],
    '157' : [370100, 370200, 370300, 370400, 370500],
    '159' : [950100, 950200],
    '161' : [80100, 80200, 80300, 80400],
    '163' : [10101, 10102, 10201, 10202, 10300, 10401, 10402, 10600, 10700, 10800, 10900, 11000, 11100, 11200, 11300, 11400, 11500, 11600, 11700, 11800, 11900, 12000, 12100, 12200, 12300, 12400, 12501, 12502, 12601, 12602, 12701, 12702, 12801, 12802, 12901, 12902, 13000, 13100, 13200, 13300, 13400, 13500, 13600, 13702, 13703, 13705, 13706],
    '165' : [960100, 960200, 960300, 960400],
    '167' : [70100, 70200, 70300, 70400, 70500, 70600, 70700],
    '169' : [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1301, 1302, 10100, 10200, 10300, 10400, 10500, 10600],
    '171' : [290100, 290200, 290300, 290400, 290500, 290600],
    '173' : [180100, 180200, 180300],
    '175' : [190100, 190200, 190300, 190400],
    '177' : [950100, 950200],
    '179' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100],
    '181' : [20100, 20200, 20300, 20400, 20500, 20600, 20700, 20800, 20900, 21000, 21100, 21200],
    '183' : [960100, 960200, 960300, 960400, 960500],
    '185' : [70100, 70200, 70300],
    '187' : [100, 200, 300, 400, 500, 600, 700, 900, 10100, 10200, 10300, 10400],
    '189' : [680100, 680200, 680300],
    '191' : [950100, 950200, 950300, 950400, 950500],
    '193' : [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1800, 1900, 2000, 2101, 2102, 3100, 3200, 3300, 3500, 3600, 940200],
    '195' : [690100, 690200, 690300],
    '197' : [680100, 680200, 680300, 680400, 680500]
]]]></entry>
        <entry id="census2010_id" type="java"><![CDATA[['001' : [000100, 000201, 000202, 000302, 000303, 000304, 000400, 000500, 000600, 000701, 000702, 000802, 000803, 000804, 000805, 000900, 001000, 001100, 001201, 001202, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002221, 002222, 002223, 002224, 002302, 002310, 002312, 002313, 002410, 002411, 002412, 002413, 010100, 010201, 010221, 010223, 010224, 010225, 010313, 010321, 010322, 010331, 010332, 010333, 010334, 010335, 010401, 010402, 010501, 010503, 010504],
'003' : [950100, 950200],
'005' : [000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001101, 001102, 001200, 001300, 001400, 001500, 001601, 001602, 001603, 001700, 001900, 940000, 981800],
'007' : [950100, 950200],
'009' : [940000, 950100],
'011' : [940000, 950100, 950200, 950300, 950400, 950500, 950600, 950700],
'013' : [960100, 960200, 960300, 960500],
'015' : [950200],
'017' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900],
'019' : [970100, 970300, 970401, 970402, 970403, 970501, 970502, 970503, 970601, 970602, 970603, 970700, 970800, 970900, 971000, 971100, 971200, 971301, 971302, 971400, 971500],
'021' : [970100, 970200],
'023' : [970100],
'025' : [970100],
'027' : [020100, 020200, 020300, 020401, 020402, 020501, 020503, 020504, 020601, 020602, 020700, 020901, 020902, 021001, 021002, 021100, 021200, 021300, 021500, 021600, 021700, 021800, 021901, 021903, 021904, 022100, 022200, 022300, 022400],
'029' : [960100, 960200],
'031' : [950100, 950200, 950300, 950400, 950500, 950600],
'033' : [950100],
'035' : [940000, 970100],
'037' : [960200],
'039' : [960100, 960200, 960300, 960400, 960500],
'041' : [970100, 970200],
'043' : [970100, 970200, 970300],
'045' : [960100, 960200, 960300],
'047' : [960100, 960200],
'049' : [940000, 960100, 960200, 960300, 960400],
'051' : [960100, 960200, 960300, 960400],
'053' : [970100, 970200, 970300, 970400, 970500],
'055' : [000100, 000200, 000301, 000302, 000401, 000402, 000500, 000601, 000602, 000700, 000800, 000900, 001001, 001002, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 940000],
'057' : [005100, 005200, 005300, 005400, 005500, 005600, 005700],
'059' : [970100, 970200, 970300],
'061' : [940001, 940002, 950300],
'063' : [950100],
'065' : [950100, 950200, 950301, 950302, 950400, 950500],
'067' : [970100, 970200, 970300, 970400, 970500],
'069' : [940000, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000],
'071' : [960100],
'073' : [950101, 950102, 950200],
'075' : [960100, 960200, 960300, 960400],
'077' : [960100, 960200],
'079' : [960200, 960300, 960400],
'081' : [960100],
'083' : [000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500],
'085' : [970100, 970200, 970300],
'087' : [970100, 970200, 970300]]]]></entry>
        <entry id="census2010_il" type="java"><![CDATA[['001' : [000100, 000201, 000202, 000400, 000500, 000600, 000700, 000800, 000900, 001001, 001002, 001100, 010100, 010200, 010300, 010400, 010500, 010600],
'003' : [957600, 957700, 957800, 957900],
'005' : [951200, 951300, 951400, 951500],
'007' : [010100, 010200, 010300, 010400, 010500, 010601, 010602],
'009' : [970400, 970500],
'011' : [964700, 964800, 964900, 965000, 965100, 965200, 965300, 965400, 965500, 965600],
'013' : [951200, 951300],
'015' : [960100, 960200, 960300, 960400, 960500, 960600],
'017' : [960100, 960200, 960300, 960400, 960500],
'019' : [000200, 000301, 000302, 000401, 000402, 000500, 000700, 000800, 000901, 000902, 001000, 001100, 001201, 001203, 001204, 001205, 001206, 001301, 001302, 001400, 005300, 005401, 005402, 005500, 005600, 005701, 005702, 005800, 005900, 006000, 010100, 010204, 010300, 010400, 010500, 010601, 010603, 010604, 010700, 010800, 010900, 011000, 011100],
'021' : [958100, 958200, 958300, 958400, 958500, 958600, 958700, 958800, 958900, 959000],
'023' : [060100, 060200, 060300, 060400],
'025' : [971900, 972000, 972100, 972200],
'027' : [900100, 900200, 900300, 900401, 900402, 900500, 900601, 900602],
'029' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200],
'031' : [010100, 010201, 010202, 010300, 010400, 010501, 010502, 010503, 010600, 010701, 010702, 020100, 020200, 020301, 020302, 020400, 020500, 020601, 020602, 020701, 020702, 020801, 020802, 020901, 020902, 030101, 030102, 030103, 030104, 030200, 030300, 030400, 030500, 030601, 030603, 030604, 030701, 030702, 030703, 030706, 030800, 030900, 031000, 031100, 031200, 031300, 031400, 031501, 031502, 031700, 031800, 031900, 032100, 040100, 040201, 040202, 040300, 040401, 040402, 040600, 040700, 040800, 040900, 050100, 050200, 050300, 050500, 050600, 050700, 050800, 050900, 051000, 051100, 051200, 051300, 051400, 060100, 060200, 060300, 060400, 060500, 060800, 060900, 061000, 061100, 061200, 061500, 061800, 061901, 061902, 062000, 062100, 062200, 062300, 062400, 062500, 062600, 062700, 062800, 062900, 063000, 063100, 063200, 063301, 063302, 063303, 063400, 070101, 070102, 070103, 070200, 070300, 070400, 070500, 070600, 070700, 071000, 071100, 071200, 071300, 071400, 071500, 071600, 071700, 071800, 080100, 080201, 080202, 080300, 080400, 081000, 081100, 081201, 081202, 081300, 081401, 081402, 081403, 081500, 081600, 081700, 081800, 081900, 090100, 090200, 090300, 100100, 100200, 100300, 100400, 100500, 100600, 100700, 110100, 110200, 110300, 110400, 110501, 110502, 120100, 120200, 120300, 120400, 130100, 130200, 130300, 140100, 140200, 140301, 140302, 140400, 140500, 140601, 140602, 140701, 140702, 140800, 150200, 150300, 150401, 150402, 150501, 150502, 150600, 150700, 150800, 151001, 151002, 151100, 151200, 160100, 160200, 160300, 160400, 160501, 160502, 160601, 160602, 160700, 160800, 160900, 161000, 161100, 161200, 161300, 170100, 170200, 170300, 170400, 170500, 170600, 170700, 170800, 170900, 171000, 171100, 180100, 190100, 190200, 190300, 190401, 190402, 190601, 190602, 190701, 190702, 190800, 190900, 191000, 191100, 191200, 191301, 191302, 200100, 200200, 200300, 200401, 200402, 210100, 210400, 210501, 210502, 210601, 210602, 210700, 210800, 210900, 220300, 220400, 220500, 220601, 220602, 220701, 220702, 220901, 220902, 221000, 221100, 221200, 221300, 221400, 221500, 221600, 222200, 222500, 222600, 222700, 222800, 222900, 230100, 230200, 230300, 230400, 230500, 230600, 230700, 230800, 230900, 231100, 231200, 231500, 240200, 240300, 240500, 240600, 240700, 240800, 240900, 241000, 241100, 241200, 241300, 241400, 241500, 241600, 242000, 242100, 242200, 242300, 242400, 242500, 242600, 242700, 242800, 242900, 243000, 243100, 243200, 243300, 243400, 243500, 250200, 250300, 250400, 250500, 250600, 250700, 250800, 251000, 251100, 251200, 251300, 251400, 251500, 251600, 251700, 251800, 251900, 252000, 252101, 252102, 252201, 252202, 260100, 260200, 260300, 260400, 260500, 260600, 260700, 260800, 260900, 261000, 270500, 271200, 271300, 271400, 271500, 271800, 280100, 280400, 280800, 280900, 281900, 282700, 282800, 283100, 283200, 283800, 290900, 291200, 291600, 292200, 292400, 292500, 300500, 300600, 300700, 300800, 300900, 301100, 301200, 301600, 301701, 301702, 301801, 301802, 301803, 310200, 310300, 310400, 310500, 310600, 310700, 310800, 310900, 320100, 320400, 320600, 330100, 330200, 340300, 340400, 340500, 340600, 350100, 350400, 351000, 351100, 351400, 351500, 360200, 380100, 380200, 380500, 380700, 381200, 381400, 381500, 381700, 381800, 381900, 390100, 390200, 390300, 390400, 390500, 390600, 390700, 400300, 400400, 400500, 400800, 410100, 410200, 410500, 410600, 410700, 410800, 410900, 411000, 411100, 411200, 420100, 420200, 420300, 420400, 420500, 420600, 420700, 420800, 421200, 430101, 430102, 430200, 430300, 430400, 430500, 430600, 430700, 430800, 430900, 431200, 431301, 431302, 431400, 440101, 440102, 440201, 440202, 440300, 440600, 440700, 440800, 440900, 450300, 460100, 460200, 460301, 460302, 460400, 460500, 460600, 460700, 461000, 470100, 480100, 480200, 480300, 480400, 480500, 490300, 490400, 490500, 490600, 490700, 490800, 490901, 490902, 491000, 491100, 491200, 491300, 491400, 500100, 500200, 500300, 510100, 510200, 510300, 520100, 520200, 520300, 520400, 520500, 520600, 530100, 530200, 530300, 530400, 530501, 530502, 530503, 530600, 540101, 540102, 550100, 550200, 560100, 560200, 560300, 560400, 560700, 560800, 560900, 561000, 561100, 570100, 570200, 570300, 570400, 570500, 580100, 580200, 580300, 580400, 580501, 580502, 580600, 580700, 580800, 590500, 590600, 590700, 600400, 600600, 600700, 600900, 610300, 610400, 610800, 611000, 611100, 611200, 611300, 611400, 611500, 611600, 611700, 611800, 611900, 612000, 612100, 620100, 620200, 620300, 620400, 630100, 630200, 630300, 630400, 630500, 630800, 630900, 640100, 640300, 640400, 640500, 640600, 640700, 640800, 650100, 650200, 650301, 650302, 650400, 650500, 660301, 660302, 660400, 660500, 660600, 660700, 660800, 660900, 661000, 661100, 670100, 670200, 670300, 670400, 670500, 670600, 670700, 670800, 670900, 671100, 671200, 671300, 671400, 671500, 671600, 671800, 671900, 672000, 680500, 680600, 680900, 681000, 681100, 681200, 681300, 681400, 690300, 690400, 690500, 690900, 691000, 691100, 691200, 691300, 691400, 691500, 700100, 700200, 700301, 700302, 700401, 700402, 700501, 700502, 710100, 710200, 710300, 710400, 710500, 710600, 710700, 710800, 710900, 711000, 711100, 711200, 711300, 711400, 711500, 720100, 720200, 720300, 720400, 720500, 720600, 720700, 730100, 730201, 730202, 730300, 730400, 730500, 730600, 730700, 740100, 740200, 740300, 740400, 750100, 750200, 750300, 750400, 750500, 750600, 760801, 760802, 760803, 770201, 770202, 770300, 770400, 770500, 770601, 770602, 770700, 770800, 770901, 770902, 800100, 800200, 800300, 800400, 800500, 800600, 800700, 800800, 800900, 801000, 801100, 801200, 801300, 801400, 801500, 801601, 801603, 801605, 801606, 801607, 801608, 801701, 801702, 801800, 801901, 801902, 802002, 802003, 802004, 802100, 802200, 802300, 802402, 802403, 802404, 802503, 802504, 802505, 802506, 802605, 802607, 802608, 802609, 802610, 802701, 802702, 802801, 802802, 802900, 803005, 803007, 803008, 803010, 803012, 803013, 803014, 803015, 803016, 803017, 803100, 803200, 803300, 803400, 803500, 803603, 803604, 803605, 803606, 803607, 803608, 803610, 803611, 803612, 803701, 803702, 803800, 803901, 803902, 804000, 804102, 804104, 804105, 804106, 804108, 804109, 804201, 804202, 804305, 804306, 804308, 804309, 804310, 804311, 804403, 804404, 804405, 804406, 804505, 804506, 804507, 804508, 804509, 804510, 804511, 804603, 804606, 804607, 804608, 804609, 804610, 804611, 804701, 804705, 804706, 804709, 804710, 804711, 804712, 804713, 804714, 804715, 804716, 804803, 804804, 804805, 804806, 804807, 804808, 804809, 804810, 804901, 804902, 805001, 805002, 805105, 805106, 805107, 805108, 805109, 805110, 805111, 805112, 805201, 805202, 805301, 805302, 805401, 805402, 805501, 805502, 805600, 805701, 805702, 805801, 805802, 805901, 805902, 806001, 806002, 806003, 806004, 806102, 806103, 806104, 806201, 806202, 806300, 806400, 806501, 806502, 806600, 806700, 806801, 806802, 806900, 807000, 807100, 807200, 807300, 807400, 807500, 807600, 807700, 807800, 807900, 808001, 808002, 808100, 808200, 808301, 808302, 808400, 808500, 808600, 808702, 808800, 808900, 809000, 809100, 809200, 809300, 809400, 809500, 809600, 809700, 809800, 809900, 810000, 810100, 810200, 810301, 810302, 810400, 810501, 810502, 810600, 810701, 810702, 810800, 810900, 811000, 811100, 811200, 811301, 811302, 811401, 811402, 811500, 811600, 811701, 811702, 811800, 811900, 812000, 812100, 812200, 812301, 812302, 812400, 812500, 812600, 812700, 812801, 812802, 812900, 813000, 813100, 813200, 813301, 813302, 813400, 813500, 813600, 813701, 813702, 813801, 813802, 813900, 814000, 814100, 814200, 814300, 814400, 814500, 814600, 814700, 814800, 814900, 815000, 815100, 815200, 815300, 815400, 815500, 815600, 815701, 815702, 815800, 815900, 816000, 816100, 816200, 816300, 816401, 816402, 816500, 816600, 816700, 816800, 816900, 817000, 817101, 817102, 817200, 817300, 817400, 817500, 817600, 817700, 817900, 818000, 818100, 818200, 818300, 818401, 818402, 818500, 818600, 818700, 818800, 818900, 819000, 819100, 819200, 819300, 819400, 819500, 819600, 819700, 819801, 819802, 819900, 820000, 820101, 820103, 820104, 820201, 820202, 820300, 820400, 820501, 820502, 820603, 820604, 820605, 820606, 820700, 820800, 820901, 820902, 821001, 821002, 821101, 821102, 821200, 821300, 821401, 821402, 821500, 821600, 821700, 821800, 821900, 822000, 822101, 822102, 822200, 822301, 822302, 822400, 822500, 822601, 822602, 822701, 822702, 822801, 822802, 822900, 823001, 823002, 823101, 823102, 823200, 823302, 823303, 823304, 823400, 823500, 823602, 823603, 823604, 823605, 823702, 823703, 823704, 823705, 823801, 823803, 823805, 823806, 823901, 823903, 823904, 824003, 824004, 824005, 824006, 824105, 824106, 824107, 824108, 824113, 824114, 824115, 824116, 824117, 824119, 824120, 824121, 824122, 824123, 824300, 824400, 824503, 824505, 824506, 824507, 824601, 824602, 824701, 824702, 824800, 824900, 825000, 825200, 825302, 825303, 825304, 825400, 825501, 825503, 825504, 825505, 825600, 825700, 825801, 825802, 825803, 825900, 826000, 826100, 826201, 826202, 826301, 826303, 826304, 826401, 826402, 826500, 826600, 826700, 826800, 826901, 826902, 827000, 827100, 827200, 827300, 827400, 827500, 827600, 827700, 827801, 827802, 827804, 827805, 827901, 827902, 828000, 828100, 828201, 828202, 828300, 828401, 828402, 828503, 828504, 828505, 828506, 828601, 828602, 828701, 828702, 828801, 828802, 828900, 829000, 829100, 829200, 829301, 829302, 829401, 829402, 829500, 829600, 829700, 829800, 829901, 829902, 830001, 830003, 830004, 830005, 830006, 830007, 830008, 830100, 830201, 830202, 830300, 830400, 830500, 830600, 830700, 830800, 830900, 831000, 831100, 831200, 831300, 831400, 831500, 831600, 831700, 831800, 831900, 832000, 832100, 832200, 832300, 832400, 832500, 832600, 832900, 833000, 833100, 833300, 833900, 834000, 834200, 834300, 834400, 834500, 834600, 834700, 834800, 834900, 835000, 835100, 835200, 835500, 835600, 835700, 835800, 835900, 836000, 836100, 836200, 836300, 836400, 836500, 836600, 836700, 836800, 836900, 837000, 837100, 837300, 837400, 837800, 838000, 838100, 838200, 838300, 838600, 838700, 838800, 839000, 839100, 839200, 839500, 839600, 839700, 839800, 839900, 840000, 840100, 840200, 840300, 840400, 840700, 840800, 841000, 841100, 841200, 841300, 841400, 841500, 841600, 841700, 841800, 841900, 842000, 842100, 842200, 842300, 842400, 842500, 842600, 842800, 842900, 843000, 843100, 843200, 843300, 843400, 843500, 843600, 843700, 843800, 843900, 980000, 980100, 990000],
'033' : [880100, 880200, 880300, 880400, 880500, 880600],
'035' : [972400, 972500, 972600],
'037' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001001, 001002, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200],
'039' : [971400, 971500, 971600, 971700, 971800],
'041' : [952000, 952100, 952200, 952300, 952400],
'043' : [840000, 840101, 840102, 840103, 840104, 840201, 840202, 840303, 840304, 840600, 840703, 840704, 840705, 840706, 840801, 840802, 840901, 840904, 840906, 840907, 840908, 840910, 840911, 841002, 841003, 841004, 841102, 841103, 841104, 841108, 841109, 841110, 841111, 841112, 841113, 841114, 841204, 841205, 841206, 841207, 841208, 841209, 841210, 841307, 841308, 841310, 841312, 841313, 841314, 841315, 841316, 841318, 841320, 841321, 841322, 841323, 841324, 841325, 841326, 841327, 841401, 841403, 841404, 841501, 841503, 841504, 841603, 841604, 841605, 841606, 841607, 841703, 841704, 841705, 841706, 841801, 841802, 841901, 841902, 842000, 842100, 842200, 842300, 842400, 842500, 842601, 842602, 842603, 842604, 842605, 842702, 842703, 842704, 842706, 842708, 842709, 842710, 842711, 842800, 842900, 843000, 843100, 843200, 843301, 843302, 843400, 843500, 843601, 843602, 843700, 843800, 843900, 844001, 844002, 844100, 844201, 844202, 844301, 844304, 844305, 844306, 844307, 844401, 844402, 844501, 844502, 844601, 844602, 844701, 844702, 844801, 844802, 844901, 844902, 845000, 845100, 845200, 845300, 845401, 845402, 845502, 845505, 845506, 845507, 845508, 845509, 845510, 845601, 845602, 845701, 845702, 845703, 845704, 845802, 845803, 845805, 845807, 845808, 845809, 845810, 845811, 845901, 845902, 846002, 846003, 846004, 846102, 846103, 846104, 846105, 846106, 846201, 846202, 846203, 846205, 846206, 846207, 846208, 846209, 846304, 846305, 846307, 846308, 846310, 846311, 846312, 846313, 846314, 846315, 846404, 846405, 846408, 846409, 846410, 846411, 846412, 846413, 846504, 846507, 846509, 846510, 846511, 846513, 846514, 846515, 846517, 846518, 846519, 846521, 846522, 846523, 846524, 846603, 846604, 846701, 846702],
'045' : [070100, 070200, 070300, 070400, 070500],
'047' : [956900, 957000, 957100],
'049' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
'051' : [950500, 950600, 950700, 950800, 950900, 951000, 951100],
'053' : [961600, 961700, 961800, 961900, 962000],
'055' : [040100, 040200, 040300, 040400, 040500, 040600, 040700, 040800, 040900, 041000, 041100, 041200],
'057' : [952800, 952900, 953000, 953100, 953200, 953300, 953400, 953500, 953600, 953700, 953800, 953900],
'059' : [972700, 972800],
'061' : [973600, 973700, 973800, 973900, 974000],
'063' : [000102, 000103, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900],
'065' : [973100, 973200, 973300],
'067' : [953700, 953800, 953900, 954000, 954100, 954200, 954300],
'069' : [970900, 971000],
'071' : [973300, 973400, 973500],
'073' : [030100, 030201, 030202, 030203, 030300, 030400, 030500, 030600, 030800, 030900, 031000, 031100, 031200],
'075' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900],
'077' : [010100, 010200, 010300, 010400, 010600, 010700, 010800, 010900, 011000, 011100, 011200, 011400, 011600, 011700],
'079' : [977300, 977400, 977500],
'081' : [050100, 050200, 050300, 050400, 050500, 050600, 050700, 050800, 050900, 051000, 051100],
'083' : [010100, 010200, 010300, 010401, 010402, 010500],
'085' : [020100, 020200, 020300, 020401, 020402, 020500],
'087' : [977600, 977700, 977800, 980000],
'089' : [850101, 850103, 850105, 850106, 850201, 850202, 850301, 850302, 850400, 850500, 850600, 850701, 850702, 850703, 850800, 851000, 851101, 851102, 851301, 851302, 851400, 851500, 851600, 851801, 851904, 851905, 851907, 851908, 851909, 851910, 852001, 852002, 852003, 852101, 852102, 852201, 852202, 852300, 852401, 852402, 852403, 852500, 852601, 852606, 852700, 852803, 852805, 852806, 852807, 852808, 852903, 852904, 852905, 852906, 852907, 853001, 853004, 853005, 853006, 853007, 853008, 853100, 853200, 853300, 853400, 853500, 853600, 853900, 854001, 854002, 854100, 854200, 854301, 854302, 854400, 854501, 854503, 854504, 854600, 854700, 854800, 854900],
'091' : [010100, 010201, 010202, 010300, 010400, 010500, 010601, 010602, 010701, 010702, 010800, 010900, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 011900, 012000, 012100, 012200, 012300, 012400, 012500, 012600],
'093' : [890101, 890102, 890201, 890202, 890301, 890302, 890400, 890500, 890600, 890700],
'095' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600],
'097' : [860101, 860103, 860104, 860200, 860301, 860302, 860400, 860500, 860600, 860805, 860806, 860807, 860808, 860809, 860810, 860811, 860903, 860904, 860905, 860906, 861007, 861008, 861009, 861010, 861011, 861012, 861013, 861014, 861105, 861106, 861107, 861108, 861201, 861202, 861301, 861303, 861304, 861402, 861403, 861404, 861504, 861505, 861506, 861507, 861508, 861509, 861510, 861603, 861604, 861607, 861608, 861609, 861610, 861611, 861701, 861702, 861803, 861804, 861901, 861902, 862000, 862100, 862200, 862300, 862401, 862402, 862501, 862502, 862603, 862604, 862605, 862700, 862800, 862901, 862902, 863003, 863004, 863005, 863006, 863100, 863201, 863202, 863300, 863400, 863500, 863601, 863603, 863604, 863701, 863702, 863801, 863902, 863903, 863904, 864001, 864002, 864101, 864105, 864106, 864107, 864108, 864203, 864204, 864205, 864206, 864303, 864305, 864306, 864307, 864308, 864402, 864403, 864407, 864408, 864409, 864410, 864411, 864412, 864505, 864510, 864511, 864512, 864513, 864514, 864515, 864516, 864517, 864518, 864519, 864520, 864521, 864522, 864601, 864602, 864700, 864801, 864802, 864901, 864903, 864904, 865000, 865200, 865300, 865400, 865501, 865502, 865600, 865700, 865801, 865802, 866000, 866100, 866200, 990000],
'099' : [961701, 961702, 961800, 961900, 962000, 962100, 962200, 962300, 962400, 962500, 962600, 962700, 962800, 962900, 963000, 963100, 963200, 963300, 963400, 963500, 963600, 963700, 963800, 963900, 964000, 964100, 964200, 964300],
'101' : [880700, 880800, 880900, 881000, 881100],
'103' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900],
'105' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000],
'107' : [952900, 953000, 953100, 953200, 953300, 953400, 953500, 953600],
'109' : [010100, 010200, 010300, 010400, 010500, 010600, 010700, 010900, 011000, 011100],
'111' : [870101, 870102, 870200, 870301, 870302, 870401, 870402, 870500, 870603, 870604, 870605, 870606, 870702, 870703, 870704, 870803, 870807, 870808, 870809, 870810, 870811, 870812, 870902, 870903, 870904, 870905, 871003, 871004, 871104, 871105, 871106, 871107, 871108, 871109, 871201, 871202, 871205, 871206, 871207, 871208, 871209, 871301, 871304, 871305, 871306, 871307, 871310, 871311, 871402, 871404, 871500, 871600],
'113' : [000102, 000104, 000105, 000200, 000301, 000302, 000400, 000501, 000502, 000504, 000505, 001103, 001104, 001105, 001106, 001200, 001301, 001302, 001303, 001402, 001403, 001404, 001500, 001600, 001700, 001800, 002101, 002102, 005101, 005102, 005201, 005202, 005400, 005501, 005502, 005601, 005602, 005700, 005800, 005900, 006000],
'115' : [000200, 000300, 000400, 000500, 000600, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001801, 001802, 001900, 002000, 002100, 002200, 002300, 002401, 002402, 002500, 002601, 002602, 002700, 002800, 002901, 002902, 002903, 002904, 003000, 003100],
'117' : [956000, 956100, 956200, 956300, 956400, 956500, 956600, 956700, 956800, 956900, 957000, 957100, 957200],
'119' : [400101, 400102, 400200, 400600, 400700, 400801, 400802, 400903, 400904, 400951, 400952, 401000, 401100, 401200, 401300, 401400, 401500, 401701, 401721, 401722, 401800, 401901, 401903, 401904, 402000, 402100, 402200, 402300, 402400, 402500, 402600, 402701, 402721, 402722, 402801, 402802, 402803, 402900, 403001, 403002, 403101, 403121, 403122, 403200, 403300, 403401, 403402, 403502, 403531, 403532, 403533, 403534, 403601, 403603, 403604, 403701, 403702, 403801, 403802, 404000, 404100],
'121' : [951600, 951700, 951800, 951900, 952000, 952100, 952200, 952300, 952400, 952500, 952600, 952700],
'123' : [961100, 961200, 961300, 961400, 961500],
'125' : [956300, 956400, 956500, 956600, 956700, 956800],
'127' : [970100, 970200, 970300, 970400],
'129' : [010100, 010200, 010300],
'131' : [040100, 040200, 040300, 040400],
'133' : [600101, 600102, 600401, 600402, 600501, 600502],
'135' : [957300, 957400, 957500, 957600, 957700, 957800, 957900, 958000],
'137' : [951400, 951500, 951600, 951700, 951800, 951900, 952000, 952100, 952200, 952300],
'139' : [976900, 977000, 977100, 977200],
'141' : [960700, 960800, 960900, 961000, 961100, 961200, 961300, 961400, 961500, 961600, 961700],
'143' : [000100, 000200, 000300, 000500, 000600, 000900, 001200, 001300, 001500, 001600, 001800, 001900, 002000, 002100, 002200, 002300, 002400, 002500, 002600, 002701, 002702, 002800, 002900, 003000, 003101, 003102, 003200, 003300, 003401, 003402, 003601, 003602, 003700, 003800, 003900, 004000, 004101, 004102, 004200, 004300, 004400, 004500, 004600, 004801, 004802, 004901, 004902, 005000],
'145' : [030100, 030200, 030300, 030400, 030500, 030600],
'147' : [954500, 954600, 954700, 954800],
'149' : [952400, 952500, 952600, 952700, 952800],
'151' : [971200, 971300],
'153' : [971000, 971100],
'155' : [954500, 954600],
'157' : [950500, 950600, 950700, 950800, 950900, 951000, 951100, 951200, 951300],
'159' : [977900, 978000, 978100, 978200, 978300],
'161' : [020100, 020200, 020300, 020400, 020600, 020700, 020800, 020900, 021000, 021100, 021200, 021300, 021400, 021500, 021600, 021700, 021800, 021900, 022000, 022100, 022200, 022300, 022600, 022800, 022900, 023000, 023100, 023200, 023300, 023500, 023600, 023700, 024000, 024101, 024102, 024103, 024200, 024300, 024400, 024500],
'163' : [500400, 500500, 500900, 501100, 501200, 501300, 501400, 501501, 501502, 501602, 501603, 501604, 501605, 501700, 501800, 501900, 502100, 502200, 502300, 502401, 502404, 502500, 502602, 502603, 502700, 502800, 502900, 503100, 503202, 503203, 503211, 503301, 503304, 503322, 503323, 503324, 503332, 503334, 503402, 503404, 503411, 503412, 503413, 503414, 503800, 503903, 503904, 503905, 503906, 504001, 504002, 504302, 504303, 504351, 504352, 504353, 504354, 504355, 504500, 504600],
'165' : [955100, 955500, 955600, 955700, 955800, 955900, 956000, 956100, 956200],
'167' : [000100, 000201, 000202, 000300, 000400, 000501, 000503, 000504, 000600, 000700, 000800, 000900, 001001, 001003, 001004, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002300, 002400, 002500, 002600, 002700, 002801, 002802, 002900, 003000, 003100, 003201, 003202, 003203, 003300, 003400, 003500, 003601, 003602, 003603, 003604, 003700, 003801, 003802, 003901, 003902, 004000],
'169' : [970100, 970200, 970300],
'171' : [970600, 970700],
'173' : [959100, 959200, 959300, 959400, 959500, 959600],
'175' : [951400, 951500],
'177' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300],
'179' : [020100, 020301, 020302, 020400, 020500, 020600, 020700, 020800, 020900, 021000, 021101, 021102, 021201, 021202, 021203, 021500, 021603, 021604, 021605, 021606, 021701, 021702, 021801, 021802, 021900, 022000, 022100, 022200, 022300, 022400],
'181' : [950100, 950200, 950300, 950400, 950500],
'183' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001200, 001300, 010100, 010200, 010300, 010400, 010500, 010600, 010701, 010702, 010800, 010900, 011000, 011100, 011200],
'185' : [957200, 957300, 957400, 957500],
'187' : [870100, 870200, 870300, 870400, 870500],
'189' : [950100, 950200, 950300, 950400],
'191' : [954900, 955000, 955100, 955200, 955300],
'193' : [958000, 958100, 958200, 958300, 958400],
'195' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800],
'197' : [880105, 880106, 880107, 880109, 880111, 880112, 880113, 880114, 880115, 880116, 880117, 880118, 880119, 880120, 880121, 880202, 880203, 880204, 880303, 880304, 880305, 880306, 880307, 880308, 880309, 880310, 880312, 880313, 880314, 880404, 880408, 880410, 880411, 880412, 880414, 880415, 880416, 880417, 880418, 880419, 880420, 880421, 880502, 880503, 880505, 880507, 880601, 880602, 880701, 880702, 880901, 880903, 880905, 881001, 881002, 881005, 881006, 881007, 881009, 881010, 881011, 881012, 881105, 881107, 881108, 881109, 881111, 881112, 881113, 881115, 881116, 881200, 881301, 881302, 881401, 881402, 881500, 881601, 881603, 881604, 881700, 881800, 881900, 882000, 882100, 882200, 882300, 882400, 882500, 882601, 882602, 882701, 882702, 882801, 882802, 882900, 883000, 883100, 883206, 883208, 883209, 883210, 883211, 883212, 883213, 883214, 883215, 883216, 883303, 883304, 883305, 883306, 883307, 883401, 883402, 883504, 883505, 883507, 883509, 883510, 883511, 883513, 883514, 883515, 883516, 883517, 883519, 883521, 883522, 883602, 883603, 883605, 883606, 883700, 883803, 883804, 883806, 883808, 883809, 883810, 883811, 883902, 883903, 883904, 884003, 884004, 884005, 884006, 884101, 884103, 980000, 980100],
'199' : [020100, 020201, 020202, 020300, 020400, 020500, 020600, 020700, 020800, 020900, 021000, 021100, 021200, 021300, 021400],
'201' : [000101, 000103, 000104, 000105, 000200, 000300, 000401, 000402, 000403, 000501, 000502, 000504, 000506, 000507, 000510, 000511, 000512, 000513, 000514, 000600, 000700, 000800, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002301, 002302, 002400, 002500, 002600, 002700, 002800, 002900, 003000, 003100, 003200, 003300, 003400, 003500, 003601, 003602, 003604, 003605, 003606, 003705, 003706, 003707, 003708, 003709, 003710, 003711, 003801, 003805, 003806, 003807, 003808, 003809, 003901, 003903, 003904, 004001, 004002, 004003, 004100, 004200, 004300, 980000],
'203' : [030100, 030200, 030300, 030400, 030501, 030502, 030601, 030602, 030700]]]]]></entry>
        <entry id="census2010_ky" type="java"><![CDATA[[
    '001' : [970100, 970200, 970300, 970401, 970402, 970500, 970600],
    '003' : [920100, 920200, 920300, 920400, 920500, 920600],
    '005' : [950100, 950201, 950202, 950300, 950400],
    '007' : [950100, 950200, 950300],
    '009' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000],
    '011' : [970100, 970200, 970300],
    '013' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 961100],
    '015' : [70100, 70200, 70301, 70305, 70307, 70308, 70309, 70311, 70312, 70313, 70314, 70401, 70402, 70502, 70503, 70504, 70601, 70604, 70605, 70606, 70607, 980100],
    '017' : [30100, 30200, 30300, 30400, 30500, 30600],
    '019' : [30200, 30300, 30400, 30500, 30600, 30700, 30800, 30900, 31001, 31002, 31100, 31200, 31300],
    '021' : [930100, 930200, 930300, 930400, 930500, 930600, 930700],
    '023' : [950100, 950200, 950300],
    '025' : [920100, 920200, 920300, 920400, 920500, 920600, 920700],
    '027' : [960100, 960200, 960300, 960400, 960501, 960502],
    '029' : [20101, 20102, 20103, 20201, 20202, 20300, 20400, 20500, 20601, 20602, 20701, 20702, 20800, 20900, 21101, 21102, 21200, 980100],
    '031' : [930100, 930200, 930300, 930400, 930500],
    '033' : [920100, 920200, 920300],
    '035' : [10100, 10200, 10301, 10302, 10400, 10500, 10600, 10700, 10800],
    '037' : [50100, 50400, 50500, 50600, 51101, 51102, 51200, 51300, 51901, 51903, 51904, 52001, 52002, 52100, 52200, 52301, 52302, 52400, 52500, 52800, 52900, 53100, 53200, 53301, 53302],
    '039' : [960100, 960200, 960300],
    '041' : [950100, 950200, 950300],
    '043' : [960100, 960200, 960300, 960400, 960500, 960600, 960700],
    '045' : [950100, 950200, 950300, 950400, 950500],
    '047' : [200100, 200200, 200300, 200400, 200500, 200600, 200700, 200800, 200900, 201000, 201100, 201200, 201301, 201302, 201400, 201501, 201502, 201503, 980100],
    '049' : [20101, 20103, 20105, 20106, 20201, 20202, 20300, 20400, 20500, 20600],
    '051' : [950100, 950200, 950300, 950400, 950500, 950600],
    '053' : [970100, 970201, 970202],
    '055' : [930100, 930200, 930300, 930400],
    '057' : [950100, 950200],
    '059' : [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1401, 1402, 1501, 1502, 1601, 1602, 1701, 1702, 1703, 1800],
    '061' : [920200, 920300, 920400, 980100],
    '063' : [920100, 920200],
    '065' : [920100, 920200, 920300, 920400],
    '067' : [101, 102, 200, 300, 400, 500, 600, 700, 801, 802, 900, 1000, 1100, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2001, 2002, 2200, 2302, 2303, 2304, 2400, 2500, 2600, 2700, 2800, 2900, 3000, 3101, 3102, 3201, 3202, 3300, 3402, 3404, 3405, 3406, 3407, 3501, 3503, 3504, 3600, 3701, 3702, 3703, 3704, 3802, 3803, 3804, 3906, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 4001, 4003, 4005, 4006, 4007, 4103, 4104, 4105, 4106, 4107, 4204, 4205, 4207, 4208, 4209, 4210],
    '069' : [920100, 920200, 920300, 920400],
    '071' : [920100, 920200, 920300, 920400, 920500, 920600, 920700, 920800, 920900, 921000],
    '073' : [70100, 70401, 70402, 70500, 70600, 70701, 70702, 70800, 71000, 71100, 71200],
    '075' : [960100, 960200],
    '077' : [960101, 960102],
    '079' : [970100, 970200, 970300, 970400],
    '081' : [920100, 920200, 920300, 920400],
    '083' : [20100, 20200, 20300, 20400, 20500, 20600, 20700, 20800, 20900],
    '085' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
    '087' : [930100, 930200, 930300, 930400],
    '089' : [40100, 40201, 40202, 40300, 40400, 40501, 40502, 40600, 40700],
    '091' : [960100, 960200, 960300],
    '093' : [100, 201, 202, 300, 400, 500, 600, 700, 800, 901, 902, 1001, 1002, 1100, 1200, 1300, 1401, 1402, 1500, 1600, 1700, 980100],
    '095' : [970100, 970200, 970300, 970400, 970500, 970600, 970700, 970800, 970900, 971000, 971300],
    '097' : [950100, 950200, 950300, 950400, 950500],
    '099' : [970100, 970200, 970300, 970400, 970500],
    '101' : [20100, 20200, 20300, 20400, 20500, 20601, 20602, 20701, 20702, 20800, 20900],
    '103' : [90100, 90200, 90301, 90302, 90400],
    '105' : [970100],
    '107' : [970100, 970200, 970300, 970400, 970500, 970600, 970700, 970800, 970900, 971000, 971100, 971300],
    '109' : [960100, 960200, 960300],
    '111' : [200, 300, 400, 600, 700, 800, 900, 1000, 1100, 1200, 1400, 1500, 1600, 1700, 1800, 2100, 2300, 2400, 2700, 2800, 3000, 3500, 3600, 3700, 3800, 3900, 4000, 4100, 4301, 4302, 4400, 4500, 4600, 4900, 5000, 5100, 5200, 5300, 5600, 5900, 6200, 6300, 6400, 6500, 6600, 6800, 6900, 7000, 7100, 7400, 7501, 7502, 7601, 7602, 7603, 7700, 7800, 7900, 8100, 8200, 8300, 8400, 8500, 8700, 8800, 8900, 9000, 9103, 9105, 9106, 9300, 9400, 9600, 9700, 9800, 9900, 10001, 10004, 10005, 10006, 10007, 10008, 10102, 10103, 10104, 10307, 10309, 10311, 10312, 10313, 10314, 10315, 10316, 10317, 10318, 10319, 10320, 10402, 10403, 10405, 10406, 10500, 10601, 10602, 10701, 10702, 10705, 10706, 10800, 10901, 10902, 11002, 11003, 11004, 11005, 11102, 11106, 11109, 11110, 11111, 11112, 11113, 11114, 11200, 11301, 11302, 11403, 11404, 11405, 11406, 11505, 11506, 11508, 11509, 11513, 11514, 11515, 11516, 11517, 11518, 11519, 11520, 11601, 11603, 11604, 11706, 11707, 11708, 11709, 11710, 11711, 11712, 11713, 11800, 11901, 11904, 11905, 11906, 11907, 12001, 12002, 12003, 12103, 12104, 12105, 12106, 12107, 12202, 12203, 12204, 12301, 12302, 12406, 12407, 12408, 12409, 12410, 12411, 12501, 12502, 12503, 12601, 12603, 12604, 12701, 12702, 12703, 12801, 12802, 13100, 980100],
    '113' : [60101, 60102, 60200, 60300, 60400, 60502, 60503, 60504, 60600],
    '115' : [960100, 960200, 960300, 960400, 960500, 960600],
    '117' : [60300, 60700, 60900, 61000, 61100, 61200, 61300, 61400, 61600, 63603, 63604, 63605, 63606, 63701, 63702, 63800, 64000, 64100, 64200, 64300, 64400, 64500, 64600, 64700, 64800, 64900, 65000, 65100, 65200, 65300, 65400, 65501, 65502, 65600, 65700, 65800, 65900, 66800, 66900, 67000, 67100],
    '119' : [960100, 960200, 960300, 960400, 960500],
    '121' : [930100, 930200, 930300, 930400, 930500, 930601, 930602, 930700],
    '123' : [960101, 960102, 960200, 960300],
    '125' : [970100, 970200, 970300, 970400, 970500, 970600, 970700, 970800, 970900, 971001, 971002, 971101, 971102],
    '127' : [930100, 930200, 930300, 930400, 930500],
    '129' : [950100, 950200, 950300],
    '131' : [920100, 920200, 920300],
    '133' : [950100, 950200, 950300, 950401, 950402, 950500, 950600],
    '135' : [930100, 930200, 930300, 930400],
    '137' : [920101, 920102, 920103, 920200, 920300, 920400],
    '139' : [40100, 40200],
    '141' : [960100, 960200, 960300, 960400, 960500, 960600],
    '143' : [960100, 960200, 980100],
    '145' : [30100, 30200, 30300, 30400, 30500, 30600, 30700, 30800, 30900, 31000, 31100, 31200, 31301, 31302, 31400, 31500, 31600],
    '147' : [960100, 960200, 960300, 960400],
    '149' : [970100, 970200, 970500],
    '151' : [10101, 10102, 10200, 10300, 10400, 10500, 10600, 10701, 10702, 10800, 10901, 10902, 10903, 11000, 11100, 11200, 11301, 11302, 11400],
    '153' : [970100, 970200, 970300, 970400],
    '155' : [970200, 970300, 970400, 970500, 970700, 970800],
    '157' : [950100, 950200, 950300, 950400, 950500, 950600],
    '159' : [950100, 950200, 950300],
    '161' : [960100, 960200, 960300, 960400, 960500],
    '163' : [970100, 970200, 970301, 970302, 970401, 970402, 970500, 980100],
    '165' : [960100, 960200],
    '167' : [960100, 960200, 960300, 960400, 960500],
    '169' : [960100, 960200, 960300],
    '171' : [930100, 930200, 930300, 930400],
    '173' : [920100, 920200, 920301, 920302, 920400, 920500],
    '175' : [950100, 950200, 950300, 950400, 950500],
    '177' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900],
    '179' : [930100, 930200, 930301, 930302, 930303, 930400, 930500, 930600, 930700],
    '181' : [960100, 960200],
    '183' : [920100, 920200, 920300, 920400, 920500, 920600, 920700],
    '185' : [30100, 30200, 30301, 30302, 30401, 30402, 30501, 30502, 30601, 30602, 30701, 30702, 30801, 30802],
    '187' : [970100, 970200, 970300],
    '189' : [930100, 930200],
    '191' : [930100, 930200, 930300],
    '193' : [970300, 970400, 970500, 970600, 970700, 970800, 970900, 971000],
    '195' : [930100, 930200, 930300, 930400, 930500, 930600, 930700, 930800, 930900, 931000, 931100, 931200, 931300, 931400, 931500, 931600, 931700, 931800, 931900],
    '197' : [970100, 970200],
    '199' : [930100, 930200, 930300, 930401, 930402, 930501, 930502, 930600, 930700, 930800, 930900, 931000, 931101, 931102],
    '201' : [970100],
    '203' : [950100, 950200, 950300, 950400],
    '205' : [950100, 950200, 950300, 950400],
    '207' : [960101, 960102, 960200, 960300, 960400],
    '209' : [40100, 40203, 40204, 40205, 40206, 40301, 40302, 40303, 40400, 40501, 40502, 40601, 40602, 40603],
    '211' : [40101, 40102, 40200, 40301, 40302, 40401, 40402, 40501, 40502],
    '213' : [970100, 970200, 970300, 970400],
    '215' : [80101, 80102, 80103, 80200],
    '217' : [920100, 920200, 920300, 920400, 920500],
    '219' : [950100, 950200, 950300, 950400],
    '221' : [970100, 970200, 970300, 980100, 980200],
    '223' : [100100, 100200],
    '225' : [950100, 950201, 950202, 950300],
    '227' : [10100, 10200, 10300, 10400, 10500, 10600, 10701, 10702, 10801, 10802, 10803, 10900, 11001, 11002, 11100, 11200, 11300, 11401, 11402, 11500, 11600, 11700, 11800, 11900],
    '229' : [930100, 930200, 930300],
    '231' : [920100, 920200, 920300, 920400, 920700],
    '233' : [960100, 960200, 960300, 960400],
    '235' : [920100, 920200, 920300, 920400, 920500, 920600, 920700, 920800],
    '237' : [930100, 930200],
    '239' : [50103, 50104, 50105, 50106, 50107, 50200, 50300, 50400]
]]]></entry>
        <entry id="census2010_la" type="java"><![CDATA[[
    '001' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100, 961200],
    '003' : [950100, 950200, 950300, 950400, 950500],
    '005' : [30101, 30102, 30103, 30203, 30204, 30205, 30206, 30300, 30401, 30402, 30500, 30600, 30900, 31000],
    '007' : [50100, 50200, 50300, 50400, 50500, 50600],
    '009' : [30100, 30200, 30300, 30400, 30500, 30600, 30700, 30800, 30900],
    '011' : [960100, 960200, 960300, 960400, 960500, 960600, 960700],
    '013' : [970100, 970200, 970300, 970400, 970500],
    '015' : [10400, 10500, 10601, 10602, 10701, 10702, 10801, 10804, 10805, 10806, 10900, 11001, 11002, 11103, 11105, 11106, 11107, 11108, 11109, 11110, 11200, 11300],
    '017' : [20500, 20600, 20700, 21000, 21100, 21200, 21300, 21400, 21500, 21600, 21700, 21800, 21900, 22000, 22100, 22200, 22300, 22400, 22500, 22600, 22700, 22800, 22900, 23000, 23100, 23200, 23300, 23400, 23500, 23600, 23700, 23800, 23901, 23903, 23904, 23905, 24000, 24102, 24104, 24106, 24107, 24108, 24109, 24201, 24202, 24203, 24301, 24303, 24304, 24400, 24503, 24504, 24601, 24602, 24700, 24800, 24900, 25000, 25100, 25200, 25300, 25405, 25406, 980000],
    '019' : [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1201, 1202, 1300, 1400, 1500, 1600, 1700, 1801, 1901, 1903, 1904, 2000, 2100, 2201, 2203, 2204, 2300, 2400, 2500, 2600, 2700, 2800, 2900, 3000, 3101, 3102, 3200, 3300, 3400, 3500, 3600, 980000, 980100],
    '021' : [100, 200, 300],
    '023' : [970100, 970201, 990000],
    '025' : [100, 200, 300],
    '027' : [950100, 950200, 950300, 950400, 950500],
    '029' : [100, 200, 300, 400, 500],
    '031' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
    '033' : [100, 200, 300, 400, 500, 601, 602, 701, 702, 900, 1000, 1102, 1103, 1104, 1600, 1700, 1800, 1900, 2000, 2200, 2300, 2400, 2500, 2601, 2602, 2700, 2801, 2802, 3000, 3101, 3103, 3201, 3202, 3300, 3400, 3501, 3504, 3505, 3506, 3507, 3601, 3603, 3604, 3701, 3702, 3703, 3801, 3802, 3804, 3805, 3904, 3906, 3907, 3908, 3909, 3910, 4005, 4006, 4009, 4010, 4011, 4013, 4014, 4015, 4016, 4201, 4203, 4204, 4205, 4301, 4302, 4401, 4402, 4403, 4503, 4504, 4505, 4507, 4508, 4509, 4510, 4602, 4603, 4604, 4700, 4800, 4900, 5000, 5100, 5200, 5300, 980000],
    '035' : [100, 200, 300],
    '037' : [951300, 951400, 951501, 951502, 951600],
    '039' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
    '041' : [950100, 950200, 950300, 950400, 950500, 950600],
    '043' : [20100, 20200, 20300, 20401, 20402],
    '045' : [30100, 30200, 30301, 30302, 30400, 30500, 30600, 30700, 30800, 30900, 31000, 31100, 31200, 31300, 31600, 990000],
    '047' : [952600, 952700, 952900, 953000, 953101, 953102, 953200],
    '049' : [970100, 970200, 970300, 970400, 970500],
    '051' : [20101, 20102, 20201, 20202, 20203, 20301, 20302, 20303, 20400, 20502, 20505, 20506, 20507, 20508, 20511, 20512, 20513, 20514, 20515, 20516, 20517, 20600, 20700, 21000, 21100, 21200, 21300, 21400, 21500, 21600, 21700, 21801, 21803, 21804, 21900, 22001, 22002, 22101, 22102, 22200, 22301, 22302, 22303, 22400, 22500, 22600, 22700, 22800, 22900, 23001, 23002, 23003, 23100, 23200, 23300, 23400, 23500, 23600, 23700, 23800, 23901, 23902, 23903, 23904, 24001, 24002, 24100, 24201, 24202, 24300, 24400, 24500, 24600, 24700, 24800, 24900, 25001, 25002, 25003, 25102, 25103, 25104, 25201, 25202, 25300, 25400, 25500, 25600, 25700, 25800, 25900, 26000, 26100, 26200, 26300, 26400, 26500, 26600, 26700, 26800, 26900, 27000, 27100, 27200, 27501, 27502, 27601, 27602, 27701, 27703, 27803, 27804, 27805, 27806, 27807, 27809, 27810, 27811, 27812, 27901, 27902, 28000, 28100, 28200, 980000, 990000, 990100],
    '053' : [100, 200, 300, 400, 500, 600, 700],
    '055' : [100, 200, 500, 602, 603, 604, 700, 800, 900, 1001, 1002, 1003, 1100, 1200, 1300, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1409, 1410, 1411, 1500, 1600, 1700, 1801, 1802, 1901, 1902, 1903, 1904, 1905, 2001, 2002, 2101, 2102, 2103, 2104, 2200, 980000],
    '057' : [20100, 20202, 20400, 20500, 20600, 20702, 20703, 20704, 20800, 20900, 21000, 21100, 21200, 21300, 21400, 21500, 21601, 21602, 21700, 21800, 21901, 21902, 22000, 990000],
    '059' : [970100, 970200, 970300],
    '061' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000],
    '063' : [40100, 40201, 40202, 40301, 40303, 40304, 40401, 40402, 40500, 40600, 40700, 40802, 40804, 40805, 40806, 40901, 40902],
    '065' : [960100, 960200, 960300, 960400, 960500],
    '067' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
    '069' : [100, 200, 300, 400, 500, 600, 700, 800, 900],
    '071' : [100, 200, 300, 400, 601, 602, 603, 604, 605, 606, 607, 611, 612, 613, 615, 616, 617, 618, 701, 702, 800, 901, 902, 903, 904, 1100, 1200, 1301, 1302, 1401, 1402, 1500, 1600, 1701, 1702, 1720, 1722, 1723, 1724, 1725, 1730, 1734, 1735, 1736, 1737, 1739, 1740, 1741, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1800, 1900, 2000, 2100, 2200, 2300, 2401, 2402, 2501, 2502, 2503, 2504, 2600, 2700, 2800, 2900, 3000, 3100, 3301, 3302, 3303, 3304, 3307, 3308, 3400, 3500, 3600, 3701, 3702, 3800, 3900, 4000, 4100, 4401, 4402, 4500, 4600, 4800, 4900, 5000, 5400, 5500, 5601, 5602, 5603, 5604, 6000, 6300, 6400, 6500, 6900, 7000, 7101, 7200, 7501, 7502, 7604, 7605, 7606, 7700, 7800, 8200, 8300, 8400, 8500, 8600, 8800, 9000, 9100, 9200, 9400, 9600, 9700, 9900, 10000, 10100, 10200, 10300, 10600, 10700, 10800, 10900, 11100, 11200, 11400, 11500, 11600, 11700, 11900, 12000, 12101, 12102, 12200, 12300, 12400, 12500, 12600, 12700, 12800, 12900, 13000, 13100, 13200, 13301, 13302, 13400, 13500, 13600, 13700, 13800, 13900, 14000, 14100, 14200, 14300, 14400, 14500, 980000, 980100, 990000],
    '073' : [100, 200, 401, 402, 500, 600, 700, 900, 1100, 1400, 1500, 1700, 5100, 5201, 5203, 5204, 5301, 5302, 5400, 5500, 5800, 5900, 10101, 10102, 10201, 10202, 10301, 10302, 10400, 10502, 10503, 10504, 10603, 10604, 10700, 10800, 10900, 11000, 11100, 980000],
    '075' : [50100, 50200, 50300, 50400, 50500, 50600, 50700, 50800, 990000],
    '077' : [951900, 952000, 952100, 952200, 952300, 952400],
    '079' : [10100, 10300, 10400, 10500, 10600, 10700, 11000, 11300, 11500, 11600, 11700, 12000, 12100, 12200, 12301, 12302, 12400, 12500, 12600, 12700, 12800, 12900, 13000, 13100, 13200, 13300, 13400, 13500, 13600, 13700, 13800, 13900, 980000],
    '081' : [960100, 960300],
    '083' : [970100, 970200, 970300, 970400, 970500, 970600],
    '085' : [100, 200, 300, 400, 500, 600, 700],
    '087' : [30103, 30104, 30105, 30203, 30204, 30206, 30207, 30208, 30209, 30300, 30400, 30500, 30601, 30602, 30603, 30700, 30800, 990000],
    '089' : [60100, 62100, 62200, 62301, 62302, 62400, 62500, 62700, 62800, 62900, 63000, 63100, 63200],
    '091' : [951100, 951200],
    '093' : [40100, 40200, 40300, 40400, 40500, 40600, 40700],
    '095' : [70100, 70200, 70300, 70400, 70500, 70600, 70700, 70800, 70900, 71000, 71100],
    '097' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100, 961200, 961300, 961400, 961500, 961600, 961700, 961800, 961900],
    '099' : [20100, 20200, 20301, 20302, 20400, 20501, 20502, 20600, 20800, 20900, 21000],
    '101' : [40100, 40200, 40300, 40400, 40500, 40600, 40700, 40800, 40900, 41000, 41100, 41200, 41300, 41400, 41500, 41600, 990000],
    '103' : [40102, 40103, 40104, 40201, 40202, 40303, 40304, 40305, 40400, 40501, 40502, 40601, 40602, 40604, 40605, 40701, 40704, 40705, 40706, 40708, 40709, 40710, 40801, 40802, 40803, 40900, 41002, 41003, 41004, 41101, 41102, 41103, 41104, 41202, 41204, 41207, 41208, 41209, 41210, 41211, 41212, 41300, 990000],
    '105' : [953200, 953300, 953400, 953500, 953600, 953700, 953800, 953900, 954001, 954002, 954101, 954102, 954200, 954300, 954400, 954501, 954502, 954600, 954700, 954800],
    '107' : [100, 200, 300],
    '109' : [101, 102, 201, 202, 300, 401, 402, 500, 600, 700, 800, 900, 1000, 1100, 1201, 1202, 1300, 1400, 1500, 1600, 1700, 990000],
    '111' : [960100, 960200, 960300, 960400, 960500, 960600],
    '113' : [950100, 950200, 950400, 950500, 950600, 950700, 950800, 950901, 950902, 951001, 951002, 951100, 990000],
    '115' : [950100, 950200, 950300, 950400, 950500, 950600, 950701, 950702, 950703, 950704, 950800, 950900],
    '117' : [950101, 950102, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000],
    '119' : [31100, 31200, 31300, 31400, 31500, 31600, 31700, 31800, 31900, 32000, 32100],
    '121' : [20100, 20200, 20300, 20401, 20402],
    '123' : [100, 200, 300],
    '125' : [951701, 951702, 951800],
    '127' : [960100, 960200, 960300, 960400]
]]]></entry>
        <entry id="census2010_ma" type="java"><![CDATA[['001' : [010100, 010206, 010208, 010304, 010306, 010400, 010500, 010600, 010700, 010800, 010900, 011002, 011100, 011200, 011300, 011400, 011500, 011600, 011700, 011801, 011802, 012001, 012002, 012101, 012102, 012200, 012502, 012601, 012602, 012700, 012800, 012900, 013002, 013100, 013200, 013300, 013400, 013500, 013600, 013700, 013800, 013900, 014002, 014100, 014300, 014402, 014500, 014600, 014700, 014800, 014900, 015001, 015002, 015100, 015200, 015300, 990000],
'003' : [900100, 900200, 900300, 900400, 900500, 900600, 900700, 900800, 900900, 901100, 911100, 912100, 913100, 914100, 920101, 920102, 921300, 921400, 921500, 922100, 922200, 922300, 923100, 924100, 925100, 926100, 931100, 931300, 931400, 932200, 932300, 933200, 933300, 933400, 934200, 934300, 935100, 935200, 935300],
'005' : [600100, 600202, 600203, 600204, 610100, 610202, 610203, 610204, 611101, 611102, 611201, 611202, 612100, 612200, 613100, 613300, 613400, 613600, 613700, 613800, 613901, 613902, 614000, 614101, 614102, 615100, 616100, 617101, 617102, 630101, 630102, 630200, 630300, 630400, 631100, 631200, 631300, 631400, 631500, 631600, 631700, 631800, 632100, 632200, 633100, 633200, 640100, 640200, 640300, 640400, 640500, 640600, 640700, 640800, 640901, 641000, 641101, 641200, 641300, 641400, 641500, 641600, 641700, 641800, 641900, 642000, 642100, 642200, 642300, 642400, 642500, 644101, 644102, 644200, 645101, 645102, 645103, 646101, 646103, 646104, 650101, 650102, 650201, 650202, 650300, 650400, 650500, 650600, 650700, 650800, 650900, 651001, 651002, 651100, 651200, 651300, 651400, 651500, 651600, 651700, 651800, 651900, 652000, 652100, 652200, 652300, 652400, 652500, 652600, 652700, 652800, 653101, 653102, 653203, 653204, 653301, 653304, 654100, 654200, 655100, 655200, 655300, 655400, 985500, 985600, 990000],
'007' : [200100, 200200, 200300, 200400, 990000],
'009' : [201100, 202101, 202102, 202200, 203100, 203200, 203301, 203302, 204101, 204102, 204200, 204300, 204400, 204500, 204600, 204701, 204702, 205100, 205200, 205300, 205400, 205500, 205600, 205700, 205800, 205900, 206000, 206100, 206200, 206300, 206400, 206500, 206600, 206700, 206800, 206900, 207000, 207100, 207200, 208101, 208102, 208200, 208300, 208400, 209100, 209200, 210100, 210200, 210300, 210400, 210500, 210600, 210700, 210800, 210900, 211100, 211200, 211300, 211401, 211402, 212100, 213100, 214100, 215101, 215102, 216100, 217100, 217201, 217202, 217300, 217400, 217500, 217600, 218100, 220101, 220102, 221100, 221300, 221400, 221500, 221600, 221700, 221800, 221901, 221902, 222100, 223100, 223200, 223300, 250100, 250200, 250300, 250400, 250500, 250600, 250700, 250800, 250900, 251000, 251100, 251200, 251300, 251400, 251500, 251600, 251700, 251800, 252101, 252102, 252201, 252202, 252300, 252400, 252501, 252502, 252601, 252602, 252603, 253100, 253201, 253202, 253203, 253204, 253205, 254100, 254200, 254301, 254302, 254401, 254402, 254403, 260100, 260200, 260301, 260302, 260401, 260402, 260500, 260600, 260700, 260800, 260900, 261000, 261101, 261102, 262100, 263100, 264100, 265101, 265102, 266100, 266200, 266300, 266400, 267101, 267102, 268100, 268200, 268300, 268400, 269100, 270100, 990100],
'011' : [040100, 040200, 040300, 040400, 040501, 040502, 040600, 040701, 040702, 040800, 040900, 041000, 041100, 041200, 041300, 041400, 041501, 041502],
'013' : [800101, 800102, 800201, 800202, 800300, 800400, 800500, 800600, 800700, 800800, 800900, 801101, 801102, 801200, 801300, 801401, 801402, 801501, 801502, 801503, 801601, 801602, 801603, 801604, 801605, 801700, 801800, 801901, 801902, 802000, 802100, 802200, 802300, 802400, 802500, 802601, 802602, 810100, 810200, 810300, 810403, 810404, 810412, 810414, 810601, 810602, 810700, 810800, 810901, 810902, 811000, 811101, 811102, 811200, 811301, 811302, 811400, 811500, 811600, 811700, 811800, 811900, 812001, 812002, 812101, 812103, 812104, 812201, 812202, 812300, 812401, 812403, 812404, 812500, 812600, 812701, 812702, 812800, 812901, 812902, 812903, 813000, 813101, 813102, 813204, 813205, 813206, 813207, 813208, 813209, 813301, 813303, 813304, 813401, 813403, 813404, 813500, 813601, 813602, 813701, 813702, 813801, 813802],
'015' : [820101, 820102, 820202, 820203, 820204, 820300, 820400, 820500, 820600, 820700, 820801, 820802, 820900, 821000, 821100, 821200, 821300, 821400, 821500, 821601, 821602, 821700, 821901, 821903, 821904, 822000, 822200, 822300, 822401, 822402, 822500, 822601, 822603, 822605, 822606, 822700],
'017' : [300100, 301101, 301102, 310100, 310200, 310300, 310400, 310500, 310601, 310602, 310700, 311100, 311200, 311300, 311400, 311500, 311600, 311700, 311800, 311900, 312000, 312100, 312200, 312300, 312400, 312501, 312502, 313101, 313102, 314101, 314102, 314200, 314301, 314302, 315100, 315200, 315401, 315402, 315403, 315500, 316101, 316102, 316201, 316202, 316300, 316400, 316500, 317101, 317102, 317103, 317201, 317202, 317203, 317301, 317302, 318100, 318200, 318300, 318400, 320102, 320103, 320104, 321100, 321200, 321300, 321400, 321500, 321600, 322100, 322200, 322300, 322400, 323100, 324101, 324102, 325100, 326101, 326102, 327101, 327102, 327103, 328100, 330100, 330200, 331101, 331102, 331200, 331300, 332100, 332200, 332300, 332400, 333100, 333200, 333300, 333400, 333501, 333502, 333600, 334100, 334200, 334300, 334400, 335100, 335200, 335301, 335302, 335400, 336100, 336200, 336300, 336401, 336402, 337101, 337102, 337201, 337202, 337300, 338100, 338200, 338300, 338400, 338500, 339100, 339200, 339300, 339400, 339500, 339600, 339700, 339801, 339802, 339900, 340000, 340100, 341101, 341102, 341200, 341300, 341400, 341500, 341600, 341700, 341800, 341901, 341902, 342101, 342102, 342201, 342202, 342300, 342400, 342500, 342600, 350103, 350104, 350200, 350300, 350400, 350500, 350600, 350700, 350800, 350900, 351000, 351100, 351203, 351204, 351300, 351403, 351404, 351500, 352101, 352102, 352200, 352300, 352400, 352500, 352600, 352700, 352800, 352900, 353000, 353101, 353102, 353200, 353300, 353400, 353500, 353600, 353700, 353800, 353900, 354000, 354100, 354200, 354300, 354400, 354500, 354600, 354700, 354800, 354900, 355000, 356100, 356300, 356400, 356500, 356601, 356602, 356701, 356702, 357100, 357200, 357300, 357400, 357500, 357600, 357700, 357800, 358100, 358300, 358400, 358500, 358600, 358700, 359100, 359300, 360100, 360200, 361100, 361200, 361300, 362100, 363102, 363103, 363104, 363201, 363202, 364101, 364102, 365100, 365201, 365202, 366100, 366201, 366202, 367100, 367200, 368101, 368102, 368200, 368300, 368400, 368500, 368600, 368700, 368800, 368901, 368902, 369000, 369100, 370101, 370102, 370201, 370202, 370300, 370400, 373100, 373200, 373300, 373400, 373500, 373600, 373700, 373800, 373900, 374000, 374100, 374200, 374300, 374400, 374500, 374600, 374700, 374800, 382100, 382200, 382300, 382400, 382500, 382601, 382602, 383101, 383102, 383200, 383300, 383400, 383501, 383502, 383600, 383700, 383800, 383901, 383902, 384001, 384002, 385100, 385201, 385202, 386100, 387100, 387201, 387202, 388100, 388200, 388300, 980000],
'019' : [950100, 950200, 950307, 950400, 950500, 990000],
'021' : [400100, 400200, 400300, 400400, 400500, 400600, 400700, 400800, 400900, 401000, 401100, 401200, 402101, 402102, 402200, 402300, 402400, 402500, 403100, 403300, 403400, 403500, 404100, 404201, 404202, 404301, 404302, 404400, 405100, 406101, 406102, 407100, 408101, 408102, 409101, 409102, 410100, 410300, 410400, 411100, 411200, 411301, 411302, 412100, 412200, 412300, 413100, 413200, 413300, 413401, 413402, 413500, 414100, 414200, 414300, 415101, 415102, 415200, 415300, 416101, 416102, 416200, 416300, 416400, 417100, 417200, 417300, 417400, 417501, 417502, 417601, 417602, 417701, 417702, 417801, 417802, 417901, 417902, 418002, 418003, 418004, 418101, 418102, 418200, 419100, 419200, 419300, 419400, 419500, 419600, 419700, 419800, 420100, 420201, 420202, 420301, 420302, 421100, 421200, 422100, 422200, 422301, 422302, 422400, 422501, 422502, 422600, 422700, 422800, 423100, 440100, 441202, 441203, 441204, 442101, 442102, 442103, 442201, 442202, 443101, 443102, 456101, 456102, 456200, 456301, 456302, 456401, 456402, 457100, 457200],
'023' : [500101, 500103, 500104, 501101, 501102, 501201, 501202, 502101, 502102, 502200, 503101, 503102, 504101, 504102, 505101, 505102, 505200, 506101, 506102, 506202, 506203, 506204, 507101, 507103, 507104, 508101, 508102, 508200, 509101, 509102, 510100, 510200, 510300, 510400, 510501, 510502, 510503, 510600, 510700, 510800, 510900, 511000, 511100, 511200, 511301, 511302, 511400, 511500, 511600, 511701, 511702, 520100, 520201, 520202, 521101, 521102, 521201, 521202, 522101, 522102, 523100, 523201, 523202, 524101, 524102, 525101, 525104, 525203, 525204, 525300, 526100, 530100, 530200, 530300, 530400, 530500, 530600, 530700, 530801, 530802, 530901, 530902, 540101, 540102, 540103, 541100, 542101, 542102, 542200, 542300, 543100, 544100, 544200, 545100, 545200, 545300, 545400, 560100, 561100, 561200, 990003],
'025' : [000100, 000201, 000202, 000301, 000302, 000401, 000402, 000502, 000503, 000504, 000601, 000602, 000701, 000703, 000704, 000802, 000803, 010103, 010104, 010203, 010204, 010300, 010403, 010404, 010405, 010408, 010500, 010600, 010701, 010702, 010801, 010802, 020101, 020200, 020301, 020302, 020303, 030100, 030200, 030300, 030400, 030500, 040100, 040200, 040300, 040401, 040600, 040801, 050101, 050200, 050300, 050400, 050500, 050600, 050700, 050901, 051000, 051101, 051200, 060101, 060200, 060301, 060400, 060501, 060600, 060700, 060800, 061000, 061101, 061200, 070101, 070200, 070300, 070402, 070500, 070600, 070700, 070800, 070900, 071101, 071201, 080100, 080300, 080401, 080500, 080601, 080801, 080900, 081001, 081100, 081200, 081300, 081400, 081500, 081700, 081800, 081900, 082000, 082100, 090100, 090200, 090300, 090400, 090600, 090700, 090901, 091001, 091100, 091200, 091300, 091400, 091500, 091600, 091700, 091800, 091900, 092000, 092101, 092200, 092300, 092400, 100100, 100200, 100300, 100400, 100500, 100601, 100603, 100700, 100800, 100900, 101001, 101002, 101101, 101102, 110103, 110201, 110301, 110401, 110403, 110501, 110502, 110601, 110607, 120103, 120104, 120105, 120201, 120301, 120400, 120500, 120600, 120700, 130100, 130200, 130300, 130402, 130404, 130406, 140102, 140105, 140106, 140107, 140201, 140202, 140300, 140400, 160101, 160200, 160300, 160400, 160501, 160502, 160601, 160602, 170100, 170200, 170300, 170400, 170501, 170502, 170601, 170701, 170702, 170800, 180101, 180200, 180301, 180400, 180500, 980101, 980300, 980700, 981000, 981100, 981201, 981202, 981300, 981501, 981502, 981600, 981700, 981800, 990101],
'027' : [700100, 701100, 702200, 703100, 703200, 703300, 704200, 705100, 706100, 707100, 707200, 707300, 707400, 707500, 708100, 709100, 709201, 709202, 709400, 709501, 709502, 709600, 709701, 709702, 710100, 710200, 710300, 710400, 710500, 710600, 710700, 710800, 711000, 711100, 712101, 712102, 713100, 715100, 716100, 716200, 716300, 717100, 718100, 719100, 720100, 721101, 721102, 722100, 723100, 724100, 725100, 726100, 726200, 727100, 728100, 728200, 728300, 728400, 729100, 729200, 730100, 730200, 730300, 730401, 730402, 730500, 730600, 730700, 730801, 730802, 730901, 730902, 731001, 731002, 731101, 731102, 731202, 731203, 731204, 731300, 731400, 731500, 731600, 731700, 731800, 731900, 732001, 732002, 732201, 732202, 732203, 732301, 732302, 732400, 732500, 732600, 732700, 732801, 732802, 732901, 732902, 733000, 733101, 733102, 735100, 735200, 736100, 736200, 736300, 736400, 736500, 737100, 737200, 737300, 738100, 738201, 738202, 739100, 739200, 739300, 739400, 739500, 740101, 740102, 740200, 741101, 741102, 742300, 742401, 742402, 743100, 744101, 744102, 744200, 744300, 744400, 745100, 746100, 747101, 747102, 748100, 749100, 749200, 750100, 750200, 750300, 751101, 751102, 752100, 753100, 753200, 754100, 754200, 754300, 754400, 755100, 755200, 756101, 756102, 757100, 757200, 757300, 757400, 757500, 758101, 758102, 759100, 760100, 761100, 761200, 761300, 761400]]]]></entry>
        <entry id="census2010_mi" type="java"><![CDATA[[
    '099' : [206700, 210000, 211000, 212000, 214000, 214500, 215000, 215200, 215300, 215500, 216000, 217000, 218000, 220001, 220002, 221100, 221200, 221500, 221800, 222101, 222102, 222500, 222800, 223400, 223500, 223800, 223900, 224000, 224100, 224200, 224300, 224400, 224500, 224600, 225100, 225200, 225300, 225400, 225500, 225600, 225701, 225702, 225800, 225900, 226100, 226400, 226700, 227000, 227300, 228000, 228100, 230000, 230200, 230300, 230400, 230500, 230601, 230602, 230700, 230800, 230900, 231000, 231100, 231200, 231400, 231500, 231600, 231700, 231800, 231900, 232000, 232100, 232200, 232300, 232400, 232500, 233000, 240000, 240300, 240400, 240500, 240600, 240700, 240800, 240900, 241000, 241200, 241300, 241400, 241500, 241600, 241700, 241800, 241900, 242000, 242100, 242500, 243000, 243500, 244000, 245000, 245100, 245200, 245300, 245400, 247100, 247200, 247300, 247400, 247500, 247601, 247602, 250000, 250100, 250200, 250300, 250400, 250500, 250600, 250700, 250800, 250900, 251000, 251100, 251200, 251300, 251400, 251500, 251600, 251700, 251800, 251900, 252000, 252100, 252200, 254000, 254100, 254200, 254500, 255000, 255100, 255200, 255300, 255400, 255500, 255600, 255700, 255800, 255900, 256000, 256100, 256200, 256300, 256400, 256500, 256600, 256700, 256800, 258000, 258100, 258200, 258300, 258400, 258500, 258600, 258700, 258800, 258900, 260000, 260100, 260200, 260300, 260400, 260600, 260700, 260800, 260900, 261000, 261100, 261200, 261300, 261400, 261500, 261600, 261700, 261800, 261900, 262000, 262100, 262200, 262300, 262400, 262500, 262600, 262700, 262800, 262900, 263200, 263400, 263500, 263600, 263700, 263800, 263900, 264000, 264200, 267600, 268000, 268100, 268200, 268300, 268400, 982000, 982100, 982200, 982300, 990100],
    '125' : [120000, 120300, 121000, 121400, 121500, 121700, 121800, 122200, 122400, 122700, 122900, 123000, 123100, 124000, 124500, 125000, 125600, 126200, 126300, 126400, 126500, 127000, 127100, 127200, 127300, 127400, 127500, 127600, 127700, 128000, 128100, 128200, 128300, 128400, 128500, 128600, 128700, 128800, 128900, 129000, 130000, 130100, 130200, 130300, 130400, 130500, 130600, 130700, 131100, 131300, 131400, 131500, 131600, 131800, 132100, 132500, 132600, 132700, 133001, 133002, 133003, 133100, 134000, 134300, 134400, 134500, 134600, 134700, 134800, 134900, 135000, 135100, 135200, 135300, 136000, 136101, 136102, 136300, 136500, 136600, 136700, 136800, 137100, 137400, 137700, 137800, 138100, 138301, 138302, 138600, 139200, 139400, 140100, 140301, 140302, 140500, 140600, 140700, 140800, 140900, 141000, 141100, 141200, 141300, 141400, 141500, 141600, 141700, 142000, 142100, 142200, 142300, 142400, 142500, 142600, 142700, 143500, 144100, 144200, 144300, 144400, 144500, 144600, 144701, 144800, 144900, 145100, 145200, 145300, 145400, 145501, 145502, 145600, 145700, 145900, 150000, 150100, 150200, 150300, 150400, 150500, 150600, 150700, 150800, 150900, 151000, 152000, 152600, 152700, 152900, 153000, 153100, 153200, 153300, 154000, 154100, 154200, 154500, 154600, 156000, 156100, 156200, 156300, 156400, 156500, 156900, 157000, 157100, 157200, 157300, 157400, 157500, 157600, 157700, 157800, 157900, 158000, 158100, 158200, 159000, 160000, 160300, 160400, 160500, 160600, 160700, 160800, 160900, 161000, 161100, 161200, 161300, 161400, 161500, 161600, 161700, 161800, 161900, 162000, 162100, 162200, 162300, 162400, 162500, 165000, 165100, 165200, 166000, 166100, 166200, 166400, 166500, 166600, 166700, 166800, 166900, 167000, 167300, 167400, 167500, 167800, 167900, 168100, 168400, 168500, 168600, 168700, 168800, 168900, 170000, 170100, 170200, 170300, 170400, 171000, 171100, 171200, 171300, 171400, 171500, 171600, 172400, 172500, 173000, 173100, 173200, 173300, 173400, 173500, 173600, 175000, 175100, 175200, 175300, 180000, 180100, 180200, 180300, 181000, 181100, 181200, 181300, 181400, 181500, 181600, 183000, 183100, 183200, 183300, 183400, 183500, 183600, 183700, 183800, 183900, 184000, 184100, 184200, 184300, 184400, 184500, 184600, 184700, 187000, 188000, 188100, 190200, 190400, 190500, 190700, 190800, 191000, 191100, 191200, 191300, 192000, 192200, 192400, 192500, 192700, 192800, 193000, 193100, 193300, 193400, 193500, 193600, 193700, 194000, 194100, 194200, 194300, 194400, 194500, 194600, 196000, 196100, 196200, 196300, 196400, 196500, 196600, 196700, 196800, 196900, 197000, 197100, 197200, 197300, 197400, 197500, 197600, 197701, 197702, 197900, 198000, 198100, 981000],
    '163' : [500100, 500200, 500300, 500400, 500500, 500600, 500700, 500800, 500900, 501000, 501100, 501200, 501300, 501400, 501500, 501600, 501700, 501800, 501900, 502000, 503100, 503200, 503300, 503400, 503500, 503600, 503900, 504000, 504100, 504200, 504300, 504400, 504700, 504800, 504900, 505000, 505100, 505200, 505400, 505500, 506100, 506200, 506300, 506400, 506500, 506600, 506700, 506800, 506900, 507000, 507100, 507200, 507300, 507400, 507500, 507800, 507900, 508000, 508100, 510400, 510500, 510600, 510700, 511000, 511200, 511300, 511400, 511900, 512100, 512200, 512300, 512400, 512600, 512900, 513200, 513300, 513600, 513700, 513900, 514100, 514200, 514300, 514500, 515200, 515300, 515400, 515600, 515700, 515900, 516000, 516100, 516200, 516300, 516400, 516500, 516600, 516700, 516800, 516900, 517000, 517100, 517200, 517300, 517500, 518000, 518400, 518500, 518600, 518800, 518900, 520200, 520300, 520400, 520700, 520800, 521100, 521300, 521400, 521500, 521800, 521900, 522000, 522100, 522200, 522300, 522400, 522500, 523100, 523200, 523300, 523400, 523800, 524000, 524100, 524200, 524300, 524500, 524700, 524800, 524900, 525000, 525400, 525500, 525600, 525700, 525800, 526000, 526100, 526200, 526300, 526400, 526500, 527200, 527300, 530100, 530200, 530300, 530400, 530500, 530800, 530900, 531100, 531200, 531300, 531400, 531500, 531600, 531700, 531800, 531900, 532200, 532300, 532400, 532600, 532700, 533000, 533100, 533200, 533300, 533400, 533500, 533600, 533700, 533900, 534100, 534200, 534300, 534400, 534500, 534600, 534700, 535000, 535100, 535200, 535300, 535400, 535500, 535600, 535700, 536100, 536200, 536300, 536400, 536500, 536600, 536700, 536800, 536900, 537000, 537100, 537200, 537300, 537500, 537600, 537700, 537800, 538100, 538200, 538300, 538400, 538500, 538600, 538700, 538800, 538900, 539000, 539100, 539200, 539300, 539400, 539500, 539600, 539700, 540100, 540200, 540300, 540400, 540500, 540600, 540700, 540800, 540900, 541000, 541100, 541200, 541300, 541400, 541500, 541700, 541800, 542100, 542200, 542300, 542400, 542500, 542600, 542700, 542800, 542900, 543000, 543100, 543200, 543400, 543500, 543600, 543700, 543800, 543900, 544000, 544100, 544200, 544300, 545100, 545200, 545300, 545400, 545500, 545600, 545700, 545800, 545900, 546000, 546100, 546200, 546300, 546400, 546500, 546600, 546700, 546800, 546900, 550100, 550200, 550300, 550400, 550500, 550600, 550700, 550800, 550900, 551100, 551200, 551300, 551400, 551500, 551600, 551700, 551800, 552000, 552100, 552200, 552300, 552400, 552800, 553000, 553100, 553200, 553300, 553400, 553600, 553800, 554100, 554200, 554300, 554400, 554500, 554600, 554700, 554800, 554900, 555100, 555300, 555400, 555500, 555600, 556100, 556200, 556300, 556400, 556500, 556600, 556700, 556800, 556900, 557000, 557100, 557200, 557300, 557400, 557500, 557600, 557700, 557900, 558000, 558100, 558200, 558300, 558400, 558500, 558600, 558700, 558800, 558900, 559000, 559100, 559200, 560100, 560200, 560300, 560400, 561200, 561300, 561600, 561700, 561900, 562300, 562400, 562500, 562600, 562700, 562800, 562900, 563200, 563300, 563400, 563500, 563600, 563700, 563800, 563900, 564000, 564100, 564200, 564300, 564401, 564402, 564501, 564502, 564503, 564504, 564600, 564700, 564800, 564900, 565000, 565100, 565200, 565300, 565600, 565700, 565800, 565900, 566400, 566500, 566600, 566700, 566800, 566900, 567000, 567100, 567201, 567202, 567300, 567400, 567800, 567900, 568000, 568200, 568300, 568400, 568500, 568700, 568800, 568900, 569100, 569200, 569300, 569400, 569500, 569600, 569700, 569800, 569900, 570100, 570200, 570400, 570500, 570600, 570800, 570900, 571000, 571500, 571600, 571700, 571800, 571900, 572000, 572100, 572200, 572400, 572500, 572600, 572700, 572800, 572900, 573000, 573100, 573300, 573400, 573500, 573600, 573701, 573702, 573800, 573900, 574000, 574100, 574202, 574300, 574600, 574700, 574800, 574900, 575000, 575100, 575200, 575300, 575400, 575500, 575600, 576000, 576100, 576200, 576300, 576400, 576500, 576600, 576700, 577000, 577100, 577200, 577300, 577400, 577500, 577600, 577700, 577800, 577900, 578000, 578500, 578600, 579100, 579200, 579300, 579500, 579600, 579700, 579800, 579900, 580100, 580200, 580300, 580400, 580500, 580600, 580700, 580800, 580900, 581100, 581200, 581500, 581600, 581800, 581900, 582000, 582100, 583000, 583100, 583200, 583300, 583400, 583500, 583600, 583700, 583800, 583900, 584000, 584100, 584200, 584300, 584400, 584500, 584600, 584700, 584800, 585500, 585600, 585700, 585800, 585900, 586200, 586300, 587000, 587900, 588000, 588100, 588200, 588300, 588400, 589300, 589400, 590400, 590500, 590600, 591501, 591502, 591600, 591700, 591800, 591900, 592000, 593000, 593200, 593300, 594000, 594100, 594200, 594300, 594400, 594500, 595000, 595100, 595200, 596100, 596200, 596300, 597000, 598000, 599000, 599100, 985000, 985100, 985200, 985300, 985400, 985500, 985600, 985700, 985900, 990100, 990200]
]]]></entry>
        <entry id="census2010_nj" type="java"><![CDATA[[
    '001' : [100, 200, 300, 400, 500, 1100, 1200, 1300, 1400, 1500, 1900, 2300, 2400, 2500, 10101, 10102, 10104, 10105, 10200, 10300, 10401, 10403, 10501, 10503, 10505, 10506, 10600, 10700, 10800, 10900, 11000, 11100, 11201, 11202, 11300, 11401, 11403, 11404, 11500, 11600, 11701, 11702, 11802, 11803, 11804, 11805, 11900, 12000, 12100, 12200, 12302, 12401, 12402, 12501, 12502, 12602, 12701, 12702, 12801, 12802, 13000, 13101, 13102, 13201, 13202, 13301, 13302, 13500, 983400, 990000],
    '003' : [1000, 2100, 2200, 2300, 3100, 3200, 3300, 3401, 3402, 3500, 4001, 4002, 5000, 6100, 6201, 6202, 6300, 7001, 7002, 8000, 9100, 9200, 10100, 10200, 10300, 11100, 11200, 11300, 11400, 12001, 12002, 13001, 13002, 14000, 15100, 15200, 15300, 15400, 15500, 16000, 17100, 17200, 17300, 17400, 17500, 18100, 18200, 19102, 19103, 19104, 19202, 19203, 19204, 19303, 19304, 19305, 19306, 20100, 20200, 21100, 21200, 21300, 21400, 21500, 21600, 22100, 22200, 23100, 23200, 23301, 23302, 23401, 23402, 23501, 23502, 23601, 23602, 24100, 24200, 25100, 25200, 26100, 26200, 27000, 28001, 28002, 29100, 29200, 30100, 30200, 30300, 30400, 31100, 31200, 31300, 31400, 32102, 32103, 32104, 32201, 32202, 33100, 33200, 33300, 34000, 35100, 35200, 36100, 36200, 37100, 37201, 37202, 38100, 38200, 38300, 39100, 39200, 39300, 40001, 40002, 41100, 41200, 41301, 41302, 42100, 42301, 42302, 42400, 42500, 43001, 43002, 44100, 44201, 44202, 45100, 45200, 46100, 46200, 46300, 47100, 47200, 47300, 47400, 47500, 48100, 48200, 49001, 49002, 50000, 51100, 51200, 51300, 51400, 52100, 52200, 53100, 53200, 54100, 54200, 54300, 54400, 54500, 54600, 55100, 55200, 56100, 56200, 57101, 57102, 57200, 58100, 58200, 59100, 59200, 60000, 61100, 61200, 61300, 61400],
    '005' : [700102, 700103, 700104, 700200, 700303, 700304, 700305, 700306, 700307, 700401, 700402, 700403, 700405, 700407, 700408, 700501, 700502, 700503, 700504, 700505, 700602, 700603, 700605, 700701, 700702, 700703, 700800, 700900, 701001, 701002, 701102, 701103, 701104, 701105, 701201, 701203, 701204, 701205, 701301, 701302, 701303, 701401, 701402, 701502, 701700, 702101, 702203, 702204, 702206, 702207, 702208, 702209, 702210, 702300, 702400, 702500, 702601, 702603, 702700, 702801, 702802, 702803, 702804, 702805, 702806, 702807, 702808, 702809, 702810, 702811, 702905, 702906, 702907, 702908, 702909, 702910, 702913, 702914, 702915, 702917, 702918, 703000, 703102, 703103, 703104, 703201, 703202, 703203, 703600, 703700, 703801, 703802, 703803, 703804, 703900, 704004, 704005, 704006, 704007, 704008, 704009, 704011, 704012, 704013, 704014, 704200, 704302, 704500, 704600, 704700, 704801, 704802, 981802, 982111],
    '007' : [600200, 600400, 600700, 600800, 600900, 601000, 601101, 601102, 601200, 601300, 601400, 601500, 601600, 601700, 601800, 601900, 602000, 602503, 602601, 602602, 602901, 602902, 603001, 603002, 603100, 603200, 603301, 603302, 603303, 603400, 603501, 603503, 603504, 603505, 603506, 603507, 603601, 603602, 603603, 603700, 603800, 603901, 603902, 604100, 604200, 604300, 604400, 604600, 604700, 605100, 605200, 605300, 605400, 605602, 605700, 605800, 605900, 606000, 606100, 606200, 606300, 606400, 606500, 606600, 606700, 606800, 607000, 607100, 607200, 607300, 607401, 607402, 607502, 607503, 607504, 607505, 607506, 607507, 607600, 607701, 607702, 607801, 607802, 607900, 608001, 608202, 608205, 608206, 608209, 608210, 608211, 608302, 608303, 608304, 608401, 608402, 608403, 608404, 608503, 608504, 608600, 608700, 608800, 608901, 608903, 608904, 609000, 609103, 609201, 609202, 609203, 609204, 609205, 610300, 610400, 610500, 610600, 610800, 610900, 611000, 611100, 611200, 611300, 611400, 611500, 611600, 611700],
    '009' : [20101, 20102, 20201, 20203, 20205, 20206, 20301, 20302, 20400, 20500, 20600, 20700, 20800, 20901, 20902, 21001, 21002, 21100, 21300, 21400, 21500, 21600, 21701, 21702, 21803, 21804, 21805, 21806, 21900, 22000, 22101, 22102, 990100],
    '011' : [10101, 10103, 10200, 10301, 10302, 10401, 10402, 10500, 10600, 10700, 10800, 20100, 20200, 20300, 20400, 20502, 20503, 20600, 30100, 30200, 30300, 30400, 30501, 30502, 40300, 40400, 40500, 40600, 40700, 40800, 40901, 40902, 41000, 41100, 990000],
    '013' : [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000, 2100, 2201, 2202, 2300, 2400, 2500, 2600, 2800, 3100, 3500, 3700, 3800, 3900, 4100, 4200, 4300, 4400, 4500, 4600, 4700, 4801, 4802, 4900, 5000, 5100, 5200, 5300, 5400, 5700, 6200, 6400, 6600, 6700, 6800, 6900, 7000, 7100, 7200, 7300, 7400, 7501, 7502, 7600, 7700, 7800, 7900, 8000, 8100, 8200, 8700, 8800, 8900, 9000, 9100, 9200, 9300, 9400, 9500, 9600, 9700, 9900, 10000, 10100, 10200, 10300, 10400, 10500, 10600, 10700, 10800, 10900, 11100, 11200, 11300, 11400, 11500, 11600, 11700, 11800, 11900, 12000, 12100, 12200, 12300, 12400, 12500, 12600, 12700, 12800, 12900, 13000, 13100, 13200, 13300, 13400, 13500, 13600, 13700, 13800, 13900, 14000, 14100, 14200, 14300, 14400, 14500, 14600, 14700, 14800, 14900, 15000, 15100, 15200, 15300, 15400, 15500, 15600, 15700, 15800, 15900, 16000, 16100, 16200, 16300, 16400, 16500, 16600, 16700, 16800, 16900, 17000, 17100, 17200, 17301, 17302, 17400, 17500, 17600, 17700, 17800, 17900, 18000, 18100, 18200, 18300, 18400, 18600, 18700, 18800, 18900, 19000, 19100, 19200, 19300, 19400, 19500, 19600, 19700, 19800, 19900, 20000, 20100, 20200, 20300, 20400, 20500, 20600, 20700, 20800, 20901, 20902, 21000, 21100, 21200, 21300, 21400, 21601, 21602, 21701, 21702, 21801, 21802, 21803, 22700, 22800, 22900, 23000, 23100, 23200, 980100, 980200],
    '015' : [500100, 500201, 500202, 500203, 500204, 500205, 500300, 500400, 500500, 500600, 500701, 500702, 500703, 500800, 500900, 501001, 501002, 501003, 501101, 501102, 501103, 501104, 501105, 501106, 501107, 501201, 501202, 501203, 501204, 501205, 501206, 501208, 501209, 501210, 501212, 501213, 501301, 501302, 501303, 501402, 501403, 501404, 501405, 501406, 501500, 501603, 501604, 501605, 501606, 501608, 501609, 501701, 501702, 501703, 501704, 501800, 501900, 502001, 502002, 502100, 502200, 502300, 502400],
    '017' : [100, 200, 300, 400, 500, 600, 700, 800, 902, 1000, 1100, 1201, 1202, 1300, 1400, 1701, 1800, 1900, 2000, 2200, 2300, 2400, 2700, 2800, 2900, 3000, 3100, 3500, 4000, 4101, 4102, 4200, 4300, 4400, 4500, 4600, 4700, 4800, 4900, 5200, 5300, 5400, 5500, 5600, 5801, 5802, 5900, 6000, 6100, 6200, 6300, 6400, 6500, 6600, 6700, 6800, 6900, 7000, 7100, 7200, 7300, 7400, 7500, 7600, 7700, 7800, 10100, 10200, 10300, 10400, 10500, 10600, 10700, 10800, 10900, 11000, 11100, 11200, 11300, 11400, 11500, 11600, 12300, 12400, 12500, 12600, 12700, 12800, 12900, 13000, 13100, 13200, 13300, 13400, 13500, 13600, 13700, 13800, 13900, 14000, 14101, 14102, 14200, 14300, 14400, 14501, 14502, 14600, 14700, 14800, 14900, 15001, 15002, 15100, 15201, 15202, 15300, 15500, 15600, 15700, 15801, 15802, 15900, 16000, 16100, 16200, 16300, 16400, 16500, 16600, 16700, 16800, 16900, 17000, 17100, 17200, 17300, 17400, 17500, 17600, 17700, 17800, 17900, 18000, 18100, 18200, 18301, 18302, 18400, 18500, 18600, 18701, 18702, 18800, 18900, 19000, 19100, 19200, 19300, 19400, 19800, 19900, 20000, 20100, 32400, 980100],
    '019' : [10100, 10200, 10300, 10400, 10500, 10600, 10701, 10702, 10801, 10802, 10900, 11001, 11002, 11100, 11201, 11202, 11301, 11302, 11303, 11304, 11400, 11500, 11600, 11700, 11800, 11900],
    '021' : [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1101, 1102, 1200, 1300, 1401, 1402, 1500, 1600, 1700, 1800, 1900, 2000, 2100, 2200, 2400, 2500, 2601, 2602, 2701, 2702, 2800, 2902, 2903, 2904, 3001, 3002, 3003, 3004, 3006, 3007, 3008, 3009, 3100, 3201, 3202, 3301, 3302, 3400, 3500, 3601, 3602, 3703, 3704, 3705, 3706, 3800, 3902, 3903, 3904, 3905, 4000, 4201, 4203, 4204, 4301, 4304, 4306, 4307, 4309, 4310, 4403, 4404, 4405, 4406, 4407, 4501, 4502],
    '023' : [100, 200, 300, 401, 403, 404, 501, 502, 603, 606, 608, 701, 702, 801, 802, 901, 902, 1001, 1002, 1100, 1200, 1300, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1502, 1504, 1505, 1506, 1600, 1701, 1702, 1803, 1804, 1805, 1901, 1902, 1903, 2000, 2101, 2102, 2200, 2301, 2302, 2401, 2402, 2500, 2603, 2604, 2605, 2701, 2703, 2805, 2901, 2902, 3001, 3002, 3101, 3102, 3201, 3203, 3300, 3401, 3500, 3600, 3700, 3800, 4000, 4100, 4200, 4300, 4400, 4500, 4600, 4700, 4800, 4900, 5000, 5100, 5200, 5300, 5500, 5601, 5602, 5700, 5800, 6001, 6002, 6101, 6103, 6104, 6203, 6204, 6205, 6206, 6207, 6300, 6403, 6500, 6601, 6604, 6605, 6606, 6607, 6608, 6701, 6703, 6800, 6900, 7000, 7101, 7102, 7103, 7202, 7203, 7301, 7303, 7304, 7402, 7500, 7600, 7702, 7703, 7704, 7801, 7804, 7805, 7806, 7905, 7906, 7907, 7908, 7909, 7910, 7911, 7912, 8001, 8101, 8102, 8103, 8202, 8204, 8205, 8206, 8207, 8208, 8209, 8300, 8403, 8404, 8405, 8406, 8501, 8502, 8503, 8504, 8601, 8602, 8604, 8605, 8606, 8700, 8800, 8900, 9000, 9100, 9200, 9300, 9400],
    '025' : [800100, 800200, 800400, 800500, 800601, 800602, 800701, 800702, 800800, 800900, 801000, 801100, 801200, 801300, 801400, 801500, 801600, 801700, 801800, 801900, 802000, 802100, 802200, 802300, 802400, 802500, 802600, 802700, 802800, 802900, 803000, 803100, 803201, 803202, 803300, 803400, 803500, 803600, 803700, 803800, 803900, 804100, 804200, 804500, 804600, 804700, 804800, 805001, 805100, 805300, 805400, 805500, 805600, 805700, 805800, 805900, 806000, 806100, 806201, 806202, 806300, 806400, 806501, 806502, 806503, 806504, 806600, 807003, 807004, 807100, 807200, 807300, 807400, 807500, 807600, 807700, 807800, 807900, 808001, 808002, 808100, 808200, 808300, 808401, 808402, 808500, 808600, 808701, 808702, 808800, 808900, 809000, 809100, 809200, 809301, 809302, 809400, 809501, 809502, 809600, 809701, 809703, 809704, 809901, 809902, 809903, 810001, 810002, 810003, 810004, 810101, 810102, 810200, 810300, 810401, 810402, 810501, 810502, 810503, 810600, 810700, 810800, 810900, 811000, 811101, 811102, 811200, 811301, 811303, 811304, 811401, 811402, 811501, 811502, 811600, 811900, 812000, 812100, 812200, 812300, 812400, 812501, 812502, 990000],
    '027' : [40101, 40102, 40200, 40300, 40400, 40500, 40600, 40701, 40702, 40801, 40803, 40804, 40805, 40900, 41000, 41100, 41200, 41300, 41400, 41500, 41601, 41602, 41603, 41604, 41701, 41702, 41704, 41705, 41706, 41801, 41802, 41803, 41901, 41902, 42000, 42100, 42200, 42301, 42302, 42500, 42600, 42700, 42800, 42900, 43000, 43100, 43200, 43301, 43302, 43303, 43401, 43402, 43500, 43600, 43700, 43800, 43900, 44000, 44101, 44102, 44200, 44300, 44401, 44403, 44404, 44501, 44502, 44601, 44602, 44701, 44702, 44800, 44900, 45000, 45100, 45200, 45300, 45401, 45402, 45501, 45502, 45602, 45603, 45701, 45703, 45704, 45804, 45901, 45902, 46000, 46103, 46104, 46105, 46106, 46201, 46202, 46297, 46298, 46300, 46400],
    '029' : [710100, 711100, 711200, 711300, 711400, 712000, 713000, 713100, 713201, 713202, 713203, 713300, 713401, 713402, 713500, 713600, 713700, 713800, 713900, 714000, 714100, 714200, 714300, 714400, 715000, 715200, 715301, 715302, 715401, 715402, 715500, 715600, 715700, 715800, 715901, 715902, 716000, 717001, 717002, 717101, 717102, 717200, 717300, 717400, 717501, 717502, 718000, 720001, 720101, 720102, 720103, 720202, 720203, 720204, 720205, 720206, 721000, 722001, 722002, 722100, 722200, 722300, 722401, 722402, 722500, 722600, 722701, 722702, 722800, 722900, 723000, 723100, 723200, 723300, 723400, 723500, 723600, 724000, 725001, 725002, 725100, 726000, 727001, 727002, 728000, 729000, 730000, 731001, 731002, 731101, 731102, 731103, 731201, 731202, 731203, 731204, 731205, 731206, 732001, 732002, 732101, 732103, 732104, 733000, 734001, 734002, 734003, 735001, 735002, 735101, 735103, 735104, 736001, 736002, 736101, 736102, 736105, 737000, 738001, 738002, 738100, 739000, 739100, 980000, 980100, 990000],
    '031' : [116500, 124200, 124311, 124312, 124321, 124322, 124323, 124401, 124402, 124500, 124601, 124602, 124700, 124800, 124900, 125000, 125100, 133701, 133702, 143200, 143300, 143400, 154001, 154002, 163500, 175200, 175301, 175302, 175401, 175402, 175500, 175601, 175602, 175701, 175703, 175704, 175801, 175802, 175900, 180100, 180201, 180202, 180300, 180600, 180700, 180800, 180900, 181000, 181100, 181200, 181300, 181400, 181500, 181702, 181800, 181900, 182000, 182100, 182200, 182301, 182302, 182400, 182500, 182600, 182700, 182800, 182900, 183000, 183101, 183102, 183200, 196401, 196402, 203600, 216701, 216702, 223801, 223802, 223900, 236601, 236602, 246001, 246002, 246003, 246101, 246102, 246103, 246104, 246201, 246202, 246203, 246300, 256801, 256802, 256803, 256804, 256805, 264101, 264102, 264200],
    '033' : [20100, 20200, 20300, 20400, 20500, 20600, 20700, 20800, 20900, 21000, 21101, 21102, 21201, 21202, 21300, 21400, 21500, 21600, 21700, 21900, 22000, 22100, 22201, 22202, 990000],
    '035' : [50100, 50200, 50300, 50400, 50500, 50600, 50701, 50703, 50704, 50801, 50802, 50901, 50902, 50903, 51000, 51100, 51200, 51300, 51400, 51500, 51600, 51700, 51800, 51900, 52001, 52002, 52100, 52201, 52203, 52204, 52300, 52400, 52601, 52603, 52700, 52800, 52901, 52903, 52904, 53000, 53102, 53103, 53105, 53200, 53300, 53402, 53403, 53404, 53501, 53602, 53603, 53604, 53703, 53704, 53705, 53706, 53707, 53801, 53803, 53804, 53805, 53901, 53904, 53905, 54100, 54201, 54202, 54300],
    '037' : [371000, 371100, 371200, 371300, 371400, 371502, 371503, 371600, 371700, 371800, 371900, 372000, 372100, 372200, 372300, 372400, 372500, 372600, 372700, 372800, 372900, 373000, 373100, 373200, 373300, 373400, 373500, 373600, 373700, 373800, 373900, 374000, 374100, 374200, 374300, 374400, 374500, 374600, 374700, 374800, 374900],
    '039' : [30200, 30400, 30500, 30600, 30701, 30702, 30802, 30900, 31000, 31100, 31200, 31300, 31400, 31500, 31601, 31602, 31700, 31801, 31802, 31903, 31904, 32001, 32002, 32100, 32200, 32300, 32400, 32500, 32600, 32700, 32800, 32901, 32902, 33000, 33100, 33200, 33300, 33400, 33500, 33600, 33700, 33800, 33900, 34000, 34100, 34200, 34300, 34400, 34500, 34600, 34700, 34800, 34900, 35000, 35100, 35200, 35300, 35400, 35500, 35600, 35700, 35800, 35900, 36000, 36100, 36200, 36301, 36302, 36400, 36500, 36600, 36700, 36800, 36900, 37000, 37100, 37200, 37300, 37400, 37500, 37601, 37602, 37700, 37800, 37900, 38000, 38101, 38102, 38201, 38202, 38300, 38400, 38500, 38601, 38602, 38700, 38800, 38900, 39000, 39100, 39200, 39300, 39400, 39500, 39600, 39700, 39800, 39900],
    '041' : [30600, 30700, 30800, 30900, 31101, 31102, 31200, 31301, 31302, 31401, 31402, 31500, 31601, 31602, 31700, 31800, 31900, 32000, 32101, 32102, 32200, 32300, 32400]
]]]></entry>
        <entry id="census2010_nm" type="java"><![CDATA[[
    '001' : [107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 203, 204, 205, 206, 207, 208, 300, 401, 402, 501, 502, 601, 603, 604, 704, 707, 708, 710, 711, 712, 713, 714, 801, 901, 903, 904, 1101, 1102, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000, 2100, 2200, 2300, 2401, 2402, 2500, 2600, 2700, 2900, 3001, 3002, 3100, 3201, 3202, 3400, 3501, 3502, 3600, 3707, 3712, 3714, 3715, 3717, 3718, 3719, 3721, 3722, 3723, 3724, 3725, 3726, 3728, 3729, 3730, 3731, 3732, 3733, 3735, 3736, 3737, 3738, 3803, 3804, 3805, 3806, 3807, 4001, 4300, 4401, 4402, 4501, 4502, 4602, 4603, 4604, 4712, 4713, 4715, 4716, 4717, 4720, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 940500, 940600, 940700],
    '003' : [976400],
    '005' : [201, 202, 300, 400, 500, 600, 700, 800, 900, 1001, 1002, 1101, 1102, 1200, 1300, 1400],
    '006' : [941500, 945800, 946100, 974201, 974202, 974400, 974700],
    '007' : [950500, 950600, 950700],
    '009' : [100, 201, 202, 301, 303, 304, 400, 500, 601, 602, 603, 900],
    '011' : [960100],
    '013' : [102, 103, 104, 201, 202, 300, 401, 402, 500, 600, 700, 800, 900, 1000, 1102, 1103, 1104, 1201, 1203, 1204, 1205, 1303, 1304, 1305, 1306, 1307, 1400, 1500, 1600, 1701, 1702, 1703, 1705, 1706, 1707, 1801, 1802, 1804, 1805, 1806, 1900],
    '015' : [100, 200, 300, 401, 402, 500, 600, 700, 800, 900, 1000, 1100],
    '017' : [964100, 964200, 964300, 964400, 964500, 964600, 964700, 964800],
    '019' : [961600],
    '021' : [100],
    '023' : [970000, 970200],
    '025' : [100, 200, 300, 400, 502, 503, 504, 600, 701, 702, 703, 704, 800, 900, 1003, 1004, 1005, 1100],
    '027' : [960200, 960300, 960400, 960600, 960800],
    '028' : [100, 200, 400, 500],
    '029' : [100, 200, 300, 400, 500, 600],
    '031' : [940300, 940500, 943500, 943600, 943700, 943800, 943901, 943902, 944000, 945200, 945300, 945400, 945500, 945600, 945700, 946000, 973100],
    '033' : [955200],
    '035' : [100, 200, 303, 304, 305, 306, 401, 402, 500, 601, 602, 603, 700, 901, 902, 940000],
    '037' : [958601, 958602, 958900],
    '039' : [100, 200, 300, 400, 500, 940700, 940800, 941000, 944100],
    '041' : [100, 200, 300, 401, 402],
    '043' : [10503, 10601, 10602, 10702, 10703, 10705, 10712, 10713, 10714, 10715, 10716, 10717, 10718, 10719, 10720, 10721, 10722, 10723, 10900, 11000, 11100, 11200, 940200, 940300, 940500, 940600, 940700, 940900],
    '045' : [100, 201, 202, 204, 205, 301, 302, 401, 402, 503, 504, 505, 607, 608, 609, 610, 611, 612, 613, 702, 705, 706, 707, 708, 900, 942801, 942802, 942803, 942900, 943000, 943100, 943201, 943300],
    '047' : [957200, 957300, 957400, 957500, 957600, 957700, 957800],
    '049' : [101, 200, 300, 400, 500, 600, 700, 800, 900, 1001, 1002, 1102, 1103, 1105, 1106, 1107, 1202, 1203, 1204, 1205, 1301, 1302, 1303, 1304, 10102, 10203, 10204, 10304, 10308, 10309, 10310, 10311, 10312, 10314, 10315, 10316, 10400, 10500, 10601, 10602, 10603, 10700, 10800, 10900, 940300, 940400, 940500, 940600, 940900, 980000],
    '051' : [962200, 962300, 962401, 962402],
    '053' : [940000, 978100, 978200, 978301, 978302, 978303],
    '055' : [940000, 940100, 952100, 952300, 952600, 952700],
    '057' : [963201, 963202, 963600, 963700],
    '059' : [950200],
    '061' : [940300, 970101, 970102, 970200, 970301, 970302, 970303, 970401, 970404, 970405, 970700, 970800, 970901, 970902, 971000, 971100, 971300, 971400]
]]]></entry>
        <entry id="census2010_ny" type="java"><![CDATA[['001' : [000100, 000200, 000300, 000401, 000403, 000404, 000501, 000502, 000600, 000700, 000800, 001100, 001400, 001500, 001600, 001700, 001801, 001802, 001901, 001902, 002000, 002100, 002200, 002300, 002500, 002600, 012700, 012800, 012900, 013000, 013100, 013200, 013300, 013400, 013503, 013505, 013506, 013507, 013508, 013601, 013602, 013703, 013705, 013706, 013707, 013801, 013802, 013901, 013902, 014001, 014002, 014100, 014201, 014202, 014203, 014301, 014302, 014401, 014402, 014501, 014502, 014503, 014606, 014607, 014608, 014609, 014611, 014612, 014613, 014614, 014615, 014700, 014801, 014802, 014803],
'003' : [940200, 950100, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000, 951100, 951200, 951300],
'005' : [000100, 000200, 000400, 001600, 001900, 002000, 002300, 002400, 002500, 002701, 002702, 002800, 003100, 003300, 003500, 003700, 003800, 003900, 004001, 004100, 004200, 004300, 004400, 004600, 004800, 005001, 005002, 005100, 005200, 005300, 005400, 005600, 005902, 006000, 006100, 006200, 006300, 006400, 006500, 006700, 006800, 006900, 007000, 007100, 007200, 007300, 007400, 007500, 007600, 007700, 007800, 007900, 008300, 008400, 008500, 008600, 008700, 008900, 009000, 009200, 009300, 009600, 009800, 011000, 011502, 011700, 011800, 011900, 012101, 012102, 012300, 012500, 012701, 012901, 013000, 013100, 013200, 013300, 013500, 013800, 014100, 014300, 014400, 014500, 014701, 014702, 014900, 015100, 015200, 015300, 015500, 015700, 015800, 015900, 016000, 016100, 016200, 016300, 016400, 016500, 016600, 016700, 016900, 017100, 017300, 017500, 017701, 017702, 017901, 017902, 018101, 018102, 018301, 018302, 018400, 018500, 018900, 019300, 019400, 019500, 019700, 019900, 020000, 020100, 020200, 020400, 020501, 020502, 020601, 020900, 021001, 021002, 021100, 021200, 021301, 021302, 021501, 021502, 021601, 021602, 021700, 021800, 021900, 022000, 022101, 022102, 022200, 022300, 022401, 022403, 022404, 022500, 022701, 022702, 022703, 022800, 022901, 022902, 023000, 023100, 023200, 023301, 023302, 023501, 023502, 023600, 023702, 023703, 023704, 023800, 023900, 024000, 024100, 024300, 024400, 024501, 024502, 024600, 024700, 024800, 024900, 025000, 025100, 025200, 025300, 025400, 025500, 025600, 025700, 026100, 026300, 026400, 026500, 026601, 026602, 026701, 026702, 026900, 027300, 027401, 027402, 027600, 027700, 027900, 028100, 028300, 028400, 028500, 028600, 028700, 028800, 028900, 029301, 029302, 029500, 029600, 029700, 030000, 030100, 030200, 030701, 030900, 031000, 031200, 031400, 031600, 031800, 031900, 032300, 032400, 032600, 032800, 033000, 033201, 033202, 033400, 033500, 033600, 033700, 033800, 034000, 034200, 034300, 034400, 034500, 034800, 035000, 035100, 035600, 035800, 035900, 036000, 036100, 036300, 036400, 036501, 036502, 036700, 036800, 036901, 036902, 037000, 037100, 037200, 037300, 037400, 037504, 037600, 037800, 037900, 038000, 038100, 038200, 038301, 038302, 038500, 038600, 038700, 038800, 038900, 039000, 039100, 039200, 039300, 039400, 039500, 039600, 039700, 039800, 039901, 039902, 040100, 040302, 040303, 040304, 040400, 040501, 040502, 040600, 040701, 040702, 040800, 040900, 041100, 041300, 041400, 041500, 041800, 041900, 042000, 042100, 042200, 042300, 042400, 042500, 042600, 042800, 042901, 042902, 043000, 043100, 043400, 043500, 043600, 044200, 044400, 044800, 044901, 044902, 045101, 045102, 045600, 045800, 046000, 046201, 046202, 048400, 050400, 051600],
'007' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000900, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 010200, 011901, 011902, 011903, 012000, 012101, 012102, 012103, 012201, 012202, 012300, 012400, 012500, 012600, 012701, 012702, 012800, 012900, 013000, 013100, 013201, 013202, 013301, 013303, 013304, 013400, 013500, 013600, 013700, 013800, 013900, 014000, 014100, 014200, 014301, 014302, 014400, 014500, 014600],
'009' : [940000, 940200, 940300, 960100, 960200, 960300, 960400, 960500, 960600, 960702, 960800, 961000, 961100, 961200, 961300, 961400, 961500, 961600, 961700, 961800, 962200],
'011' : [040100, 040200, 040300, 040400, 040500, 040600, 040700, 040800, 040900, 041000, 041100, 041200, 041300, 041400, 041500, 041600, 041700, 041800, 042100, 990200],
'013' : [030100, 030200, 030300, 030400, 030500, 030600, 030700, 030800, 035100, 035300, 035400, 035500, 035600, 035700, 035800, 035901, 035902, 036000, 036100, 036300, 036401, 036402, 036500, 036600, 036700, 036800, 036901, 036902, 037000, 037100, 037200, 037300, 037400, 037500, 037600, 990000],
'015' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000900, 001000, 001100, 010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011100, 011200],
'017' : [970100, 970200, 970300, 970400, 970500, 970601, 970602, 970700, 970801, 970802, 970900, 971000],
'019' : [100100, 100200, 100300, 100400, 100600, 100700, 100800, 100900, 101000, 101100, 101300, 101400, 101600, 101700, 101800, 101900, 102000, 102100, 102200],
'021' : [000100, 000200, 000300, 000401, 000402, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000],
'023' : [970100, 970200, 970300, 970400, 970500, 970600, 970700, 970800, 970900, 971000, 971100, 971200],
'025' : [970100, 970200, 970300, 970400, 970500, 970600, 970700, 970800, 970900, 971000, 971100, 971200, 971300, 971400],
'027' : [010000, 020003, 020004, 020005, 030000, 040001, 040003, 050102, 050103, 050104, 050203, 050204, 050205, 060100, 060201, 060202, 060301, 060302, 060400, 070101, 070102, 070201, 070301, 070401, 080103, 080104, 080201, 080202, 090000, 100000, 110003, 110004, 110005, 120000, 130003, 130004, 130005, 140101, 140200, 140300, 140400, 140500, 140602, 140700, 140801, 150003, 150004, 150005, 150006, 160003, 160004, 160005, 170000, 180001, 190101, 190102, 190203, 190204, 190301, 190401, 190402, 200001, 200002, 210101, 210201, 210301, 220100, 220201, 220300, 220700, 220801, 220901, 221001, 221100, 300000, 410000, 610000, 640001, 640002],
'029' : [000110, 000200, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001402, 001500, 001600, 001700, 001900, 002300, 002400, 002502, 002702, 002800, 002900, 003000, 003100, 003301, 003302, 003400, 003500, 003600, 003700, 003800, 003901, 004001, 004100, 004200, 004300, 004401, 004402, 004500, 004601, 004602, 004700, 004800, 004900, 005000, 005100, 005201, 005202, 005300, 005400, 005500, 005600, 005700, 005801, 005802, 005900, 006100, 006201, 006301, 006302, 006501, 006601, 006602, 006701, 006702, 006800, 006901, 006902, 007000, 007101, 007102, 007202, 007302, 007303, 007304, 007600, 007700, 007800, 007901, 007902, 007903, 007904, 007905, 008001, 008002, 008003, 008101, 008102, 008201, 008202, 008300, 008400, 008500, 008600, 008700, 008800, 008900, 009004, 009006, 009007, 009008, 009009, 009010, 009104, 009106, 009107, 009109, 009110, 009112, 009113, 009114, 009115, 009116, 009200, 009301, 009302, 009401, 009402, 009501, 009502, 009600, 009701, 009702, 009800, 009900, 010001, 010002, 010003, 010101, 010102, 010103, 010201, 010202, 010300, 010400, 010500, 010600, 010700, 010803, 010804, 010805, 010807, 010808, 010809, 010901, 010902, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 012001, 012002, 012003, 012300, 012400, 012501, 012502, 012800, 012901, 012902, 013001, 013002, 013101, 013102, 013201, 013202, 013300, 013400, 013501, 013502, 013600, 013701, 013702, 013800, 013900, 014000, 014101, 014102, 014204, 014206, 014207, 014208, 014209, 014300, 014400, 014501, 014502, 014601, 014603, 014604, 014701, 014702, 014801, 014803, 014901, 014903, 014904, 015001, 015002, 015003, 015101, 015102, 015201, 015202, 015301, 015302, 015401, 015402, 015501, 015503, 015504, 015600, 015700, 015800, 015900, 016100, 016200, 016300, 016400, 016500, 016600, 016700, 016800, 016900, 017000, 017100, 017200, 017300, 017400, 017501, 017502, 940000, 940100, 990000],
'031' : [960100, 960200, 960300, 960498, 960598, 960700, 960800, 960900, 961000, 961100, 961200, 961300, 961400],
'033' : [940000, 950100, 950200, 950300, 950400, 950501, 950502, 950600, 950700, 950800, 950900, 951000, 951100, 951200],
'035' : [970100, 970200, 970300, 970400, 970500, 970600, 970700, 970800, 970900, 971000, 971100, 971200, 971300, 971400, 971500],
'037' : [940100, 950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000, 951100, 951200, 951300, 951400],
'039' : [080100, 080201, 080202, 080300, 080401, 080402, 080501, 080502, 080600, 080700, 080800, 080900, 081000, 081101, 081102],
'041' : [950100, 950300, 950400, 950500],
'043' : [010100, 010201, 010202, 010300, 010400, 010501, 010502, 010701, 010702, 010900, 011001, 011002, 011100, 011200, 011301, 011302, 011400, 011501, 011502],
'045' : [060100, 060200, 060300, 060400, 060500, 060600, 060700, 060803, 060804, 060900, 061000, 061100, 061200, 061300, 061400, 061500, 061600, 061700, 061800, 061900, 062100, 062200, 062400, 062500, 980000, 990001],
'047' : [000100, 000200, 000301, 000501, 000502, 000700, 000900, 001100, 001300, 001500, 001800, 002000, 002100, 002200, 002300, 002901, 003000, 003100, 003300, 003400, 003500, 003600, 003700, 003800, 003900, 004100, 004300, 004400, 004500, 004600, 004700, 004900, 005000, 005100, 005201, 005202, 005300, 005400, 005601, 005602, 005800, 005900, 006000, 006200, 006300, 006400, 006500, 006600, 006700, 006800, 006900, 007000, 007100, 007200, 007400, 007500, 007600, 007700, 007800, 008000, 008200, 008400, 008500, 008600, 008800, 009000, 009200, 009400, 009600, 009800, 010000, 010100, 010200, 010400, 010600, 010800, 011000, 011200, 011400, 011600, 011700, 011800, 011900, 012000, 012100, 012200, 012600, 012700, 012801, 012901, 012902, 013000, 013100, 013200, 013300, 013400, 013500, 013600, 013700, 013800, 013900, 014000, 014100, 014200, 014300, 014500, 014700, 014800, 014900, 015000, 015100, 015200, 015300, 015400, 015500, 015700, 015900, 016000, 016100, 016200, 016300, 016400, 016500, 016600, 016700, 016800, 016900, 017000, 017100, 017200, 017400, 017500, 017600, 017700, 017800, 017900, 018000, 018100, 018200, 018300, 018400, 018501, 018600, 018700, 018800, 019000, 019100, 019200, 019300, 019400, 019500, 019600, 019700, 019800, 019900, 020000, 020100, 020200, 020300, 020400, 020500, 020600, 020700, 020800, 021000, 021100, 021200, 021300, 021400, 021500, 021600, 021700, 021800, 021900, 022000, 022100, 022200, 022400, 022600, 022700, 022800, 022900, 023000, 023100, 023200, 023300, 023400, 023500, 023600, 023800, 024000, 024100, 024200, 024300, 024400, 024500, 024600, 024700, 024800, 024900, 025000, 025100, 025200, 025300, 025400, 025500, 025600, 025700, 025800, 025901, 025902, 026000, 026100, 026200, 026300, 026400, 026500, 026600, 026700, 026800, 026900, 027000, 027100, 027200, 027300, 027400, 027500, 027600, 027700, 027800, 027900, 028000, 028100, 028200, 028300, 028400, 028501, 028502, 028600, 028700, 028800, 028900, 029000, 029100, 029200, 029300, 029400, 029500, 029600, 029700, 029800, 029900, 030000, 030100, 030200, 030300, 030400, 030500, 030600, 030700, 030800, 030900, 031100, 031300, 031400, 031500, 031701, 031702, 031900, 032100, 032300, 032500, 032600, 032700, 032800, 032900, 033000, 033100, 033300, 033500, 033600, 033700, 033900, 034000, 034100, 034200, 034300, 034500, 034700, 034800, 034900, 035000, 035100, 035200, 035300, 035400, 035500, 035601, 035602, 035700, 035900, 036001, 036002, 036100, 036200, 036300, 036400, 036501, 036502, 036600, 036700, 036900, 037000, 037100, 037300, 037401, 037402, 037500, 037700, 037900, 038100, 038200, 038300, 038500, 038600, 038700, 038800, 038900, 039000, 039100, 039200, 039300, 039400, 039500, 039600, 039700, 039800, 039900, 040000, 040100, 040200, 040300, 040400, 040500, 040600, 040700, 040800, 040900, 041000, 041100, 041200, 041300, 041401, 041402, 041500, 041600, 041700, 041800, 041900, 042000, 042100, 042200, 042300, 042400, 042500, 042600, 042700, 042800, 042900, 043000, 043100, 043200, 043300, 043400, 043500, 043600, 043700, 043800, 043900, 044000, 044100, 044200, 044300, 044400, 044500, 044600, 044700, 044800, 044900, 045000, 045200, 045300, 045400, 045600, 045800, 046000, 046201, 046202, 046400, 046800, 047000, 047200, 047400, 047600, 047700, 047800, 048000, 048100, 048200, 048400, 048500, 048600, 048800, 048900, 049000, 049100, 049200, 049300, 049400, 049500, 049600, 049700, 049800, 049900, 050000, 050100, 050202, 050300, 050400, 050500, 050600, 050700, 050801, 050803, 050804, 050900, 051001, 051002, 051100, 051200, 051300, 051400, 051500, 051601, 051602, 051700, 051800, 051900, 052000, 052300, 052500, 052600, 052700, 052800, 052900, 053000, 053100, 053200, 053300, 053400, 053500, 053700, 053800, 053900, 054200, 054300, 054400, 054500, 054600, 054700, 054800, 054900, 055000, 055100, 055200, 055300, 055400, 055500, 055600, 055700, 055800, 056000, 056100, 056200, 056300, 056400, 056500, 056600, 056800, 056900, 057000, 057100, 057200, 057300, 057400, 057500, 057600, 057800, 057900, 058000, 058200, 058400, 058600, 058800, 058900, 059000, 059100, 059200, 059300, 059401, 059402, 059600, 059800, 060000, 060600, 060800, 061002, 061003, 061004, 061200, 061600, 062000, 062200, 062600, 062800, 063200, 063600, 063800, 064000, 064200, 064400, 064600, 064800, 065000, 065200, 065400, 065600, 065800, 066000, 066200, 066600, 067000, 067200, 067400, 067600, 067800, 068000, 068200, 068600, 068800, 069000, 069200, 069601, 069602, 069800, 070000, 070201, 070202, 070203, 070600, 072000, 072200, 072400, 072600, 072800, 073000, 073200, 073400, 073600, 073800, 074000, 074200, 074400, 074600, 074800, 075000, 075200, 075400, 075600, 075800, 076000, 076200, 076400, 076600, 076800, 077000, 077200, 077400, 077600, 078000, 078200, 078400, 078600, 078800, 079000, 079200, 079400, 079601, 079602, 079801, 079802, 080000, 080200, 080400, 080600, 080800, 081000, 081400, 081600, 081800, 082000, 082200, 082400, 082600, 082800, 083000, 083200, 083400, 083600, 083800, 084000, 084600, 084800, 085000, 085200, 085400, 085600, 085800, 086000, 086200, 086400, 086600, 086800, 087000, 087200, 087401, 087600, 087800, 088000, 088200, 088400, 088600, 088800, 089000, 089200, 089400, 089600, 089800, 090000, 090200, 090600, 090800, 091000, 091200, 091600, 091800, 092000, 092200, 092400, 092800, 093000, 093200, 093400, 093600, 093800, 094401, 094402, 094600, 095000, 095400, 095600, 095800, 096000, 096200, 096400, 096600, 096800, 097000, 097400, 098200, 098400, 098600, 098800, 099000, 099200, 099400, 099600, 099800, 100400, 100600, 100800, 101000, 101200, 101400, 101600, 101800, 102000, 102200, 102400, 102600, 102800, 103400, 105801, 105804, 107000, 107800, 109800, 110400, 110600, 111000, 111600, 111800, 112000, 112200, 112400, 112600, 112800, 113000, 113200, 113400, 114201, 114202, 114400, 114600, 115000, 115200, 115600, 115800, 116000, 116200, 116400, 116600, 116800, 117000, 117201, 117202, 117400, 117601, 117602, 117800, 118000, 118201, 118202, 118400, 118600, 118800, 119000, 119200, 119400, 119600, 119800, 120000, 120200, 120800, 121000, 121400, 122000, 123700, 150200, 152200, 990100],
'049' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
'051' : [030100, 030201, 030202, 030300, 030400, 030500, 030600, 030700, 030800, 030900, 031000, 031100, 031200, 031300, 031400],
'053' : [030501, 030502, 030700, 030800, 030900, 031000, 031100, 940101, 940102, 940103, 940200, 940300, 940401, 940403, 940600, 940700],
'055' : [000200, 000700, 001000, 001300, 001500, 001800, 001900, 002000, 002100, 002200, 002300, 002400, 002700, 002900, 003000, 003100, 003200, 003300, 003400, 003500, 003600, 003700, 003802, 003805, 003900, 004000, 004100, 004602, 004701, 004702, 004800, 004900, 005000, 005100, 005200, 005300, 005400, 005500, 005600, 005700, 005800, 005900, 006000, 006100, 006200, 006300, 006400, 006500, 006600, 006700, 006800, 006900, 007000, 007100, 007500, 007600, 007700, 007801, 007802, 007900, 008000, 008100, 008200, 008301, 008400, 008500, 008600, 008701, 008702, 008800, 009200, 009301, 009302, 009400, 009500, 009601, 009602, 009603, 009604, 010100, 010200, 010300, 010400, 010500, 010601, 010602, 010700, 010800, 010901, 010902, 011000, 011100, 011201, 011203, 011205, 011207, 011208, 011301, 011302, 011400, 011501, 011503, 011504, 011505, 011601, 011603, 011604, 011605, 011703, 011705, 011706, 011707, 011708, 011800, 011901, 011902, 012000, 012100, 012201, 012202, 012301, 012304, 012305, 012306, 012401, 012402, 012500, 012600, 012700, 012800, 012900, 013001, 013002, 013101, 013103, 013104, 013203, 013204, 013205, 013206, 013300, 013401, 013402, 013503, 013505, 013506, 013507, 013508, 013601, 013603, 013604, 013701, 013702, 013800, 013901, 013902, 014001, 014003, 014004, 014102, 014103, 014104, 014202, 014203, 014204, 014301, 014302, 014400, 014501, 014503, 014504, 014505, 014601, 014602, 014700, 014802, 014803, 014804, 014901, 014903, 014905, 014906, 015000, 015101, 015102, 015200, 015301, 015303, 015304, 015400, 980000, 980100, 990000],
'057' : [070200, 070300, 070400, 070500, 070600, 070700, 070800, 070900, 072100, 072200, 072300, 072400, 072500, 072600, 072700, 072800],
'059' : [300100, 300300, 300400, 300500, 300600, 300700, 300800, 300900, 301000, 301101, 301102, 301200, 301300, 301400, 301500, 301600, 301700, 301800, 301900, 302000, 302101, 302102, 302200, 302300, 302400, 302501, 302502, 302600, 302700, 302800, 302900, 303000, 303101, 303102, 303201, 303202, 303301, 303302, 303400, 303500, 303600, 303700, 303800, 303900, 304001, 304002, 304100, 304202, 304203, 304204, 404300, 404400, 404500, 404600, 404700, 404800, 404901, 404902, 405000, 405100, 405200, 405301, 405302, 405400, 405500, 405600, 405700, 405800, 405900, 406001, 406002, 406100, 406201, 406202, 406300, 406400, 406501, 406600, 406701, 406702, 406801, 406802, 406900, 407000, 407101, 407102, 407201, 407203, 407204, 407301, 407302, 407401, 407402, 407501, 407502, 407600, 407700, 407801, 407802, 407900, 408000, 408100, 408200, 408300, 408400, 408500, 408600, 408700, 408800, 408900, 409000, 409100, 409200, 409300, 409400, 409500, 409600, 409700, 409800, 409900, 410000, 410100, 410200, 410300, 410400, 410500, 410600, 410700, 410800, 410900, 411000, 411100, 411200, 411301, 411302, 411400, 411500, 411600, 411700, 411800, 411901, 411902, 412000, 412100, 412200, 412301, 412302, 412400, 412500, 412600, 412700, 412800, 412900, 413001, 413002, 413100, 413200, 413300, 413400, 413500, 413600, 413700, 413803, 413804, 413900, 414001, 414002, 414100, 414201, 414202, 414301, 414303, 414304, 414400, 414501, 414502, 414600, 414700, 414800, 414900, 415000, 415101, 415102, 415201, 415202, 415300, 415401, 415402, 415500, 415600, 415700, 415802, 416000, 416100, 416201, 416202, 416300, 416401, 416402, 416500, 416600, 416701, 416702, 416801, 416802, 416900, 517000, 517101, 517102, 517200, 517301, 517302, 517400, 517500, 517600, 517701, 517705, 517801, 517802, 517901, 517902, 518000, 518100, 518201, 518203, 518204, 518300, 518400, 518501, 518502, 518600, 518700, 518800, 518900, 519000, 519100, 519200, 519300, 519400, 519500, 519601, 519602, 519702, 519703, 519704, 519801, 519802, 519900, 520001, 520002, 520100, 520200, 520300, 520401, 520402, 520501, 520502, 520600, 520700, 520800, 520900, 521000, 521100, 521200, 521301, 521302, 521400, 521500, 521601, 521602, 521700, 521801, 521802, 521902, 522000, 522700, 980100, 981100, 982100, 990100, 990200, 990301, 990302, 990400],
'061' : [000100, 000201, 000202, 000500, 000600, 000700, 000800, 000900, 001001, 001002, 001200, 001300, 001401, 001402, 001501, 001502, 001600, 001800, 002000, 002100, 002201, 002202, 002400, 002500, 002601, 002602, 002700, 002800, 002900, 003001, 003002, 003100, 003200, 003300, 003400, 003601, 003602, 003700, 003800, 003900, 004000, 004100, 004200, 004300, 004400, 004500, 004700, 004800, 004900, 005000, 005200, 005400, 005501, 005502, 005600, 005700, 005800, 005900, 006000, 006100, 006200, 006300, 006400, 006500, 006600, 006700, 006800, 006900, 007000, 007100, 007200, 007300, 007400, 007500, 007600, 007700, 007800, 007900, 008000, 008100, 008200, 008300, 008400, 008601, 008602, 008603, 008700, 008800, 008900, 009000, 009100, 009200, 009300, 009400, 009500, 009600, 009700, 009800, 009900, 010000, 010100, 010200, 010300, 010400, 010601, 010602, 010800, 010900, 011000, 011100, 011201, 011202, 011203, 011300, 011401, 011402, 011500, 011600, 011700, 011800, 011900, 012000, 012100, 012200, 012400, 012500, 012600, 012700, 012800, 012900, 013000, 013100, 013200, 013300, 013400, 013500, 013600, 013700, 013800, 013900, 014000, 014200, 014300, 014401, 014402, 014500, 014601, 014602, 014700, 014801, 014802, 014900, 015001, 015002, 015100, 015200, 015300, 015400, 015500, 015601, 015602, 015700, 015801, 015802, 015900, 016001, 016002, 016100, 016200, 016300, 016400, 016500, 016600, 016700, 016800, 016900, 017000, 017100, 017200, 017300, 017401, 017402, 017500, 017700, 017800, 017900, 018000, 018100, 018200, 018300, 018400, 018500, 018600, 018700, 018800, 018900, 019000, 019100, 019200, 019300, 019400, 019500, 019600, 019701, 019702, 019800, 019900, 020000, 020101, 020102, 020300, 020500, 020600, 020701, 020800, 020901, 021000, 021100, 021200, 021303, 021400, 021500, 021600, 021703, 021800, 021900, 022000, 022102, 022200, 022301, 022302, 022400, 022500, 022600, 022700, 022800, 022900, 023000, 023100, 023200, 023300, 023400, 023501, 023502, 023600, 023700, 023801, 023802, 023900, 024000, 024100, 024200, 024301, 024302, 024500, 024700, 024900, 025100, 025300, 025500, 025700, 025900, 026100, 026300, 026500, 026700, 026900, 027100, 027300, 027500, 027700, 027900, 028100, 028300, 028500, 028700, 029100, 029300, 029500, 029700, 029900, 030300, 030700, 030900, 031100, 031703, 031704, 031900],
'063' : [020100, 020200, 020300, 020400, 020500, 020600, 020700, 020900, 021000, 021100, 021200, 021300, 021400, 021700, 022000, 022100, 022200, 022300, 022401, 022500, 022601, 022602, 022702, 022711, 022712, 022803, 022804, 022901, 022902, 023001, 023100, 023200, 023300, 023401, 023402, 023404, 023405, 023500, 023600, 023700, 023800, 023901, 023902, 024001, 024002, 024101, 024102, 024201, 024202, 024301, 024302, 024303, 024401, 024404, 024405, 024406, 024501, 024502, 024600, 940001, 940100, 990000],
'065' : [020102, 020300, 020705, 020802, 020803, 020900, 021000, 021101, 021102, 021103, 021201, 021202, 021301, 021302, 021303, 021401, 021402, 021500, 021601, 021602, 021701, 021702, 021900, 022000, 022100, 022200, 022400, 022500, 022701, 022702, 022800, 023000, 023200, 023300, 023400, 023501, 023502, 023702, 023901, 023902, 024000, 024101, 024102, 024200, 024301, 024302, 024303, 024400, 024500, 025001, 025002, 025003, 025100, 025200, 025300, 025400, 025500, 025600, 025700, 025800, 025900, 026100, 026200, 026300, 026400, 026500, 026600, 026700, 940000, 940100, 940200, 980002, 980003, 980100],
'067' : [000100, 000200, 000300, 000400, 000501, 000600, 000700, 000800, 000900, 001000, 001400, 001500, 001600, 001701, 001702, 001800, 001900, 002000, 002101, 002300, 002400, 002700, 002901, 003000, 003200, 003400, 003500, 003601, 003602, 003800, 003900, 004000, 004200, 004301, 004302, 004400, 004500, 004600, 004800, 004900, 005000, 005100, 005200, 005300, 005400, 005500, 005601, 005602, 005700, 005800, 005900, 006000, 006101, 006102, 006103, 010100, 010200, 010301, 010321, 010322, 010400, 010500, 010600, 010700, 010800, 010900, 011011, 011012, 011021, 011022, 011101, 011102, 011201, 011202, 011231, 011232, 011241, 011242, 011300, 011401, 011402, 011500, 011600, 011700, 011800, 011900, 012000, 012100, 012200, 012300, 012400, 012500, 012600, 012700, 012800, 012900, 013000, 013100, 013200, 013300, 013400, 013500, 013600, 013701, 013800, 013900, 014000, 014200, 014300, 014400, 014500, 014600, 014700, 014800, 014900, 015000, 015100, 015201, 015202, 015203, 015400, 015500, 015601, 015700, 015800, 016001, 016002, 016100, 016200, 016300, 016400, 016501, 016502, 016600, 016700, 016801, 016802, 016901, 016902, 940000],
'069' : [050101, 050102, 050201, 050202, 050301, 050302, 050400, 050500, 050601, 050602, 050800, 050900, 051000, 051100, 051200, 051300, 051400, 051500, 051600, 051700, 051800, 051900, 052000, 052100, 052200],
'071' : [000100, 000200, 000300, 000400, 000501, 000502, 000600, 001100, 001200, 001300, 001500, 001600, 002100, 002200, 002300, 010101, 010102, 010200, 010300, 010400, 010500, 010600, 010700, 010801, 010802, 010901, 010902, 011000, 011101, 011102, 011200, 011300, 011400, 011500, 011601, 011602, 011701, 011702, 011801, 011802, 011900, 012100, 012200, 012300, 012601, 012602, 012700, 012800, 012900, 013000, 013100, 013201, 013202, 013300, 013400, 013500, 013600, 013700, 013800, 013900, 014101, 014102, 014201, 014202, 014301, 014302, 014400, 014501, 014502, 014600, 014700, 014800, 014900, 015003, 015004, 015005, 015006, 015100, 015200],
'073' : [040200, 040300, 040400, 040500, 040600, 040700, 040801, 040802, 401200, 401300, 990000],
'075' : [020100, 020200, 020301, 020302, 020400, 020500, 020600, 020701, 020702, 020703, 020800, 020901, 020902, 021000, 021101, 021102, 021103, 021104, 021200, 021300, 021401, 021402, 021501, 021502, 021601, 021602, 021603, 021604, 021605, 990000],
'077' : [590100, 590201, 590202, 590300, 590400, 590500, 590600, 590700, 590800, 590900, 591000, 591100, 591200, 591300, 591400, 591500, 591600],
'079' : [010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 011900],
'081' : [000100, 000200, 000400, 000600, 000700, 000800, 001000, 001200, 001400, 001600, 001800, 001900, 002000, 002200, 002400, 002500, 002600, 002800, 003000, 003100, 003200, 003300, 003400, 003600, 003700, 003800, 003900, 004001, 004002, 004200, 004300, 004401, 004500, 004700, 005000, 005100, 005200, 005300, 005400, 005500, 005700, 005800, 005900, 006100, 006201, 006202, 006300, 006501, 006502, 006900, 007100, 007300, 007500, 007700, 007900, 008100, 008300, 008500, 008600, 008700, 008800, 009100, 009400, 009500, 009600, 009700, 009800, 009900, 010000, 010100, 010200, 010300, 010400, 010500, 010600, 010701, 010800, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 011900, 012000, 012100, 012200, 012301, 012400, 012500, 012601, 012602, 012800, 013000, 013200, 013400, 013500, 013600, 013700, 013800, 014000, 014100, 014201, 014202, 014300, 014400, 014500, 014700, 014800, 014900, 015000, 015100, 015200, 015300, 015400, 015500, 015600, 015700, 015801, 015802, 015900, 016100, 016300, 016400, 016600, 016800, 016900, 017000, 017100, 017200, 017400, 017600, 017800, 017900, 018000, 018101, 018102, 018200, 018300, 018401, 018402, 018501, 018502, 018600, 018700, 018800, 018900, 019000, 019200, 019400, 019600, 019800, 019900, 020200, 020400, 020500, 020600, 020800, 021200, 021400, 021600, 021900, 022001, 022002, 022900, 023000, 023200, 023500, 023600, 023800, 024000, 024300, 024500, 024600, 024700, 024900, 025100, 025301, 025302, 025400, 025500, 025700, 025800, 025900, 026000, 026100, 026200, 026300, 026400, 026500, 026600, 026700, 026901, 026902, 027000, 027100, 027200, 027300, 027400, 027500, 027600, 027700, 027800, 027900, 028000, 028100, 028200, 028300, 028400, 028500, 028700, 028800, 028900, 029100, 029300, 029400, 029500, 029700, 029900, 030600, 030902, 030903, 030904, 031700, 032000, 032700, 032800, 032900, 033000, 033100, 033401, 033402, 033700, 033900, 034700, 035100, 035200, 035300, 035700, 035800, 036100, 036300, 036500, 036600, 036700, 036800, 037100, 037300, 037500, 037600, 037700, 037900, 038100, 038301, 038302, 038400, 039400, 039800, 039900, 040000, 040100, 040200, 040300, 040400, 040500, 040700, 040900, 041100, 041300, 041400, 041500, 042400, 042600, 042700, 043200, 043400, 043701, 043702, 043900, 044000, 044301, 044302, 044400, 044601, 044602, 044800, 045000, 045200, 045400, 045500, 045600, 045700, 045800, 045900, 046000, 046100, 046200, 046300, 046400, 046500, 046600, 046700, 046800, 046900, 047000, 047100, 047200, 047300, 047500, 047600, 047800, 047900, 048000, 048100, 048200, 048300, 048400, 048500, 048900, 049200, 049301, 049302, 049500, 049600, 049700, 049900, 050000, 050201, 050202, 050400, 050500, 050600, 050700, 050800, 051000, 051100, 051200, 051300, 051500, 051600, 051700, 051800, 052000, 052100, 052200, 052400, 052500, 052600, 052800, 053000, 053100, 053200, 053401, 053500, 053601, 053800, 053900, 054000, 054200, 054500, 054700, 054800, 054900, 055100, 055200, 055300, 055400, 055500, 055600, 055700, 055800, 055900, 056000, 056100, 056200, 056400, 056500, 056600, 056700, 056800, 057700, 057900, 058000, 058100, 058200, 058300, 058500, 058700, 058900, 059000, 059100, 059200, 059300, 059400, 059500, 059600, 059800, 059900, 060000, 060100, 060300, 060600, 060701, 060800, 061000, 061200, 061301, 061302, 061400, 061601, 061602, 061800, 061900, 062000, 062100, 062200, 062300, 062400, 062500, 062600, 062700, 062900, 063000, 063200, 063301, 063302, 063500, 063700, 063800, 063900, 064101, 064102, 064500, 064600, 065000, 065400, 065501, 065600, 065702, 065703, 065900, 066000, 066100, 066300, 066400, 066501, 066701, 066900, 067100, 067700, 067900, 068000, 068200, 068300, 068700, 069000, 069300, 069400, 069500, 069701, 069702, 070300, 070700, 070900, 071100, 071303, 071304, 071305, 071306, 071600, 071701, 071702, 071900, 072100, 072300, 072900, 073100, 073700, 073900, 074100, 074300, 074500, 074700, 074900, 075701, 075702, 076901, 076902, 077300, 077500, 077902, 077903, 077904, 077905, 077906, 077907, 077908, 078800, 079000, 079200, 079300, 079701, 079702, 079900, 080301, 080302, 080900, 081400, 081800, 083700, 083800, 084000, 084500, 084601, 084602, 084900, 085300, 085500, 085700, 085900, 086100, 086300, 086400, 086500, 086900, 087100, 088400, 088901, 089200, 090700, 091601, 091602, 091800, 091900, 092200, 092500, 092800, 092900, 093401, 093402, 093800, 093900, 094201, 094202, 094203, 094500, 094700, 095400, 096400, 097202, 097203, 097204, 097300, 098100, 098700, 099100, 099200, 099701, 099703, 099704, 099705, 099801, 099802, 099900, 100801, 100802, 101001, 101002, 101700, 102900, 103201, 103202, 103300, 103900, 104700, 105900, 107201, 107202, 108500, 109300, 109700, 109900, 111300, 112300, 112900, 113300, 113900, 114100, 114700, 115100, 115500, 115700, 115900, 116100, 116300, 116700, 117100, 117500, 118100, 118500, 118700, 118900, 119100, 119300, 119500, 119900, 120100, 120300, 120500, 120700, 121100, 121500, 122300, 122701, 122702, 124100, 124700, 125700, 126500, 126700, 127700, 128300, 129102, 129103, 129104, 130100, 133300, 133900, 134100, 134700, 136700, 137700, 138501, 138502, 139900, 140300, 140901, 140902, 141700, 142900, 143500, 144100, 144700, 145101, 145102, 145900, 146300, 146700, 147100, 147900, 148300, 150701, 150702, 152901, 152902, 155101, 155102, 156700, 157101, 157102, 157901, 157902, 157903, 161700, 162100, 990100],
'083' : [040100, 040200, 040300, 040400, 040500, 040600, 040700, 040800, 040900, 041000, 041100, 041200, 041300, 041400, 051500, 051600, 051701, 051702, 051800, 051901, 051902, 052002, 052003, 052004, 052101, 052102, 052103, 052201, 052203, 052204, 052301, 052303, 052304, 052402, 052403, 052404, 052501, 052502, 052503, 052601, 052602, 052603],
'085' : [000300, 000600, 000700, 000800, 000900, 001100, 001700, 001800, 002001, 002002, 002100, 002700, 002900, 003300, 003600, 003900, 004000, 004700, 005000, 005900, 006400, 006700, 007000, 007400, 007500, 007700, 008100, 008900, 009601, 009602, 009700, 010500, 011201, 011202, 011401, 011402, 012100, 012200, 012500, 012804, 012805, 012806, 013201, 013203, 013204, 013301, 013302, 013400, 013800, 014100, 014604, 014605, 014606, 014607, 014608, 014700, 015100, 015400, 015601, 015602, 015603, 016901, 017005, 017007, 017008, 017009, 017010, 017011, 017012, 017300, 017600, 017700, 018100, 018701, 018702, 018901, 018902, 019700, 019800, 020100, 020700, 020801, 020803, 020804, 021300, 022300, 022600, 022800, 023100, 023900, 024401, 024402, 024700, 024800, 025100, 027301, 027302, 027702, 027704, 027705, 027706, 027900, 029102, 029103, 029104, 030301, 030302, 031901, 031902, 032300, 990100],
'087' : [010101, 010102, 010200, 010501, 010502, 010503, 010601, 010602, 010701, 010702, 010703, 010801, 010802, 010803, 010804, 010901, 010902, 011000, 011101, 011102, 011200, 011301, 011302, 011303, 011401, 011403, 011404, 011405, 011501, 011502, 011504, 011505, 011506, 011601, 011602, 011603, 011700, 011800, 011901, 011902, 012000, 012101, 012102, 012103, 012105, 012106, 012202, 012203, 012204, 012300, 012401, 012402, 012501, 012502, 012600, 012700, 012800, 013001, 013002, 013003, 013100, 013200, 013300, 013401, 013402],
'089' : [490100, 490200, 490300, 490400, 490500, 490600, 490700, 490800, 490900, 491000, 491100, 491200, 491300, 491400, 491500, 491600, 491700, 491800, 491900, 492000, 492100, 492300, 492400, 492500, 492600, 492700, 492800, 492900],
'091' : [060101, 060102, 060200, 060300, 060400, 060501, 060502, 060503, 060601, 060602, 060701, 060702, 060800, 060901, 060902, 061000, 061100, 061200, 061301, 061302, 061303, 061401, 061403, 061404, 061500, 061600, 061701, 061702, 061800, 061901, 061903, 062000, 062100, 062200, 062300, 062403, 062404, 062405, 062406, 062501, 062503, 062505, 062506, 062507, 062508, 062509, 062601, 062602, 062700, 062800],
'093' : [020101, 020102, 020200, 020300, 020500, 020600, 020700, 020800, 020900, 021001, 021002, 021200, 021400, 021500, 021600, 021700, 021800, 031900, 032000, 032101, 032102, 032200, 032300, 032402, 032403, 032404, 032502, 032503, 032504, 032601, 032602, 032700, 032901, 032902, 033002, 033003, 033004, 033101, 033102, 033200, 033300, 033400, 033500],
'095' : [740100, 740200, 740300, 740400, 740500, 740600, 740700, 740800],
'097' : [950100, 950200, 950300, 950400, 950500],
'099' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000],
'101' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100, 961200, 961300, 961400, 961500, 961600, 961700, 961800, 961900, 962000, 962100, 962200, 962300, 962400, 962500, 962600, 962700, 962800, 962900, 963000],
'103' : [110101, 110102, 110200, 110300, 110401, 110402, 110501, 110502, 110600, 110801, 110803, 110901, 110902, 111001, 111002, 111100, 111201, 111202, 111300, 111401, 111402, 111503, 111504, 111505, 111506, 111601, 111602, 111701, 111703, 111704, 111801, 111802, 111803, 111804, 111900, 112001, 112002, 112102, 112103, 112104, 112204, 112206, 112210, 112211, 112212, 112213, 112214, 122300, 122403, 122404, 122405, 122406, 122501, 122502, 122601, 122602, 122603, 122704, 122705, 122706, 122707, 122801, 122802, 122901, 122902, 123001, 123002, 123101, 123102, 123201, 123202, 123301, 123302, 123401, 123402, 123500, 123600, 123701, 123702, 123801, 123802, 123900, 124001, 124002, 124101, 124102, 124200, 124300, 124401, 124402, 124500, 124601, 124602, 134702, 134703, 134704, 134902, 134903, 134904, 134906, 134907, 135002, 135003, 135004, 135005, 135101, 135102, 135103, 135104, 135201, 135204, 135205, 135208, 135209, 135301, 135303, 135304, 135401, 135402, 135403, 145602, 145603, 145604, 145605, 145701, 145702, 145703, 145704, 145803, 145804, 145805, 145807, 145808, 145901, 145902, 145903, 146001, 146002, 146003, 146102, 146103, 146105, 146106, 146201, 146202, 146203, 146204, 146205, 146206, 146300, 146402, 146403, 146404, 146500, 146604, 146605, 146606, 146607, 146608, 146611, 146612, 146613, 146614, 146615, 146703, 146704, 146705, 146706, 146800, 146901, 146902, 147001, 147003, 147004, 147100, 147200, 147300, 147401, 147402, 147501, 147502, 147503, 147601, 147602, 147701, 147702, 147802, 147803, 147804, 147901, 147902, 158001, 158002, 158006, 158007, 158009, 158010, 158011, 158102, 158103, 158104, 158107, 158108, 158110, 158111, 158112, 158114, 158115, 158116, 158202, 158203, 158205, 158206, 158207, 158304, 158306, 158308, 158309, 158310, 158315, 158317, 158318, 158319, 158320, 158321, 158322, 158323, 158401, 158402, 158403, 158405, 158407, 158408, 158409, 158410, 158502, 158505, 158506, 158507, 158508, 158509, 158510, 158511, 158512, 158604, 158605, 158606, 158607, 158608, 158609, 158704, 158705, 158707, 158708, 158709, 158710, 158711, 158712, 158802, 158803, 158804, 158900, 159000, 159102, 159103, 159105, 159106, 159107, 159108, 159201, 159203, 159204, 159300, 159404, 159406, 159407, 159408, 159410, 159411, 159412, 159505, 159506, 159508, 159509, 159510, 159511, 159512, 159601, 159602, 169701, 169703, 169704, 169800, 169901, 169902, 170001, 170002, 170101, 170201, 170202, 180300, 190401, 190402, 190403, 190502, 190503, 190504, 190601, 190603, 190604, 190704, 190705, 190706, 190707, 190708, 190800, 200901, 200902, 201001, 201003, 201004, 201100, 990100],
'105' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000, 951100, 951200, 951300, 951500, 951600, 951700, 951800, 951900, 952000, 952100, 952200, 952300, 952400, 952500],
'107' : [020100, 020200, 020300, 020401, 020402, 020500, 020600, 020701, 020702, 020703],
'109' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002300],
'111' : [950100, 950200, 950300, 950400, 950500, 950600, 950900, 951000, 951100, 951200, 951300, 951400, 951500, 951600, 951700, 951800, 951900, 952000, 952100, 952200, 952300, 952400, 952500, 952600, 952700, 952800, 952900, 953000, 953300, 953400, 953500, 953600, 953700, 953800, 953900, 954000, 954100, 954200, 954400, 954500, 954600, 954700, 954800, 954900, 955000, 955300, 955400],
'113' : [070100, 070200, 070300, 070400, 070500, 070601, 070602, 070701, 070702, 070800, 070900, 071000, 072000, 073000, 073500, 074000, 075000, 076000, 078000],
'115' : [080100, 080200, 080300, 081000, 082001, 082002, 084000, 085000, 086000, 087000, 088000, 089000, 090000, 091000, 092000, 093000, 094000],
'117' : [020101, 020102, 020201, 020202, 020301, 020302, 020401, 020402, 020500, 020600, 020700, 020800, 020900, 021000, 021100, 021200, 021400, 021501, 021502, 021600, 021700, 021800, 990100],
'119' : [000101, 000103, 000104, 000201, 000202, 000203, 000300, 000401, 000402, 000500, 000600, 000701, 000702, 000801, 000802, 000803, 000900, 001000, 001101, 001102, 001200, 001301, 001302, 001303, 001401, 001402, 001403, 001502, 001503, 001504, 001505, 001600, 001700, 001800, 001900, 002000, 002101, 002103, 002104, 002105, 002106, 002107, 002201, 002202, 002203, 002204, 002300, 002401, 002402, 002403, 002404, 002405, 002600, 002700, 002800, 002900, 003000, 003100, 003200, 003300, 003400, 003500, 003600, 003700, 003800, 003900, 004000, 004100, 004200, 004300, 004400, 004500, 004600, 004700, 004800, 004900, 005001, 005002, 005100, 005200, 005300, 005400, 005500, 005600, 005701, 005702, 005800, 005901, 005902, 006000, 006100, 006200, 006300, 006400, 006500, 006600, 006700, 006801, 006802, 006900, 007000, 007100, 007200, 007300, 007401, 007402, 007500, 007600, 007700, 007800, 007900, 008000, 008100, 008200, 008301, 008302, 008401, 008403, 008404, 008500, 008602, 008700, 008800, 008901, 008902, 009000, 009100, 009200, 009300, 009400, 009500, 009600, 009701, 009702, 009703, 009800, 009900, 010000, 010100, 010200, 010300, 010400, 010500, 010600, 010701, 010702, 010801, 010803, 010804, 010901, 010902, 010903, 011000, 011101, 011102, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 011902, 012000, 012101, 012102, 012200, 012301, 012303, 012304, 012400, 012501, 012502, 012503, 012600, 012700, 012802, 012900, 013000, 013102, 013103, 013104, 013201, 013202, 013301, 013304, 013400, 013500, 013600, 013700, 013800, 013900, 014000, 014100, 014200, 014300, 014400, 014500, 014604, 014605, 014606, 014607, 014701, 014703, 014704, 014804, 014805, 014806, 014808, 014809, 014810, 014811, 014901, 014903, 014907, 014908, 014909, 015000, 981000, 982000, 983000, 984000, 985000],
'121' : [970100, 970200, 970300, 970400, 970500, 970600, 970700, 970800, 970900, 971000, 971100],
'123' : [150100, 150200, 150300, 150400, 150500]]]]></entry>
        <entry id="census2010_tx" type="java"><![CDATA[['001' : [950100, 950401, 950402, 950500, 950600, 950700, 950800, 950901, 950902, 951000, 951100],
'003' : [950100, 950200, 950300, 950400],
'005' : [000101, 000102, 000200, 000301, 000302, 000400, 000500, 000600, 000700, 000800, 000901, 000902, 001001, 001002, 001100, 001200, 001300],
'007' : [950100, 950200, 950300, 950400, 950500, 990000],
'009' : [020100, 020200, 020300],
'011' : [950100],
'013' : [960100, 960201, 960202, 960300, 960401, 960402, 960500, 960600],
'015' : [760100, 760200, 760300, 760400, 760501, 760502],
'017' : [950100],
'019' : [000101, 000102, 000200, 000300, 000400],
'021' : [950100, 950200, 950300, 950400, 950501, 950502, 950600, 950700, 950801, 950802],
'023' : [950300],
'025' : [950100, 950201, 950202, 950300, 950400, 950500, 950600],
'027' : [020100, 020201, 020202, 020300, 020401, 020402, 020500, 020600, 020701, 020702, 020800, 020900, 021000, 021100, 021201, 021202, 021203, 021301, 021302, 021303, 021400, 021500, 021601, 021602, 021700, 021800, 021901, 021903, 021904, 022000, 022101, 022103, 022104, 022105, 022200, 022300, 022401, 022402, 022403, 022404, 022405, 022501, 022502, 022600, 022801, 022900, 023000, 023103, 023104, 023105, 023106, 023107, 023108, 023201, 023202, 023203, 023204, 023300, 023402, 023403, 023404, 023500, 980001, 980002, 980003],
'029' : [110100, 110300, 110500, 110600, 110700, 110800, 110900, 111000, 120100, 120300, 120400, 120501, 120502, 120600, 120701, 120702, 120800, 120901, 120902, 121000, 121108, 121110, 121111, 121112, 121115, 121116, 121117, 121118, 121119, 121120, 121121, 121122, 121203, 121204, 121205, 121206, 121300, 121402, 121403, 121404, 121501, 121504, 121505, 121506, 121507, 121508, 121601, 121604, 121605, 121606, 121701, 121702, 121802, 121803, 121804, 121808, 121809, 121810, 121811, 121812, 121813, 121903, 121904, 121905, 121906, 121907, 121908, 121909, 121910, 130200, 130300, 130401, 130402, 130500, 130600, 130700, 130800, 130900, 131000, 131100, 131200, 131300, 131401, 131402, 131503, 131504, 131505, 131506, 131507, 131601, 131606, 131608, 131609, 131610, 131611, 131612, 131613, 131614, 131615, 131700, 131801, 131802, 140100, 140200, 140300, 140400, 140500, 140600, 140700, 140800, 140900, 141000, 141101, 141102, 141200, 141300, 141402, 141403, 141404, 141600, 141700, 141800, 141900, 150100, 150300, 150400, 150501, 150502, 150600, 150700, 150800, 150900, 151000, 151100, 151200, 151301, 151302, 151400, 151500, 151600, 151700, 151900, 152000, 152100, 152201, 152202, 160100, 160200, 160300, 160400, 160501, 160502, 160600, 160701, 160702, 160901, 160902, 161000, 161100, 161200, 161302, 161303, 161304, 161400, 161501, 161503, 161504, 161600, 161801, 161802, 161901, 161902, 162001, 162003, 162004, 170101, 170102, 170200, 170300, 170401, 170402, 170500, 170600, 170700, 170800, 170900, 171000, 171100, 171200, 171301, 171302, 171401, 171402, 171501, 171502, 171601, 171602, 171700, 171801, 171802, 171902, 171903, 171912, 171913, 171914, 171915, 171916, 171917, 171918, 171919, 171920, 171921, 171922, 171923, 171924, 171925, 172002, 172003, 172004, 172005, 172006, 172007, 180101, 180102, 180201, 180202, 180300, 180400, 180501, 180503, 180504, 180602, 180603, 180604, 180701, 180702, 180800, 180901, 180902, 181001, 181003, 181004, 181005, 181100, 181200, 181301, 181302, 181303, 181402, 181403, 181404, 181503, 181504, 181505, 181506, 181601, 181602, 181703, 181704, 181705, 181711, 181712, 181713, 181715, 181716, 181718, 181720, 181721, 181722, 181723, 181724, 181725, 181726, 181727, 181728, 181729, 181730, 181731, 181808, 181809, 181811, 181813, 181814, 181815, 181816, 181817, 181818, 181819, 181820, 181821, 181822, 181823, 181824, 181825, 181826, 181901, 181902, 182001, 182002, 182003, 182101, 182102, 182103, 182105, 182106, 190100, 190200, 190400, 190501, 190503, 190504, 190601, 190603, 190604, 190700, 190800, 190901, 190902, 191003, 191004, 191005, 191006, 191101, 191102, 191201, 191202, 191303, 191304, 191405, 191406, 191408, 191409, 191410, 191411, 191412, 191413, 191503, 191504, 191505, 191506, 191701, 191702, 191804, 191806, 191807, 191808, 191809, 191810, 191811, 191812, 191813, 191814, 191815, 191816, 191817, 191900, 192000, 192100, 192200, 192300, 980001, 980002, 980003, 980004, 980005, 980100],
'031' : [950100, 950200],
'033' : [950100],
'035' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
'037' : [010100, 010400, 010500, 010600, 010700, 010800, 010901, 010902, 011000, 011100, 011200, 011300, 011401, 011402, 011501, 011502, 011600, 011700],
'039' : [660100, 660200, 660300, 660400, 660500, 660601, 660602, 660701, 660702, 660801, 660802, 660900, 661000, 661100, 661200, 661300, 661400, 661501, 661502, 661601, 661602, 661700, 661800, 661900, 662000, 662100, 662200, 662300, 662400, 662500, 662600, 662700, 662800, 662900, 663000, 663100, 663200, 663300, 663400, 663500, 663600, 663700, 663800, 663900, 664000, 664100, 664200, 664300, 664400, 664501, 990000],
'041' : [000101, 000102, 000103, 000201, 000202, 000300, 000400, 000500, 000603, 000604, 000700, 000800, 000900, 001000, 001100, 001301, 001302, 001303, 001400, 001601, 001604, 001605, 001606, 001701, 001702, 001801, 001803, 001804, 001900, 002001, 002002, 002006, 002007, 002008, 002009, 002010, 002011, 002012, 002013, 002014, 002015, 980000],
'043' : [950300, 950400, 950500],
'045' : [950200],
'047' : [950100, 950200],
'049' : [950100, 950200, 950300, 950500, 950600, 950700, 950800, 950900, 951000, 951100, 951200, 951300],
'051' : [970100, 970200, 970300, 970400, 970500],
'053' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800],
'055' : [960101, 960102, 960200, 960300, 960400, 960500, 960600, 960700],
'057' : [000100, 000200, 000300, 000400, 000500, 990000],
'059' : [030101, 030102, 030200],
'061' : [010100, 010201, 010203, 010301, 010302, 010401, 010402, 010500, 010601, 010602, 010700, 010800, 010900, 011000, 011100, 011200, 011301, 011302, 011400, 011500, 011600, 011700, 011801, 011802, 011901, 011902, 011903, 012001, 012002, 012101, 012102, 012200, 012301, 012304, 012305, 012401, 012402, 012504, 012505, 012506, 012507, 012508, 012607, 012608, 012609, 012612, 012613, 012700, 012800, 012900, 013002, 013003, 013004, 013102, 013104, 013106, 013203, 013204, 013205, 013206, 013207, 013303, 013305, 013306, 013307, 013308, 013309, 013401, 013402, 013500, 013600, 013700, 013801, 013802, 013901, 013902, 013903, 014001, 014002, 014100, 014200, 014300, 014400, 014500, 980001, 980100, 990000],
'063' : [950101, 950102, 950200],
'065' : [950100, 950200],
'067' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
'069' : [950100, 950200, 950300],
'071' : [710100, 710200, 710300, 710401, 710500, 710600, 990000],
'073' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950801, 950802, 950900, 951000, 951100],
'075' : [950100, 950200],
'077' : [030200, 030301, 030302],
'079' : [950100],
'081' : [950100, 950200],
'083' : [950300, 950600, 950700],
'085' : [030100, 030201, 030202, 030203, 030301, 030302, 030303, 030304, 030305, 030403, 030404, 030405, 030406, 030407, 030408, 030504, 030505, 030506, 030507, 030508, 030509, 030510, 030511, 030512, 030513, 030514, 030515, 030516, 030517, 030518, 030519, 030520, 030521, 030522, 030523, 030524, 030525, 030526, 030527, 030528, 030529, 030530, 030531, 030601, 030603, 030604, 030605, 030701, 030702, 030801, 030802, 030900, 031001, 031003, 031004, 031100, 031201, 031202, 031308, 031309, 031310, 031311, 031312, 031313, 031314, 031315, 031316, 031317, 031405, 031406, 031407, 031408, 031409, 031410, 031411, 031504, 031505, 031506, 031507, 031508, 031611, 031612, 031613, 031621, 031622, 031623, 031624, 031625, 031626, 031627, 031628, 031629, 031630, 031631, 031632, 031633, 031634, 031635, 031636, 031637, 031638, 031639, 031640, 031641, 031642, 031643, 031645, 031646, 031647, 031648, 031649, 031652, 031653, 031654, 031655, 031656, 031657, 031658, 031659, 031660, 031661, 031662, 031663, 031664, 031704, 031706, 031708, 031709, 031711, 031712, 031713, 031714, 031715, 031716, 031717, 031718, 031719, 031720, 031802, 031804, 031805, 031806, 031807, 031900, 032003, 032004, 032008, 032009, 032010, 032011, 032012, 032013],
'087' : [950300],
'089' : [750100, 750200, 750300, 750400, 750500],
'091' : [310100, 310200, 310300, 310401, 310403, 310404, 310501, 310502, 310503, 310603, 310604, 310605, 310606, 310607, 310608, 310701, 310702, 310703, 310704, 310801, 310802, 310901, 310902, 310903],
'093' : [950100, 950200, 950300, 950400],
'095' : [950300],
'097' : [000100, 000200, 000400, 000500, 000600, 000700, 000900, 001100],
'099' : [010101, 010102, 010201, 010202, 010300, 010400, 010501, 010502, 010503, 010504, 010601, 010603, 010604, 010701, 010702, 010802, 010803, 010804, 980000],
'101' : [950100],
'103' : [950100],
'105' : [950100],
'107' : [950100, 950200, 950300],
'109' : [950300],
'111' : [950100, 950300],
'113' : [000100, 000201, 000202, 000300, 000401, 000404, 000405, 000406, 000500, 000601, 000603, 000605, 000606, 000701, 000702, 000800, 000900, 001001, 001002, 001101, 001102, 001202, 001203, 001204, 001301, 001302, 001400, 001502, 001503, 001504, 001600, 001701, 001703, 001704, 001800, 001900, 002000, 002100, 002200, 002400, 002500, 002701, 002702, 003101, 003400, 003700, 003800, 003901, 003902, 004000, 004100, 004201, 004202, 004300, 004400, 004500, 004600, 004700, 004800, 004900, 005000, 005100, 005200, 005300, 005400, 005500, 005600, 005700, 005901, 005902, 006001, 006002, 006100, 006200, 006301, 006302, 006401, 006402, 006501, 006502, 006700, 006800, 006900, 007101, 007102, 007201, 007202, 007301, 007302, 007601, 007604, 007605, 007700, 007801, 007804, 007805, 007809, 007810, 007811, 007812, 007815, 007818, 007819, 007820, 007821, 007822, 007823, 007824, 007825, 007826, 007827, 007902, 007903, 007906, 007909, 007910, 007911, 007912, 007913, 007914, 008000, 008100, 008200, 008400, 008500, 008603, 008604, 008701, 008703, 008704, 008705, 008801, 008802, 008900, 009000, 009101, 009103, 009104, 009105, 009201, 009202, 009301, 009303, 009304, 009401, 009402, 009500, 009603, 009604, 009605, 009607, 009608, 009609, 009610, 009611, 009701, 009702, 009802, 009803, 009804, 009900, 010000, 010101, 010102, 010500, 010601, 010602, 010701, 010703, 010704, 010801, 010803, 010804, 010805, 010902, 010903, 010904, 011001, 011002, 011101, 011103, 011104, 011105, 011200, 011300, 011401, 011500, 011601, 011602, 011701, 011702, 011800, 011900, 012000, 012100, 012204, 012206, 012207, 012208, 012209, 012210, 012211, 012301, 012302, 012400, 012500, 012601, 012603, 012604, 012701, 012702, 012800, 012900, 013004, 013005, 013007, 013008, 013009, 013010, 013011, 013101, 013102, 013104, 013105, 013200, 013300, 013400, 013500, 013605, 013606, 013607, 013608, 013609, 013610, 013611, 013615, 013616, 013617, 013618, 013619, 013620, 013621, 013622, 013623, 013624, 013625, 013626, 013711, 013712, 013713, 013714, 013715, 013716, 013717, 013718, 013719, 013720, 013721, 013722, 013725, 013726, 013727, 013803, 013804, 013805, 013806, 013901, 013902, 014001, 014002, 014103, 014113, 014114, 014115, 014116, 014119, 014120, 014121, 014123, 014124, 014126, 014127, 014128, 014129, 014130, 014131, 014132, 014133, 014134, 014135, 014136, 014137, 014138, 014203, 014204, 014205, 014206, 014302, 014306, 014307, 014308, 014309, 014310, 014311, 014312, 014403, 014405, 014406, 014407, 014408, 014501, 014502, 014601, 014602, 014603, 014701, 014702, 014703, 014901, 014902, 015000, 015100, 015202, 015204, 015205, 015206, 015303, 015304, 015305, 015306, 015401, 015403, 015404, 015500, 015600, 015700, 015800, 015900, 016001, 016002, 016100, 016201, 016202, 016301, 016302, 016401, 016406, 016407, 016408, 016409, 016410, 016411, 016412, 016413, 016502, 016509, 016510, 016511, 016513, 016514, 016516, 016517, 016518, 016519, 016520, 016521, 016522, 016523, 016605, 016606, 016607, 016610, 016611, 016612, 016615, 016616, 016617, 016618, 016619, 016620, 016621, 016622, 016623, 016624, 016625, 016626, 016701, 016703, 016704, 016705, 016802, 016803, 016804, 016902, 016903, 017001, 017003, 017004, 017101, 017102, 017201, 017202, 017301, 017303, 017304, 017305, 017306, 017400, 017500, 017602, 017604, 017605, 017606, 017702, 017703, 017704, 017804, 017805, 017806, 017807, 017808, 017811, 017812, 017813, 017814, 017900, 018001, 018002, 018104, 018105, 018110, 018111, 018118, 018120, 018121, 018122, 018123, 018124, 018126, 018127, 018128, 018129, 018130, 018132, 018133, 018134, 018135, 018136, 018137, 018138, 018139, 018140, 018141, 018142, 018203, 018204, 018205, 018206, 018300, 018401, 018402, 018403, 018501, 018503, 018505, 018506, 018600, 018700, 018801, 018802, 018900, 019004, 019013, 019014, 019016, 019018, 019019, 019020, 019021, 019023, 019024, 019025, 019026, 019027, 019028, 019029, 019031, 019032, 019033, 019034, 019035, 019036, 019037, 019038, 019039, 019040, 019041, 019042, 019043, 019100, 019202, 019203, 019204, 019205, 019206, 019208, 019210, 019211, 019212, 019213, 019301, 019302, 019400, 019501, 019502, 019600, 019700, 019800, 019900, 020000, 020100, 020200, 020300, 020400, 020500, 020600, 020700, 980000, 980100],
'115' : [950401, 950402, 950500, 950600],
'117' : [950300, 950400, 950500, 950600],
'119' : [950100, 950200],
'121' : [020103, 020104, 020105, 020106, 020107, 020108, 020109, 020110, 020111, 020112, 020113, 020114, 020115, 020202, 020203, 020204, 020205, 020303, 020305, 020306, 020307, 020308, 020309, 020310, 020401, 020402, 020403, 020503, 020504, 020505, 020506, 020601, 020602, 020700, 020800, 020900, 021000, 021100, 021201, 021202, 021301, 021303, 021304, 021305, 021403, 021404, 021405, 021406, 021407, 021408, 021409, 021502, 021505, 021512, 021513, 021514, 021515, 021516, 021517, 021518, 021519, 021520, 021521, 021522, 021523, 021524, 021525, 021526, 021527, 021611, 021612, 021613, 021614, 021615, 021616, 021618, 021619, 021620, 021621, 021622, 021623, 021624, 021625, 021626, 021627, 021628, 021629, 021630, 021631, 021632, 021633, 021634, 021635, 021636, 021637, 021638, 021715, 021716, 021717, 021718, 021719, 021720, 021721, 021722, 021723, 021724, 021725, 021726, 021727, 021728, 021729, 021730, 021731, 021732, 021733, 021734, 021735, 021736, 021737, 021738, 021739, 021740, 021741, 021742, 021743, 021744, 021745, 021746, 021747, 021748, 021749, 021750, 021751, 021752, 021753, 021800, 021900],
'123' : [970100, 970200, 970300, 970400, 970500],
'125' : [950300],
'127' : [950200, 950400],
'129' : [950200, 950300],
'131' : [950100, 950200, 950500],
'133' : [950100, 950200, 950300, 950400, 950500],
'135' : [000100, 000300, 000400, 000500, 000600, 000700, 000800, 001000, 001100, 001300, 001500, 001600, 001700, 001800, 001900, 002000, 002200, 002300, 002400, 002501, 002502, 002503, 002700, 002801, 002802, 002900, 003000, 003100],
'137' : [950300],
'139' : [060101, 060102, 060204, 060206, 060207, 060208, 060209, 060210, 060211, 060212, 060213, 060214, 060300, 060400, 060500, 060600, 060701, 060702, 060703, 060801, 060802, 060803, 060900, 061000, 061100, 061200, 061300, 061400, 061500, 061600, 061700],
'141' : [000101, 000106, 000107, 000108, 000109, 000110, 000111, 000112, 000204, 000205, 000206, 000207, 000208, 000301, 000302, 000401, 000403, 000404, 000600, 000800, 000900, 001001, 001002, 001104, 001107, 001109, 001110, 001111, 001112, 001113, 001114, 001115, 001201, 001202, 001203, 001301, 001302, 001400, 001501, 001502, 001600, 001700, 001800, 001900, 002000, 002100, 002201, 002202, 002300, 002400, 002500, 002600, 002800, 002900, 003000, 003100, 003200, 003300, 003402, 003403, 003404, 003501, 003502, 003601, 003602, 003701, 003702, 003801, 003803, 003804, 003901, 003902, 003903, 004002, 004003, 004004, 004103, 004104, 004105, 004106, 004107, 004201, 004202, 004303, 004307, 004309, 004310, 004311, 004312, 004313, 004314, 004316, 004317, 004318, 004319, 004320, 010101, 010102, 010103, 010203, 010207, 010210, 010211, 010212, 010213, 010214, 010215, 010216, 010217, 010218, 010219, 010220, 010221, 010222, 010303, 010307, 010311, 010312, 010316, 010317, 010319, 010322, 010323, 010324, 010325, 010326, 010327, 010328, 010329, 010330, 010331, 010332, 010333, 010334, 010335, 010336, 010337, 010338, 010339, 010340, 010341, 010342, 010343, 010344, 010345, 010346, 010347, 010401, 010404, 010405, 010406, 010407, 010408, 010409, 010501, 010502, 010504, 010505, 010506, 010600, 980000],
'143' : [950100, 950201, 950202, 950300, 950400, 950500, 950600, 950700],
'145' : [000200, 000300, 000400, 000500, 000700, 000800],
'147' : [950100, 950300, 950401, 950402, 950500, 950600, 950701, 950702, 950800],
'149' : [970100, 970200, 970300, 970400, 970500, 970600, 970700],
'151' : [950300, 950400],
'153' : [950500, 950600],
'155' : [950100],
'157' : [670101, 670102, 670200, 670300, 670400, 670500, 670601, 670602, 670700, 670800, 670901, 670902, 671001, 671002, 671100, 671200, 671300, 671400, 671501, 671502, 671601, 671602, 671700, 671800, 671900, 672001, 672002, 672100, 672200, 672301, 672302, 672400, 672500, 672601, 672602, 672701, 672702, 672800, 672900, 673001, 673002, 673003, 673101, 673102, 673200, 673300, 673400, 673500, 673600, 673700, 673800, 673901, 673902, 674000, 674100, 674200, 674300, 674400, 674501, 674502, 674601, 674602, 674603, 674604, 674700, 674800, 674900, 675000, 675100, 675200, 675300, 675400, 675500, 675600, 675700, 675800],
'159' : [950100, 950200, 950300],
'161' : [000100, 000200, 000300, 000400, 000600, 000700, 000900],
'163' : [950100, 950200, 950300],
'165' : [950100, 950200, 950300],
'167' : [720100, 720200, 720301, 720302, 720400, 720501, 720502, 720503, 720600, 720700, 720800, 720900, 721000, 721100, 721201, 721202, 721300, 721400, 721500, 721600, 721700, 721800, 721900, 722001, 722002, 722100, 722200, 722300, 722600, 722700, 722800, 722900, 723000, 723100, 723200, 723300, 723400, 723501, 723502, 723600, 723700, 723800, 723900, 724000, 724101, 724200, 724300, 724400, 724500, 724600, 724700, 724800, 724900, 725000, 725100, 725200, 725300, 725400, 725500, 725600, 725700, 725800, 725900, 726000, 726100, 726200, 990000],
'169' : [950100],
'171' : [950100, 950200, 950300, 950400, 950500],
'173' : [950100],
'175' : [960100, 960200],
'177' : [000100, 000200, 000300, 000400, 000500, 000600],
'179' : [950100, 950300, 950400, 950500, 950600, 950700, 950800],
'181' : [000101, 000102, 000200, 000302, 000303, 000304, 000400, 000501, 000502, 000600, 000700, 000800, 000901, 000902, 001101, 001102, 001200, 001300, 001400, 001500, 001700, 001801, 001802, 001803, 001900, 002000],
'183' : [000200, 000300, 000401, 000402, 000501, 000502, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 010100, 010200, 010301, 010302, 010400, 010500, 010600, 010700, 980000],
'185' : [180101, 180102, 180200, 180301, 180302, 180400],
'187' : [210100, 210200, 210300, 210400, 210504, 210505, 210506, 210507, 210508, 210603, 210604, 210606, 210607, 210608, 210705, 210706, 210707, 210708, 210709, 210710, 210711, 210712, 210713, 210714, 210801, 210803, 210804, 210901, 210902],
'189' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900],
'191' : [950500],
'193' : [950100, 950200, 950300],
'195' : [950100, 950300],
'197' : [950100],
'199' : [030100, 030200, 030300, 030400, 030501, 030502, 030600, 030700, 030800, 030900, 031000],
'201' : [100000, 210100, 210400, 210500, 210600, 210700, 210800, 210900, 211000, 211100, 211200, 211300, 211400, 211500, 211600, 211700, 211900, 212300, 212400, 212500, 220100, 220200, 220300, 220400, 220500, 220600, 220700, 220800, 220900, 221000, 221100, 221200, 221300, 221400, 221500, 221600, 221700, 221800, 221900, 222000, 222100, 222200, 222300, 222401, 222402, 222501, 222502, 222503, 222600, 222700, 222800, 222900, 223001, 223002, 223100, 230100, 230200, 230300, 230400, 230500, 230600, 230700, 230800, 230900, 231000, 231100, 231200, 231300, 231400, 231500, 231600, 231700, 231800, 231900, 232000, 232100, 232200, 232301, 232302, 232401, 232402, 232403, 232500, 232600, 232701, 232702, 232800, 232900, 233001, 233002, 233003, 233101, 233102, 233103, 233200, 233300, 233400, 233500, 233600, 233701, 233702, 233703, 240100, 240400, 240501, 240502, 240600, 240701, 240702, 240801, 240802, 240901, 240902, 241000, 241101, 241102, 241103, 241200, 241300, 241400, 241500, 250100, 250200, 250301, 250302, 250401, 250402, 250500, 250600, 250701, 250702, 250800, 250900, 251000, 251100, 251200, 251300, 251401, 251402, 251501, 251502, 251503, 251600, 251700, 251800, 251901, 251902, 252000, 252100, 252200, 252301, 252302, 252400, 252500, 252600, 252700, 252800, 252900, 253000, 253100, 253200, 253300, 253400, 253500, 253600, 253700, 253800, 253900, 254000, 254100, 254200, 254300, 254400, 254500, 254600, 254700, 310100, 310200, 310300, 310400, 310500, 310600, 310700, 310800, 310900, 311000, 311100, 311200, 311300, 311400, 311500, 311600, 311700, 311800, 311900, 312000, 312100, 312200, 312300, 312400, 312500, 312600, 312700, 312800, 312900, 313000, 313100, 313200, 313300, 313400, 313500, 313600, 313700, 313800, 313900, 314001, 314002, 314300, 314400, 320100, 320200, 320500, 320601, 320602, 320700, 320800, 320900, 321000, 321100, 321200, 321300, 321401, 321402, 321500, 321600, 321700, 321800, 321900, 322000, 322100, 322200, 322600, 322700, 322800, 322900, 323000, 323100, 323200, 323300, 323400, 323500, 323600, 323701, 323702, 323801, 323802, 323900, 324000, 324100, 324200, 330100, 330200, 330301, 330302, 330303, 330400, 330500, 330600, 330700, 330800, 330900, 331100, 331200, 331300, 331400, 331500, 331601, 331602, 331700, 331800, 331900, 332000, 332100, 332200, 332300, 332400, 332500, 332600, 332700, 332800, 332900, 333000, 333100, 333201, 333202, 333300, 333500, 333600, 333700, 333800, 333901, 333902, 334001, 334002, 334003, 334100, 340100, 340201, 340202, 340203, 340301, 340302, 340400, 340500, 340600, 340700, 340800, 340900, 341000, 341100, 341201, 341202, 341301, 341302, 341400, 341501, 341502, 341600, 341700, 341800, 342001, 342002, 342100, 342200, 342300, 342400, 342500, 342700, 342800, 342900, 343000, 343100, 343200, 343301, 343302, 343600, 343700, 350100, 350200, 350300, 350400, 350500, 350601, 350602, 350700, 350801, 350802, 410100, 410200, 410300, 410401, 410402, 410500, 410600, 410701, 410702, 410800, 410900, 411000, 411100, 411200, 411300, 411400, 411501, 411502, 411600, 411700, 411800, 411900, 412000, 412100, 412200, 412300, 412400, 412500, 412600, 412700, 412800, 412900, 413000, 413100, 413201, 413202, 413300, 420100, 420200, 420300, 420400, 420500, 420600, 420700, 420800, 420900, 421000, 421101, 421102, 421201, 421202, 421300, 421401, 421402, 421403, 421500, 421600, 421700, 421800, 421900, 422000, 422100, 422200, 422301, 422302, 422401, 422402, 422500, 422600, 422701, 422702, 422800, 422900, 423000, 423100, 423201, 423202, 423301, 423302, 423401, 423402, 423500, 423600, 430100, 430200, 430300, 430400, 430500, 430600, 430700, 430800, 430900, 431000, 431101, 431102, 431201, 431202, 431301, 431302, 431401, 431402, 431501, 431502, 431600, 431700, 431801, 431802, 431900, 432001, 432002, 432100, 432200, 432300, 432400, 432500, 432600, 432701, 432702, 432801, 432802, 432901, 432902, 433001, 433002, 433003, 433100, 433201, 433202, 433300, 433400, 433501, 433502, 433600, 440100, 450100, 450200, 450300, 450400, 450500, 450600, 450700, 450801, 450802, 450900, 451001, 451002, 451100, 451200, 451300, 451401, 451402, 451403, 451500, 451601, 451602, 451700, 451800, 451901, 451902, 452000, 452100, 452201, 452202, 452300, 452400, 452500, 452600, 452700, 452801, 452802, 452900, 453000, 453100, 453200, 453300, 453401, 453402, 453403, 453501, 453502, 453601, 453602, 453700, 453800, 453900, 454000, 454100, 454200, 454301, 454302, 454400, 454501, 454502, 454600, 454700, 454800, 454900, 455000, 455101, 455102, 455200, 455300, 510100, 510200, 510300, 510400, 510500, 510600, 510700, 510800, 510900, 511001, 511002, 511100, 511200, 511301, 511302, 511400, 511500, 511600, 520100, 520200, 520300, 520400, 520500, 520601, 520602, 520700, 521000, 521100, 521200, 521300, 521400, 521500, 521600, 521700, 521800, 521900, 522000, 522100, 522201, 522202, 522301, 522302, 522401, 522402, 522500, 530100, 530200, 530300, 530400, 530500, 530600, 530700, 530800, 530900, 531000, 531100, 531200, 531300, 531400, 531500, 531600, 531700, 531800, 531900, 532001, 532002, 532100, 532200, 532300, 532400, 532501, 532502, 532600, 532700, 532800, 532900, 533000, 533100, 533200, 533300, 533400, 533500, 533600, 533701, 533702, 533801, 533802, 533901, 533902, 534001, 534002, 534003, 534100, 534201, 534202, 534203, 540100, 540200, 540501, 540502, 540601, 540602, 540700, 540800, 540901, 540902, 541001, 541002, 541003, 541100, 541201, 541202, 541203, 541300, 541400, 541500, 541601, 541602, 541700, 541800, 541900, 542000, 542101, 542102, 542200, 542301, 542302, 542400, 542500, 542600, 542700, 542800, 542900, 543001, 543002, 543003, 543100, 543200, 550100, 550200, 550301, 550302, 550401, 550402, 550500, 550601, 550602, 550603, 550700, 550800, 550900, 551000, 551100, 551200, 551300, 551400, 551500, 551600, 551701, 551702, 551703, 551800, 551900, 552001, 552002, 552101, 552102, 552103, 552200, 552301, 552302, 552400, 552500, 552601, 552602, 552700, 552800, 552900, 553001, 553002, 553100, 553200, 553300, 553401, 553402, 553403, 553500, 553600, 553700, 553801, 553802, 553900, 554001, 554002, 554101, 554102, 554200, 554301, 554302, 554401, 554402, 554403, 554501, 554502, 554600, 554700, 554801, 554802, 554901, 554902, 554903, 555000, 555100, 555200, 555301, 555302, 555303, 555401, 555402, 555501, 555502, 555600, 555701, 555702, 556000, 980000, 980100],
'203' : [020102, 020103, 020104, 020200, 020301, 020302, 020401, 020402, 020501, 020502, 020603, 020604, 020605, 020606],
'205' : [950200],
'207' : [950300, 950400],
'209' : [010100, 010200, 010302, 010303, 010304, 010400, 010500, 010600, 010701, 010702, 010803, 010804, 010805, 010806, 010807, 010808, 010809, 010901, 010902, 010905, 010906, 010907, 010908, 010909, 010910],
'211' : [950300],
'213' : [950100, 950200, 950300, 950400, 950500, 950601, 950602, 950700, 950800, 950901, 950902, 950903, 951000, 951100, 951200, 951300, 951400],
'215' : [020101, 020102, 020201, 020202, 020204, 020205, 020301, 020302, 020402, 020403, 020404, 020501, 020503, 020504, 020600, 020701, 020721, 020723, 020724, 020725, 020726, 020802, 020803, 020804, 020901, 020903, 020904, 021000, 021100, 021201, 021202, 021302, 021303, 021304, 021305, 021401, 021403, 021404, 021500, 021600, 021701, 021702, 021803, 021804, 021805, 021806, 021901, 021903, 021904, 022001, 022003, 022004, 022103, 022104, 022105, 022106, 022201, 022203, 022204, 022300, 022401, 022402, 022501, 022502, 022600, 022701, 022702, 022800, 022900, 023000, 023102, 023103, 023104, 023503, 023504, 023507, 023509, 023510, 023511, 023512, 023513, 023514, 023515, 023600, 023700, 023801, 023802, 023902, 023903, 023904, 024000, 024105, 024106, 024107, 024108, 024109, 024110, 024111, 024112, 024113, 024114, 024201, 024203, 024204, 024205, 024301, 024302, 024402, 024403, 024404, 024500, 024600, 980000],
'217' : [960100, 960200, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100, 961400],
'219' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
'221' : [160100, 160204, 160205, 160206, 160207, 160208, 160209, 160210, 160301, 160302],
'223' : [950100, 950200, 950300, 950401, 950402, 950500, 950600, 950700, 950800],
'225' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
'227' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950801, 950802, 950900],
'229' : [950300],
'231' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100, 961200, 961300, 961400, 961501, 961502, 961503, 961600, 961700],
'233' : [950200, 950500, 950600, 950700, 950800, 950900, 951000],
'235' : [950100],
'237' : [950100, 950300, 950500],
'239' : [950100, 950200, 950300],
'241' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
'243' : [950100],
'245' : [000101, 000102, 000103, 000200, 000302, 000304, 000306, 000307, 000308, 000309, 000310, 000400, 000500, 000600, 000700, 000900, 001100, 001200, 001301, 001302, 001303, 001700, 001900, 002000, 002100, 002200, 002300, 002400, 002500, 002600, 005100, 005400, 005500, 005600, 005900, 006100, 006300, 006400, 006500, 006600, 006700, 006800, 006900, 007001, 007002, 007100, 010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010901, 010902, 011001, 011002, 011101, 011102, 011201, 011202, 011203, 011302, 011303, 011304, 011400, 011500, 011600, 011700, 011800, 980000, 990000],
'247' : [950200, 950400],
'249' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
'251' : [130100, 130204, 130205, 130207, 130208, 130210, 130211, 130212, 130213, 130214, 130215, 130302, 130303, 130304, 130405, 130406, 130407, 130408, 130409, 130410, 130500, 130601, 130602, 130700, 130800, 130900, 131000, 131100],
'253' : [020101, 020102, 020200, 020300, 020400, 020500],
'255' : [970100, 970200, 970300, 970400],
'257' : [050201, 050203, 050204, 050205, 050206, 050300, 050400, 050500, 050600, 050701, 050703, 050704, 050800, 051000, 051100, 051201, 051202, 051300],
'259' : [970100, 970301, 970302, 970401, 970402, 970500],
'261' : [950100, 990000],
'263' : [950100],
'265' : [960100, 960200, 960301, 960302, 960401, 960402, 960500, 960600, 960700, 960800],
'267' : [950100, 950200],
'269' : [950100],
'271' : [950100],
'273' : [020100, 020200, 020300, 020400, 020500, 990000],
'275' : [950100, 950200],
'277' : [000101, 000102, 000200, 000300, 000401, 000402, 000500, 000600, 000700, 000800, 000900, 001000],
'279' : [950100, 950200, 950300, 950500, 950600],
'281' : [950100, 950301, 950302, 950400, 950500],
'283' : [950300],
'285' : [000100, 000200, 000300, 000400, 000500, 000600],
'287' : [000100, 000200, 000300, 000400],
'289' : [950100, 950200, 950300],
'291' : [700100, 700200, 700300, 700400, 700500, 700600, 700700, 700800, 700900, 701000, 701100, 701200, 701300, 701400],
'293' : [970100, 970200, 970300, 970400, 970500, 970600, 970700, 970800],
'295' : [950200, 950300],
'297' : [950100, 950200, 950300, 950400],
'299' : [970100, 970200, 970300, 970400, 970500, 970600],
'301' : [950100],
'303' : [000100, 000201, 000202, 000301, 000302, 000402, 000403, 000404, 000405, 000500, 000603, 000605, 000607, 000700, 000900, 001000, 001200, 001300, 001400, 001501, 001502, 001601, 001602, 001702, 001705, 001706, 001707, 001708, 001709, 001801, 001803, 001804, 001901, 001903, 001904, 002001, 002002, 002101, 002102, 002202, 002203, 002204, 002300, 002400, 002500, 010101, 010102, 010200, 010301, 010302, 010402, 010403, 010404, 010405, 010406, 010407, 010408, 010502, 010504, 010505, 010506, 010508, 010509, 010510, 010511, 010600, 010700, 980000],
'305' : [950400, 950500, 950600],
'307' : [950300, 950400, 950500],
'309' : [000100, 000200, 000300, 000400, 000598, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002302, 002498, 002501, 002503, 002504, 002600, 002700, 002800, 002900, 003000, 003200, 003300, 003400, 003500, 003601, 003602, 003701, 003703, 003706, 003707, 003708, 003801, 003802, 003900, 004000, 004102, 004103, 004201, 004202, 004300, 980000],
'311' : [950100],
'313' : [000100, 000200, 000300, 000400],
'315' : [950100, 950200, 950300, 950400],
'317' : [950100, 950200],
'319' : [950100, 950200],
'321' : [730100, 730201, 730202, 730301, 730302, 730303, 730400, 730501, 730600, 730700, 990000],
'323' : [950201, 950204, 950205, 950300, 950400, 950500, 950601, 950602, 950700],
'325' : [000101, 000102, 000200, 000300, 000401, 000402, 000500, 000800],
'327' : [950300],
'329' : [000100, 000200, 000302, 000303, 000304, 000305, 000401, 000402, 000500, 000600, 001100, 001200, 001300, 001400, 001500, 001700, 010104, 010105, 010106, 010107, 010108, 010109, 010112, 010113, 010114, 010200, 980000],
'331' : [950100, 950300, 950401, 950402, 950500, 950700, 950800],
'333' : [950100, 950200],
'335' : [950200, 950400],
'337' : [950100, 950200, 950300, 950400, 950500, 950600],
'339' : [690100, 690201, 690202, 690300, 690401, 690402, 690500, 690601, 690602, 690700, 690800, 690900, 691000, 691100, 691200, 691301, 691302, 691400, 691500, 691601, 691602, 691700, 691800, 691900, 692001, 692002, 692100, 692200, 692300, 692400, 692500, 692601, 692602, 692700, 692801, 692802, 692900, 693000, 693101, 693102, 693200, 693300, 693400, 693500, 693600, 693700, 693800, 693900, 694000, 694101, 694102, 694201, 694202, 694301, 694302, 694400, 694500, 694600, 694700],
'341' : [950100, 950200, 950300, 950400],
'343' : [950100, 950200, 950300],
'345' : [950100],
'347' : [950100, 950200, 950301, 950302, 950400, 950501, 950502, 950600, 950700, 950800, 950900, 951000, 951100],
'349' : [970100, 970200, 970300, 970400, 970500, 970600, 970700, 970800, 970900, 971000],
'351' : [950100, 950200, 950300, 950400],
'353' : [950100, 950200, 950300, 950400, 950500],
'355' : [000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001601, 001602, 001701, 001702, 001801, 001802, 001902, 001903, 001904, 002001, 002002, 002101, 002102, 002200, 002301, 002303, 002304, 002400, 002500, 002601, 002602, 002603, 002703, 002704, 002705, 002706, 002900, 003001, 003002, 003101, 003102, 003202, 003203, 003204, 003303, 003304, 003305, 003306, 003401, 003402, 003500, 003601, 003602, 003603, 003700, 005102, 005404, 005406, 005407, 005408, 005409, 005410, 005411, 005412, 005413, 005414, 005415, 005416, 005417, 005601, 005602, 005801, 005802, 005900, 006000, 006100, 006200, 006300, 006400, 980000, 990000],
'357' : [950100, 950300, 950400],
'359' : [950100],
'361' : [020200, 020300, 020500, 020700, 020800, 020900, 021000, 021100, 021200, 021300, 021400, 021501, 021502, 021600, 021700, 021800, 021900, 022000, 022200, 022300, 022400],
'363' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900],
'365' : [950100, 950200, 950300, 950400, 950500, 950600],
'367' : [140101, 140102, 140200, 140300, 140403, 140405, 140407, 140408, 140409, 140410, 140411, 140501, 140502, 140601, 140602, 140703, 140704, 140705, 140706],
'369' : [950200, 950300],
'371' : [950100, 950300, 950400, 950500],
'373' : [210101, 210102, 210203, 210204, 210205, 210206, 210301, 210302, 210400, 210500],
'375' : [010100, 010200, 010300, 010400, 010600, 010700, 011000, 011500, 011600, 011700, 011800, 011900, 012000, 012200, 012600, 012800, 013000, 013200, 013300, 013400, 013900, 014100, 014300, 014401, 014500, 014700, 014800, 014900, 015000, 015100, 015200, 015300, 015400, 980000],
'377' : [950100, 950200],
'379' : [950100, 950200],
'381' : [020100, 020200, 020300, 020400, 020500, 020600, 020800, 020900, 021000, 021101, 021102, 021200, 021300, 021500, 021602, 021603, 021604, 021605, 021606, 021608, 021609, 021702, 021703, 021704, 021801, 021802, 021900, 022001, 022002],
'383' : [950100],
'385' : [950100],
'387' : [950100, 950500, 950600, 950700],
'389' : [950100, 950200, 950300, 950400, 950500],
'391' : [950200, 950400],
'393' : [950100],
'395' : [960100, 960200, 960300, 960400, 960500],
'397' : [040101, 040102, 040200, 040301, 040302, 040401, 040402, 040503, 040504, 040505, 040506],
'399' : [950100, 950200, 950500, 950600],
'401' : [950100, 950200, 950300, 950400, 950501, 950502, 950600, 950700, 950800, 950900, 951000, 951100, 951200],
'403' : [950100, 950200, 950300],
'405' : [950100, 950200, 950300],
'407' : [200101, 200102, 200200, 200300],
'409' : [010201, 010202, 010301, 010302, 010500, 010601, 010602, 010603, 010604, 010700, 010800, 010900, 011000, 011100, 011200, 011300],
'411' : [950100, 950200],
'413' : [950300],
'415' : [950100, 950200, 950300, 950600],
'417' : [950300],
'419' : [950100, 950200, 950300, 950400, 950500, 950600],
'421' : [950200],
'423' : [000100, 000201, 000202, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001101, 001102, 001200, 001300, 001401, 001403, 001404, 001500, 001601, 001602, 001604, 001700, 001801, 001802, 001803, 001901, 001905, 001906, 001907, 001908, 002003, 002004, 002006, 002007, 002008, 002009, 002101, 002102, 002200, 980000],
'425' : [000100, 000200],
'427' : [950101, 950104, 950105, 950106, 950107, 950108, 950202, 950203, 950204, 950401, 950402, 950500, 950600, 950701, 950702],
'429' : [950200, 950300, 950500],
'431' : [950100],
'433' : [950300],
'435' : [950300],
'437' : [950200, 950300, 950400],
'439' : [100101, 100102, 100201, 100202, 100300, 100400, 100501, 100502, 100601, 100602, 100700, 100800, 100900, 101201, 101202, 101301, 101302, 101401, 101402, 101403, 101500, 101700, 102000, 102100, 102201, 102202, 102301, 102302, 102401, 102402, 102500, 102601, 102602, 102700, 102800, 103500, 103601, 103602, 103701, 103702, 103800, 104100, 104201, 104202, 104300, 104400, 104502, 104503, 104504, 104505, 104601, 104602, 104603, 104604, 104605, 104701, 104702, 104802, 104803, 104804, 104900, 105001, 105006, 105007, 105008, 105201, 105203, 105204, 105205, 105403, 105404, 105405, 105406, 105502, 105503, 105505, 105507, 105508, 105510, 105511, 105512, 105513, 105514, 105600, 105701, 105703, 105704, 105800, 105901, 105902, 106001, 106002, 106004, 106101, 106102, 106201, 106202, 106300, 106400, 106502, 106503, 106507, 106509, 106510, 106511, 106512, 106513, 106514, 106515, 106516, 106517, 106518, 106600, 106700, 110101, 110102, 110202, 110203, 110204, 110301, 110302, 110401, 110402, 110500, 110600, 110701, 110703, 110704, 110805, 110806, 110807, 110808, 110809, 110901, 110903, 110905, 110906, 110907, 111003, 111005, 111008, 111010, 111011, 111012, 111013, 111015, 111016, 111017, 111018, 111102, 111103, 111104, 111202, 111203, 111204, 111301, 111304, 111306, 111307, 111308, 111309, 111310, 111311, 111312, 111313, 111314, 111402, 111404, 111405, 111406, 111407, 111408, 111409, 111505, 111506, 111513, 111514, 111516, 111521, 111522, 111523, 111524, 111525, 111526, 111529, 111530, 111531, 111532, 111533, 111534, 111536, 111537, 111538, 111539, 111540, 111541, 111542, 111543, 111544, 111545, 111546, 111547, 111548, 111549, 111550, 111551, 111552, 111553, 113001, 113002, 113102, 113104, 113107, 113108, 113109, 113110, 113111, 113112, 113113, 113114, 113115, 113116, 113206, 113207, 113210, 113212, 113213, 113214, 113215, 113216, 113217, 113218, 113220, 113221, 113301, 113302, 113403, 113404, 113405, 113407, 113408, 113509, 113510, 113511, 113512, 113513, 113514, 113516, 113517, 113518, 113519, 113520, 113607, 113610, 113611, 113612, 113613, 113618, 113619, 113622, 113623, 113624, 113625, 113626, 113627, 113628, 113629, 113630, 113631, 113632, 113633, 113634, 113703, 113705, 113707, 113709, 113710, 113711, 113803, 113808, 113809, 113810, 113811, 113812, 113813, 113814, 113815, 113816, 113906, 113907, 113908, 113909, 113910, 113911, 113912, 113916, 113917, 113918, 113919, 113920, 113921, 113922, 113923, 113924, 113925, 113926, 113927, 113928, 113929, 114003, 114005, 114006, 114007, 114008, 114102, 114103, 114104, 114203, 114204, 114205, 114206, 114207, 121601, 121604, 121605, 121606, 121608, 121609, 121610, 121611, 121702, 121703, 121704, 121903, 121904, 121905, 121906, 122001, 122002, 122100, 122200, 122300, 122400, 122500, 122600, 122700, 122801, 122802, 122900, 123000, 123100, 123200, 123300, 123400, 123500, 123600, 980000],
'441' : [010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011200, 011300, 011400, 011500, 011600, 011700, 011900, 012000, 012100, 012200, 012300, 012400, 012500, 012600, 012700, 012801, 012802, 012900, 013000, 013100, 013200, 013300, 013401, 013402, 013404, 013500, 013600, 980000],
'443' : [950100],
'445' : [950100, 950300, 950400],
'447' : [950300],
'449' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
'451' : [000100, 000200, 000300, 000400, 000700, 000801, 000802, 000900, 001000, 001101, 001102, 001200, 001301, 001303, 001304, 001400, 001500, 001600, 001702, 001704, 001706, 001707, 001708, 001800, 980000],
'453' : [000101, 000102, 000203, 000204, 000205, 000206, 000302, 000304, 000305, 000306, 000307, 000401, 000402, 000500, 000601, 000603, 000604, 000700, 000801, 000802, 000803, 000804, 000901, 000902, 001000, 001100, 001200, 001303, 001304, 001305, 001307, 001308, 001401, 001402, 001403, 001501, 001503, 001504, 001505, 001602, 001603, 001604, 001605, 001606, 001705, 001706, 001707, 001712, 001713, 001714, 001716, 001718, 001719, 001722, 001728, 001729, 001733, 001737, 001738, 001740, 001741, 001742, 001745, 001746, 001747, 001748, 001749, 001750, 001751, 001752, 001753, 001754, 001755, 001756, 001757, 001760, 001761, 001764, 001765, 001766, 001768, 001769, 001770, 001771, 001772, 001773, 001774, 001775, 001776, 001777, 001778, 001779, 001780, 001781, 001782, 001783, 001784, 001785, 001786, 001804, 001805, 001806, 001811, 001812, 001813, 001817, 001818, 001819, 001820, 001821, 001822, 001823, 001824, 001826, 001828, 001829, 001832, 001833, 001834, 001835, 001839, 001840, 001841, 001842, 001843, 001844, 001845, 001846, 001847, 001848, 001849, 001850, 001851, 001853, 001854, 001855, 001856, 001857, 001858, 001859, 001860, 001861, 001862, 001863, 001864, 001901, 001908, 001910, 001911, 001912, 001913, 001914, 001915, 001916, 001917, 001918, 001919, 002002, 002003, 002004, 002005, 002104, 002105, 002106, 002107, 002108, 002109, 002110, 002111, 002112, 002113, 002201, 002202, 002207, 002208, 002209, 002210, 002211, 002212, 002304, 002307, 002308, 002310, 002312, 002313, 002314, 002315, 002316, 002317, 002318, 002319, 002402, 002403, 002407, 002409, 002410, 002411, 002412, 002413, 002419, 002421, 002422, 002423, 002424, 002425, 002426, 002427, 002428, 002429, 002430, 002431, 002432, 002433, 002434, 002435, 002436, 002500, 980000],
'455' : [950100, 950200, 950300, 950400, 950500],
'457' : [950100, 950200, 950300, 950400, 950500],
'459' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
'461' : [950100, 950200],
'463' : [950100, 950200, 950300, 950400, 950500],
'465' : [950201, 950301, 950302, 950400, 950500, 950601, 950602, 950700, 950800, 980000],
'467' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000],
'469' : [000100, 000201, 000202, 000301, 000302, 000400, 000501, 000502, 000601, 000602, 000700, 000800, 001300, 001400, 001501, 001503, 001504, 001601, 001604, 001605, 001606, 001700, 980000],
'471' : [790101, 790102, 790103, 790200, 790300, 790400, 790500, 790600, 790700, 790800],
'473' : [680100, 680200, 680300, 680400, 680500, 680600],
'475' : [950100, 950200, 950300],
'477' : [170100, 170200, 170300, 170400, 170500, 170600],
'479' : [000101, 000105, 000106, 000107, 000108, 000109, 000200, 000300, 000601, 000602, 000700, 000800, 000901, 000903, 000904, 001001, 001003, 001004, 001101, 001103, 001104, 001105, 001201, 001202, 001300, 001401, 001402, 001501, 001502, 001601, 001602, 001706, 001709, 001710, 001711, 001712, 001713, 001714, 001715, 001716, 001717, 001718, 001719, 001720, 001721, 001722, 001806, 001807, 001808, 001809, 001810, 001811, 001812, 001813, 001814, 001815, 001816, 001817, 001818, 001900, 980000],
'481' : [740100, 740200, 740300, 740400, 740500, 740600, 740700, 740800, 740900, 741000, 741100],
'483' : [950100, 950300],
'485' : [010100, 010200, 010400, 010600, 010700, 010800, 010900, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 011900, 012000, 012100, 012200, 012300, 012400, 012600, 012700, 012800, 012900, 013000, 013100, 013200, 013300, 013401, 013501, 013502, 013600, 013700, 013800, 980000],
'487' : [950300, 950500, 950600, 950700],
'489' : [950300, 950400, 950500, 950600, 950700, 990000],
'491' : [020105, 020106, 020107, 020108, 020109, 020110, 020111, 020112, 020113, 020114, 020115, 020201, 020202, 020203, 020204, 020301, 020302, 020310, 020311, 020312, 020313, 020314, 020315, 020316, 020317, 020318, 020319, 020320, 020321, 020322, 020323, 020324, 020325, 020326, 020327, 020328, 020403, 020404, 020405, 020406, 020408, 020409, 020410, 020411, 020503, 020504, 020505, 020506, 020507, 020508, 020509, 020510, 020602, 020603, 020604, 020605, 020701, 020703, 020704, 020706, 020707, 020708, 020803, 020804, 020805, 020806, 020807, 020808, 020809, 020900, 021000, 021100, 021201, 021202, 021203, 021300, 021401, 021402, 021403, 021502, 021503, 021504, 021505, 021506, 021507, 021508, 021601, 021602, 021603],
'493' : [000102, 000103, 000104, 000201, 000202, 000300, 000402, 000403, 000404, 000500, 000600],
'495' : [950200, 950300, 950400],
'497' : [150101, 150102, 150200, 150300, 150401, 150402, 150403, 150500, 150601, 150602, 150603],
'499' : [950100, 950200, 950301, 950302, 950400, 950500, 950601, 950602, 950700, 950800],
'501' : [950100, 950200],
'503' : [950200, 950400, 950500, 950600],
'505' : [950301, 950302, 950400],
'507' : [950100, 950200, 950301, 950302]]]]]></entry>
        <entry id="census2010_ut" type="java"><![CDATA[[
    '001' : [100100, 100200],
    '003' : [960100, 960200, 960300, 960400, 960500, 960601, 960602, 960701, 960702, 960801, 960802],
    '005' : [101, 102, 201, 202, 300, 401, 402, 403, 501, 502, 600, 701, 702, 800, 900, 1001, 1002, 1101, 1102, 1201, 1202, 1300, 1401, 1402, 1500, 980100],
    '007' : [100, 200, 300, 500, 600],
    '009' : [960100],
    '011' : [125102, 125103, 125104, 125200, 125301, 125303, 125304, 125305, 125401, 125403, 125405, 125406, 125501, 125502, 125503, 125600, 125701, 125702, 125801, 125804, 125805, 125807, 125808, 125905, 125906, 125907, 125908, 126001, 126002, 126101, 126104, 126105, 126202, 126203, 126204, 126303, 126304, 126305, 126306, 126402, 126404, 126405, 126406, 126500, 126600, 126700, 126801, 126802, 126901, 126902, 127002, 127003, 127004, 127100],
    '013' : [940300, 940500, 940600],
    '015' : [976200, 976300, 976500],
    '017' : [300, 400],
    '019' : [200, 300],
    '021' : [110100, 110200, 110300, 110400, 110500, 110600, 110701, 110702],
    '023' : [10100, 10200],
    '025' : [130100, 130200],
    '027' : [974100, 974200, 974300],
    '029' : [970100, 970200],
    '031' : [960100],
    '033' : [950100],
    '035' : [100100, 100200, 100306, 100307, 100308, 100500, 100600, 100700, 100800, 101000, 101101, 101102, 101200, 101400, 101500, 101600, 101700, 101800, 101900, 102000, 102100, 102300, 102500, 102600, 102701, 102702, 102801, 102802, 102900, 103000, 103100, 103200, 103300, 103400, 103500, 103600, 103700, 103800, 103900, 104000, 104100, 104200, 104300, 104400, 104700, 104800, 104900, 110102, 110103, 110104, 110200, 110300, 110401, 110402, 110500, 110600, 110701, 110702, 110800, 110900, 111001, 111002, 111101, 111102, 111103, 111201, 111202, 111302, 111304, 111305, 111306, 111400, 111500, 111600, 111701, 111702, 111801, 111802, 111903, 111904, 111905, 111906, 112001, 112002, 112100, 112201, 112202, 112301, 112302, 112402, 112403, 112404, 112501, 112502, 112503, 112604, 112605, 112608, 112609, 112610, 112611, 112612, 112613, 112614, 112615, 112616, 112617, 112618, 112619, 112700, 112804, 112805, 112810, 112812, 112813, 112814, 112815, 112816, 112817, 112818, 112819, 112820, 112821, 112822, 112823, 112904, 112905, 112907, 112912, 112913, 112914, 112916, 112917, 112918, 112920, 112921, 113007, 113008, 113010, 113011, 113012, 113013, 113014, 113016, 113017, 113019, 113020, 113101, 113102, 113105, 113107, 113108, 113305, 113306, 113307, 113308, 113309, 113310, 113406, 113407, 113408, 113409, 113410, 113411, 113412, 113413, 113505, 113509, 113510, 113511, 113512, 113513, 113514, 113515, 113520, 113521, 113522, 113523, 113525, 113526, 113527, 113528, 113532, 113533, 113534, 113535, 113536, 113537, 113538, 113539, 113600, 113701, 113702, 113801, 113802, 113803, 113903, 113904, 113905, 113906, 113907, 114000, 114100, 114200, 114300, 114500, 114600, 114700, 114800, 115106, 115209, 980000],
    '037' : [942000, 942100, 978100, 978200],
    '039' : [972100, 972200, 972300, 972400, 972500],
    '041' : [975100, 975200, 975300, 975400, 975500],
    '043' : [964101, 964102, 964201, 964202, 964203, 964303, 964304, 964305, 964306, 964307, 964308, 964401, 964402],
    '045' : [130600, 130701, 130702, 130703, 130800, 130900, 131001, 131002, 131100, 131200, 980000],
    '047' : [940201, 968200, 968301, 968302, 968401, 968402],
    '049' : [102, 103, 104, 105, 203, 204, 205, 206, 400, 504, 505, 506, 507, 508, 509, 601, 603, 604, 703, 706, 707, 708, 709, 710, 711, 801, 802, 901, 903, 904, 1001, 1002, 1103, 1105, 1106, 1107, 1108, 1201, 1202, 1300, 1401, 1402, 1501, 1503, 1504, 1601, 1602, 1603, 1701, 1702, 1801, 1802, 1803, 1900, 2000, 2101, 2102, 2201, 2204, 2205, 2206, 2207, 2300, 2400, 2500, 2701, 2702, 2801, 2802, 2901, 2902, 3001, 3002, 3103, 3104, 3105, 3106, 3201, 3203, 3204, 3205, 3300, 3401, 3402, 3403, 10103, 10104, 10105, 10106, 10107, 10108, 10109, 10110, 10111, 10112, 10113, 10208, 10209, 10210, 10211, 10212, 10213, 10214, 10215, 10216, 10217, 10218, 10219, 10220, 10303, 10304, 10305, 10404, 10405, 10406, 10407, 10408, 10409, 10410, 10411, 10503, 10504, 10505, 10506, 10600, 10700, 10900, 980100],
    '051' : [940500, 960100, 960200, 960400],
    '053' : [270100, 270200, 270300, 270400, 270500, 270600, 270700, 270801, 270802, 270901, 270902, 271000, 271100, 271200, 271300, 271400, 271500, 271600, 271701, 271702, 271800],
    '055' : [979100],
    '057' : [200100, 200202, 200203, 200204, 200300, 200400, 200500, 200600, 200700, 200800, 200900, 201100, 201200, 201301, 201302, 201400, 201500, 201600, 201700, 201800, 201900, 202000, 210100, 210201, 210203, 210204, 210302, 210303, 210304, 210402, 210403, 210404, 210504, 210505, 210506, 210508, 210509, 210510, 210511, 210512, 210600, 210701, 210703, 210704, 210800, 210900, 211000, 211100, 211201, 211202]
]]]></entry>
        <entry id="census2010_wa" type="java"><![CDATA[[
    '009' : [200, 300, 400, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000, 2100, 2300, 940000, 990100],
    '027' : [200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600, 940000, 990000],
    '029' : [970100, 970200, 970300, 970400, 970500, 970601, 970602, 970700, 970800, 970900, 971000, 971100, 971300, 971400, 971500, 971600, 971700, 971800, 971900, 972000, 972100, 992201],
    '031' : [950202, 950300, 950400, 950500, 950601, 950602, 950702, 990000],
    '033' : [100, 200, 300, 401, 402, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1701, 1702, 1800, 1900, 2000, 2100, 2200, 2400, 2500, 2600, 2700, 2800, 2900, 3000, 3100, 3200, 3300, 3400, 3500, 3600, 3800, 3900, 4000, 4100, 4200, 4301, 4302, 4400, 4500, 4600, 4700, 4800, 4900, 5000, 5100, 5200, 5301, 5302, 5400, 5600, 5700, 5801, 5802, 5900, 6000, 6100, 6200, 6300, 6400, 6500, 6600, 6700, 6800, 6900, 7000, 7100, 7200, 7300, 7401, 7402, 7500, 7600, 7700, 7800, 7900, 8001, 8002, 8100, 8200, 8300, 8400, 8500, 8600, 8700, 8800, 8900, 9000, 9100, 9200, 9300, 9400, 9500, 9600, 9701, 9702, 9800, 9900, 10001, 10002, 10100, 10200, 10300, 10401, 10402, 10500, 10600, 10701, 10702, 10800, 10900, 11001, 11002, 11101, 11102, 11200, 11300, 11401, 11402, 11500, 11600, 11700, 11800, 11900, 12000, 12100, 20100, 20200, 20300, 20401, 20402, 20500, 20600, 20700, 20800, 20900, 21000, 21100, 21300, 21400, 21500, 21600, 21700, 21802, 21803, 21804, 21903, 21904, 21905, 21906, 22001, 22003, 22005, 22006, 22101, 22102, 22201, 22202, 22203, 22300, 22400, 22500, 22603, 22604, 22605, 22606, 22701, 22702, 22703, 22801, 22802, 22803, 22901, 22902, 23000, 23100, 23201, 23202, 23300, 23401, 23403, 23404, 23500, 23601, 23603, 23604, 23700, 23801, 23803, 23804, 23900, 24000, 24100, 24200, 24300, 24400, 24500, 24601, 24602, 24701, 24702, 24800, 24901, 24902, 24903, 25001, 25003, 25005, 25006, 25101, 25102, 25200, 25301, 25302, 25400, 25500, 25601, 25602, 25701, 25702, 25803, 25804, 25805, 25806, 26001, 26002, 26100, 26200, 26300, 26400, 26500, 26600, 26700, 26801, 26802, 27000, 27100, 27200, 27300, 27400, 27500, 27600, 27701, 27702, 27800, 27900, 28000, 28100, 28200, 28300, 28402, 28403, 28500, 28600, 28700, 28801, 28802, 28901, 28902, 29001, 29003, 29004, 29101, 29102, 29203, 29204, 29205, 29206, 29303, 29304, 29305, 29306, 29307, 29403, 29405, 29406, 29407, 29408, 29502, 29503, 29504, 29601, 29602, 29700, 29801, 29802, 29901, 29902, 30003, 30004, 30005, 30006, 30100, 30201, 30202, 30304, 30305, 30306, 30308, 30309, 30310, 30311, 30312, 30313, 30314, 30401, 30403, 30404, 30501, 30503, 30504, 30600, 30700, 30801, 30802, 30901, 30902, 31000, 31100, 31202, 31204, 31205, 31206, 31301, 31302, 31400, 31501, 31502, 31601, 31603, 31604, 31605, 31703, 31704, 31705, 31706, 31800, 31903, 31904, 31906, 31907, 31908, 31909, 32002, 32003, 32005, 32006, 32007, 32008, 32010, 32011, 32102, 32103, 32104, 32203, 32207, 32208, 32210, 32211, 32212, 32213, 32214, 32215, 32307, 32309, 32311, 32313, 32315, 32316, 32317, 32318, 32319, 32320, 32321, 32322, 32323, 32324, 32325, 32326, 32327, 32328, 32329, 32401, 32402, 32500, 32601, 32602, 32702, 32703, 32704, 32800, 990100],
    '035' : [80101, 80102, 80200, 80300, 80400, 80500, 80600, 80700, 80800, 80900, 81000, 81100, 81200, 81400, 90101, 90102, 90201, 90202, 90300, 90400, 90501, 90502, 90700, 90800, 90900, 91000, 91100, 91201, 91203, 91204, 91301, 91302, 91400, 91500, 91600, 91700, 91800, 91900, 92000, 92100, 92200, 92300, 92400, 92500, 92600, 92701, 92704, 92801, 92802, 92803, 92901, 92902, 940000, 940100, 990100],
    '045' : [940000, 960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100, 961200, 961300],
    '053' : [60200, 60300, 60400, 60500, 60600, 60700, 60800, 60903, 60904, 60905, 60906, 61001, 61002, 61100, 61200, 61300, 61400, 61500, 61601, 61602, 61700, 61800, 61900, 62000, 62300, 62400, 62500, 62600, 62801, 62802, 62900, 63000, 63100, 63200, 63300, 63400, 63501, 63502, 70100, 70203, 70204, 70205, 70206, 70207, 70307, 70308, 70309, 70310, 70311, 70312, 70313, 70314, 70315, 70316, 70401, 70403, 70404, 70703, 71100, 71205, 71206, 71207, 71208, 71209, 71210, 71304, 71305, 71306, 71307, 71309, 71310, 71403, 71406, 71407, 71408, 71409, 71410, 71411, 71503, 71504, 71505, 71506, 71601, 71602, 71703, 71704, 71705, 71706, 71707, 71803, 71805, 71806, 71807, 71808, 71901, 71902, 72000, 72105, 72106, 72107, 72108, 72109, 72111, 72112, 72305, 72307, 72308, 72309, 72310, 72311, 72312, 72313, 72405, 72406, 72407, 72408, 72409, 72410, 72503, 72504, 72505, 72506, 72507, 72601, 72602, 72603, 72800, 72901, 72903, 72905, 72906, 72907, 73001, 73005, 73006, 73108, 73110, 73111, 73113, 73114, 73115, 73116, 73117, 73118, 73119, 73120, 73121, 73122, 73123, 73124, 73125, 73126, 73200, 73301, 73302, 73404, 73405, 73406, 73407, 73408, 73500, 940001, 940002, 940003, 940004, 940005, 940006, 940007, 940008, 940009, 940010, 940011],
    '055' : [960100, 960300, 960400, 960500, 990100],
    '057' : [940200, 940300, 940400, 940500, 940600, 940700, 940800, 950100, 950800, 950900, 951000, 951100, 951200, 951300, 951400, 951500, 951600, 951700, 951800, 951900, 952100, 952200, 952301, 952302, 952401, 952402, 952500, 952600, 952700, 990100],
    '061' : [40100, 40200, 40300, 40400, 40500, 40700, 40800, 40900, 41000, 41100, 41201, 41202, 41301, 41303, 41304, 41400, 41500, 41601, 41605, 41606, 41607, 41608, 41701, 41703, 41704, 41805, 41806, 41808, 41809, 41810, 41811, 41812, 41901, 41903, 41904, 41905, 42001, 42003, 42004, 42005, 42006, 50101, 50102, 50200, 50300, 50401, 50402, 50500, 50600, 50700, 50800, 50900, 51000, 51100, 51200, 51300, 51400, 51500, 51601, 51602, 51701, 51702, 51802, 51803, 51804, 51905, 51912, 51913, 51914, 51915, 51916, 51917, 51918, 51921, 51922, 51923, 51924, 51925, 51926, 51927, 51928, 52003, 52004, 52005, 52006, 52007, 52104, 52105, 52107, 52108, 52112, 52113, 52114, 52115, 52118, 52203, 52204, 52206, 52207, 52208, 52209, 52301, 52302, 52401, 52402, 52502, 52503, 52504, 52603, 52604, 52605, 52606, 52607, 52701, 52705, 52706, 52707, 52708, 52709, 52803, 52804, 52805, 52806, 52903, 52904, 52905, 52906, 53101, 53102, 53201, 53202, 53301, 53302, 53400, 53504, 53505, 53506, 53507, 53508, 53509, 53602, 53603, 53604, 53700, 53801, 53802, 53803, 940001, 940002, 990002, 990100],
    '067' : [10100, 10200, 10300, 10400, 10510, 10520, 10600, 10700, 10800, 10910, 10920, 11000, 11100, 11200, 11300, 11410, 11420, 11500, 11610, 11621, 11622, 11623, 11624, 11710, 11720, 11810, 11821, 11822, 11900, 12000, 12100, 12211, 12212, 12221, 12222, 12310, 12320, 12330, 12411, 12412, 12420, 12510, 12520, 12530, 12610, 12620, 12710, 12720, 12730, 990100],
    '073' : [100, 200, 300, 400, 501, 502, 600, 700, 803, 804, 805, 806, 901, 902, 1000, 1100, 1201, 1202, 10100, 10200, 10301, 10302, 10303, 10401, 10403, 10404, 10501, 10502, 10600, 10701, 10702, 10900, 11000, 940000]
]]]></entry>
        <entry id="census2010_wi" type="java"><![CDATA[['001' : [950100, 950201, 950202, 950400, 950501, 950502, 950700],
'003' : [940000, 950300, 950400, 950500, 950600, 950700, 950800, 990000],
'005' : [000100, 000200, 000300, 000400, 000500, 000600, 000800, 000900, 001001, 001002],
'007' : [960100, 960200, 960300, 960400, 960600, 990000],
'009' : [000100, 000200, 000302, 000303, 000401, 000402, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001600, 001701, 001702, 001801, 001802, 002001, 002002, 002003, 010100, 010201, 010202, 010300, 020100, 020203, 020204, 020502, 020503, 020504, 020600, 020702, 020703, 020704, 020800, 020900, 021000, 021100, 021200, 021301, 021302, 021303, 021304, 021400, 021500, 021600, 940001, 940002, 940003, 940004],
'011' : [960100, 960200, 960300, 960400, 960500],
'013' : [970400, 970600, 970700, 970800, 970900, 971000],
'015' : [020100, 020200, 020303, 020304, 020306, 020308, 020400, 020500, 020600, 020700, 020800],
'017' : [010100, 010200, 010300, 010400, 010500, 010700, 010800, 010900, 011000, 011100, 011200],
'019' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
'021' : [970100, 970200, 970300, 970400, 970500, 970600, 970700, 970800, 970900, 971000, 971100, 971200],
'023' : [960100, 960200, 960300, 960400, 960500, 960600],
'025' : [000100, 000201, 000202, 000204, 000205, 000300, 000401, 000402, 000405, 000406, 000407, 000408, 000501, 000503, 000504, 000600, 000700, 000800, 000901, 000902, 001000, 001101, 001102, 001200, 001300, 001401, 001402, 001403, 001501, 001502, 001603, 001604, 001605, 001606, 001704, 001705, 001802, 001804, 001900, 002000, 002100, 002200, 002301, 002302, 002401, 002402, 002500, 002601, 002602, 002603, 002700, 002800, 002900, 003001, 003002, 003100, 003200, 010100, 010200, 010300, 010400, 010501, 010502, 010600, 010701, 010702, 010800, 010901, 010903, 010904, 011000, 011101, 011102, 011200, 011301, 011302, 011401, 011402, 011503, 011504, 011505, 011506, 011600, 011700, 011800, 011900, 012001, 012002, 012100, 012201, 012202, 012300, 012400, 012501, 012502, 012600, 012700, 012800, 012900, 013000, 013100, 013200, 013301, 013302, 013700, 991702, 991703],
'027' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100, 961200, 961300, 961400, 961500, 961600, 961700, 961800, 961900, 962000],
'029' : [100100, 100300, 100400, 100500, 100600, 100700, 100800, 100900, 101000, 990000],
'031' : [020300, 020400, 020500, 020600, 020700, 020800, 020900, 021000, 021100, 030100, 030200, 030300, 990000],
'033' : [970100, 970200, 970300, 970400, 970500, 970600, 970700, 970800],
'035' : [000100, 000200, 000301, 000302, 000400, 000501, 000502, 000600, 000700, 000801, 000802, 000803, 000900, 001101, 001200, 001300, 001400, 001500, 001600, 001700],
'037' : [190100, 190200],
'039' : [040100, 040200, 040300, 040400, 040500, 040700, 040800, 040900, 041000, 041100, 041300, 041400, 041500, 041600, 041700, 041800, 041900, 042000, 042100, 042200],
'041' : [950100, 950200, 950300, 950400],
'043' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100, 961200],
'045' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800],
'047' : [100100, 100200, 100300, 100400, 100500, 100600],
'049' : [950100, 950200, 950300, 950400, 950500, 950600],
'051' : [180100, 180200, 180300, 990000],
'053' : [960100, 960200, 960300, 960400, 960500],
'055' : [100100, 100200, 100300, 100400, 100500, 100601, 100602, 100700, 100800, 100900, 101000, 101100, 101201, 101202, 101300, 101400, 101500, 101600, 101701, 101702],
'057' : [100100, 100200, 100300, 100400, 100500, 100600, 100700],
'059' : [000100, 000300, 000400, 000500, 000601, 000602, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002300, 002400, 002500, 002601, 002602, 002700, 002800, 002903, 002904, 002905, 002906, 003001, 003002, 990000],
'061' : [960100, 960200, 960400, 960500, 990000],
'063' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001101, 001102, 001200, 010101, 010102, 010201, 010202, 010203, 010300, 010401, 010402, 010500, 010600, 010700, 010800],
'065' : [970100, 970200, 970300, 970400, 970500],
'067' : [960100, 960300, 960400, 960500, 960600, 960700],
'069' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000],
'071' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 005100, 005200, 005300, 005400, 010100, 010200, 010300, 010400, 010500, 010600, 010700, 990000],
'073' : [000100, 000200, 000300, 000400, 000500, 000601, 000602, 000700, 000800, 000900, 001000, 001102, 001103, 001104, 001201, 001202, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002300],
'075' : [960100, 960200, 960600, 960700, 960800, 960900, 961000, 961100, 961200, 961300, 961400, 961500, 990000],
'077' : [960100, 960200, 960300, 960400, 960500],
'078' : [940101, 940102],
'079' : [000101, 000102, 000201, 000202, 000301, 000302, 000303, 000304, 000400, 000501, 000502, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002300, 002400, 002500, 002600, 002700, 002800, 002900, 003000, 003100, 003200, 003300, 003400, 003500, 003600, 003700, 003800, 003900, 004000, 004100, 004200, 004300, 004400, 004500, 004600, 004700, 004800, 004900, 005000, 005100, 005200, 005300, 005400, 005500, 005600, 005700, 005800, 005900, 006000, 006100, 006200, 006300, 006400, 006500, 006600, 006700, 006800, 006900, 007000, 007100, 007200, 007300, 007400, 007500, 007600, 007700, 007800, 007900, 008000, 008100, 008400, 008500, 008600, 008700, 008800, 008900, 009000, 009100, 009200, 009300, 009400, 009500, 009600, 009700, 009800, 009900, 010600, 010700, 010800, 011000, 011100, 011200, 011300, 011400, 012200, 012300, 012400, 012500, 012600, 012700, 012800, 012900, 013000, 013300, 013400, 013500, 013600, 013700, 014100, 014300, 014400, 014600, 014700, 014800, 014900, 015700, 015800, 015900, 016000, 016100, 016200, 016300, 016400, 016500, 016600, 016700, 016800, 016900, 017000, 017100, 017200, 017300, 017400, 017500, 017600, 017900, 018000, 018100, 018200, 018300, 018400, 018500, 018600, 018700, 018800, 018900, 019000, 019100, 019200, 019300, 019400, 019500, 019600, 019700, 019800, 019900, 020000, 020100, 020200, 020300, 020400, 020500, 020600, 020700, 020800, 020900, 021000, 021100, 021200, 021300, 021400, 021500, 021600, 021700, 021800, 030100, 035100, 035200, 040100, 050101, 050102, 060101, 060102, 060200, 070100, 070200, 070300, 080100, 080200, 080300, 080400, 090100, 090200, 090300, 090600, 090700, 090800, 090900, 091000, 091100, 091200, 091300, 091400, 100100, 100200, 100300, 100400, 100500, 100600, 100700, 100800, 100900, 101000, 101100, 101200, 101300, 101400, 101500, 101600, 101700, 101800, 110100, 120101, 120102, 120201, 120202, 120203, 120300, 120400, 120501, 120502, 130100, 130200, 140100, 140201, 140202, 150100, 150301, 150303, 150304, 160100, 160202, 160203, 160204, 160300, 170100, 170200, 170300, 170400, 170500, 170600, 170700, 180100, 180200, 180300, 180400, 180500, 185100, 185200, 185300, 185400, 185500, 185600, 185700, 185800, 185900, 186000, 186100, 186200, 186300, 186400, 186500, 186600, 186800, 186900, 187000, 187200, 187300, 187400, 980000, 990000],
'081' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900],
'083' : [100300, 100500, 100600, 100700, 100800, 100900, 101000, 101100, 101200, 101300, 990000],
'085' : [970101, 970102, 970400, 970500, 970601, 970602, 970800, 970900, 971001, 971002, 971100, 971300, 971400, 971500],
'087' : [010100, 010200, 010300, 010500, 010601, 010602, 010700, 010800, 010900, 011000, 011101, 011102, 011200, 011300, 011400, 011501, 011502, 011600, 011700, 011800, 011900, 012000, 012100, 012200, 012300, 012400, 012503, 012504, 012505, 012506, 012601, 012602, 012700, 012800, 012901, 012902, 013100, 013200, 013300, 940000],
'089' : [610101, 610102, 620100, 630100, 630201, 630202, 640100, 640200, 650101, 650102, 650200, 650300, 660100, 660201, 660202, 660301, 660303, 660304, 990000],
'091' : [950100, 950200],
'093' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800],
'095' : [960100, 960200, 960300, 960500, 960600, 960700, 960800, 960900, 961000, 961100],
'097' : [960100, 960200, 960300, 960400, 960500, 960600, 960701, 960702, 960800, 960900, 961000, 961100, 961200, 961300],
'099' : [970100, 970200, 970400, 970500, 970600, 970700],
'101' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000901, 000903, 000904, 001001, 001002, 001003, 001100, 001201, 001202, 001301, 001302, 001400, 001501, 001502, 001504, 001505, 001601, 001602, 001701, 001702, 001703, 001705, 001706, 001801, 001802, 001900, 002001, 002002, 002100, 002401, 002402, 002600, 002701, 002702, 002800, 980000, 990000],
'103' : [970100, 970200, 970300, 970400, 970500],
'105' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001201, 001202, 001302, 001303, 001304, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002300, 002400, 002500, 002601, 002602, 002700, 002800, 002900, 003001, 003002, 003100, 003200, 003300],
'107' : [960100, 960200, 960300, 960400, 960500],
'109' : [120100, 120201, 120202, 120300, 120400, 120501, 120502, 120600, 120700, 120800, 120901, 120903, 120904, 121000],
'111' : [000100, 000200, 000300, 000401, 000402, 000500, 000600, 000700, 000800, 000900, 001001, 001002, 001100],
'113' : [100300, 100400, 100500, 100700, 100800, 940000],
'115' : [100100, 100200, 100300, 100400, 100500, 100600, 100700, 100800, 100900, 101000, 101100],
'117' : [000100, 000201, 000202, 000300, 000400, 000500, 000800, 000900, 001000, 001100, 010100, 010200, 010300, 010400, 010501, 010502, 010601, 010602, 010700, 010800, 010900, 011000, 011100, 011200, 011300, 011400, 990000],
'119' : [960100, 960200, 960300, 960400, 960500, 960600],
'121' : [100100, 100200, 100300, 100400, 100500, 100600, 100700, 100800],
'123' : [960100, 960200, 960300, 960400, 960500, 960600, 960700],
'125' : [940000, 950200, 950500, 950600, 950700],
'127' : [000101, 000102, 000200, 000301, 000302, 000400, 000501, 000502, 000600, 000701, 000702, 000800, 000901, 000902, 001000, 001501, 001502, 001602, 001603, 001604, 001701, 001702],
'129' : [950100, 950200, 950300, 950500, 950600],
'131' : [400102, 400103, 400104, 410100, 420103, 420104, 420105, 420106, 420200, 420300, 420401, 420402, 430100, 440103, 440104, 440105, 440106, 440200, 450103, 450104, 450105, 450106, 460101, 460102, 470100, 470202, 470203, 470204],
'133' : [200101, 200102, 200103, 200201, 200202, 200300, 200400, 200500, 200600, 200700, 200801, 200803, 200804, 200901, 200902, 201000, 201101, 201102, 201201, 201202, 201203, 201300, 201402, 201403, 201404, 201503, 201504, 201505, 201506, 201600, 201701, 201703, 201704, 201800, 201900, 202001, 202002, 202101, 202102, 202103, 202201, 202202, 202301, 202302, 202400, 202500, 202600, 202700, 202800, 202901, 202902, 203000, 203101, 203102, 203103, 203200, 203303, 203304, 203305, 203306, 203402, 203403, 203404, 203405, 203406, 203500, 203601, 203602, 203702, 203703, 203704, 203802, 203803, 203804, 203901, 203902, 204002, 204003, 204004, 204100, 204200, 204301, 204302, 204400, 204501, 204502],
'135' : [100100, 100200, 100300, 100400, 100500, 100600, 100700, 100800, 100900, 101000, 101100, 101200],
'137' : [960100, 960200, 960300, 960400, 960600, 960700, 960800],
'139' : [000100, 000200, 000300, 000400, 000500, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001801, 001803, 001804, 001900, 002000, 002100, 002201, 002202, 002300, 002400, 002500, 002601, 002602, 002700, 002800, 002900, 003000, 003100, 003200, 003300, 003400, 003500, 003600, 003701, 003702],
'141' : [010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700]]]]></entry>
        <entry id="census2020_ak" type="java"><![CDATA[[
    '013' : [100],
    '016' : [100, 200],
    '020' : [101, 102, 201, 202, 204, 205, 206, 500, 601, 602, 701, 702, 703, 801, 802, 901, 902, 1000, 1100, 1200, 1300, 1401, 1402, 1500, 1601, 1602, 1701, 1702, 1731, 1732, 1801, 1802, 1900, 2000, 2100, 2201, 2202, 2301, 2302, 2304, 2305, 2400, 2501, 2502, 2601, 2602, 2603, 2711, 2712, 2713, 2714, 2811, 2812, 2813, 2821, 2822, 2823, 2900, 980000, 980100, 980200],
    '050' : [100, 200, 300],
    '060' : [100],
    '063' : [200, 300],
    '066' : [100],
    '068' : [100],
    '070' : [100, 200],
    '090' : [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1200, 1300, 1401, 1402, 1501, 1502, 1600, 1700, 1901, 1902, 980000, 980100],
    '100' : [100],
    '105' : [400],
    '110' : [100, 200, 300, 400, 500, 600],
    '122' : [100, 200, 300, 400, 500, 600, 701, 702, 800, 900, 1000, 1100, 1200, 1300],
    '130' : [101, 102, 200, 300, 400],
    '150' : [100, 200, 300, 400, 500],
    '158' : [100],
    '164' : [100],
    '170' : [101, 102, 200, 300, 401, 402, 501, 502, 601, 603, 604, 701, 703, 705, 706, 800, 900, 1001, 1003, 1004, 1100, 1201, 1202, 1300],
    '180' : [100, 200],
    '185' : [100, 200, 300],
    '188' : [100, 200],
    '195' : [200],
    '198' : [100, 200, 300, 940100],
    '220' : [100, 200],
    '230' : [100],
    '240' : [100, 400],
    '275' : [300],
    '282' : [100],
    '290' : [100, 200, 300, 400]
]]]></entry>
        <entry id="census2020_az" type="java"><![CDATA[[
    '001' : [942600, 942700, 944000, 944100, 944201, 944202, 944301, 944302, 944901, 944902, 945001, 945002, 945100, 970201, 970202, 970300, 970501, 970502],
    '003' : [101, 102, 201, 202, 203, 301, 303, 304, 305, 400, 501, 502, 503, 600, 700, 800, 901, 902, 1000, 1100, 1200, 1301, 1302, 1401, 1402, 1501, 1502, 1601, 1602, 1701, 1702, 1703, 1801, 1802, 1900, 2001, 2002, 2100],
    '005' : [100, 200, 301, 302, 400, 500, 601, 602, 700, 800, 901, 902, 1000, 1101, 1103, 1104, 1201, 1301, 1302, 1500, 1601, 1602, 1700, 2000, 2101, 2102, 2201, 2202, 2301, 2302, 942201, 942202, 944900, 945000, 945100, 945200, 980000, 980100, 980200],
    '007' : [100, 200, 301, 302, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 940200, 940400],
    '009' : [940500, 961100, 961201, 961202, 961300, 961400, 961500, 961600, 961700],
    '011' : [960100, 960200, 960300],
    '012' : [20101, 20102, 20201, 20202, 20501, 20503, 20504, 20505, 20602, 940200, 940300, 980000],
    '013' : [10102, 10103, 10104, 30401, 30402, 40502, 40506, 40507, 40512, 40513, 40514, 40515, 40516, 40522, 40523, 40524, 40525, 40526, 40527, 40528, 40529, 40530, 40531, 40532, 40533, 40534, 40535, 40536, 40537, 40538, 40539, 40540, 40541, 50603, 50604, 50609, 50611, 50612, 50613, 50614, 50615, 50616, 50617, 50618, 50619, 50620, 50621, 50701, 50702, 60801, 60802, 60901, 60902, 60903, 60904, 61010, 61011, 61013, 61014, 61015, 61017, 61018, 61020, 61021, 61024, 61026, 61027, 61028, 61029, 61031, 61032, 61033, 61034, 61035, 61036, 61037, 61038, 61039, 61040, 61041, 61042, 61043, 61044, 61045, 61046, 61047, 61048, 61049, 61050, 61051, 61052, 61053, 61054, 61055, 61056, 61057, 61058, 61059, 61060, 61061, 61062, 61063, 61064, 61100, 61200, 61300, 61401, 61402, 71503, 71504, 71505, 71506, 71509, 71510, 71511, 71512, 71513, 71514, 71515, 71516, 71517, 71600, 71701, 71702, 71801, 71802, 71903, 71906, 71909, 71910, 71911, 71912, 71913, 71914, 71915, 82002, 82007, 82008, 82009, 82010, 82012, 82016, 82017, 82018, 82019, 82020, 82021, 82022, 82023, 82024, 82025, 82026, 82027, 82028, 82204, 82205, 82206, 82207, 82208, 82209, 82210, 82211, 82212, 82213, 83000, 92305, 92306, 92307, 92308, 92309, 92311, 92312, 92401, 92402, 92500, 92600, 92705, 92708, 92709, 92710, 92711, 92712, 92713, 92715, 92716, 92717, 92718, 92719, 92720, 92721, 92723, 92724, 92801, 92802, 92900, 93001, 93002, 93101, 93104, 93105, 93106, 93200, 103205, 103206, 103207, 103208, 103209, 103210, 103211, 103212, 103214, 103215, 103216, 103217, 103219, 103220, 103302, 103303, 103304, 103305, 103306, 103400, 103501, 103502, 103604, 103605, 103606, 103607, 103608, 103609, 103611, 103612, 103614, 103615, 103701, 103702, 103900, 104000, 104100, 104202, 104203, 104204, 104205, 104206, 104207, 104212, 104214, 104215, 104216, 104217, 104218, 104219, 104221, 104222, 104223, 104224, 104225, 104226, 104227, 104301, 104302, 104401, 104402, 104501, 104502, 104600, 104701, 104702, 104801, 104802, 104900, 105002, 105003, 105004, 105101, 105102, 105103, 105200, 105300, 105400, 105501, 105502, 105503, 105601, 105602, 105701, 105702, 105800, 105900, 106001, 106002, 106003, 106100, 106200, 106300, 106400, 106501, 106502, 106600, 106701, 106702, 106703, 106801, 106802, 106900, 107001, 107002, 107101, 107102, 107201, 107202, 107300, 107401, 107402, 107403, 107404, 107500, 107601, 107602, 107700, 107800, 107900, 108000, 108100, 108200, 108301, 108302, 108400, 108501, 108502, 108601, 108602, 108802, 108901, 108902, 109001, 109002, 109003, 109101, 109102, 109200, 109300, 109401, 109402, 109500, 109601, 109602, 109603, 109604, 109702, 109703, 109704, 109705, 109706, 109707, 109801, 109802, 109900, 110001, 110002, 110100, 110400, 110501, 110502, 110600, 110701, 110702, 110801, 110802, 110901, 110902, 111000, 111100, 111201, 111202, 111203, 111204, 111300, 111401, 111402, 111501, 111502, 111601, 111602, 111700, 111800, 111900, 112100, 112201, 112202, 112301, 112302, 112401, 112402, 112502, 112504, 112507, 112508, 112510, 112512, 112514, 112515, 112516, 112517, 112518, 112519, 112520, 112521, 112522, 112523, 112524, 112601, 112602, 112700, 112900, 113000, 113100, 113201, 113202, 113204, 113301, 113502, 113503, 113601, 113602, 113701, 113702, 113800, 113900, 114000, 114100, 114200, 114301, 114302, 114401, 114402, 114500, 114600, 114704, 114705, 114800, 114900, 115200, 115300, 115400, 115500, 115600, 115700, 115801, 115802, 115900, 116000, 116100, 116202, 116203, 116204, 116205, 116300, 116400, 116500, 116605, 116606, 116607, 116610, 116611, 116612, 116614, 116615, 116616, 116617, 116618, 116619, 116620, 116621, 116703, 116707, 116708, 116709, 116710, 116711, 116712, 116713, 116714, 116715, 116717, 116718, 116719, 116720, 116721, 116725, 116727, 116728, 116729, 116730, 116731, 116732, 116733, 116734, 116735, 116736, 116737, 116738, 116800, 116900, 117000, 117100, 117200, 117300, 216806, 216807, 216809, 216810, 216813, 216816, 216819, 216820, 216821, 216822, 216826, 216829, 216830, 216831, 216832, 216833, 216834, 216835, 216836, 216837, 216838, 216839, 216840, 216841, 216842, 216843, 216844, 216845, 216849, 216850, 216851, 216852, 216853, 216854, 216855, 216856, 216857, 216858, 216859, 216860, 216861, 216901, 216902, 217001, 217002, 217101, 217102, 217201, 217203, 217204, 217300, 217400, 217501, 217502, 217600, 217700, 217800, 217900, 218000, 218100, 218200, 218300, 318400, 318501, 318700, 318800, 318900, 319001, 319002, 319101, 319103, 319104, 319201, 319202, 319300, 319401, 319402, 319403, 319404, 319500, 319600, 319705, 319706, 319707, 319708, 319709, 319710, 319801, 319802, 319902, 319903, 319904, 319905, 319906, 319907, 319908, 319909, 319910, 320001, 320002, 320007, 320100, 420104, 420105, 420107, 420108, 420109, 420110, 420111, 420112, 420113, 420114, 420115, 420116, 420202, 420206, 420207, 420208, 420209, 420210, 420211, 420212, 420213, 420214, 420215, 420216, 420301, 420302, 420303, 420304, 420401, 420402, 420503, 420504, 420505, 420506, 420602, 420603, 420604, 420704, 420705, 420706, 420707, 420708, 420709, 420710, 420800, 420901, 420902, 421001, 421002, 421101, 421102, 421201, 421202, 421302, 421303, 421304, 421400, 421501, 421502, 421601, 421602, 421701, 421702, 421801, 421802, 421901, 421902, 422001, 422002, 422102, 422103, 422104, 422105, 422106, 422107, 422203, 422209, 422210, 422211, 422212, 422213, 422215, 422216, 422217, 422218, 422219, 422220, 422221, 422222, 422223, 422224, 422225, 422226, 422227, 422301, 422302, 422304, 422305, 422307, 422308, 422309, 422401, 422402, 422403, 422404, 422501, 422502, 422503, 422504, 422506, 422507, 422508, 422509, 422510, 422511, 422512, 422513, 422514, 422607, 422609, 422610, 422615, 422617, 422618, 422620, 422621, 422622, 422623, 422624, 422625, 422626, 422627, 422628, 422629, 422630, 422632, 422633, 422634, 422636, 422637, 422638, 422639, 422640, 422642, 422643, 422647, 422648, 422649, 422650, 422651, 422652, 422653, 422654, 422655, 422656, 422657, 422658, 422659, 422660, 522801, 522802, 522901, 522903, 522904, 523002, 523005, 523006, 523007, 523008, 523102, 523103, 523104, 610001, 610002, 610100, 610201, 610202, 610301, 610302, 610400, 610500, 610600, 610700, 610800, 610901, 610902, 610903, 611000, 611100, 611200, 611300, 611400, 611500, 611600, 611700, 611800, 611900, 612000, 612200, 612301, 612302, 612401, 612402, 612500, 612600, 612700, 612800, 612900, 613000, 613100, 613200, 613300, 613400, 613500, 613601, 613602, 613700, 613800, 613900, 614000, 614100, 614200, 614300, 614400, 614500, 614601, 614602, 614700, 614800, 614900, 615001, 615002, 615100, 615201, 615202, 615300, 615400, 615500, 615600, 615700, 615800, 615900, 616000, 616100, 616200, 616300, 616400, 616500, 616600, 616700, 616800, 616900, 617001, 617002, 617100, 617200, 617300, 617400, 617500, 617600, 617700, 617800, 617900, 618000, 618100, 618200, 618300, 618400, 618500, 618600, 618700, 618800, 618900, 619000, 619100, 619200, 619300, 619400, 619500, 619601, 619602, 619700, 619800, 619900, 723304, 723305, 723306, 723307, 723309, 723310, 723311, 810000, 810100, 810200, 810300, 810400, 810500, 810600, 810700, 810800, 810900, 811000, 811100, 811200, 811300, 811400, 811500, 811600, 811700, 811800, 811900, 812000, 812100, 812200, 812300, 812400, 812500, 812600, 812700, 812801, 812802, 812900, 813000, 813100, 813200, 813300, 813400, 813500, 813600, 813700, 813800, 813900, 814000, 814100, 814200, 814300, 814400, 814500, 814600, 814700, 814801, 814802, 814900, 815000, 815100, 815201, 815202, 815203, 815300, 815401, 815402, 815501, 815502, 815601, 815602, 815700, 815800, 815901, 815902, 816001, 816002, 816003, 816004, 816005, 816100, 816200, 816301, 816302, 816401, 816402, 816501, 816502, 816600, 816700, 816800, 816901, 816902, 816903, 816904, 817000, 817101, 817102, 817103, 817200, 817300, 817400, 817500, 817600, 940700, 941000, 941100, 941200, 941300, 980100, 980400, 980500, 980700, 980900, 981000],
    '015' : [940400, 940501, 950101, 950102, 950103, 950401, 950403, 950404, 950500, 950601, 950602, 950603, 950703, 950705, 950706, 950707, 950708, 951401, 951403, 951404, 951501, 951503, 951504, 951601, 951602, 951701, 951702, 951800, 951900, 952001, 952003, 952004, 952005, 952006, 952007, 952400, 952501, 952502, 952600, 952701, 952702, 952801, 952802, 952901, 952902, 953001, 953002, 953100, 953200, 953301, 953302, 953403, 953404, 953405, 953406, 953602, 953603, 953604, 953800, 953901, 953902, 954801, 954802, 954900, 955001, 955002],
    '017' : [940008, 940010, 940011, 940012, 940013, 940014, 940015, 940100, 940301, 940302, 942300, 942400, 942500, 960100, 960200, 960400, 960500, 960600, 961300, 961701, 961702, 962501, 962502, 963300, 963400, 963700, 963800, 964201, 964202, 964801, 964802, 964901, 964902, 965201, 965202, 965301, 965302],
    '019' : [100, 200, 300, 401, 402, 501, 502, 600, 700, 800, 1100, 1200, 1302, 1303, 1304, 1400, 1500, 1600, 1700, 1801, 1802, 1900, 2000, 2100, 2201, 2202, 2300, 2400, 2503, 2504, 2505, 2507, 2508, 2509, 2602, 2603, 2604, 2702, 2703, 2704, 2801, 2802, 2803, 2901, 2904, 2905, 2906, 3002, 3003, 3004, 3102, 3103, 3104, 3201, 3202, 3302, 3303, 3304, 3400, 3502, 3503, 3504, 3505, 3506, 3601, 3702, 3704, 3705, 3706, 3707, 3801, 3802, 3901, 3902, 3903, 4008, 4010, 4026, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4042, 4043, 4044, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4061, 4062, 4063, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4109, 4110, 4112, 4114, 4115, 4116, 4117, 4118, 4122, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4307, 4310, 4311, 4312, 4313, 4316, 4317, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4330, 4332, 4333, 4335, 4336, 4337, 4338, 4339, 4340, 4404, 4407, 4412, 4413, 4414, 4415, 4418, 4419, 4422, 4423, 4424, 4425, 4426, 4428, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4505, 4506, 4508, 4510, 4511, 4512, 4513, 4514, 4515, 4610, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4710, 4711, 4712, 4713, 4714, 4715, 4717, 4718, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 5200, 5300, 5400, 940800, 940900, 941000, 941100, 980001, 980002, 980100, 980200, 980300, 980400],
    '021' : [201, 204, 206, 208, 211, 212, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 307, 309, 310, 311, 312, 313, 315, 316, 317, 319, 320, 321, 322, 323, 324, 325, 400, 603, 604, 700, 802, 804, 805, 806, 807, 808, 902, 903, 904, 1000, 1100, 1200, 1303, 1305, 1306, 1307, 1308, 1309, 1310, 1403, 1404, 1405, 1406, 1407, 1408, 1500, 1600, 1701, 1704, 1705, 1706, 1707, 1709, 1712, 1713, 1714, 1715, 1716, 1717, 1900, 2001, 2004, 2005, 2104, 2105, 2106, 2107, 2200, 2300, 2400, 941200, 941300, 941401, 941402],
    '023' : [966000, 966101, 966103, 966106, 966107, 966108, 966109, 966110, 966111, 966200, 966301, 966302, 966401, 966402],
    '025' : [205, 206, 207, 208, 209, 210, 211, 301, 302, 403, 404, 405, 406, 407, 501, 502, 604, 608, 609, 611, 612, 613, 614, 615, 616, 617, 618, 619, 701, 702, 802, 803, 804, 901, 902, 1002, 1003, 1004, 1103, 1104, 1105, 1106, 1201, 1202, 1300, 1401, 1402, 1403, 1501, 1502, 1601, 1602, 1604, 1605, 1701, 1703, 1704, 1705, 1801, 1803, 1804, 1901, 1902, 1903, 1904, 2001, 2002, 2003, 2005, 2006, 2007, 2100],
    '027' : [100, 200, 301, 302, 402, 403, 404, 501, 502, 600, 700, 800, 901, 902, 903, 907, 908, 909, 910, 1001, 1003, 1004, 1100, 1200, 10907, 10910, 10911, 10913, 10914, 10915, 10916, 11000, 11107, 11108, 11112, 11114, 11116, 11117, 11118, 11119, 11120, 11121, 11122, 11123, 11124, 11125, 11202, 11203, 11204, 11403, 11405, 11407, 11408, 11501, 11503, 11505, 11506, 11601, 11602, 11700, 11801, 11802, 12100, 980003, 980004, 980005, 980006]
]]]></entry>
        <entry id="census2020_ca" type="java"><![CDATA[[
    '001' : [400100, 400200, 400300, 400400, 400500, 400600, 400700, 400800, 400900, 401000, 401100, 401200, 401300, 401400, 401500, 401600, 401700, 401800, 402200, 402400, 402500, 402600, 402700, 402801, 402802, 402900, 403000, 403100, 403301, 403302, 403401, 403402, 403501, 403502, 403600, 403701, 403702, 403800, 403900, 404000, 404101, 404102, 404200, 404300, 404400, 404501, 404502, 404600, 404700, 404800, 404900, 405000, 405100, 405200, 405301, 405302, 405401, 405402, 405500, 405600, 405700, 405800, 405901, 405902, 406000, 406100, 406201, 406202, 406300, 406400, 406500, 406601, 406602, 406700, 406800, 406900, 407000, 407101, 407102, 407200, 407300, 407400, 407500, 407600, 407700, 407800, 407900, 408000, 408100, 408200, 408300, 408400, 408500, 408600, 408700, 408800, 408900, 409000, 409100, 409200, 409300, 409400, 409500, 409600, 409700, 409800, 409900, 410000, 410100, 410200, 410300, 410400, 410500, 420100, 420200, 420301, 420302, 420401, 420402, 420500, 420600, 421100, 421200, 421300, 421400, 421500, 421600, 421700, 421800, 421900, 422000, 422100, 422200, 422300, 422400, 422500, 422700, 422800, 422901, 422902, 423000, 423100, 423200, 423300, 423400, 423500, 423601, 423602, 423700, 423800, 423901, 423902, 424001, 424002, 425101, 425102, 425103, 425104, 426100, 426200, 427100, 427200, 427300, 427600, 427700, 427800, 427900, 428000, 428100, 428200, 428301, 428302, 428400, 428500, 428600, 428700, 430101, 430102, 430200, 430300, 430400, 430500, 430600, 430700, 430800, 430900, 431000, 431100, 431200, 432100, 432200, 432300, 432400, 432501, 432502, 432601, 432602, 432700, 432800, 433000, 433102, 433103, 433104, 433200, 433300, 433400, 433500, 433600, 433700, 433801, 433802, 433900, 434000, 435102, 435103, 435104, 435200, 435300, 435400, 435500, 435601, 435602, 435700, 435800, 435900, 436000, 436100, 436200, 436301, 436302, 436402, 436403, 436404, 436500, 436601, 436602, 436700, 436800, 436900, 437000, 437101, 437102, 437200, 437300, 437400, 437500, 437600, 437701, 437702, 437800, 437900, 438000, 438100, 438201, 438203, 438204, 438300, 438400, 440100, 440200, 440301, 440304, 440305, 440306, 440307, 440308, 440331, 440332, 440333, 440334, 440336, 440337, 440338, 441100, 441200, 441301, 441302, 441401, 441402, 441501, 441503, 441521, 441522, 441523, 441524, 441525, 441601, 441602, 441701, 441702, 441800, 441921, 441923, 441924, 441926, 441927, 441928, 441929, 442000, 442100, 442200, 442301, 442302, 442400, 442501, 442502, 442601, 442602, 442700, 442800, 442900, 443001, 443002, 443102, 443103, 443104, 443105, 443200, 443301, 443321, 443322, 444100, 444200, 444301, 444303, 444304, 444400, 444500, 444601, 444602, 450101, 450102, 450200, 450300, 450400, 450501, 450502, 450601, 450603, 450604, 450605, 450606, 450607, 450608, 450609, 450701, 450741, 450742, 450743, 450744, 450745, 450746, 450750, 450751, 450752, 451102, 451103, 451104, 451201, 451202, 451300, 451401, 451403, 451404, 451501, 451503, 451504, 451505, 451506, 451601, 451602, 451701, 451703, 451704, 981900, 982000, 982100, 983200, 990000],
    '013' : [301000, 302005, 302006, 302007, 302009, 302011, 302012, 302013, 302014, 303104, 303105, 303106, 303107, 303202, 303204, 303206, 303207, 303208, 303209, 303210, 303211, 304001, 304002, 304003, 304004, 304006, 304007, 305000, 306002, 306003, 306004, 307101, 307102, 307201, 307202, 307204, 307205, 308001, 308002, 309000, 310000, 311000, 312000, 313102, 313104, 313105, 313106, 313107, 313203, 313204, 313205, 313206, 314102, 314103, 314105, 314106, 314200, 315000, 316000, 317000, 318000, 319001, 319002, 320001, 320003, 320004, 321101, 321102, 321103, 321200, 322000, 323000, 324002, 324003, 324004, 325000, 326000, 327001, 327002, 328000, 329000, 330000, 331000, 332000, 333101, 333102, 333200, 334001, 334006, 334007, 334008, 334200, 335000, 336101, 336103, 336104, 336201, 336202, 337100, 337201, 337202, 337300, 338101, 338102, 338201, 338203, 338204, 338301, 338302, 339001, 339003, 339004, 340001, 340003, 340004, 341000, 343001, 343002, 343003, 345101, 345102, 345103, 345105, 345111, 345112, 345113, 345114, 345115, 345116, 345117, 345118, 345203, 345204, 345205, 345206, 346101, 346102, 346203, 346204, 346205, 346206, 347000, 348000, 349000, 350000, 351101, 351103, 351104, 351105, 351200, 352101, 352102, 352201, 352202, 353001, 353002, 354001, 354002, 355107, 355109, 355110, 355111, 355112, 355113, 355115, 355118, 355119, 355120, 355121, 355122, 355123, 355124, 355125, 355126, 355201, 355202, 355302, 355306, 355307, 355308, 355309, 355310, 356001, 356002, 357000, 358000, 359102, 359103, 359104, 359105, 359202, 359203, 359204, 360101, 360102, 360200, 361000, 362000, 363000, 364002, 365002, 365003, 366001, 366002, 367100, 367200, 368001, 368002, 369001, 369002, 370000, 371000, 372000, 373000, 374000, 375000, 376000, 377000, 378000, 379000, 380001, 380002, 381000, 382000, 383000, 384000, 385100, 385200, 386000, 387000, 388000, 389100, 389200, 390100, 390200, 391000, 392000, 392201, 392202, 392300, 980000, 990000],
    '041' : [101100, 101200, 102100, 102202, 102203, 103100, 103200, 104102, 104103, 104104, 104200, 104300, 105001, 105002, 106001, 106002, 107000, 108100, 108201, 108202, 109001, 109002, 110100, 110200, 111001, 111002, 112100, 112202, 112203, 112204, 113000, 114100, 114200, 115000, 116000, 117000, 118100, 119100, 119201, 119202, 120001, 120002, 121100, 121200, 122000, 123000, 124100, 124200, 125000, 126100, 126200, 127000, 128100, 128200, 129000, 130201, 130203, 130204, 131100, 132100, 132200, 133000, 990100],
    '075' : [10101, 10102, 10201, 10202, 10300, 10401, 10402, 10500, 10600, 10701, 10702, 10800, 10901, 10902, 11001, 11002, 11101, 11102, 11200, 11300, 11700, 11800, 11901, 11902, 12001, 12002, 12100, 12202, 12203, 12204, 12301, 12302, 12403, 12404, 12405, 12406, 12502, 12503, 12504, 12601, 12602, 12700, 12801, 12802, 12901, 12902, 13001, 13002, 13101, 13102, 13200, 13300, 13401, 13402, 13500, 15100, 15201, 15202, 15300, 15401, 15402, 15500, 15600, 15701, 15702, 15801, 15802, 15900, 16000, 16101, 16102, 16200, 16300, 16400, 16500, 16601, 16602, 16700, 16801, 16802, 16900, 17000, 17101, 17102, 17602, 17603, 17604, 17700, 17801, 17803, 17804, 17903, 18000, 20101, 20102, 20201, 20202, 20300, 20401, 20402, 20500, 20601, 20602, 20701, 20702, 20801, 20802, 20900, 21000, 21100, 21200, 21300, 21400, 21500, 21600, 21700, 21800, 22600, 22702, 22704, 22801, 22802, 22803, 22901, 22902, 22903, 23001, 23003, 23102, 23103, 23200, 23300, 23400, 25100, 25200, 25300, 25401, 25402, 25403, 25501, 25502, 25600, 25701, 25702, 25800, 25900, 26001, 26002, 26003, 26004, 26100, 26201, 26202, 26301, 26302, 26303, 26401, 26402, 26403, 26404, 30101, 30102, 30201, 30202, 30301, 30302, 30400, 30500, 30600, 30700, 30800, 30900, 31000, 31100, 31201, 31202, 31301, 31302, 31401, 31402, 32601, 32602, 32700, 32801, 32802, 32901, 32902, 33001, 33002, 33100, 33201, 33203, 33204, 35101, 35102, 35201, 35202, 35300, 35400, 40100, 40200, 42601, 42602, 42700, 42800, 45100, 45201, 45202, 47600, 47701, 47702, 47801, 47802, 47902, 47903, 47904, 60100, 60400, 60502, 60701, 60702, 60703, 61000, 61101, 61102, 61200, 61401, 61402, 61501, 61502, 61503, 61504, 61505, 61506, 61507, 61508, 980200, 980300, 980401, 980501, 980600, 980900, 990100, 990200],
    '081' : [600100, 600200, 600300, 600401, 600402, 600501, 600502, 600600, 600701, 600702, 600800, 600900, 601000, 601100, 601200, 601301, 601302, 601400, 601501, 601502, 601601, 601603, 601604, 601605, 601700, 601800, 601901, 601902, 602001, 602002, 602100, 602201, 602202, 602300, 602400, 602500, 602601, 602602, 602700, 602800, 602900, 603000, 603100, 603200, 603300, 603400, 603700, 603801, 603802, 603900, 604000, 604102, 604103, 604104, 604200, 604400, 604500, 604600, 604700, 604800, 604900, 605000, 605100, 605200, 605300, 605400, 605501, 605502, 605600, 605700, 605800, 605901, 605902, 606000, 606100, 606201, 606202, 606300, 606400, 606500, 606600, 606700, 606800, 606900, 607000, 607100, 607200, 607300, 607400, 607500, 607600, 607701, 607702, 607800, 607900, 608001, 608002, 608013, 608023, 608024, 608025, 608100, 608200, 608300, 608400, 608501, 608502, 608600, 608700, 608800, 608900, 609000, 609100, 609201, 609202, 609300, 609400, 609500, 609601, 609602, 609603, 609700, 609800, 609900, 610000, 610100, 610201, 610202, 610203, 610302, 610303, 610304, 610400, 610500, 610601, 610602, 610700, 610800, 610901, 610902, 611000, 611100, 611200, 611300, 611400, 611500, 611600, 611700, 611800, 611901, 611902, 612001, 612002, 612101, 612102, 612500, 612600, 612700, 612800, 612900, 613000, 613200, 613300, 613400, 613501, 613502, 613600, 613701, 613702, 613800, 613900, 614000, 984300, 990100],

    '053' : [101, 103, 104, 105, 106, 200, 300, 400, 501, 502, 600, 701, 702, 800, 900, 1200, 1300, 1400, 1500, 1600, 1700, 1801, 1802, 10101, 10102, 10202, 10305, 10306, 10400, 10501, 10504, 10505, 10506, 10603, 10604, 10605, 10606, 10607, 10608, 10702, 10804, 10900, 11001, 11002, 11101, 11103, 11104, 11105, 11106, 11202, 11203, 11204, 11302, 11303, 11305, 11306, 11400, 11502, 11604, 11605, 11606, 11700, 11801, 11802, 11901, 11902, 12000, 12100, 12200, 12302, 12401, 12402, 12503, 12504, 12601, 12700, 12800, 13000, 13100, 13200, 13300, 13400, 13500, 13600, 13700, 13800, 13900, 14000, 14102, 14104, 14105, 14108, 14109, 14110, 14201, 14202, 14301, 14302, 14500, 14601, 14700, 14800, 980000, 990000],
    '069' : [100, 200, 300, 400, 501, 502, 601, 602, 701, 702, 801, 802],
    '085' : [500100, 500200, 500300, 500400, 500500, 500600, 500800, 500901, 500902, 501000, 501101, 501102, 501200, 501300, 501401, 501402, 501501, 501502, 501601, 501602, 501700, 501800, 501901, 501902, 502001, 502002, 502101, 502103, 502104, 502202, 502203, 502204, 502301, 502302, 502400, 502500, 502601, 502603, 502604, 502701, 502703, 502704, 502800, 502901, 502902, 502903, 502906, 502907, 502908, 502909, 502910, 503001, 503002, 503003, 503105, 503110, 503111, 503112, 503113, 503116, 503117, 503118, 503121, 503122, 503123, 503124, 503125, 503126, 503127, 503207, 503208, 503210, 503211, 503212, 503213, 503217, 503218, 503219, 503220, 503221, 503222, 503304, 503305, 503306, 503312, 503313, 503315, 503321, 503322, 503323, 503324, 503325, 503326, 503327, 503329, 503330, 503331, 503332, 503333, 503336, 503337, 503338, 503339, 503401, 503402, 503504, 503506, 503507, 503508, 503509, 503510, 503511, 503601, 503602, 503703, 503707, 503708, 503709, 503710, 503711, 503712, 503713, 503802, 503803, 503804, 503902, 503903, 504001, 504002, 504101, 504102, 504201, 504202, 504307, 504308, 504311, 504314, 504315, 504316, 504317, 504318, 504319, 504320, 504321, 504322, 504323, 504410, 504411, 504412, 504413, 504414, 504415, 504416, 504418, 504421, 504422, 504423, 504424, 504505, 504506, 504507, 504508, 504509, 504510, 504601, 504602, 504700, 504802, 504805, 504806, 504807, 504808, 504902, 504903, 505006, 505007, 505010, 505011, 505012, 505013, 505014, 505015, 505100, 505202, 505203, 505301, 505302, 505303, 505304, 505305, 505401, 505402, 505403, 505500, 505600, 505700, 505800, 505901, 505902, 506000, 506101, 506102, 506103, 506202, 506203, 506204, 506301, 506302, 506304, 506305, 506401, 506402, 506502, 506503, 506504, 506505, 506601, 506603, 506604, 506605, 506606, 506701, 506702, 506703, 506801, 506802, 506803, 506804, 506900, 507002, 507003, 507004, 507100, 507203, 507205, 507206, 507301, 507302, 507401, 507402, 507500, 507600, 507701, 507702, 507704, 507705, 507805, 507806, 507807, 507808, 507903, 507904, 507905, 507906, 508003, 508004, 508005, 508006, 508101, 508102, 508203, 508204, 508205, 508206, 508301, 508303, 508305, 508306, 508401, 508403, 508404, 508503, 508505, 508507, 508508, 508509, 508510, 508601, 508602, 508705, 508706, 508707, 508708, 508800, 508900, 509001, 509002, 509102, 509106, 509107, 509108, 509109, 509110, 509111, 509201, 509202, 509302, 509303, 509304, 509401, 509403, 509404, 509500, 509600, 509700, 509801, 509802, 509901, 509902, 510001, 510002, 510100, 510200, 510300, 510400, 510500, 510600, 510700, 510801, 510802, 510803, 510900, 511000, 511100, 511200, 511301, 511302, 511400, 511501, 511502, 511608, 511609, 511701, 511702, 511704, 511705, 511707, 511800, 511905, 511907, 511910, 511911, 511912, 511913, 511914, 511915, 511916, 511917, 511918, 512001, 512005, 512019, 512021, 512022, 512023, 512024, 512025, 512026, 512027, 512029, 512030, 512031, 512032, 512034, 512035, 512036, 512037, 512038, 512039, 512042, 512043, 512045, 512047, 512052, 512053, 512054, 512055, 512056, 512057, 512058, 512059, 512100, 512200, 512305, 512307, 512308, 512309, 512310, 512311, 512312, 512313, 512314, 512401, 512402, 512505, 512509, 512510, 512511, 512512, 512513, 512514, 512515, 512516, 512602, 512603, 512604, 513000, 513500],
    '087' : [100100, 100200, 100300, 100400, 100500, 100600, 100700, 100801, 100802, 100900, 101001, 101002, 101100, 101200, 110101, 110102, 110201, 110202, 110301, 110302, 110401, 110402, 110503, 110504, 110505, 110506, 110601, 110602, 110700, 120200, 120301, 120302, 120400, 120500, 120600, 120700, 120800, 120901, 120902, 121000, 121100, 121200, 121300, 121401, 121402, 121403, 121501, 121502, 121601, 121602, 121701, 121702, 121801, 121802, 122001, 122002, 122004, 122005, 122100, 122202, 122203, 122204, 122205, 122300, 122401, 122402, 122500, 123100, 123300, 990100],

    '037' : [101110, 101122, 101220, 101221, 101222, 101300, 101400, 102103, 102104, 102105, 102107, 103101, 103102, 103201, 103202, 103300, 103401, 103402, 104103, 104105, 104108, 104124, 104201, 104203, 104204, 104310, 104321, 104322, 104401, 104403, 104404, 104500, 104610, 104620, 104701, 104703, 104704, 104821, 104822, 104823, 104824, 106010, 106020, 106111, 106112, 106113, 106114, 106403, 106405, 106406, 106407, 106408, 106510, 106520, 106603, 106604, 106641, 106642, 106643, 106645, 106646, 106648, 106649, 107010, 107020, 108101, 108102, 108103, 108104, 108202, 108203, 108204, 109100, 109200, 109300, 109400, 109500, 109601, 109603, 109604, 109700, 109800, 111100, 111201, 111202, 111204, 111205, 111206, 111302, 111303, 111304, 111401, 111402, 113101, 113102, 113211, 113212, 113213, 113231, 113232, 113234, 113235, 113237, 113238, 113239, 113301, 113303, 113322, 113323, 113324, 113423, 113424, 113425, 113426, 113427, 113428, 115101, 115103, 115104, 115202, 115203, 115204, 115301, 115302, 115401, 115403, 115404, 117101, 117102, 117201, 117202, 117301, 117302, 117303, 117404, 117405, 117407, 117408, 117510, 117520, 117530, 119001, 119003, 119004, 119201, 119202, 119310, 119320, 119340, 119341, 119342, 119400, 119700, 119801, 119802, 119900, 120010, 120020, 120030, 120103, 120104, 120105, 120106, 120107, 120108, 120300, 120400, 121010, 121020, 121101, 121102, 121210, 121221, 121222, 121600, 121801, 121802, 121900, 122000, 122120, 122121, 122122, 122200, 122410, 122420, 123010, 123020, 123103, 123104, 123203, 123204, 123205, 123206, 123301, 123303, 123304, 123410, 123420, 123510, 123520, 123601, 123602, 123700, 123800, 123901, 123902, 124000, 124102, 124103, 124104, 124105, 124201, 124203, 124204, 124300, 124400, 124500, 124600, 124700, 124902, 124903, 125101, 125102, 125200, 125310, 125321, 125322, 125402, 125403, 125404, 125501, 125502, 125600, 127102, 127103, 127104, 127210, 127220, 127300, 127400, 127520, 127603, 127604, 127605, 127606, 127711, 127712, 127803, 127804, 127805, 127806, 127910, 127920, 128101, 128102, 128210, 128220, 128302, 128303, 128400, 128500, 128601, 128602, 128703, 128704, 128801, 128802, 128910, 131021, 131022, 131023, 131024, 131100, 131200, 131300, 131400, 131600, 131701, 131702, 131801, 131802, 131900, 132001, 132002, 132101, 132102, 132301, 132302, 132501, 132502, 132700, 132900, 133000, 133101, 133102, 134001, 134002, 134101, 134103, 134104, 134201, 134302, 134303, 134304, 134305, 134306, 134421, 134422, 134423, 134424, 134520, 134521, 134522, 134710, 134720, 134801, 134802, 134901, 134904, 134905, 134906, 134907, 135102, 135111, 135113, 135115, 135116, 135201, 135202, 135204, 135205, 137000, 137103, 137104, 137202, 137203, 137301, 137302, 137401, 137402, 137501, 137502, 137504, 138000, 139001, 139200, 139301, 139302, 139303, 139401, 139402, 139502, 139504, 139505, 139506, 139600, 139701, 139703, 139704, 139705, 139801, 139802, 141101, 141102, 141201, 141202, 141303, 141304, 141305, 141306, 141400, 141500, 141600, 141700, 143101, 143102, 143200, 143301, 143302, 143401, 143402, 143500, 143602, 143603, 143605, 143606, 143700, 143801, 143802, 143901, 143902, 181000, 181300, 181400, 181500, 181600, 183101, 183103, 183104, 183220, 183221, 183222, 183300, 183401, 183402, 183510, 183520, 183610, 183620, 183701, 183702, 183810, 183820, 185101, 185102, 185202, 185203, 185204, 185310, 185320, 186100, 186201, 186202, 186203, 186301, 186302, 186401, 186403, 186404, 187101, 187102, 187200, 187300, 188100, 188201, 188202, 188300, 189101, 189102, 189201, 189202, 189300, 189400, 189501, 189502, 189600, 189702, 189703, 189704, 189801, 189802, 189903, 189904, 189905, 189906, 189907, 190101, 190102, 190201, 190202, 190302, 190303, 190401, 190402, 190510, 190520, 190701, 190702, 190801, 190802, 190901, 190902, 191000, 191110, 191120, 191201, 191203, 191204, 191301, 191302, 191410, 191420, 191500, 191610, 191620, 191710, 191720, 191810, 191820, 191901, 191902, 192001, 192002, 192300, 192410, 192420, 192510, 192520, 192610, 192620, 192700, 194101, 194102, 194200, 194300, 194401, 194402, 194500, 195100, 195201, 195202, 195300, 195400, 195500, 195600, 195710, 195720, 195802, 195803, 195804, 195901, 195902, 195903, 197200, 197300, 197410, 197420, 197500, 197600, 197700, 199001, 199002, 199110, 199120, 199201, 199202, 199300, 199400, 199700, 199801, 199802, 199900, 201110, 201120, 201200, 201301, 201302, 201401, 201402, 201501, 201503, 201504, 201601, 201602, 201700, 203100, 203200, 203300, 203500, 203601, 203602, 203710, 203720, 203800, 203900, 204110, 204120, 204200, 204300, 204410, 204420, 204600, 204700, 204810, 204820, 204910, 204920, 205110, 205120, 206010, 206020, 206050, 206051, 206052, 206053, 206054, 206201, 206202, 206301, 206302, 206303, 207101, 207102, 207103, 207303, 207304, 207305, 207306, 207307, 207308, 207400, 207501, 207502, 207711, 207712, 207901, 207902, 208001, 208002, 208301, 208302, 208401, 208402, 208501, 208502, 208610, 208620, 208710, 208720, 208801, 208802, 208902, 208903, 208904, 209103, 209104, 209105, 209106, 209201, 209202, 209300, 209401, 209402, 209403, 209510, 209520, 209810, 209820, 210010, 211000, 211121, 211122, 211123, 211124, 211201, 211202, 211310, 211320, 211410, 211420, 211500, 211701, 211703, 211704, 211802, 211803, 211804, 211910, 211921, 211922, 212101, 212102, 212202, 212203, 212204, 212303, 212304, 212305, 212306, 212410, 212420, 212501, 212502, 212610, 212620, 212701, 212702, 212800, 212900, 213100, 213201, 213202, 213310, 213320, 213401, 213402, 214000, 214100, 214400, 214501, 214503, 214504, 214505, 214600, 214700, 214800, 214902, 214903, 214904, 215101, 215102, 216100, 216201, 216202, 216301, 216302, 216401, 216402, 216700, 216800, 216901, 216902, 217001, 217002, 217101, 217102, 217200, 218110, 218120, 218210, 218220, 218300, 218400, 218500, 218600, 218701, 218702, 218800, 218900, 219010, 219020, 219300, 219500, 219700, 219800, 219901, 219902, 220000, 220100, 221110, 221120, 221210, 221220, 221302, 221303, 221304, 221401, 221402, 221500, 221601, 221602, 221710, 221810, 221820, 221900, 222001, 222002, 222100, 222200, 222500, 222600, 222700, 224010, 224020, 224200, 224310, 224320, 224410, 224420, 224600, 224701, 224702, 226001, 226002, 226410, 226420, 226701, 226702, 227010, 227020, 228100, 228210, 228220, 228310, 228320, 228410, 228420, 228500, 228600, 228710, 228720, 228800, 228900, 229100, 229200, 229300, 229410, 229420, 231100, 231210, 231220, 231301, 231302, 231400, 231500, 231601, 231602, 231603, 231710, 231720, 231800, 231901, 231902, 232110, 232120, 232200, 232300, 232401, 232402, 232500, 232601, 232602, 232701, 232702, 232800, 234001, 234002, 234200, 234301, 234302, 234501, 234502, 234600, 234700, 234800, 234901, 234902, 235100, 235201, 235202, 236001, 236101, 236102, 236203, 236204, 236205, 236206, 236400, 237101, 237102, 237201, 237202, 237300, 237401, 237402, 237500, 237600, 237710, 237720, 237800, 237900, 238000, 238100, 238200, 238310, 238320, 238400, 239201, 239202, 239310, 239320, 239330, 239501, 239502, 239601, 239602, 239701, 239702, 239801, 239802, 240010, 240020, 240200, 240301, 240302, 240401, 240402, 240500, 240600, 240700, 240800, 240901, 240902, 241001, 241002, 241110, 241120, 241201, 241202, 241300, 241400, 242000, 242100, 242201, 242202, 242300, 242600, 242700, 243001, 243002, 243100, 261102, 261103, 261104, 261200, 262100, 262200, 262301, 262302, 262303, 262400, 262501, 262601, 262604, 262704, 262706, 262802, 264000, 264102, 264103, 264303, 264304, 264305, 264306, 265100, 265201, 265203, 265204, 265301, 265303, 265304, 265306, 265307, 265410, 265420, 265521, 265522, 265523, 265524, 265601, 265602, 265701, 265702, 267101, 267102, 267201, 267202, 267300, 267403, 267404, 267405, 267406, 267502, 267503, 267504, 267600, 267700, 267800, 267901, 267902, 269000, 269100, 269300, 269500, 269601, 269602, 269700, 269800, 269903, 269905, 269906, 269907, 269908, 269909, 270101, 270102, 270200, 270300, 271100, 271200, 271300, 271400, 271500, 271600, 271702, 271703, 271704, 271801, 271803, 271804, 271901, 271902, 272100, 272201, 272202, 272301, 272302, 273100, 273200, 273300, 273403, 273404, 273502, 273600, 273700, 273800, 273902, 274100, 274202, 275101, 275102, 275200, 275311, 275312, 275313, 275400, 275500, 275603, 275604, 275605, 276000, 276101, 276102, 276400, 276500, 276601, 276605, 276606, 276607, 276608, 277000, 277100, 277200, 277400, 278001, 278102, 291110, 291120, 291130, 291210, 291220, 291300, 292001, 292002, 293203, 293204, 293205, 293206, 293301, 293302, 293304, 293306, 293307, 294110, 294120, 294200, 294301, 294302, 294410, 294421, 294510, 294520, 294610, 294620, 294701, 294810, 294820, 294830, 294900, 295103, 296210, 296220, 296300, 296401, 296402, 296500, 296600, 296901, 296902, 297001, 297002, 297110, 297120, 297201, 297202, 297300, 297400, 297501, 297502, 297601, 297602, 300100, 300200, 300301, 300400, 300501, 300503, 300601, 300602, 300701, 300702, 300800, 300901, 300902, 301000, 301100, 301203, 301204, 301205, 301206, 301300, 301400, 301501, 301502, 301601, 301602, 301701, 301702, 301801, 301802, 301901, 301902, 302002, 302003, 302004, 302102, 302103, 302104, 302201, 302202, 302301, 302302, 302401, 302503, 302504, 302505, 302506, 310100, 310201, 310202, 310300, 310400, 310501, 310601, 310602, 310701, 310703, 310704, 310705, 310800, 310900, 311000, 311100, 311200, 311300, 311400, 311500, 311601, 311602, 311700, 311801, 311802, 320101, 320102, 320201, 320202, 320300, 400205, 400206, 400207, 400208, 400209, 400304, 400402, 400403, 400404, 400501, 400602, 400603, 400605, 400801, 401001, 401002, 401101, 401102, 401201, 401202, 401203, 401303, 401304, 401311, 401312, 401500, 401601, 401602, 401705, 401706, 401707, 401801, 401802, 401901, 401902, 402001, 402002, 402101, 402102, 402200, 402301, 402303, 402304, 402403, 402404, 402405, 402406, 402501, 402503, 402504, 402601, 402602, 402702, 402703, 402705, 402706, 402801, 402803, 402804, 402902, 402903, 402904, 403000, 403305, 403316, 403317, 403318, 403319, 403320, 403321, 403323, 403324, 403325, 403326, 403327, 403328, 403401, 403402, 403403, 403404, 403407, 403408, 403409, 403500, 403601, 403702, 403703, 403721, 403722, 403801, 403802, 403901, 403902, 404000, 404100, 404201, 404203, 404301, 404302, 404401, 404402, 404501, 404503, 404504, 404600, 404701, 404702, 404703, 404804, 404805, 404806, 404901, 404902, 404903, 405001, 405002, 405101, 405102, 405201, 405202, 405203, 405301, 405302, 405400, 405500, 405600, 405701, 405702, 405800, 405900, 406000, 406101, 406103, 406201, 406300, 406413, 406500, 406601, 406602, 406701, 406702, 406801, 406903, 407001, 407002, 407101, 407102, 407201, 407202, 407301, 407302, 407400, 407501, 407502, 407601, 407602, 407701, 407702, 407801, 407802, 407901, 407902, 408003, 408004, 408005, 408006, 408133, 408134, 408135, 408136, 408137, 408138, 408139, 408140, 408141, 408212, 408213, 408301, 408302, 408303, 408401, 408402, 408503, 408504, 408505, 408623, 408624, 408625, 408626, 408627, 408628, 408629, 408631, 408703, 408705, 408707, 408722, 408724, 408725, 408800, 408900, 409000, 409100, 430003, 430004, 430005, 430101, 430102, 430200, 430301, 430302, 430400, 430501, 430502, 430600, 430701, 430721, 430723, 430724, 430801, 430802, 430803, 430901, 430902, 431002, 431003, 431004, 431100, 431200, 431300, 431400, 431501, 431502, 431600, 431701, 431800, 431900, 432001, 432002, 432101, 432102, 432201, 432202, 432300, 432401, 432402, 432501, 432502, 432601, 432602, 432700, 432801, 432802, 432901, 432902, 433103, 433200, 433302, 433304, 433305, 433306, 433307, 433402, 433403, 433505, 433506, 433601, 433602, 433803, 433804, 433901, 433903, 434001, 434003, 434004, 434100, 460001, 460002, 460101, 460200, 460301, 460302, 460401, 460501, 460502, 460601, 460700, 460800, 460900, 461000, 461100, 461200, 461300, 461400, 461501, 461502, 461600, 461700, 461901, 461902, 462001, 462002, 462100, 462201, 462202, 462301, 462302, 462400, 462500, 462600, 462700, 462800, 462900, 463000, 463103, 463200, 463300, 463400, 463500, 463601, 463602, 463700, 463800, 463900, 464000, 464101, 464102, 464200, 480002, 480011, 480012, 480101, 480102, 480201, 480202, 480302, 480303, 480304, 480400, 480500, 480601, 480602, 480702, 480703, 480704, 480802, 480803, 480804, 480901, 480902, 480903, 481001, 481002, 481101, 481102, 481103, 481201, 481203, 481300, 481401, 481403, 481404, 481500, 481603, 481604, 481605, 481606, 481711, 481712, 481713, 481714, 481800, 481901, 481902, 482001, 482002, 482101, 482102, 482201, 482202, 482301, 482303, 482304, 482401, 482403, 482404, 482502, 482503, 482521, 482522, 482600, 482701, 482702, 482801, 500100, 500202, 500203, 500204, 500300, 500402, 500403, 500404, 500500, 500600, 500700, 500800, 500900, 501001, 501002, 501200, 501301, 501302, 501400, 501501, 501503, 501504, 501600, 501700, 501802, 501803, 501804, 501900, 502003, 502004, 502005, 502100, 502200, 502303, 502401, 502402, 502500, 502602, 502603, 502604, 502700, 502801, 502901, 503000, 503103, 503104, 503105, 503106, 503201, 503202, 503301, 503302, 503401, 503402, 503501, 503502, 503601, 503602, 503701, 503702, 503704, 503705, 503801, 503802, 503901, 503902, 504001, 504002, 504101, 504200, 530005, 530006, 530007, 530101, 530102, 530202, 530203, 530204, 530301, 530302, 530400, 530500, 530603, 530700, 530801, 530802, 530901, 530902, 531000, 531101, 531102, 531201, 531202, 531301, 531302, 531502, 531503, 531504, 531602, 531603, 531604, 531701, 531702, 531800, 531901, 531902, 532001, 532002, 532101, 532102, 532200, 532302, 532303, 532304, 532500, 532605, 532606, 532607, 532700, 532800, 532900, 533001, 533002, 533103, 533104, 533105, 533108, 533201, 533204, 533300, 533401, 533402, 533403, 533501, 533504, 533601, 533602, 533603, 533701, 533702, 533703, 533803, 533804, 533805, 533806, 533901, 533902, 534001, 534002, 534101, 534102, 534201, 534202, 534203, 534301, 534302, 534403, 534404, 534405, 534406, 534501, 534502, 534700, 534802, 534803, 534804, 534900, 535001, 535002, 535101, 535102, 535200, 535300, 535400, 535501, 535502, 535503, 535603, 535604, 535605, 535606, 535607, 535701, 535702, 535802, 535803, 535804, 535901, 535902, 536000, 536102, 536103, 536104, 536201, 536202, 540000, 540101, 540102, 540201, 540202, 540203, 540300, 540400, 540501, 540502, 540600, 540700, 540800, 540901, 540902, 541003, 541100, 541200, 541300, 541401, 541402, 541500, 541603, 541604, 541605, 541606, 541700, 541801, 541802, 542000, 542103, 542104, 542105, 542106, 542200, 542401, 542402, 542501, 542502, 542601, 542602, 542700, 542800, 542900, 543000, 543100, 543201, 543203, 543304, 543305, 543306, 543321, 543322, 543400, 543501, 543502, 543503, 543601, 543603, 543605, 543606, 543607, 543701, 543703, 543704, 543705, 543801, 543803, 543804, 543903, 543905, 544001, 544002, 550101, 550201, 550202, 550301, 550501, 550502, 550601, 550602, 550700, 550801, 550802, 550901, 550902, 551001, 551002, 551101, 551102, 551201, 551203, 551204, 551300, 551401, 551402, 551501, 551502, 551700, 551801, 551802, 551900, 552001, 552002, 552100, 552200, 552301, 552302, 552400, 552601, 552602, 552700, 552800, 552900, 553000, 553100, 553201, 553202, 553300, 553400, 553502, 553503, 553504, 553601, 553602, 553701, 553702, 553801, 553802, 553901, 553902, 554001, 554002, 554101, 554105, 554106, 554201, 554203, 554204, 554301, 554302, 554403, 554404, 554405, 554406, 554511, 554512, 554513, 554514, 554515, 554516, 554517, 554518, 554519, 554521, 554522, 554600, 554700, 554801, 554802, 554900, 555001, 555002, 555105, 555106, 555107, 555202, 555211, 555212, 555300, 570001, 570002, 570003, 570100, 570202, 570203, 570204, 570303, 570304, 570305, 570306, 570402, 570403, 570404, 570502, 570503, 570504, 570601, 570602, 570603, 570701, 570703, 570800, 570901, 570902, 571000, 571101, 571102, 571201, 571202, 571300, 571400, 571502, 571504, 571505, 571600, 571701, 571703, 571704, 571800, 571900, 572001, 572201, 572202, 572301, 572500, 572600, 572700, 573002, 573003, 573004, 573101, 573102, 573201, 573202, 573300, 573401, 573402, 573403, 573601, 573700, 573800, 573902, 574000, 574100, 574201, 574202, 574300, 574400, 574500, 574602, 574800, 574901, 574902, 575001, 575002, 575101, 575102, 575103, 575201, 575202, 575300, 575401, 575402, 575801, 575802, 575803, 575901, 575902, 576001, 576200, 576301, 576302, 576401, 576402, 576403, 576501, 576502, 576503, 576601, 576602, 576700, 576801, 576802, 576901, 576903, 576904, 577000, 577100, 577200, 577300, 577400, 577501, 577504, 577602, 577604, 577605, 577606, 577700, 577800, 577900, 578000, 578100, 599000, 599100, 600100, 600201, 600202, 600302, 600303, 600304, 600400, 600501, 600601, 600602, 600702, 600703, 600704, 600801, 600802, 600902, 600911, 600912, 601001, 601002, 601100, 601202, 601211, 601212, 601301, 601302, 601303, 601401, 601402, 601501, 601502, 601600, 601700, 601801, 601802, 601900, 602002, 602003, 602103, 602104, 602105, 602106, 602201, 602202, 602301, 602302, 602402, 602403, 602404, 602504, 602505, 602506, 602507, 602510, 602511, 602512, 602513, 602601, 602602, 602700, 602801, 602802, 602900, 603004, 603005, 603006, 603007, 603008, 603101, 603102, 603200, 603301, 603302, 603400, 603500, 603600, 603702, 603703, 603705, 603706, 603801, 603802, 603901, 603902, 604001, 604002, 604101, 604102, 604200, 609900, 620001, 620002, 620101, 620102, 620201, 620301, 620303, 620305, 620400, 620501, 620521, 620522, 620601, 620602, 620701, 620703, 620704, 620801, 620802, 620901, 620904, 621001, 621005, 621102, 621104, 621201, 621204, 621301, 621324, 621326, 621400, 650001, 650003, 650004, 650101, 650102, 650200, 650300, 650401, 650501, 650502, 650603, 650604, 650605, 650606, 650607, 650701, 650702, 650801, 650802, 650901, 650903, 650904, 651001, 651002, 651101, 651102, 651201, 651221, 651222, 651302, 651304, 651401, 651402, 670001, 670002, 670003, 670101, 670102, 670201, 670202, 670324, 670326, 670328, 670405, 670406, 670407, 670413, 670416, 670417, 670418, 670500, 670603, 670604, 670701, 670702, 700101, 700102, 700200, 700300, 700400, 700501, 700502, 700600, 700700, 700801, 700802, 700901, 700902, 701000, 701201, 701202, 701302, 701304, 701402, 701501, 701502, 701601, 701602, 701701, 701702, 701801, 701802, 701902, 702002, 702102, 702201, 702202, 702300, 702400, 702501, 702502, 702600, 702700, 702801, 702802, 702803, 702900, 703002, 703003, 703100, 703200, 800101, 800103, 800104, 800202, 800204, 800205, 800206, 800324, 800325, 800328, 800333, 800334, 800335, 800336, 800337, 800338, 800406, 800410, 800411, 800412, 800504, 800506, 900102, 900103, 900104, 900301, 900501, 900504, 900505, 900506, 900508, 900509, 900510, 900602, 900606, 900607, 900608, 900609, 900610, 900611, 900701, 900703, 900704, 900705, 900804, 900805, 900806, 900807, 900808, 900901, 900902, 901003, 901007, 901008, 901009, 901010, 901011, 901012, 901013, 901014, 901101, 901102, 901209, 901210, 901214, 901215, 901216, 901217, 901218, 901300, 910002, 910210, 910211, 910212, 910213, 910214, 910215, 910216, 910217, 910218, 910301, 910302, 910401, 910404, 910405, 910501, 910502, 910504, 910505, 910601, 910602, 910605, 910606, 910607, 910608, 910706, 910707, 910709, 910712, 910713, 910714, 910715, 910716, 910717, 910718, 910719, 910720, 910721, 910804, 910807, 910808, 910809, 910810, 910814, 910815, 911001, 911100, 920013, 920015, 920016, 920017, 920018, 920020, 920028, 920029, 920030, 920031, 920034, 920035, 920038, 920039, 920040, 920041, 920042, 920043, 920044, 920045, 920046, 920047, 920048, 920049, 920050, 920102, 920104, 920106, 920109, 920110, 920111, 920112, 920114, 920115, 920116, 920118, 920119, 920120, 920121, 920200, 920303, 920312, 920313, 920314, 920322, 920326, 920328, 920329, 920330, 920331, 920332, 920334, 920338, 920339, 920340, 920341, 920342, 920343, 930400, 980001, 980002, 980003, 980004, 980005, 980006, 980007, 980008, 980009, 980010, 980011, 980012, 980013, 980014, 980015, 980016, 980017, 980018, 980019, 980020, 980021, 980022, 980023, 980024, 980025, 980026, 980028, 980030, 980031, 980033, 980034, 980035, 980036, 980037, 980038, 980039, 990100, 990200, 990300],

    '003' : [10000],
    '005' : [101, 102, 201, 202, 301, 303, 304, 401, 402, 500],
    '007' : [102, 103, 104, 201, 202, 300, 401, 403, 404, 501, 502, 601, 603, 604, 700, 800, 901, 903, 904, 1000, 1100, 1200, 1300, 1400, 1500, 1601, 1602, 1702, 1703, 1704, 1800, 1900, 2000, 2100, 2200, 2300, 2401, 2402, 2500, 2601, 2602, 2700, 2800, 2900, 3001, 3002, 3100, 3200, 3300, 3400, 3501, 3502, 3600, 3700],
    '009' : [121, 122, 123, 124, 220, 221, 222, 301, 302, 400, 501, 504, 505, 506],
    '011' : [100, 200, 301, 302, 400, 500],
    '015' : [101, 102, 104, 106, 107, 201, 202, 203, 990000],
    '017' : [30201, 30202, 30301, 30302, 30402, 30403, 30404, 30502, 30504, 30506, 30507, 30601, 30603, 30604, 30605, 30606, 30701, 30706, 30709, 30710, 30711, 30712, 30801, 30804, 30807, 30808, 30809, 30810, 30811, 30812, 30901, 30902, 31000, 31100, 31200, 31301, 31302, 31404, 31405, 31406, 31407, 31408, 31409, 31503, 31504, 31505, 31506, 31601, 31602, 31700, 31800, 31900, 32001, 32002, 990000],
    '019' : [100, 200, 300, 400, 501, 502, 601, 602, 701, 702, 901, 902, 1000, 1100, 1201, 1202, 1301, 1303, 1304, 1407, 1408, 1409, 1411, 1412, 1413, 1415, 1416, 1417, 1418, 1500, 1600, 1700, 1800, 2000, 2100, 2200, 2300, 2400, 2501, 2502, 2601, 2602, 2701, 2702, 2800, 2903, 2904, 2905, 2906, 3001, 3003, 3004, 3102, 3103, 3104, 3201, 3202, 3301, 3302, 3401, 3402, 3500, 3600, 3701, 3702, 3804, 3805, 3807, 3808, 3809, 3810, 3811, 3812, 3900, 4003, 4004, 4005, 4006, 4100, 4205, 4208, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4301, 4302, 4303, 4404, 4405, 4406, 4409, 4410, 4411, 4503, 4504, 4505, 4506, 4601, 4602, 4703, 4704, 4705, 4706, 4801, 4802, 4901, 4902, 5000, 5100, 5202, 5203, 5204, 5301, 5302, 5304, 5305, 5403, 5405, 5406, 5407, 5408, 5409, 5410, 5503, 5504, 5505, 5507, 5508, 5509, 5512, 5513, 5514, 5515, 5516, 5518, 5520, 5522, 5524, 5525, 5526, 5527, 5528, 5529, 5602, 5605, 5606, 5607, 5608, 5701, 5702, 5703, 5704, 5801, 5802, 5804, 5805, 5904, 5906, 5907, 5911, 5912, 5913, 5914, 5915, 5916, 6001, 6002, 6101, 6102, 6201, 6202, 6301, 6302, 6405, 6406, 6407, 6408, 6409, 6410, 6411, 6501, 6502, 6602, 6603, 6605, 6606, 6700, 6802, 6900, 7002, 7003, 7004, 7101, 7102, 7202, 7203, 7204, 7300, 7400, 7500, 7600, 7700, 7801, 7802, 7903, 8000, 8100, 8200, 8301, 8303, 8304, 8402, 8403, 8404, 8405, 8501, 8503, 8504, 8600],
    '021' : [10101, 10102, 10200, 10300, 10401, 10402, 10501, 10502],
    '023' : [100, 200, 300, 400, 500, 600, 700, 800, 900, 1001, 1002, 1102, 1103, 1200, 1300, 10102, 10200, 10300, 10400, 10502, 10503, 10504, 10600, 10701, 10702, 10800, 10901, 10902, 11000, 11100, 11200, 11501, 11502, 11600, 940000, 990100],
    '025' : [10101, 10102, 10200, 10300, 10401, 10402, 10500, 10600, 10700, 10800, 10900, 11001, 11002, 11100, 11201, 11202, 11301, 11302, 11303, 11400, 11500, 11600, 11700, 11801, 11802, 11803, 11901, 11902, 11903, 12001, 12003, 12004, 12101, 12102, 12201, 12202, 12301, 12302, 12400, 940000],
    '027' : [100, 200, 300, 400, 500, 800],
    '029' : [102, 103, 104, 105, 106, 201, 202, 300, 400, 504, 505, 506, 507, 508, 509, 510, 601, 602, 603, 701, 702, 800, 902, 903, 904, 905, 906, 907, 908, 909, 911, 912, 913, 914, 1001, 1002, 1003, 1101, 1104, 1105, 1106, 1107, 1201, 1202, 1301, 1302, 1401, 1402, 1500, 1600, 1700, 1801, 1803, 1804, 1901, 1902, 2001, 2002, 2100, 2201, 2202, 2302, 2303, 2304, 2305, 2401, 2402, 2403, 2501, 2502, 2503, 2600, 2701, 2702, 2804, 2806, 2807, 2811, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2901, 2902, 3001, 3002, 3103, 3112, 3113, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3203, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3303, 3304, 3305, 3307, 3308, 3400, 3500, 3600, 3806, 3807, 3808, 3810, 3811, 3812, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3900, 4001, 4002, 4101, 4102, 4302, 4303, 4304, 4305, 4402, 4403, 4404, 4500, 4601, 4603, 4605, 4606, 4607, 4702, 4703, 4704, 4801, 4802, 4901, 4903, 4904, 5003, 5005, 5006, 5103, 5104, 5203, 5205, 5206, 5207, 5208, 5300, 5402, 5405, 5406, 5407, 5408, 5409, 5410, 5508, 5509, 5510, 5511, 5512, 5513, 5514, 5600, 5700, 5803, 5804, 5805, 5806, 5900, 6002, 6003, 6004, 6006, 6009, 6010, 6011, 6012, 6101, 6102, 6201, 6202, 6301, 6303, 6304, 6403, 6404, 6405, 6406, 6500, 6600],
    '031' : [100, 200, 402, 403, 405, 406, 407, 500, 602, 603, 604, 701, 702, 800, 901, 902, 1001, 1002, 1003, 1100, 1200, 1300, 1401, 1402, 1500, 1601, 1702, 1703, 980000, 980100, 981800],
    '033' : [100, 300, 401, 402, 501, 502, 601, 602, 702, 703, 704, 801, 802, 901, 902, 1000, 1101, 1102, 1200, 1301, 1302],
    '035' : [40100, 40200, 40302, 40303, 40304, 40305, 40400, 40500, 40600],
    '039' : [102, 103, 104, 106, 109, 110, 111, 201, 203, 204, 301, 302, 506, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 602, 603, 604, 701, 702, 801, 802, 901, 902, 903, 1100],
    '043' : [101, 102, 200, 301, 302, 400],
    '045' : [10100, 10200, 10300, 10400, 10500, 10601, 10602, 10700, 10801, 10802, 10900, 11001, 11003, 11004, 11102, 11200, 11300, 11400, 11501, 11502, 11600, 11700, 11800, 990100],
    '047' : [201, 202, 204, 205, 301, 303, 305, 306, 401, 403, 404, 503, 504, 505, 601, 602, 603, 701, 702, 801, 802, 901, 903, 904, 1003, 1004, 1005, 1006, 1007, 1008, 1101, 1200, 1301, 1302, 1401, 1402, 1501, 1502, 1503, 1601, 1603, 1604, 1700, 1801, 1901, 1902, 2001, 2002, 2100, 2201, 2203, 2204, 2301, 2303, 2304, 2305, 2306, 2401, 2403, 2404, 2500, 2601, 2602],
    '049' : [100, 200, 300, 400],
    '051' : [101, 102, 201, 202],
    '055' : [200201, 200202, 200203, 200301, 200302, 200400, 200501, 200503, 200504, 200505, 200601, 200602, 200703, 200704, 200705, 200706, 200707, 200802, 200803, 200804, 200900, 201003, 201004, 201005, 201006, 201007, 201101, 201102, 201200, 201300, 201401, 201402, 201403, 201500, 201601, 201602, 201700, 201800, 201900, 202000],
    '057' : [102, 104, 105, 106, 107, 200, 300, 401, 403, 404, 502, 503, 504, 601, 602, 701, 702, 801, 802, 900, 1205, 1207, 1208, 1209, 1210, 1211],
    '059' : [1101, 1102, 1103, 1201, 1202, 1301, 1303, 1304, 1401, 1402, 1403, 1404, 1501, 1503, 1504, 1505, 1506, 1507, 1602, 1603, 1604, 1704, 1705, 1706, 1708, 1709, 1710, 1801, 1802, 1901, 1902, 1903, 11000, 11101, 11102, 11200, 11300, 11401, 11402, 11403, 11502, 11503, 11504, 11601, 11602, 11707, 11708, 11709, 11710, 11711, 11712, 11714, 11715, 11716, 11717, 11718, 11720, 11721, 11722, 21802, 21807, 21809, 21810, 21812, 21813, 21814, 21816, 21817, 21820, 21821, 21822, 21823, 21824, 21825, 21826, 21827, 21828, 21829, 21830, 21831, 21832, 21903, 21905, 21912, 21913, 21914, 21915, 21916, 21917, 21918, 21919, 21920, 21921, 21922, 21923, 21924, 32002, 32003, 32011, 32012, 32013, 32014, 32015, 32020, 32022, 32027, 32028, 32029, 32030, 32031, 32032, 32033, 32034, 32035, 32036, 32037, 32038, 32039, 32040, 32041, 32042, 32043, 32044, 32045, 32046, 32047, 32048, 32049, 32050, 32051, 32053, 32054, 32055, 32057, 32058, 32059, 32061, 32062, 32063, 32064, 32065, 32066, 42106, 42107, 42108, 42109, 42111, 42112, 42113, 42114, 42115, 42116, 42201, 42203, 42205, 42206, 42305, 42307, 42311, 42312, 42313, 42315, 42317, 42319, 42320, 42323, 42324, 42325, 42326, 42327, 42328, 42329, 42330, 42331, 42332, 42333, 42334, 42335, 42336, 42337, 42338, 42339, 42340, 42341, 52408, 52410, 52411, 52415, 52416, 52417, 52419, 52421, 52422, 52423, 52424, 52425, 52427, 52428, 52429, 52430, 52431, 52432, 52433, 52434, 52435, 52436, 52437, 52438, 52439, 52502, 52505, 52506, 52511, 52513, 52514, 52518, 52519, 52520, 52521, 52522, 52523, 52524, 52526, 52527, 52528, 52529, 52530, 52531, 52532, 52533, 52534, 52535, 62605, 62610, 62611, 62614, 62619, 62620, 62622, 62625, 62626, 62627, 62628, 62629, 62630, 62631, 62632, 62633, 62634, 62635, 62636, 62637, 62638, 62639, 62640, 62641, 62642, 62643, 62645, 62646, 62647, 62648, 62649, 62650, 62651, 62652, 62653, 62654, 62655, 62656, 62657, 62658, 62701, 62702, 62800, 62900, 63004, 63005, 63006, 63007, 63008, 63009, 63010, 63101, 63102, 63103, 63201, 63202, 63301, 63302, 63400, 63500, 63601, 63603, 63604, 63605, 63701, 63702, 63802, 63803, 63805, 63806, 63807, 63808, 63902, 63903, 63904, 63905, 63906, 63908, 63909, 63910, 74003, 74004, 74005, 74006, 74102, 74103, 74106, 74107, 74108, 74109, 74110, 74111, 74200, 74300, 74403, 74405, 74406, 74407, 74408, 74501, 74502, 74601, 74602, 74701, 74702, 74801, 74802, 74803, 74805, 74806, 74901, 74902, 75002, 75003, 75004, 75100, 75201, 75202, 75301, 75302, 75303, 75401, 75403, 75404, 75405, 75504, 75505, 75506, 75507, 75512, 75513, 75514, 75516, 75517, 75518, 75603, 75604, 75605, 75606, 75607, 75701, 75702, 75703, 75805, 75806, 75807, 75808, 75809, 75810, 75811, 75812, 75813, 75814, 75815, 75816, 75901, 75902, 76001, 76002, 76102, 76103, 76104, 76105, 76201, 76202, 76204, 76205, 76206, 76208, 86301, 86303, 86304, 86305, 86306, 86402, 86404, 86405, 86406, 86407, 86501, 86502, 86601, 86602, 86701, 86702, 86801, 86802, 86803, 86901, 86902, 86903, 87001, 87002, 87101, 87102, 87103, 87105, 87106, 87200, 87301, 87302, 87401, 87403, 87404, 87405, 87503, 87504, 87505, 87601, 87602, 87701, 87703, 87704, 87801, 87802, 87803, 87805, 87806, 87901, 87902, 88001, 88002, 88101, 88104, 88105, 88106, 88107, 88201, 88202, 88203, 88301, 88302, 88401, 88402, 88403, 88501, 88502, 88601, 88602, 88701, 88702, 88801, 88802, 88901, 88902, 88903, 88904, 88905, 89001, 89003, 89004, 89102, 89104, 89105, 89106, 89107, 99202, 99203, 99204, 99212, 99214, 99215, 99216, 99217, 99220, 99222, 99223, 99224, 99225, 99226, 99227, 99229, 99230, 99231, 99232, 99233, 99234, 99235, 99237, 99238, 99239, 99240, 99241, 99242, 99243, 99244, 99245, 99246, 99247, 99248, 99249, 99250, 99251, 99305, 99306, 99307, 99308, 99309, 99310, 99311, 99402, 99404, 99405, 99406, 99407, 99408, 99410, 99411, 99412, 99415, 99416, 99417, 99418, 99419, 99502, 99504, 99506, 99508, 99509, 99510, 99511, 99512, 99513, 99514, 99601, 99602, 99603, 99604, 99605, 99701, 99702, 99703, 99801, 99802, 99803, 99902, 99903, 99904, 99905, 99906, 110001, 110003, 110004, 110005, 110006, 110007, 110008, 110010, 110011, 110012, 110014, 110015, 110102, 110104, 110106, 110108, 110109, 110110, 110111, 110113, 110114, 110115, 110116, 110117, 110118, 110201, 110202, 110203, 110301, 110302, 110303, 110304, 110401, 110402, 110500, 110603, 110604, 110605, 110606, 110607, 980000, 990100],
    '061' : [20104, 20105, 20106, 20107, 20200, 20300, 20401, 20402, 20501, 20502, 20601, 20604, 20605, 20606, 20607, 20608, 20710, 20711, 20712, 20713, 20714, 20715, 20717, 20805, 20806, 20901, 20908, 21003, 21034, 21037, 21038, 21039, 21040, 21043, 21044, 21045, 21046, 21047, 21048, 21103, 21106, 21108, 21109, 21122, 21123, 21128, 21129, 21130, 21131, 21203, 21204, 21304, 21323, 21324, 21325, 21326, 21327, 21328, 21401, 21403, 21501, 21502, 21603, 21604, 21801, 21802, 21901, 21902, 22002, 22011, 22013, 22014, 22100, 22200, 22300, 22400, 22500, 22600, 22800, 22900, 23000, 23100, 23200, 23300, 23400, 23501, 23502, 23600, 23700, 23800, 23900, 990000],
    '063' : [100, 201, 202, 300, 400, 501, 502],
    '065' : [30101, 30103, 30104, 30200, 30300, 30400, 30501, 30502, 30503, 30602, 30603, 30604, 30605, 30700, 30800, 30900, 31001, 31002, 31100, 31200, 31300, 31401, 31402, 31501, 31503, 31504, 31601, 31602, 31701, 31702, 31703, 31704, 40101, 40102, 40201, 40202, 40203, 40204, 40302, 40303, 40304, 40305, 40402, 40403, 40404, 40405, 40501, 40502, 40503, 40603, 40604, 40605, 40606, 40609, 40611, 40616, 40617, 40618, 40619, 40620, 40621, 40622, 40701, 40702, 40703, 40806, 40807, 40808, 40809, 40812, 40813, 40814, 40815, 40816, 40821, 40901, 40902, 40903, 40904, 41001, 41002, 41003, 41004, 41101, 41102, 41201, 41202, 41203, 41301, 41302, 41403, 41404, 41405, 41406, 41407, 41408, 41410, 41411, 41412, 41413, 41414, 41415, 41500, 41601, 41602, 41702, 41703, 41704, 41803, 41804, 41805, 41806, 41807, 41808, 41809, 41810, 41812, 41813, 41904, 41905, 41906, 41909, 41910, 41912, 41913, 41914, 41915, 42003, 42004, 42005, 42007, 42008, 42009, 42010, 42012, 42015, 42016, 42017, 42018, 42206, 42207, 42208, 42209, 42210, 42212, 42213, 42214, 42217, 42300, 42401, 42402, 42403, 42404, 42405, 42406, 42407, 42408, 42409, 42410, 42411, 42412, 42505, 42507, 42508, 42509, 42510, 42511, 42512, 42513, 42514, 42515, 42516, 42517, 42518, 42519, 42520, 42521, 42522, 42523, 42621, 42622, 42623, 42624, 42625, 42626, 42627, 42628, 42629, 42630, 42631, 42632, 42708, 42709, 42711, 42714, 42716, 42717, 42719, 42720, 42723, 42724, 42726, 42728, 42730, 42731, 42732, 42733, 42737, 42738, 42739, 42740, 42741, 42742, 42743, 42744, 42745, 42746, 42747, 42748, 42749, 42750, 42751, 42752, 42801, 42802, 42902, 42903, 42905, 42906, 42907, 42908, 43001, 43003, 43005, 43006, 43007, 43008, 43009, 43010, 43201, 43202, 43203, 43204, 43205, 43206, 43207, 43208, 43209, 43210, 43211, 43216, 43217, 43218, 43220, 43222, 43227, 43228, 43229, 43235, 43246, 43248, 43252, 43254, 43256, 43262, 43264, 43265, 43266, 43267, 43270, 43271, 43272, 43274, 43276, 43278, 43279, 43292, 43293, 43294, 43295, 43296, 43297, 43298, 43304, 43306, 43307, 43308, 43309, 43310, 43311, 43312, 43313, 43314, 43315, 43316, 43318, 43319, 43401, 43403, 43404, 43405, 43503, 43505, 43506, 43509, 43512, 43513, 43517, 43518, 43519, 43520, 43521, 43522, 43523, 43524, 43601, 43602, 43701, 43702, 43703, 43802, 43807, 43809, 43810, 43812, 43813, 43818, 43820, 43821, 43822, 43823, 43824, 43900, 44000, 44101, 44102, 44103, 44104, 44200, 44300, 44403, 44404, 44405, 44406, 44407, 44505, 44507, 44509, 44510, 44515, 44516, 44517, 44518, 44520, 44521, 44523, 44524, 44602, 44604, 44605, 44606, 44701, 44702, 44804, 44805, 44806, 44807, 44904, 44907, 44911, 44916, 44917, 44918, 44919, 44921, 44922, 44923, 44924, 44925, 44926, 44927, 44928, 44929, 44930, 44931, 44932, 44933, 44934, 45000, 45103, 45109, 45110, 45114, 45115, 45116, 45117, 45118, 45119, 45120, 45122, 45123, 45124, 45125, 45126, 45127, 45128, 45129, 45207, 45209, 45212, 45213, 45214, 45216, 45217, 45222, 45224, 45226, 45228, 45233, 45234, 45235, 45302, 45303, 45305, 45306, 45501, 45502, 45606, 45610, 45611, 45612, 45613, 45614, 45615, 45616, 45617, 45618, 45619, 45703, 45704, 45706, 45707, 45708, 45709, 45900, 46101, 46102, 46103, 46200, 46401, 46402, 46403, 46404, 46405, 46501, 46502, 46601, 46602, 46700, 46800, 46900, 47000, 47201, 47202, 47901, 47902, 48100, 48200, 48300, 48700, 48800, 48901, 48902, 49001, 49002, 49101, 49102, 49400, 49501, 49502, 49600, 49701, 49702, 49800, 50301, 50302, 50401, 50402, 50501, 50502, 50503, 50600, 50701, 50702, 50901, 50902, 51100, 51200, 51301, 51302, 51401, 51402, 940100, 940400, 940500, 940600, 940700, 940800, 940900, 941001, 941002, 941100, 941200, 941300, 941400, 941500, 980004, 981000],
    '067' : [100, 200, 300, 400, 501, 502, 600, 700, 800, 1102, 1103, 1201, 1202, 1300, 1400, 1500, 1601, 1602, 1701, 1702, 1800, 1900, 2000, 2100, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 2900, 3001, 3002, 3101, 3102, 3202, 3203, 3204, 3300, 3400, 3501, 3502, 3600, 3700, 3800, 3900, 4005, 4006, 4008, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4100, 4201, 4202, 4203, 4301, 4302, 4401, 4402, 4501, 4502, 4602, 4603, 4604, 4701, 4702, 4801, 4802, 4904, 4906, 4907, 4908, 4909, 4910, 5002, 5003, 5004, 5101, 5102, 5201, 5202, 5204, 5205, 5301, 5402, 5403, 5404, 5502, 5505, 5506, 5508, 5509, 5510, 5601, 5605, 5606, 5701, 5702, 5801, 5803, 5804, 5901, 5903, 5904, 6002, 6003, 6004, 6101, 6102, 6202, 6203, 6204, 6300, 6400, 6501, 6502, 6600, 6703, 6704, 6705, 6706, 6801, 6802, 6803, 6901, 6902, 7001, 7007, 7010, 7011, 7012, 7013, 7016, 7017, 7019, 7020, 7021, 7022, 7023, 7024, 7025, 7026, 7027, 7028, 7101, 7103, 7105, 7106, 7107, 7108, 7109, 7110, 7111, 7202, 7204, 7206, 7207, 7208, 7209, 7301, 7402, 7403, 7413, 7414, 7415, 7416, 7417, 7422, 7423, 7424, 7426, 7427, 7428, 7429, 7430, 7431, 7432, 7434, 7435, 7436, 7437, 7438, 7439, 7501, 7503, 7504, 7602, 7603, 7604, 7701, 7702, 7801, 7802, 7903, 7904, 7905, 7906, 8005, 8006, 8007, 8008, 8009, 8010, 8111, 8113, 8117, 8119, 8120, 8122, 8124, 8125, 8127, 8128, 8129, 8130, 8131, 8132, 8133, 8134, 8135, 8136, 8137, 8138, 8139, 8140, 8141, 8142, 8143, 8144, 8145, 8203, 8204, 8206, 8207, 8208, 8209, 8210, 8211, 8402, 8403, 8404, 8501, 8504, 8505, 8506, 8507, 8508, 8509, 8510, 8512, 8513, 8601, 8602, 8702, 8703, 8704, 8706, 8707, 8708, 8802, 8803, 8905, 8907, 8908, 8909, 8910, 8911, 8912, 8913, 9004, 9005, 9006, 9007, 9008, 9010, 9011, 9103, 9105, 9106, 9107, 9108, 9109, 9110, 9111, 9112, 9201, 9307, 9308, 9309, 9310, 9311, 9312, 9314, 9316, 9317, 9318, 9319, 9320, 9321, 9323, 9326, 9328, 9329, 9330, 9331, 9332, 9333, 9334, 9335, 9336, 9403, 9404, 9406, 9408, 9409, 9410, 9501, 9502, 9503, 9504, 9601, 9608, 9609, 9610, 9611, 9612, 9614, 9616, 9617, 9618, 9622, 9632, 9633, 9634, 9635, 9637, 9639, 9640, 9641, 9642, 9643, 9644, 9645, 9646, 9647, 9648, 9649, 9650, 9651, 9652, 9653, 9800, 9900, 988300],
    '071' : [103, 104, 105, 107, 108, 109, 111, 115, 117, 118, 119, 120, 121, 122, 201, 203, 205, 207, 208, 304, 305, 306, 307, 308, 401, 403, 404, 501, 503, 504, 603, 604, 605, 606, 804, 808, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 823, 824, 825, 826, 901, 903, 904, 1001, 1002, 1101, 1103, 1104, 1200, 1305, 1307, 1308, 1309, 1310, 1311, 1312, 1400, 1501, 1503, 1504, 1600, 1702, 1703, 1704, 1706, 1707, 1803, 1804, 1806, 1808, 1809, 1810, 1812, 1813, 1901, 1906, 1907, 1908, 1909, 1910, 1911, 2011, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2021, 2023, 2025, 2027, 2028, 2029, 2031, 2035, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2101, 2103, 2105, 2107, 2109, 2111, 2112, 2204, 2206, 2207, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2403, 2404, 2405, 2406, 2501, 2503, 2504, 2602, 2604, 2606, 2608, 2609, 2610, 2611, 2703, 2705, 2706, 2707, 2708, 2709, 2801, 2803, 2804, 2901, 2902, 3000, 3101, 3102, 3201, 3202, 3301, 3302, 3401, 3403, 3404, 3405, 3503, 3505, 3506, 3507, 3509, 3510, 3603, 3605, 3606, 3607, 3609, 3611, 3612, 3700, 3801, 3803, 3804, 3900, 4001, 4003, 4004, 4101, 4103, 4104, 4201, 4202, 4301, 4302, 4401, 4403, 4404, 4503, 4505, 4507, 4509, 4510, 4511, 4512, 4601, 4603, 4604, 4700, 4800, 4901, 4902, 5101, 5102, 5200, 5300, 5400, 5501, 5502, 5601, 5602, 5701, 5800, 6101, 6102, 6201, 6203, 6204, 6301, 6303, 6304, 6401, 6402, 6501, 6502, 6601, 6603, 6604, 6700, 7001, 7002, 7104, 7105, 7106, 7107, 7108, 7110, 7111, 7112, 7201, 7202, 7303, 7305, 7306, 7307, 7308, 7404, 7407, 7408, 7409, 7410, 7411, 7412, 7603, 7604, 7605, 7606, 7800, 7903, 7904, 7905, 7906, 8001, 8003, 8004, 8100, 8201, 8202, 8301, 8302, 8402, 8403, 8404, 8405, 8406, 8501, 8502, 8601, 8602, 8705, 8708, 8709, 8710, 8711, 8712, 8713, 8714, 8715, 8716, 8800, 8901, 9109, 9119, 9120, 9121, 9122, 9123, 9124, 9125, 9126, 9127, 9128, 9129, 9130, 9131, 9132, 9133, 9134, 9135, 9136, 9137, 9138, 9139, 9201, 9202, 9300, 9400, 9501, 9502, 9708, 9709, 9712, 9713, 9714, 9717, 9718, 9719, 9720, 9721, 9722, 9723, 9724, 9725, 9726, 9727, 9800, 9906, 9908, 9910, 9911, 9912, 9913, 9914, 9915, 9916, 9917, 9918, 10009, 10010, 10011, 10012, 10014, 10015, 10016, 10019, 10021, 10022, 10023, 10024, 10027, 10028, 10029, 10030, 10031, 10032, 10033, 10034, 10035, 10036, 10037, 10038, 10039, 10040, 10041, 10042, 10300, 10402, 10410, 10413, 10415, 10417, 10419, 10420, 10422, 10424, 10425, 10426, 10427, 10428, 10429, 10430, 10431, 10432, 10433, 10434, 10435, 10436, 10700, 10803, 10804, 10805, 10806, 10903, 10904, 10905, 10906, 11002, 11003, 11004, 11101, 11102, 11203, 11204, 11205, 11206, 11300, 11404, 11405, 11406, 11407, 11408, 11500, 11601, 11602, 11700, 11801, 11802, 11900, 12001, 12002, 12101, 12103, 12105, 12106, 12201, 12202, 12300, 12400, 12500, 12700, 25000, 25100, 940100, 980100, 980200],
    '073' : [100, 201, 202, 301, 302, 400, 500, 600, 700, 800, 901, 902, 1000, 1100, 1201, 1202, 1301, 1302, 1400, 1500, 1600, 1700, 1801, 1802, 1900, 2001, 2002, 2100, 2201, 2202, 2301, 2302, 2401, 2402, 2501, 2502, 2601, 2602, 2702, 2703, 2705, 2707, 2708, 2709, 2710, 2711, 2712, 2801, 2803, 2804, 2902, 2903, 2904, 2905, 3001, 3003, 3004, 3101, 3103, 3105, 3107, 3108, 3109, 3111, 3112, 3113, 3114, 3115, 3201, 3202, 3204, 3207, 3208, 3209, 3211, 3212, 3213, 3214, 3301, 3303, 3304, 3305, 3401, 3403, 3404, 3501, 3502, 3601, 3602, 3603, 3800, 3901, 3902, 4000, 4101, 4102, 4200, 4300, 4400, 4501, 4600, 4700, 4800, 4900, 5000, 5101, 5102, 5103, 5201, 5202, 5301, 5302, 5401, 5402, 5403, 5500, 5601, 5602, 5700, 5801, 5802, 5900, 6000, 6100, 6200, 6300, 6500, 6600, 6801, 6802, 6900, 7002, 7100, 7200, 7302, 7303, 7304, 7401, 7402, 7501, 7502, 7601, 7602, 7701, 7702, 7800, 7905, 7907, 7908, 7910, 7911, 7912, 8002, 8003, 8006, 8101, 8102, 8201, 8202, 8301, 8303, 8305, 8306, 8307, 8310, 8311, 8312, 8313, 8324, 8327, 8328, 8330, 8331, 8336, 8337, 8339, 8343, 8344, 8345, 8346, 8347, 8348, 8349, 8350, 8351, 8352, 8353, 8355, 8356, 8357, 8358, 8359, 8360, 8361, 8362, 8363, 8364, 8365, 8366, 8367, 8368, 8369, 8370, 8371, 8372, 8373, 8374, 8375, 8376, 8377, 8378, 8379, 8380, 8381, 8501, 8502, 8503, 8504, 8505, 8506, 8507, 8509, 8510, 8511, 8512, 8513, 8600, 8701, 8702, 8800, 8901, 8902, 9000, 9101, 9102, 9103, 9104, 9107, 9108, 9109, 9201, 9203, 9204, 9301, 9305, 9306, 9307, 9308, 9400, 9502, 9504, 9505, 9506, 9507, 9509, 9510, 9511, 9602, 9603, 9604, 9703, 9704, 9705, 9706, 9801, 9802, 9804, 9805, 9901, 9902, 10001, 10003, 10004, 10005, 10009, 10010, 10011, 10012, 10013, 10015, 10016, 10017, 10018, 10019, 10103, 10104, 10106, 10107, 10109, 10110, 10111, 10112, 10201, 10202, 10300, 10401, 10402, 10501, 10502, 10601, 10800, 10900, 11000, 11100, 11300, 11601, 11602, 11700, 11801, 11802, 11902, 12002, 12003, 12101, 12102, 12200, 12302, 12303, 12304, 12401, 12402, 12501, 12502, 12600, 12700, 12800, 12900, 13000, 13102, 13103, 13104, 13203, 13204, 13205, 13206, 13301, 13302, 13303, 13306, 13307, 13308, 13309, 13312, 13315, 13316, 13317, 13318, 13319, 13320, 13321, 13322, 13323, 13324, 13325, 13326, 13327, 13401, 13409, 13411, 13412, 13414, 13415, 13416, 13417, 13418, 13420, 13421, 13422, 13423, 13424, 13425, 13503, 13504, 13505, 13506, 13601, 13604, 13605, 13607, 13608, 13701, 13702, 13801, 13802, 13903, 13905, 13906, 13907, 13908, 13909, 14001, 14002, 14101, 14102, 14200, 14300, 14400, 14500, 14601, 14602, 14701, 14702, 14803, 14804, 14805, 14806, 14901, 14902, 15001, 15002, 15100, 15200, 15301, 15302, 15403, 15405, 15406, 15407, 15408, 15501, 15502, 15601, 15602, 15701, 15704, 15705, 15706, 15801, 15802, 15901, 15902, 16000, 16100, 16201, 16202, 16301, 16302, 16401, 16403, 16404, 16502, 16503, 16504, 16606, 16607, 16608, 16609, 16610, 16613, 16614, 16615, 16616, 16617, 16618, 16619, 16620, 16621, 16703, 16704, 16705, 16706, 16804, 16806, 16807, 16809, 16810, 16811, 16812, 16813, 16901, 16902, 17006, 17009, 17010, 17014, 17018, 17020, 17021, 17022, 17031, 17033, 17034, 17035, 17036, 17037, 17039, 17040, 17041, 17043, 17044, 17045, 17046, 17047, 17048, 17049, 17050, 17051, 17052, 17053, 17054, 17055, 17056, 17057, 17058, 17059, 17060, 17061, 17062, 17063, 17064, 17065, 17066, 17067, 17068, 17069, 17070, 17071, 17104, 17106, 17107, 17108, 17109, 17111, 17112, 17113, 17201, 17202, 17303, 17305, 17306, 17307, 17308, 17403, 17405, 17406, 17407, 17408, 17501, 17502, 17601, 17603, 17605, 17606, 17701, 17702, 17801, 17808, 17809, 17810, 17811, 17813, 17901, 17902, 18000, 18101, 18102, 18201, 18202, 18301, 18302, 18400, 18504, 18509, 18510, 18511, 18512, 18515, 18516, 18517, 18518, 18519, 18520, 18521, 18522, 18523, 18524, 18525, 18601, 18608, 18609, 18612, 18613, 18615, 18616, 18617, 18618, 18619, 18620, 18621, 18622, 18700, 18801, 18803, 18804, 18805, 18903, 18904, 18905, 18906, 19001, 19002, 19103, 19105, 19107, 19108, 19109, 19110, 19111, 19203, 19205, 19206, 19208, 19209, 19210, 19301, 19303, 19304, 19305, 19403, 19404, 19405, 19406, 19501, 19502, 19503, 19601, 19602, 19701, 19702, 19803, 19804, 19805, 19808, 19809, 19810, 19811, 19902, 19903, 19904, 19905, 20015, 20017, 20019, 20021, 20023, 20024, 20025, 20026, 20028, 20029, 20030, 20031, 20032, 20033, 20034, 20035, 20036, 20037, 20038, 20039, 20040, 20041, 20042, 20043, 20044, 20105, 20106, 20107, 20108, 20109, 20110, 20111, 20202, 20206, 20207, 20208, 20209, 20210, 20211, 20213, 20214, 20304, 20305, 20308, 20309, 20310, 20311, 20312, 20313, 20401, 20403, 20404, 20405, 20500, 20601, 20602, 20705, 20706, 20707, 20708, 20710, 20711, 20712, 20801, 20805, 20806, 20807, 20810, 20811, 20812, 20813, 20902, 20903, 20904, 21001, 21002, 21101, 21102, 21202, 21204, 21205, 21206, 21302, 21304, 21305, 21306, 21401, 21402, 21501, 21502, 21600, 21800, 21900, 22000, 22101, 22102, 990100],
    '077' : [101, 102, 300, 401, 402, 500, 600, 700, 802, 803, 900, 1000, 1101, 1102, 1200, 1300, 1400, 1501, 1502, 1600, 1700, 1800, 1900, 2000, 2100, 2201, 2202, 2300, 2401, 2402, 2503, 2504, 2701, 2702, 2800, 3106, 3108, 3109, 3110, 3111, 3112, 3115, 3116, 3117, 3118, 3119, 3203, 3205, 3209, 3210, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3305, 3306, 3307, 3308, 3310, 3311, 3312, 3313, 3403, 3404, 3405, 3406, 3407, 3409, 3410, 3501, 3502, 3503, 3504, 3601, 3602, 3700, 3803, 3804, 3805, 3806, 3807, 3808, 3900, 4001, 4003, 4004, 4104, 4105, 4106, 4107, 4108, 4202, 4203, 4204, 4205, 4206, 4302, 4305, 4307, 4308, 4309, 4310, 4402, 4403, 4404, 4501, 4502, 4600, 4701, 4703, 4704, 4800, 4903, 4904, 4905, 4906, 5001, 5003, 5004, 5106, 5108, 5109, 5119, 5122, 5123, 5124, 5125, 5126, 5127, 5129, 5130, 5131, 5132, 5133, 5134, 5135, 5136, 5137, 5138, 5139, 5140, 5141, 5208, 5211, 5212, 5213, 5214, 5215, 5216, 5217, 5218, 5219, 5220, 5221, 5222, 5223, 5224, 5225, 5303, 5307, 5308, 5309, 5310, 5311, 5312, 5403, 5405, 5406, 5502, 5503, 980000],
    '079' : [10016, 10017, 10101, 10103, 10104, 10202, 10204, 10205, 10206, 10207, 10301, 10302, 10303, 10403, 10404, 10504, 10505, 10506, 10602, 10603, 10701, 10703, 10707, 10902, 10903, 10904, 11001, 11002, 11101, 11103, 11104, 11105, 11201, 11202, 11300, 11400, 11501, 11505, 11600, 11704, 11705, 11706, 11800, 11901, 11903, 11904, 12001, 12002, 12102, 12201, 12202, 12302, 12305, 12306, 12403, 12404, 12405, 12406, 12502, 12503, 12505, 12601, 12602, 12705, 12706, 12707, 12708, 13000, 13100, 990000],
    '083' : [101, 102, 103, 201, 202, 301, 302, 400, 501, 502, 600, 700, 801, 805, 806, 900, 1001, 1002, 1101, 1102, 1203, 1206, 1208, 1306, 1307, 1308, 1403, 1404, 1500, 1601, 1604, 1704, 1706, 1800, 1905, 1907, 1908, 1909, 1910, 1911, 1912, 2005, 2006, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2101, 2102, 2103, 2205, 2206, 2209, 2210, 2211, 2303, 2304, 2307, 2308, 2309, 2310, 2405, 2406, 2407, 2408, 2409, 2410, 2503, 2504, 2703, 2705, 2706, 2707, 2708, 2709, 2710, 2802, 2806, 2808, 2809, 2906, 2907, 2909, 2913, 2914, 2924, 2926, 2932, 2933, 2934, 2935, 2936, 2937, 3001, 3004, 3005, 3007, 3102, 980000, 980100, 980200, 980300, 980400, 980500, 990000],
    '089' : [10100, 10200, 10300, 10400, 10500, 10601, 10602, 10603, 10702, 10703, 10704, 10803, 10804, 10805, 10806, 10807, 10900, 11001, 11002, 11100, 11209, 11300, 11401, 11402, 11403, 11501, 11502, 11600, 11701, 11702, 11703, 11801, 11802, 11803, 11900, 12000, 12101, 12102, 12200, 12301, 12302, 12303, 12400, 12500, 12603, 12604, 12605, 12606, 12701, 12702],
    '091' : [10000],
    '093' : [100, 200, 300, 600, 701, 702, 703, 800, 901, 902, 1001, 1002, 1003, 1100, 1200, 1300],
    '095' : [250103, 250104, 250105, 250106, 250200, 250300, 250400, 250501, 250502, 250601, 250604, 250605, 250701, 250801, 250900, 251000, 251100, 251200, 251300, 251400, 251500, 251600, 251701, 251702, 251802, 251803, 251804, 251901, 251902, 251903, 252000, 252102, 252103, 252104, 252105, 252106, 252107, 252108, 252203, 252204, 252205, 252206, 252305, 252306, 252310, 252311, 252312, 252313, 252314, 252315, 252316, 252317, 252401, 252402, 252501, 252502, 252604, 252605, 252606, 252607, 252608, 252610, 252611, 252702, 252703, 252704, 252705, 252706, 252707, 252801, 252802, 252903, 252904, 252908, 252909, 252910, 252911, 252912, 252913, 252914, 252915, 253000, 253101, 253105, 253106, 253107, 253108, 253201, 253203, 253205, 253206, 253207, 253208, 253300, 253402, 253403, 253404, 253501, 253502, 980000],
    '097' : [150100, 150203, 150204, 150205, 150206, 150303, 150304, 150305, 150306, 150501, 150502, 150601, 150602, 150603, 150607, 150609, 150610, 150611, 150612, 150701, 150702, 150800, 150901, 150902, 151000, 151100, 151203, 151204, 151205, 151206, 151301, 151305, 151306, 151307, 151308, 151309, 151310, 151311, 151403, 151404, 151405, 151406, 151503, 151504, 151505, 151506, 151601, 151602, 151701, 151702, 151800, 151900, 152000, 152100, 152201, 152203, 152204, 152205, 152300, 152401, 152402, 152501, 152502, 152601, 152602, 152701, 152702, 152801, 152803, 152804, 152903, 152904, 152905, 152906, 153001, 153002, 153003, 153005, 153006, 153102, 153103, 153104, 153201, 153202, 153301, 153302, 153403, 153404, 153405, 153406, 153501, 153502, 153601, 153602, 153705, 153707, 153708, 153709, 153710, 153711, 153712, 153804, 153806, 153807, 153808, 153809, 153810, 153811, 153902, 153903, 153904, 153905, 154000, 154100, 154201, 154202, 154304, 154305, 154306, 154307, 154308, 990100],
    '099' : [101, 102, 201, 202, 204, 205, 301, 302, 303, 304, 403, 404, 405, 406, 407, 501, 503, 505, 506, 511, 512, 513, 514, 601, 602, 801, 803, 805, 806, 807, 905, 906, 907, 908, 909, 910, 911, 913, 914, 915, 1001, 1002, 1100, 1200, 1300, 1400, 1500, 1601, 1603, 1604, 1700, 1800, 1900, 2002, 2004, 2005, 2006, 2100, 2200, 2302, 2303, 2304, 2401, 2402, 2503, 2504, 2505, 2506, 2602, 2603, 2604, 2605, 2701, 2702, 2801, 2802, 2803, 2901, 2903, 2904, 3002, 3003, 3004, 3100, 3201, 3203, 3204, 3205, 3206, 3300, 3400, 3501, 3502, 3603, 3607, 3608, 3609, 3610, 3611, 3612, 3700, 3802, 3803, 3804, 3805, 3904, 3905, 3906, 3907, 3908, 3909, 4000],
    '101' : [50101, 50102, 50201, 50202, 50301, 50302, 50401, 50402, 50403, 50501, 50503, 50504, 50601, 50603, 50604, 50701, 50702, 50800, 50900, 51000, 51100],
    '103' : [100, 201, 202, 300, 400, 500, 600, 701, 702, 800, 900, 1000, 1101, 1102],
    '105' : [101, 102, 200, 500],
    '107' : [101, 102, 202, 203, 204, 302, 303, 304, 401, 402, 501, 502, 600, 701, 702, 801, 802, 901, 902, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1101, 1102, 1200, 1303, 1304, 1305, 1306, 1400, 1501, 1502, 1601, 1602, 1701, 1703, 1705, 1706, 1800, 1901, 1902, 2002, 2003, 2004, 2006, 2008, 2009, 2010, 2011, 2100, 2202, 2203, 2204, 2302, 2303, 2304, 2401, 2402, 2403, 2500, 2601, 2602, 2701, 2702, 2800, 2901, 2903, 2904, 3001, 3002, 3100, 3201, 3202, 3301, 3302, 3401, 3402, 3501, 3503, 3504, 3601, 3602, 3700, 3801, 3802, 3902, 3903, 3904, 4000, 4102, 4103, 4104, 4200, 4301, 4302, 4401, 4402, 4500],
    '109' : [1100, 1200, 2101, 2102, 2201, 2202, 3101, 3102, 3103, 3200, 4101, 4102, 4201, 4202, 5101, 5102, 5201, 985202],
    '111' : [302, 303, 304, 400, 500, 600, 701, 702, 800, 901, 902, 903, 1002, 1101, 1102, 1201, 1202, 1204, 1302, 1303, 1304, 1401, 1402, 1506, 1507, 1508, 1509, 1510, 1511, 1602, 1801, 1901, 2000, 2102, 2200, 2301, 2302, 2400, 2500, 2600, 2700, 2800, 2901, 2905, 3010, 3011, 3013, 3101, 3102, 3201, 3301, 3302, 3608, 3613, 3614, 3615, 3616, 3617, 3618, 3700, 3801, 3802, 3901, 3902, 4000, 4101, 4200, 4304, 4305, 4400, 4503, 4504, 4505, 4507, 4508, 4600, 4704, 4710, 4711, 4715, 4716, 4717, 4901, 4902, 5002, 5004, 5005, 5006, 5202, 5203, 5204, 5205, 5304, 5305, 5306, 5307, 5308, 5401, 5403, 5404, 5502, 5503, 5504, 5601, 5602, 5700, 5801, 5803, 5804, 5901, 5906, 5907, 5908, 5909, 5910, 5911, 6000, 6101, 6102, 6200, 6301, 6302, 6400, 6500, 6600, 6700, 6800, 6900, 7000, 7100, 7201, 7202, 7300, 7402, 7403, 7405, 7406, 7505, 7506, 7507, 7508, 7509, 7510, 7511, 7512, 7513, 7515, 7516, 7607, 7609, 7610, 7611, 7612, 7613, 7614, 7700, 7800, 7901, 7903, 7904, 8001, 8002, 8004, 8005, 8101, 8201, 8202, 8302, 8303, 8304, 8307, 8308, 8401, 8402, 8501, 8502, 8601, 8602, 8700, 8800, 8900, 9100, 9200, 9300, 9400, 9500, 9600, 9700, 980000, 990100],
    '113' : [10102, 10103, 10104, 10105, 10201, 10203, 10204, 10310, 10312, 10313, 10314, 10315, 10401, 10402, 10501, 10505, 10508, 10509, 10510, 10511, 10512, 10513, 10602, 10605, 10607, 10608, 10609, 10610, 10611, 10701, 10703, 10704, 10800, 10901, 10902, 11001, 11002, 11101, 11102, 11103, 11203, 11204, 11207, 11208, 11209, 11210, 11211, 11301, 11302, 11303, 11304, 11400, 11500],
    '115' : [40100, 40201, 40202, 40301, 40302, 40304, 40305, 40400, 40500, 40600, 40701, 40702, 40800, 40901, 40902, 41001, 41002, 41101, 41102]
]]]></entry>
        <entry id="census2020_ct" type="java"><![CDATA[[
    '001' : [10101, 10102, 10201, 10202, 10300, 10400, 10500, 10600, 10700, 10800, 10900, 11000, 11100, 11200, 11300, 20101, 20102, 20200, 20301, 20302, 20400, 20500, 20600, 20700, 20800, 20900, 21000, 21100, 21200, 21300, 21401, 21402, 21501, 21502, 21601, 21602, 21701, 21702, 21801, 21802, 21900, 22000, 22101, 22102, 22201, 22202, 22300, 22400, 30100, 30200, 30300, 30400, 30500, 35101, 35102, 35200, 35300, 35400, 42500, 42600, 42700, 42800, 42900, 43000, 43100, 43200, 43300, 43400, 43500, 43600, 43700, 43800, 43900, 44000, 44100, 44200, 44300, 44400, 44500, 44600, 45101, 45102, 45200, 45300, 45400, 50100, 50200, 50301, 50302, 50400, 50500, 50600, 55100, 55200, 60100, 60200, 60300, 60400, 60500, 60600, 60700, 60800, 60900, 61000, 61100, 61200, 61300, 61400, 61500, 61600, 70100, 70200, 70300, 70400, 70500, 70600, 70900, 71000, 71100, 71200, 71300, 71400, 71600, 71900, 72000, 72100, 72200, 72300, 72400, 72500, 72600, 72700, 72800, 72900, 73000, 73100, 73200, 73300, 73400, 73500, 73600, 73700, 73800, 73900, 74000, 74300, 74400, 80100, 80200, 80400, 80500, 80600, 80700, 80800, 80900, 81000, 81100, 81200, 81300, 90100, 90200, 90300, 90400, 90500, 90600, 90700, 100100, 100200, 100300, 105100, 105200, 110100, 110201, 110202, 110301, 110302, 110400, 110500, 110601, 110602, 200100, 200200, 200301, 200302, 205100, 205200, 205300, 210101, 210102, 210201, 210202, 210300, 210401, 210402, 210501, 210502, 210600, 210701, 210702, 210800, 210900, 211000, 211100, 211201, 211202, 211300, 211400, 220100, 220200, 220300, 230100, 230200, 230300, 230400, 230501, 230502, 240100, 240200, 245100, 245200, 245300, 245400, 245500, 245600, 257100, 257200, 990000],
    '003' : [330100, 400101, 400102, 400200, 400300, 405100, 405200, 405300, 405401, 405402, 405500, 405600, 405700, 405801, 405802, 405900, 406001, 406002, 406100, 410101, 410102, 415300, 415400, 415500, 415600, 415700, 415800, 415900, 416000, 416100, 416200, 416300, 416400, 416500, 416600, 416700, 416800, 417100, 417200, 417300, 417400, 417500, 420400, 420500, 420601, 420602, 420700, 430100, 430201, 430202, 430203, 430301, 430302, 430400, 430501, 430502, 430602, 430603, 430604, 460100, 460202, 460203, 460204, 460301, 460302, 462101, 462102, 462201, 462202, 464101, 464102, 466101, 466102, 466201, 466202, 466300, 466400, 468101, 468102, 470100, 471100, 471200, 471300, 471400, 471500, 473100, 473400, 473501, 473502, 473601, 473602, 473700, 473800, 476100, 476200, 476300, 477101, 477103, 477104, 477200, 480300, 480400, 480500, 480600, 480700, 480800, 480900, 481000, 481100, 481200, 481300, 484100, 484200, 487100, 487201, 487202, 487300, 487400, 487500, 490100, 490303, 490304, 492100, 492200, 492300, 492400, 492500, 492600, 494100, 494201, 494202, 494300, 494400, 494500, 494600, 496100, 496200, 496300, 496400, 496500, 496600, 496700, 496800, 496900, 497000, 497100, 497200, 497300, 497400, 497500, 497600, 497700, 500100, 500200, 500300, 500400, 500500, 500900, 501200, 501300, 501400, 501500, 501700, 501800, 502100, 502300, 502400, 502500, 502600, 502700, 502800, 502900, 503000, 503101, 503102, 503300, 503500, 503700, 503800, 503900, 504000, 504100, 504200, 504300, 504500, 504800, 504900, 510100, 510200, 510300, 510400, 510500, 510600, 510700, 510800, 510900, 511000, 511100, 511200, 511300, 511400, 514101, 514103, 514104, 514200, 514300, 514400, 514500, 514600, 514700, 514800, 514900, 515000, 515101, 515102, 515200, 520100, 520201, 520202, 520301, 520302, 520400, 520501, 524100, 524200, 524300, 524400, 524501, 524502, 524600, 524700, 980001, 980002, 980003, 980100],
    '005' : [250100, 253100, 253200, 253400, 253500, 260200, 261100, 262100, 263200, 265100, 266100, 267100, 268100, 290100, 293100, 296100, 298300, 298400, 300100, 300400, 300500, 303100, 306100, 310100, 310200, 310300, 310400, 310500, 310601, 310602, 310700, 310801, 310803, 310804, 320101, 320102, 320200, 342100, 349100, 349200, 360100, 360200, 360300, 360400, 362101, 362102, 425300, 425400, 425500, 425601, 425602, 425700],
    '007' : [541100, 541200, 541301, 541302, 541401, 541402, 541500, 541600, 541700, 542000, 542100, 542200, 550100, 550201, 550202, 560100, 560200, 570100, 570200, 570300, 580100, 585100, 590101, 590102, 595101, 595102, 600100, 610100, 610200, 610300, 610400, 620100, 630101, 630102, 640100, 670100, 670200, 680101, 680102, 680200, 990100],
    '009' : [120100, 120200, 125100, 125200, 125300, 125400, 130101, 130102, 130201, 130202, 140101, 140102, 140200, 140300, 140400, 140500, 140600, 140700, 140800, 140900, 141000, 141100, 141200, 141301, 141400, 141500, 141600, 141800, 141900, 142000, 142100, 142200, 142300, 142400, 142500, 142601, 142604, 142605, 142700, 142800, 150100, 150200, 150300, 150400, 150500, 150600, 150700, 150800, 150900, 151000, 151100, 151200, 154101, 154102, 154200, 154500, 154600, 154700, 154800, 154900, 155000, 155100, 157100, 157200, 157300, 157400, 160100, 160200, 161100, 165100, 165200, 165300, 165400, 165500, 165600, 165700, 165801, 165802, 165900, 166002, 166003, 166004, 167101, 167102, 167201, 167202, 167301, 170100, 170200, 170300, 170400, 170500, 170600, 170700, 170800, 170900, 171000, 171100, 171201, 171202, 171300, 171400, 171500, 171600, 171700, 175100, 175200, 175300, 175400, 175501, 175502, 175600, 175700, 175800, 175900, 176000, 180101, 180102, 180200, 180300, 180400, 180500, 180601, 180602, 184101, 184200, 184300, 184400, 184500, 184600, 184700, 186100, 186200, 190100, 190200, 190301, 190302, 190303, 194101, 194102, 194201, 194202, 341100, 343101, 343102, 343200, 343300, 343400, 344100, 344200, 345100, 345201, 345202, 345300, 345400, 346101, 346102, 347100, 347200, 348111, 348122, 348123, 348124, 348125, 350101, 350200, 350300, 350400, 350500, 350800, 350900, 351000, 351100, 351200, 351300, 351400, 351500, 351601, 351602, 351700, 351800, 351900, 352000, 352100, 352200, 352300, 352400, 352500, 352600, 352701, 352702, 352800, 361100, 361200, 361300, 361401, 361402, 361500, 990000],
    '011' : [650100, 660101, 660103, 660104, 690300, 690400, 690500, 690700, 690800, 690900, 693300, 693400, 693500, 693600, 693700, 695201, 695202, 696100, 696200, 696300, 696401, 696500, 696600, 696701, 696800, 697000, 700100, 701100, 701200, 702100, 702300, 702400, 702500, 702600, 702700, 702800, 702900, 703000, 705101, 705102, 705200, 705300, 705400, 707100, 708100, 709100, 709200, 710100, 711100, 712100, 713100, 714101, 714103, 714104, 715100, 716101, 716102, 870100, 870200, 870300, 870501, 870502, 870701, 870703, 870704, 980000, 990100],
    '013' : [526101, 526102, 528100, 529100, 530100, 530200, 530301, 530302, 530400, 530500, 530600, 533102, 533103, 533104, 535101, 535102, 535200, 538100, 538201, 538202, 840100, 850100, 850200, 860100, 881100, 881200, 881300, 881500, 890100, 890202, 890203, 890204],
    '015' : [800300, 800400, 800501, 800502, 800600, 800700, 815000, 820000, 825000, 830100, 900100, 900200, 901101, 901102, 902200, 902500, 903101, 903102, 903200, 904101, 904102, 904400, 904500, 905101, 905102, 906100, 907100, 907200, 907300, 908100]
]]]></entry>
        <entry id="census2020_ga" type="java"><![CDATA[[
    '063' : [40202, 40203, 40204, 40302, 40306, 40307, 40308, 40309, 40310, 40407, 40409, 40410, 40414, 40416, 40417, 40418, 40419, 40420, 40421, 40422, 40423, 40424, 40425, 40426, 40427, 40509, 40510, 40512, 40513, 40518, 40519, 40521, 40522, 40523, 40525, 40527, 40528, 40529, 40530, 40531, 40532, 40533, 40534, 40535, 40536, 40537, 40538, 40606, 40609, 40614, 40615, 40617, 40623, 40624, 40625, 40626, 40627, 40628, 40629, 40630, 40631, 40632, 40633, 40634, 40635, 40636, 40637, 40638, 40639, 980000],
    '067' : [30104, 30107, 30108, 30109, 30110, 30111, 30112, 30113, 30220, 30233, 30235, 30236, 30240, 30241, 30242, 30243, 30244, 30245, 30246, 30247, 30248, 30249, 30250, 30251, 30252, 30253, 30254, 30255, 30256, 30257, 30258, 30259, 30260, 30261, 30262, 30263, 30264, 30265, 30266, 30267, 30268, 30269, 30270, 30271, 30272, 30273, 30274, 30275, 30276, 30277, 30278, 30319, 30322, 30324, 30326, 30327, 30329, 30331, 30332, 30334, 30335, 30337, 30340, 30341, 30342, 30343, 30344, 30345, 30346, 30347, 30348, 30349, 30350, 30351, 30352, 30353, 30354, 30355, 30356, 30357, 30358, 30359, 30360, 30361, 30362, 30363, 30364, 30365, 30366, 30367, 30368, 30369, 30370, 30405, 30407, 30408, 30409, 30410, 30411, 30412, 30413, 30414, 30505, 30506, 30507, 30508, 30509, 30510, 30511, 30602, 30603, 30604, 30700, 30800, 30906, 30907, 30908, 30909, 30910, 30911, 30912, 31001, 31004, 31005, 31006, 31007, 31101, 31110, 31111, 31112, 31113, 31114, 31115, 31116, 31117, 31118, 31119, 31120, 31121, 31122, 31207, 31209, 31212, 31213, 31214, 31215, 31216, 31217, 31218, 31219, 31220, 31221, 31306, 31308, 31314, 31315, 31316, 31317, 31318, 31319, 31320, 31321, 31322, 31323, 31324, 31325, 31409, 31410, 31411, 31412, 31413, 31414, 31415, 31416, 31417, 31506, 31507, 31510, 31511, 31512, 31513, 31514, 31515, 31516, 31517, 31518],
    '089' : [20100, 20200, 20300, 20400, 20500, 20600, 20700, 20801, 20802, 20901, 20902, 21101, 21103, 21104, 21204, 21208, 21210, 21211, 21213, 21217, 21219, 21220, 21221, 21222, 21223, 21224, 21225, 21226, 21227, 21228, 21229, 21230, 21301, 21305, 21306, 21307, 21308, 21309, 21310, 21405, 21409, 21410, 21411, 21412, 21415, 21416, 21417, 21418, 21419, 21420, 21421, 21502, 21503, 21505, 21506, 21602, 21604, 21606, 21607, 21608, 21609, 21703, 21707, 21708, 21709, 21710, 21711, 21712, 21808, 21812, 21813, 21815, 21816, 21817, 21818, 21819, 21820, 21821, 21822, 21823, 21824, 21906, 21908, 21910, 21911, 21912, 21913, 21914, 21915, 21916, 21917, 22001, 22005, 22007, 22010, 22011, 22012, 22013, 22014, 22015, 22016, 22100, 22203, 22205, 22206, 22302, 22303, 22304, 22401, 22403, 22404, 22405, 22501, 22502, 22601, 22602, 22700, 22800, 22900, 23000, 23101, 23102, 23107, 23108, 23111, 23112, 23113, 23114, 23115, 23209, 23211, 23212, 23213, 23214, 23215, 23216, 23217, 23218, 23219, 23220, 23221, 23222, 23311, 23313, 23315, 23317, 23318, 23319, 23320, 23321, 23322, 23323, 23324, 23325, 23326, 23327, 23328, 23329, 23330, 23331, 23332, 23410, 23411, 23413, 23422, 23424, 23425, 23426, 23427, 23429, 23430, 23431, 23432, 23433, 23434, 23435, 23436, 23437, 23438, 23439, 23440, 23441, 23442, 23443, 23444, 23445, 23446, 23447, 23448, 23501, 23504, 23505, 23506, 23507, 23601, 23602, 23603, 23701, 23702, 23801, 23802, 23803, 980000],
    '121' : [100, 201, 202, 400, 501, 502, 601, 602, 700, 1001, 1002, 1101, 1102, 1203, 1204, 1205, 1206, 1301, 1302, 1400, 1501, 1502, 1600, 1701, 1702, 1801, 1802, 1901, 1902, 2100, 2300, 2400, 2500, 2600, 2801, 2802, 2900, 3000, 3100, 3200, 3500, 3600, 3700, 3800, 3900, 4000, 4100, 4200, 4300, 4400, 4800, 4900, 5000, 5200, 5300, 5501, 5503, 5504, 5700, 5800, 6000, 6100, 6200, 6300, 6400, 6500, 6601, 6602, 6701, 6702, 6801, 6802, 6900, 7001, 7002, 7100, 7200, 7301, 7302, 7400, 7500, 7602, 7603, 7604, 7703, 7705, 7707, 7708, 7709, 7710, 7711, 7805, 7806, 7807, 7808, 7809, 7810, 7900, 8000, 8103, 8104, 8202, 8203, 8204, 8301, 8302, 8400, 8500, 8601, 8602, 8701, 8702, 8801, 8802, 8903, 8905, 8906, 8907, 8908, 8909, 9001, 9002, 9103, 9104, 9105, 9106, 9201, 9202, 9203, 9301, 9302, 9405, 9406, 9407, 9408, 9409, 9410, 9411, 9501, 9503, 9504, 9601, 9604, 9605, 9606, 9607, 9700, 9802, 9803, 9804, 9900, 10003, 10004, 10005, 10006, 10007, 10106, 10107, 10108, 10115, 10117, 10120, 10121, 10124, 10125, 10126, 10127, 10128, 10129, 10130, 10131, 10132, 10133, 10134, 10135, 10136, 10137, 10204, 10211, 10212, 10213, 10214, 10215, 10216, 10217, 10218, 10219, 10220, 10221, 10222, 10223, 10305, 10306, 10307, 10308, 10309, 10310, 10311, 10312, 10313, 10314, 10315, 10401, 10402, 10508, 10517, 10518, 10519, 10520, 10521, 10522, 10523, 10524, 10525, 10526, 10527, 10528, 10529, 10530, 10531, 10532, 10533, 10534, 10535, 10536, 10537, 10538, 10539, 10540, 10601, 10603, 10604, 10801, 10802, 11000, 11100, 11202, 11203, 11204, 11301, 11306, 11307, 11308, 11309, 11310, 11416, 11417, 11419, 11421, 11422, 11423, 11424, 11426, 11428, 11429, 11430, 11431, 11432, 11433, 11434, 11435, 11436, 11437, 11438, 11439, 11440, 11441, 11442, 11443, 11444, 11445, 11446, 11505, 11507, 11508, 11509, 11510, 11511, 11512, 11513, 11514, 11515, 11612, 11618, 11624, 11627, 11628, 11629, 11630, 11631, 11632, 11633, 11634, 11635, 11636, 11637, 11638, 11639, 11640, 11641, 11642, 11643, 11644, 11645, 11646, 11647, 11648, 11649, 11650, 11651, 11652, 11653, 11654, 11655, 11656, 11657, 11658, 11659, 11660, 11661, 11801, 11802, 11901, 11902, 12000, 12300, 980000],
    '135' : [50105, 50110, 50111, 50112, 50113, 50114, 50115, 50116, 50117, 50118, 50119, 50120, 50121, 50205, 50215, 50218, 50219, 50221, 50222, 50223, 50224, 50225, 50226, 50227, 50228, 50229, 50230, 50231, 50232, 50233, 50234, 50235, 50236, 50237, 50238, 50239, 50240, 50241, 50242, 50243, 50244, 50306, 50308, 50311, 50315, 50317, 50318, 50321, 50322, 50323, 50324, 50325, 50326, 50327, 50328, 50329, 50330, 50331, 50332, 50333, 50334, 50335, 50336, 50415, 50416, 50425, 50427, 50430, 50433, 50435, 50437, 50438, 50439, 50440, 50441, 50442, 50443, 50444, 50445, 50446, 50447, 50448, 50449, 50450, 50451, 50452, 50453, 50454, 50455, 50456, 50457, 50458, 50459, 50460, 50461, 50462, 50463, 50464, 50465, 50466, 50520, 50521, 50522, 50526, 50528, 50529, 50530, 50536, 50537, 50539, 50541, 50542, 50549, 50550, 50551, 50552, 50553, 50554, 50555, 50556, 50557, 50558, 50559, 50560, 50561, 50562, 50563, 50564, 50565, 50566, 50567, 50568, 50569, 50570, 50571, 50572, 50573, 50574, 50575, 50576, 50577, 50578, 50579, 50580, 50581, 50582, 50583, 50584, 50585, 50586, 50587, 50588, 50589, 50590, 50591, 50611, 50612, 50613, 50614, 50615, 50616, 50617, 50618, 50619, 50620, 50621, 50622, 50623, 50624, 50625, 50626, 50627, 50628, 50629, 50630, 50631, 50632, 50633, 50634, 50635, 50636, 50715, 50719, 50722, 50725, 50729, 50732, 50733, 50734, 50735, 50736, 50737, 50738, 50739, 50740, 50741, 50742, 50743, 50744, 50745, 50746, 50747, 50748, 50749, 50750, 50751, 50752, 50753, 50754, 50755, 50756, 50757, 50758, 50759, 50760, 50761, 50762, 50763, 50764, 50765],

    '125' : [10100],
    '133' : [950100, 950200, 950301, 950302, 950304, 950305, 950400, 950500],
    '141' : [480300, 480400],
    '159' : [10100, 10200, 10501, 10502, 10503],
    '163' : [960100, 960200, 960300, 960400],
    '211' : [10100, 10200, 10301, 10302, 10400, 10500],
    '237' : [960101, 960103, 960104, 960201, 960203, 960204, 960301, 960302],
    '265' : [10200],
    '301' : [970400, 970500],
    '303' : [950100, 950300, 950400, 950500, 950700],

    '001' : [950100, 950201, 950202, 950301, 950302, 950400, 950500],
    '003' : [960100, 960200, 960300],
    '005' : [970100, 970201, 970202],
    '007' : [960100, 960200],
    '009' : [970101, 970102, 970201, 970202, 970301, 970302, 970400, 970501, 970502, 970600, 970701, 970702, 970801, 970802],
    '011' : [970100, 970200, 970300, 970400],
    '013' : [180103, 180104, 180105, 180106, 180107, 180108, 180203, 180204, 180205, 180206, 180301, 180302, 180303, 180401, 180402, 180501, 180502, 180503],
    '015' : [960101, 960103, 960104, 960105, 960201, 960202, 960203, 960301, 960302, 960403, 960404, 960405, 960406, 960407, 960501, 960502, 960601, 960602, 960701, 960702, 960801, 960802, 960804, 960805, 960901, 960902, 961001, 961002],
    '017' : [960100, 960200, 960300, 960400, 960501, 960502],
    '019' : [970100, 970200, 970300, 970400, 970500, 970600],
    '021' : [10100, 10200, 10400, 10500, 10800, 11001, 11002, 11100, 11500, 11701, 11702, 11800, 11900, 12000, 12101, 12102, 12200, 12400, 12500, 12600, 12700, 12800, 12900, 13101, 13102, 13201, 13202, 13302, 13407, 13408, 13409, 13411, 13412, 13413, 13502, 13503, 13505, 13506, 13603, 13604, 13605, 13607, 13608, 13701, 13702, 13800, 13900, 14000],
    '023' : [790100, 790200, 790301, 790302],
    '025' : [960101, 960102, 960201, 960202, 960300],
    '027' : [960200, 960301, 960302, 960400, 960500, 960600],
    '029' : [920101, 920103, 920104, 920301, 920303, 920305, 920307, 920308, 980000],
    '031' : [110100, 110201, 110202, 110301, 110302, 110401, 110405, 110406, 110407, 110408, 110500, 110602, 110603, 110604, 110701, 110702, 110703, 110800, 110901, 110902],
    '033' : [950101, 950102, 950200, 950400, 950500, 950700, 950900],
    '035' : [150101, 150102, 150201, 150202, 150300],
    '037' : [950100, 950200],
    '039' : [10100, 10201, 10202, 10302, 10303, 10304, 10305, 10403, 10404, 10405, 10406, 10407, 10500, 10602, 10603, 10604, 990000],
    '043' : [950100, 950200, 950300],
    '045' : [910101, 910103, 910105, 910106, 910201, 910202, 910203, 910301, 910302, 910400, 910502, 910503, 910504, 910600, 910704, 910705, 910706, 910707, 910708, 910709, 910800, 910900, 911001, 911002, 911101, 911102, 911201, 911202],
    '047' : [30100, 30201, 30202, 30303, 30304, 30305, 30306, 30402, 30403, 30404, 30501, 30502, 30600, 30701, 30702],
    '049' : [10101, 10102, 10200],
    '051' : [601, 1100, 1200, 2000, 2100, 2200, 2300, 2600, 2700, 2800, 2900, 3000, 3301, 3302, 3400, 3501, 3502, 3601, 3602, 3700, 3800, 3900, 4001, 4002, 4100, 4207, 4208, 4209, 4210, 4211, 4212, 4300, 4400, 4500, 10102, 10200, 10502, 10503, 10504, 10601, 10603, 10701, 10702, 10703, 10704, 10705, 10706, 10707, 10801, 10806, 10807, 10810, 10811, 10812, 10813, 10814, 10815, 10816, 10817, 10818, 10819, 10820, 10821, 10901, 11004, 11005, 11006, 11007, 11008, 11104, 11107, 11108, 11110, 11111, 11112, 11113, 11114, 11115, 11200, 11300, 11400, 11500, 11600, 11700, 11800, 11900, 980000, 990000],
    '053' : [20100, 20201, 20203, 20205, 20206],
    '055' : [10100, 10201, 10202, 10300, 10401, 10402, 10501, 10502, 10600],
    '057' : [90101, 90102, 90103, 90201, 90202, 90301, 90302, 90303, 90401, 90402, 90503, 90504, 90505, 90506, 90507, 90603, 90604, 90605, 90606, 90703, 90704, 90705, 90706, 90707, 90708, 90709, 90710, 90805, 90806, 90807, 90808, 90809, 90810, 90905, 90906, 90907, 90908, 90909, 90910, 90911, 90912, 91001, 91006, 91007, 91009, 91010, 91011, 91012, 91013, 91014, 91101, 91104, 91105, 91106, 91107, 91108],
    '059' : [100, 401, 402, 600, 900, 1200, 1700, 1800, 1900, 2000, 2100, 2200, 30101, 30102, 30200, 130300, 130400, 130500, 130601, 130602, 130701, 130702, 140300, 140400, 140500, 140600, 150300, 150400, 150500, 150600, 150701, 150702, 150800, 150900],
    '061' : [960300],
    '065' : [970100, 970200],
    '069' : [10100, 10200, 10301, 10302, 10401, 10402, 10500, 10600, 10701, 10702, 10801, 10802],
    '071' : [970101, 970102, 970200, 970301, 970302, 970400, 970500, 970601, 970602, 970702, 970703, 970704, 970800, 970901, 970902],
    '073' : [30103, 30105, 30106, 30107, 30108, 30201, 30202, 30203, 30304, 30306, 30307, 30308, 30310, 30311, 30312, 30313, 30401, 30403, 30404, 30503, 30504, 30505, 30507, 30508, 30603],
    '075' : [960100, 960200, 960301, 960302, 960400],
    '077' : [170101, 170102, 170200, 170303, 170304, 170307, 170308, 170309, 170310, 170403, 170404, 170405, 170406, 170407, 170408, 170501, 170502, 170503, 170603, 170604, 170605, 170606, 170607, 170701, 170702, 170801, 170802],
    '079' : [70100, 70201, 70202],
    '081' : [10100, 10201, 10202, 10300, 10400, 10500],
    '083' : [40102, 40103, 40104, 40200, 40300],
    '085' : [970101, 970102, 970103, 970203, 970204, 970205, 970206],
    '087' : [970100, 970200, 970301, 970302, 970400, 970600, 970700, 970800],
    '091' : [960100, 960200, 960301, 960302, 960400, 960500, 960600],
    '093' : [970100, 970200, 970300],
    '095' : [101, 102, 200, 400, 501, 502, 600, 700, 800, 900, 1000, 1100, 1403, 1500, 10302, 10401, 10402, 10403, 10500, 10601, 10602, 10701, 10702, 10900, 11000, 11200, 11300, 11400, 11600],
    '097' : [80104, 80105, 80106, 80107, 80201, 80203, 80204, 80303, 80304, 80305, 80306, 80307, 80403, 80405, 80406, 80407, 80408, 80505, 80506, 80507, 80508, 80509, 80512, 80513, 80514, 80515, 80602, 80605, 80606, 80607, 80608],
    '099' : [90100, 90200, 90300, 90400, 90500],
    '101' : [880100, 880200],
    '103' : [30100, 30204, 30205, 30206, 30207, 30208, 30209, 30301, 30303, 30306, 30307, 30308, 30309, 30401, 30403, 30404],
    '105' : [100, 200, 300, 400, 501, 502],
    '107' : [970101, 970102, 970200, 970300, 970401, 970402, 970500, 970601, 970602],
    '109' : [970100, 970200, 970300],
    '111' : [50100, 50200, 50300, 50400, 50500],
    '113' : [140102, 140103, 140104, 140203, 140204, 140206, 140207, 140209, 140210, 140303, 140304, 140305, 140307, 140308, 140309, 140403, 140404, 140405, 140406, 140408, 140409, 140410, 140501, 140502],
    '115' : [100, 202, 203, 204, 300, 401, 402, 403, 500, 600, 700, 800, 900, 1100, 1200, 1301, 1302, 1400, 1600, 1703, 1704, 1705, 1706, 1800, 2000, 2100],
    '117' : [130101, 130102, 130103, 130104, 130105, 130201, 130202, 130203, 130204, 130205, 130301, 130302, 130303, 130304, 130305, 130306, 130307, 130406, 130409, 130410, 130411, 130412, 130413, 130414, 130415, 130503, 130504, 130505, 130506, 130507, 130508, 130509, 130511, 130512, 130601, 130602, 130603, 130604, 130605, 130606, 130607, 130608, 130609, 130610, 130611, 130613, 130614, 130615],
    '119' : [890101, 890103, 890104, 890201, 890202, 890300, 890401, 890402],
    '123' : [80100, 80200, 80301, 80302, 80401, 80402, 80403, 80500],
    '127' : [101, 103, 104, 201, 202, 301, 302, 303, 403, 405, 406, 407, 408, 409, 501, 503, 504, 601, 602, 701, 702, 800, 900, 1001, 1002, 990000],
    '129' : [970101, 970102, 970201, 970202, 970301, 970302, 970400, 970500, 970601, 970602, 970700, 970801, 970802, 970901, 970902],
    '131' : [950100, 950200, 950300, 950401, 950402, 950501, 950502, 950600],
    '137' : [100, 201, 203, 204, 300, 400, 501, 502, 601, 603, 604],
    '139' : [101, 102, 203, 204, 205, 206, 303, 304, 305, 306, 307, 401, 402, 501, 502, 601, 602, 702, 703, 704, 800, 901, 902, 1004, 1005, 1006, 1007, 1008, 1101, 1102, 1202, 1203, 1204, 1302, 1303, 1304, 1402, 1404, 1405, 1406, 1501, 1502, 1603, 1605, 1606, 1607, 1609, 1610, 1611, 1612],
    '143' : [10100, 10201, 10202, 10301, 10303, 10304, 10401, 10402],
    '145' : [120198, 120200, 120301, 120302, 120401, 120403, 120404],
    '147' : [960101, 960102, 960103, 960200, 960300, 960401, 960402, 960501, 960502, 960503],
    '149' : [970100, 970200, 970300],
    '151' : [70109, 70113, 70114, 70115, 70116, 70117, 70118, 70119, 70120, 70121, 70122, 70123, 70124, 70125, 70126, 70127, 70128, 70204, 70206, 70207, 70208, 70209, 70210, 70211, 70212, 70213, 70214, 70215, 70216, 70307, 70310, 70312, 70313, 70314, 70315, 70316, 70317, 70318, 70319, 70320, 70321, 70322, 70323, 70324, 70325, 70405, 70406, 70407, 70408, 70409, 70410, 70411, 70412, 70503, 70504, 70505, 70506, 70507, 70508],
    '153' : [20106, 20108, 20110, 20111, 20112, 20113, 20200, 20301, 20302, 20400, 20600, 20700, 20800, 20900, 21001, 21002, 21108, 21114, 21115, 21116, 21117, 21118, 21119, 21120, 21121, 21122, 21123, 21124, 21125, 21203, 21204, 21205, 21206, 21300, 21401, 21402, 21501, 21502],
    '155' : [950100, 950201, 950202],
    '157' : [10104, 10105, 10106, 10107, 10108, 10109, 10200, 10300, 10400, 10500, 10601, 10602, 10701, 10703, 10704, 10705, 10706],
    '161' : [960101, 960102, 960201, 960202, 960300],
    '165' : [960100, 960200],
    '167' : [960100, 960201, 960202, 960300],
    '169' : [30101, 30103, 30105, 30106, 30200, 30303, 30304, 30305, 30306],
    '171' : [970100, 970201, 970202, 970300],
    '173' : [950100, 950201, 950202],
    '175' : [950100, 950201, 950202, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951001, 951002, 951100, 951400],
    '177' : [20101, 20102, 20200, 20301, 20302, 20403, 20404, 20405],
    '179' : [10101, 10102, 10103, 10202, 10204, 10205, 10206, 10207, 10208, 10301, 10302, 10401, 10402, 10501, 10503, 10504, 10600, 990000],
    '181' : [970100, 970200],
    '183' : [970101, 970102, 970201, 970202, 980000],
    '185' : [10101, 10102, 10103, 10201, 10203, 10204, 10301, 10302, 10401, 10403, 10404, 10500, 10601, 10604, 10700, 10801, 10802, 10900, 11000, 11100, 11200, 11301, 11302, 11401, 11402, 11404, 11405, 11500, 11600],
    '187' : [960103, 960104, 960105, 960106, 960203, 960204, 960205, 960206],
    '189' : [950100, 950200, 950300, 950401, 950402, 950500],
    '191' : [110101, 110102, 110103, 110201, 110202, 110300, 980000, 990000],
    '193' : [100, 200, 300, 400],
    '195' : [20100, 20200, 20300, 20400, 20501, 20502, 20600],
    '197' : [920100, 920200],
    '199' : [970501, 970502, 970600, 970701, 970702, 970801, 970802],
    '201' : [950100, 950200, 950300],
    '205' : [90100, 90200, 90300, 90401, 90402, 90501, 90502],
    '207' : [50101, 50102, 50200, 50301, 50302],
    '209' : [950100, 950200, 950300],
    '213' : [10100, 10201, 10203, 10204, 10300, 10401, 10402, 10500, 10600, 10700],
    '215' : [200, 300, 400, 800, 900, 1000, 1100, 1200, 1400, 1600, 1800, 2000, 2100, 2200, 2300, 2400, 2500, 2700, 2800, 2901, 2902, 3000, 3200, 3301, 3302, 3400, 10106, 10108, 10109, 10110, 10111, 10204, 10205, 10206, 10207, 10208, 10209, 10301, 10303, 10304, 10401, 10402, 10501, 10502, 10602, 10605, 10606, 10607, 10608, 10701, 10702, 10704, 10705, 10801, 10802, 11100, 11200, 11400, 11500],
    '217' : [100101, 100102, 100202, 100203, 100204, 100301, 100302, 100400, 100503, 100504, 100505, 100506, 100507, 100600, 100701, 100702, 100801, 100802, 100902, 100903, 100904, 100905],
    '219' : [30101, 30102, 30103, 30104, 30201, 30202, 30300, 30401, 30402, 30500, 30600],
    '221' : [960100, 960203, 960204, 960205, 960206, 960300],
    '223' : [120104, 120105, 120106, 120107, 120108, 120109, 120110, 120111, 120203, 120205, 120206, 120207, 120208, 120301, 120303, 120304, 120305, 120306, 120307, 120401, 120402, 120403, 120503, 120504, 120505, 120506, 120507, 120601, 120603, 120604, 120605, 120606, 120607],
    '225' : [40101, 40103, 40104, 40105, 40200, 40301, 40302, 40400],
    '227' : [50101, 50102, 50201, 50202, 50300, 50400, 50500, 50601, 50602],
    '229' : [960100, 960200, 960301, 960302, 960401, 960402],
    '231' : [10101, 10102, 10200, 10300, 10400],
    '233' : [10100, 10201, 10202, 10300, 10400, 10500, 10600, 10700],
    '235' : [950100, 950201, 950202, 950300],
    '239' : [960300],
    '241' : [970101, 970102, 970103, 970201, 970202, 970302, 970303, 970304],
    '243' : [790100, 790200],
    '245' : [100, 200, 300, 600, 700, 1000, 1100, 1200, 1300, 1400, 1602, 1603, 1604, 10101, 10104, 10105, 10107, 10108, 10109, 10201, 10203, 10205, 10206, 10207, 10208, 10300, 10400, 10506, 10507, 10508, 10509, 10510, 10511, 10512, 10513, 10514, 10515, 10601, 10602, 10706, 10707, 10708, 10709, 10710, 10711, 10713, 10714, 10801, 10802, 10903, 10904, 10905, 10907, 10908, 11000, 11100],
    '247' : [60101, 60103, 60104, 60201, 60203, 60204, 60305, 60306, 60310, 60311, 60312, 60313, 60314, 60315, 60316, 60317, 60318, 60403, 60406, 60407, 60408, 60409, 60410, 60411],
    '249' : [960100, 960200],
    '251' : [970200, 970300, 970401, 970402, 970500, 970600],
    '253' : [200100, 200200, 200300],
    '255' : [160101, 160102, 160201, 160202, 160300, 160401, 160402, 160500, 160600, 160701, 160702, 160800, 160900, 161000, 161100, 161201, 161202],
    '257' : [970101, 970102, 970201, 970202, 970301, 970302, 970401, 970402],
    '259' : [950100, 950400],
    '261' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
    '263' : [960100, 960200, 960300],
    '267' : [950100, 950202, 950203, 950204, 950300, 950401, 950402],
    '269' : [950100, 950200, 950301, 950302],
    '271' : [950101, 950102, 950103, 950200, 950500],
    '273' : [120200, 120300, 120400, 120500],
    '275' : [960100, 960200, 960300, 960400, 960501, 960502, 960601, 960602, 960701, 960702, 960800, 960900, 961000, 961100],
    '277' : [960100, 960200, 960301, 960302, 960401, 960402, 960500, 960601, 960602, 960700, 960800, 960900],
    '279' : [970101, 970102, 970201, 970202, 970301, 970302, 970400, 970500, 970600],
    '281' : [960100, 960200, 960301, 960302],
    '283' : [960100, 960200],
    '285' : [960101, 960102, 960201, 960202, 960300, 960401, 960402, 960501, 960503, 960504, 960600, 960700, 960800, 960901, 960903, 960904, 961000, 961100],
    '287' : [970201, 970202, 970300],
    '289' : [60101, 60102, 60200],
    '291' : [101, 103, 104, 201, 203, 204, 206, 207],
    '293' : [10100, 10201, 10202, 10300, 10401, 10402, 10500, 10600],
    '295' : [20101, 20102, 20200, 20301, 20302, 20400, 20503, 20504, 20505, 20506, 20601, 20602, 20701, 20702, 20800, 20902, 20903, 20904],
    '297' : [110101, 110102, 110200, 110301, 110302, 110400, 110503, 110504, 110505, 110506, 110508, 110509, 110510, 110601, 110602, 110603, 110701, 110702, 110801, 110802],
    '299' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950801, 950802, 950900],
    '305' : [970100, 970201, 970202, 970300, 970400, 970500, 970600],
    '307' : [960100, 960200],
    '309' : [780100, 780200],
    '311' : [950101, 950102, 950202, 950204, 950205, 950206, 950207, 950301, 950302],
    '313' : [101, 103, 104, 200, 301, 303, 304, 401, 402, 501, 502, 600, 700, 801, 802, 900, 1000, 1100, 1200, 1300, 1400, 1500],
    '315' : [960100, 960200, 960300, 960400],
    '317' : [10101, 10102, 10301, 10302],
    '319' : [960200, 960300, 960400],
    '321' : [950100, 950201, 950202, 950400, 950500, 950600]
]]]></entry>
        <entry id="census2020_hi" type="java"><![CDATA[[
    '001' : [20100, 20202, 20300, 20400, 20500, 20600, 20701, 20702, 20801, 20802, 20900, 21003, 21011, 21013, 21014, 21015, 21016, 21017, 21101, 21107, 21108, 21203, 21204, 21300, 21402, 21502, 21504, 21510, 21511, 21512, 21513, 21605, 21606, 21607, 21608, 21705, 21706, 21707, 21708, 21800, 21902, 22000, 22102, 990000, 990100, 990300, 990400, 990500, 990600, 990700, 990800, 990900, 991000, 991100, 991200, 991300, 991400, 991500, 991600, 991700],
    '003' : [107, 108, 110, 114, 115, 116, 117, 118, 119, 120, 121, 122, 200, 301, 302, 401, 402, 500, 600, 700, 800, 901, 903, 904, 905, 1000, 1101, 1102, 1201, 1202, 1300, 1400, 1501, 1502, 1601, 1602, 1700, 1801, 1803, 1804, 1901, 1905, 1906, 1907, 2003, 2004, 2005, 2006, 2101, 2102, 2203, 2204, 2205, 2206, 2301, 2302, 2401, 2403, 2404, 2500, 2600, 2701, 2702, 2801, 2802, 2900, 3000, 3102, 3103, 3104, 3404, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3501, 3503, 3504, 3603, 3604, 3605, 3606, 3701, 3702, 3703, 3801, 3802, 3900, 4000, 4101, 4102, 4201, 4202, 4301, 4302, 4401, 4402, 4500, 4600, 4701, 4702, 4801, 4802, 4900, 5000, 5100, 5200, 5300, 5400, 5500, 5601, 5602, 5700, 5800, 5900, 6000, 6100, 6202, 6203, 6301, 6302, 6401, 6402, 6500, 6703, 6704, 6806, 6810, 6811, 6812, 6813, 6814, 6815, 6816, 6817, 6818, 6819, 6900, 7001, 7002, 7100, 7302, 7400, 7504, 7507, 7508, 7701, 7702, 7804, 7807, 7808, 7809, 7812, 7813, 7814, 7815, 7816, 7817, 8001, 8002, 8005, 8008, 8009, 8010, 8011, 8012, 8013, 8301, 8302, 8405, 8407, 8408, 8410, 8411, 8413, 8414, 8415, 8416, 8417, 8418, 8502, 8609, 8610, 8611, 8623, 8624, 8625, 8626, 8627, 8628, 8629, 8630, 8631, 8632, 8633, 8634, 8702, 8704, 8705, 8706, 8707, 8801, 8802, 8906, 8909, 8912, 8913, 8917, 8918, 8921, 8926, 8928, 8929, 8930, 8931, 8932, 8933, 8934, 8935, 8936, 8937, 8938, 8939, 8940, 8941, 8942, 8943, 8944, 8945, 8946, 8947, 8948, 8949, 8950, 8951, 8952, 9000, 9100, 9201, 9202, 9203, 9301, 9302, 9401, 9402, 9507, 9508, 9509, 9510, 9511, 9512, 9608, 9609, 9610, 9704, 9705, 9706, 9707, 9801, 9803, 9804, 9902, 9905, 9906, 10000, 10101, 10102, 10103, 10202, 10203, 10204, 10205, 10303, 10305, 10308, 10309, 10310, 10503, 10505, 10507, 10508, 10509, 10510, 10601, 10602, 10701, 10702, 10901, 10903, 10904, 10905, 11000, 11103, 11104, 11105, 11106, 11201, 11202, 11300, 11401, 11500, 11600, 940003, 940004, 940005, 940006, 940007, 980000, 980200, 980300, 980600, 980700, 980800, 981000, 981100, 981200, 981300, 981400, 981700, 981801, 981802, 981803, 981900, 982000, 982100, 982200, 990001],
    '005' : [31900, 990000],
    '007' : [40104, 40105, 40106, 40204, 40205, 40301, 40302, 40401, 40402, 40500, 40603, 40604, 40701, 40702, 40800, 40900, 41200, 940000, 990100, 990200, 990300],
    '009' : [30100, 30201, 30203, 30204, 30304, 30305, 30306, 30307, 30403, 30404, 30405, 30406, 30501, 30705, 30706, 30708, 30709, 30710, 30711, 30712, 30713, 30800, 30901, 30902, 30903, 31001, 31002, 31102, 31104, 31105, 31106, 31107, 31402, 31404, 31405, 31501, 31503, 31504, 31505, 31601, 31700, 31801, 31900, 32000, 980000, 990000, 990200, 991200]
]]]></entry>
        <entry id="census2020_ia" type="java"><![CDATA[[
    '001' : [960100, 960200, 960300],
    '003' : [950100, 950200],
    '005' : [960100, 960200, 960300, 960400, 960500],
    '007' : [950100, 950200, 950300, 950400, 950500],
    '009' : [70100, 70200, 70300],
    '011' : [960100, 960200, 960300, 960400, 960500, 960600, 960700],
    '013' : [100, 200, 300, 400, 500, 700, 800, 900, 1000, 1100, 1200, 1301, 1302, 1400, 1501, 1502, 1503, 1600, 1701, 1702, 1800, 1900, 2000, 2200, 2301, 2303, 2304, 2400, 2500, 2601, 2604, 2605, 2606, 2700, 2800, 2901, 2902, 3001, 3002],
    '015' : [20100, 20200, 20300, 20400, 20500, 20600, 20700],
    '017' : [4000, 4100, 4200, 4300, 4400, 4500, 4600, 4700],
    '019' : [950100, 950200, 950300, 950400, 950500, 950600],
    '021' : [960100, 960200, 960300, 960400, 960500, 960600],
    '023' : [70100, 70200, 70300, 70400, 70500],
    '025' : [950100, 950200, 950300, 950400],
    '027' : [960100, 960200, 960300, 960400, 960500, 960600],
    '029' : [190100, 190200, 190300, 190400, 190500],
    '031' : [450100, 450200, 450300, 450400, 450500],
    '033' : [950102, 950201, 950202, 950300, 950402, 950600, 950700, 950800, 950900, 951000, 951400, 951600],
    '035' : [80101, 80102, 80200, 80300, 80400],
    '037' : [70100, 70200, 70300, 70400],
    '039' : [960100, 960200, 960300],
    '041' : [80100, 80200, 80301, 80302, 80400],
    '043' : [70100, 70200, 70300, 70400, 70500, 70600],
    '045' : [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200],
    '047' : [70100, 70200, 70300, 70401, 70402, 70500],
    '049' : [50100, 50200, 50300, 50400, 50500, 50600, 50700, 50803, 50805, 50807, 50812, 50813, 50814, 50815, 50816, 50817, 50818, 50901, 50902],
    '051' : [80100, 80200],
    '053' : [960100, 960200, 960300],
    '055' : [950100, 950200, 950300, 950400],
    '057' : [200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200],
    '059' : [450200, 450501, 450502, 450800, 451000, 451100],
    '061' : [100, 300, 400, 500, 600, 701, 702, 801, 802, 900, 1101, 1103, 1104, 1201, 1202, 1204, 1205, 10101, 10103, 10104, 10105, 10201, 10202, 10300, 10400, 10500, 10600],
    '063' : [70100, 70200, 70300, 70400],
    '065' : [80100, 80200, 80300, 80400, 80500, 80600, 80700],
    '067' : [480100, 480200, 480300, 480400, 480500],
    '069' : [360100, 360200, 360300],
    '071' : [970100, 970200, 970300],
    '073' : [80100, 80200, 80300, 80500],
    '075' : [960100, 960200, 960300, 960400],
    '077' : [950100, 950200, 950300],
    '079' : [960100, 960200, 960300, 960400, 960500],
    '081' : [270100, 270200, 270300, 270400],
    '083' : [480100, 480200, 480300, 480400, 480500, 480600],
    '085' : [290100, 290200, 290300, 290400, 290500],
    '087' : [970100, 970200, 970300, 970400, 970500],
    '089' : [960100, 960200, 960300],
    '091' : [970100, 970200, 970300, 970400],
    '093' : [90100, 90200, 90300],
    '095' : [960100, 960200, 960300, 960400],
    '097' : [950100, 950200, 950300, 950400, 950500, 950600],
    '099' : [40100, 40200, 40300, 40400, 40500, 40600, 40700, 40800, 40900, 980000],
    '101' : [90100, 90200, 90301, 90302, 90400],
    '103' : [100, 200, 303, 304, 305, 306, 307, 401, 402, 501, 502, 600, 1100, 1200, 1300, 1400, 1500, 1601, 1602, 1700, 1801, 1802, 2100, 2300, 10100, 10200, 10303, 10304, 10305, 10306, 10307, 10308, 10401, 10402, 10501, 10502],
    '105' : [70100, 70301, 70302, 70401, 70402, 70500, 70600],
    '107' : [80100, 80200, 80300, 80400],
    '109' : [950100, 950200, 950300, 950400, 950500, 950600],
    '111' : [490100, 490200, 490300, 490400, 490500, 490600, 490700, 490800, 490900, 491000, 491100],
    '113' : [101, 102, 103, 201, 205, 208, 209, 210, 211, 212, 213, 300, 400, 500, 600, 700, 800, 901, 902, 1001, 1002, 1004, 1005, 1101, 1102, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 2900, 3003, 3004, 3005, 3006, 10100, 10200, 10300, 10400, 10500, 10600, 10700, 10801, 10802],
    '115' : [450100, 450200, 450300],
    '117' : [950100, 950200, 950300, 950400],
    '119' : [950100, 950200, 950300],
    '121' : [60101, 60102, 60200, 60300],
    '123' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
    '125' : [30101, 30102, 30201, 30202, 30300, 30401, 30402, 30500, 30600, 30700],
    '127' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950801, 950802, 950900, 951000],
    '129' : [40100, 40201, 40202, 40301, 40302],
    '131' : [560100, 560200, 560300],
    '133' : [960100, 960200, 960300, 960400],
    '135' : [70100, 70200, 70300],
    '137' : [960100, 960200, 960300, 960400],
    '139' : [50100, 50200, 50300, 50400, 50500, 50600, 50700, 50800, 50900, 51000],
    '141' : [490100, 490200, 490300, 490400],
    '143' : [460100, 460200],
    '145' : [490100, 490200, 490300, 490400, 490500, 490600],
    '147' : [960100, 960200, 960300, 960400],
    '149' : [970100, 970200, 970300, 970400, 970500, 970600],
    '151' : [780100, 780200, 780300],
    '153' : [101, 102, 103, 201, 202, 300, 400, 500, 600, 701, 702, 703, 704, 801, 802, 803, 901, 902, 1000, 1100, 1200, 1500, 1700, 1800, 1900, 2100, 2600, 2700, 2800, 2900, 3001, 3002, 3100, 3200, 3901, 3902, 4001, 4004, 4100, 4200, 4300, 4400, 4501, 4502, 4602, 4603, 4701, 4702, 4800, 4900, 5000, 5101, 5102, 5200, 5300, 10101, 10102, 10205, 10207, 10208, 10209, 10211, 10212, 10213, 10214, 10215, 10216, 10404, 10406, 10407, 10408, 10409, 10410, 10411, 10500, 10601, 10602, 10702, 10703, 10707, 10708, 10709, 10803, 10804, 10805, 10806, 11001, 11021, 11025, 11026, 11027, 11028, 11111, 11112, 11113, 11114, 11201, 11203, 11205, 11206, 11301, 11302, 11303, 11304, 11305, 11405, 11406, 11500, 11600, 11702, 11703, 11704],
    '155' : [21200, 21400, 21501, 21502, 21602, 21603, 21701, 21702, 30100, 30200, 30300, 30401, 30402, 30501, 30502, 30601, 30602, 30700, 30800, 30900, 31000, 31100, 31200, 31300, 31400, 31601, 31602, 31700, 31800, 31900],
    '157' : [370100, 370200, 370300, 370400, 370500],
    '159' : [950100, 950200],
    '161' : [80100, 80200, 80300, 80400],
    '163' : [10101, 10103, 10104, 10201, 10202, 10300, 10401, 10402, 10600, 10700, 10800, 10900, 11000, 11100, 11200, 11300, 11400, 11500, 11600, 11700, 11800, 11900, 12000, 12100, 12200, 12300, 12400, 12501, 12502, 12601, 12602, 12701, 12702, 12801, 12802, 12901, 12902, 13000, 13100, 13200, 13300, 13400, 13500, 13600, 13702, 13703, 13705, 13706],
    '165' : [960100, 960200, 960300, 960400],
    '167' : [70100, 70200, 70300, 70400, 70500, 70601, 70602, 70701, 70702],
    '169' : [101, 102, 103, 104, 105, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1101, 1102, 1200, 1302, 1303, 1304, 10101, 10102, 10200, 10300, 10400, 10500, 10600],
    '171' : [290100, 290200, 290300, 290400, 290500, 290600],
    '173' : [180100, 180200, 180300],
    '175' : [190100, 190200, 190300, 190400],
    '177' : [950100, 950200],
    '179' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100],
    '181' : [20101, 20201, 20202, 20300, 20400, 20500, 20600, 20701, 20702, 20800, 20900, 21000, 21100, 21200],
    '183' : [960101, 960102, 960200, 960300, 960400, 960500],
    '185' : [70100, 70200, 70300],
    '187' : [101, 102, 200, 300, 400, 500, 600, 700, 900, 10100, 10200, 10300, 10400],
    '189' : [680100, 680200, 680300],
    '191' : [950100, 950200, 950300, 950400, 950500],
    '193' : [100, 201, 202, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1801, 1802, 1900, 2000, 2101, 2102, 3100, 3200, 3301, 3302, 3500, 3600, 940200],
    '195' : [690100, 690200, 690300],
    '197' : [680100, 680200, 680300, 680400, 680500]
]]]></entry>
        <entry id="census2020_id" type="java"><![CDATA[[
    '001' : [101, 102, 201, 202, 302, 303, 305, 306, 401, 402, 501, 502, 601, 602, 701, 703, 704, 803, 805, 806, 807, 808, 809, 810, 901, 902, 1001, 1002, 1003, 1100, 1201, 1203, 1204, 1401, 1402, 1500, 1600, 1701, 1702, 1800, 1900, 2000, 2100, 2223, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2412, 2414, 2415, 2416, 2417, 2418, 2419, 10101, 10102, 10224, 10226, 10227, 10228, 10229, 10230, 10231, 10232, 10233, 10234, 10235, 10236, 10237, 10336, 10337, 10338, 10339, 10340, 10341, 10342, 10343, 10344, 10345, 10346, 10347, 10348, 10349, 10350, 10351, 10352, 10353, 10354, 10355, 10356, 10357, 10358, 10359, 10360, 10361, 10362, 10363, 10364, 10365, 10366, 10367, 10368, 10369, 10370, 10371, 10403, 10404, 10405, 10406, 10407, 10408, 10409, 10410, 10411, 10501, 10503, 10505, 10506],
    '003' : [950100, 950200],
    '005' : [200, 301, 302, 400, 500, 600, 700, 800, 900, 1000, 1102, 1103, 1104, 1200, 1300, 1400, 1500, 1601, 1602, 1603, 1700, 1900, 940000, 981800],
    '007' : [950100, 950200],
    '009' : [940000, 950100],
    '011' : [940000, 950101, 950102, 950200, 950300, 950400, 950501, 950502, 950600, 950700],
    '013' : [960101, 960102, 960201, 960202, 960301, 960302, 960501, 960502],
    '015' : [950201, 950202, 950203],
    '017' : [950100, 950201, 950202, 950203, 950300, 950401, 950402, 950403, 950500, 950600, 950701, 950702, 950801, 950802, 950901, 950902],
    '019' : [970100, 970300, 970401, 970402, 970404, 970405, 970502, 970503, 970504, 970505, 970601, 970602, 970603, 970700, 970800, 970900, 971000, 971100, 971200, 971301, 971302, 971401, 971402, 971500],
    '021' : [970100, 970200],
    '023' : [970100],
    '025' : [970100],
    '027' : [20100, 20200, 20300, 20403, 20404, 20405, 20406, 20501, 20503, 20505, 20506, 20601, 20603, 20604, 20700, 20903, 20904, 20905, 20906, 20907, 20908, 20909, 20910, 21003, 21004, 21005, 21006, 21007, 21008, 21101, 21102, 21103, 21104, 21105, 21201, 21202, 21300, 21500, 21600, 21701, 21702, 21801, 21802, 21901, 21904, 21905, 21906, 21907, 22100, 22200, 22301, 22302, 22303, 22400],
    '029' : [960100, 960200],
    '031' : [950100, 950200, 950300, 950400, 950500, 950600],
    '033' : [950100],
    '035' : [940001, 940002, 970100],
    '037' : [960200],
    '039' : [960100, 960201, 960202, 960300, 960401, 960402, 960500],
    '041' : [970100, 970200],
    '043' : [970100, 970200, 970301, 970302],
    '045' : [960100, 960200, 960301, 960302],
    '047' : [960101, 960102, 960201, 960202],
    '049' : [940000, 960100, 960201, 960202, 960300, 960400],
    '051' : [960100, 960200, 960301, 960302, 960401, 960402],
    '053' : [970100, 970200, 970300, 970400, 970501, 970502],
    '055' : [101, 102, 201, 202, 203, 301, 303, 304, 401, 402, 501, 502, 503, 601, 602, 701, 702, 703, 704, 800, 901, 902, 1002, 1003, 1004, 1100, 1201, 1202, 1300, 1400, 1500, 1600, 1700, 1801, 1802, 1901, 1902, 2000, 940000],
    '057' : [5101, 5102, 5200, 5301, 5302, 5400, 5500, 5600, 5700],
    '059' : [970100, 970200, 970300],
    '061' : [940001, 940002, 950300],
    '063' : [950100],
    '065' : [950101, 950102, 950103, 950200, 950301, 950303, 950304, 950401, 950402, 950501, 950502],
    '067' : [970100, 970200, 970300, 970400, 970500],
    '069' : [940000, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000],
    '071' : [960100],
    '073' : [950101, 950102, 950200],
    '075' : [960100, 960200, 960301, 960302, 960400],
    '077' : [960100, 960200],
    '079' : [960200, 960300, 960400],
    '081' : [960101, 960102, 960103, 960104, 960105, 960106, 960107],
    '083' : [200, 300, 400, 500, 600, 701, 702, 800, 900, 1001, 1002, 1100, 1201, 1202, 1301, 1302, 1600],
    '085' : [970100, 970200, 970301, 970302],
    '087' : [970100, 970200, 970300]
]]]></entry>
        <entry id="census2020_il" type="java"><![CDATA[[
    '001' : [100, 201, 202, 400, 500, 600, 700, 800, 900, 1001, 1002, 1100, 10100, 10200, 10301, 10302, 10400, 10500, 10600],
    '003' : [957600, 957700, 957800, 957900],
    '005' : [951200, 951300, 951400, 951500],
    '007' : [10101, 10102, 10200, 10300, 10400, 10501, 10502, 10601, 10603, 10604],
    '009' : [970400, 970500],
    '011' : [964700, 964800, 964900, 965000, 965100, 965200, 965300, 965400, 965500, 965600],
    '013' : [951200, 951300],
    '015' : [960100, 960200, 960300, 960400, 960500, 960600],
    '017' : [960100, 960200, 960300, 960400, 960500],
    '019' : [200, 301, 302, 401, 402, 500, 700, 800, 901, 902, 1000, 1100, 1201, 1203, 1204, 1205, 1206, 1301, 1302, 1400, 5300, 5401, 5402, 5500, 5601, 5602, 5701, 5702, 5800, 5901, 5902, 6000, 10100, 10204, 10300, 10400, 10500, 10601, 10603, 10604, 10701, 10702, 10800, 10901, 10902, 11001, 11002, 11100],
    '021' : [958100, 958200, 958300, 958400, 958500, 958600, 958700, 958800, 958900, 959000],
    '023' : [60100, 60200, 60300, 60400],
    '025' : [971900, 972000, 972100, 972200],
    '027' : [900100, 900200, 900300, 900401, 900403, 900404, 900500, 900601, 900602],
    '029' : [100, 200, 300, 400, 500, 600, 701, 702, 800, 900, 1000, 1100, 1200],
    '031' : [10100, 10201, 10202, 10300, 10400, 10501, 10502, 10503, 10600, 10701, 10702, 20100, 20200, 20301, 20302, 20400, 20500, 20601, 20602, 20701, 20702, 20801, 20802, 20901, 20902, 30101, 30102, 30103, 30104, 30200, 30300, 30400, 30500, 30601, 30603, 30604, 30701, 30702, 30703, 30706, 30800, 30900, 31000, 31100, 31200, 31300, 31400, 31501, 31502, 31700, 31800, 31900, 32100, 40100, 40201, 40202, 40300, 40401, 40402, 40600, 40700, 40800, 40900, 50100, 50200, 50300, 50500, 50600, 50700, 50800, 50900, 51000, 51100, 51200, 51300, 51400, 60100, 60200, 60300, 60400, 60500, 60800, 60900, 61000, 61100, 61200, 61500, 61800, 61901, 61902, 62000, 62100, 62200, 62300, 62400, 62500, 62600, 62700, 62800, 62900, 63000, 63100, 63200, 63301, 63302, 63303, 63400, 70101, 70102, 70103, 70200, 70300, 70400, 70500, 70600, 70700, 71000, 71100, 71200, 71300, 71400, 71500, 71600, 71700, 71800, 80100, 80201, 80202, 80300, 80400, 81000, 81100, 81201, 81202, 81300, 81401, 81402, 81403, 81500, 81600, 81700, 81800, 81900, 90100, 90200, 90300, 100100, 100200, 100300, 100400, 100500, 100600, 100700, 110100, 110200, 110300, 110400, 110501, 110502, 120100, 120200, 120300, 120400, 130100, 130200, 130300, 140100, 140200, 140301, 140302, 140400, 140500, 140601, 140602, 140701, 140702, 140800, 150200, 150300, 150401, 150402, 150501, 150502, 150600, 150700, 150800, 151001, 151002, 151100, 151200, 160100, 160200, 160300, 160400, 160501, 160502, 160601, 160602, 160700, 160800, 160900, 161000, 161100, 161200, 161300, 170100, 170200, 170300, 170400, 170500, 170600, 170700, 170800, 170900, 171000, 171100, 180100, 190100, 190200, 190300, 190401, 190402, 190601, 190602, 190701, 190702, 190800, 190900, 191000, 191100, 191200, 191301, 191302, 200100, 200200, 200300, 200401, 200402, 210100, 210400, 210501, 210502, 210601, 210602, 210700, 210800, 210900, 220300, 220400, 220500, 220601, 220602, 220701, 220702, 220901, 220902, 221000, 221100, 221200, 221300, 221400, 221500, 221600, 222200, 222500, 222600, 222700, 222800, 222900, 230100, 230200, 230300, 230400, 230500, 230600, 230700, 230800, 230900, 231100, 231200, 231500, 240200, 240300, 240500, 240600, 240700, 240800, 240900, 241000, 241100, 241200, 241300, 241400, 241500, 241600, 242000, 242100, 242200, 242300, 242400, 242500, 242600, 242700, 242800, 242900, 243000, 243100, 243200, 243300, 243400, 243500, 250200, 250300, 250400, 250500, 250600, 250700, 250800, 251000, 251100, 251200, 251300, 251400, 251500, 251600, 251700, 251800, 251900, 252000, 252101, 252102, 252201, 252202, 260100, 260200, 260300, 260400, 260500, 260600, 260700, 260800, 260900, 261000, 270500, 271200, 271300, 271400, 271500, 271800, 280100, 280400, 280800, 280900, 281900, 282700, 282800, 283100, 283200, 283800, 290900, 291200, 291600, 292200, 292400, 292500, 300500, 300600, 300700, 300800, 300900, 301100, 301200, 301600, 301701, 301702, 301801, 301802, 301803, 310200, 310300, 310400, 310500, 310600, 310700, 310800, 310900, 320101, 320102, 320400, 320600, 330101, 330102, 330103, 330200, 340300, 340400, 340500, 340600, 350100, 350400, 351000, 351100, 351400, 351500, 360200, 380100, 380200, 380600, 381200, 381400, 381500, 381700, 381800, 381900, 390100, 390200, 390300, 390400, 390500, 390600, 390700, 400300, 400400, 400500, 400800, 410100, 410200, 410500, 410600, 410700, 410800, 410900, 411000, 411100, 411200, 420100, 420200, 420300, 420400, 420500, 420600, 420700, 420800, 421200, 430101, 430102, 430200, 430300, 430400, 430500, 430600, 430700, 430800, 430900, 431200, 431301, 431302, 431400, 440101, 440102, 440201, 440202, 440300, 440600, 440700, 440800, 440900, 450300, 460100, 460200, 460301, 460302, 460400, 460500, 460800, 461000, 470100, 480100, 480200, 480300, 480400, 480500, 490200, 490500, 490600, 490700, 490800, 490901, 490902, 491000, 491100, 491200, 491300, 491400, 500100, 500200, 500300, 510100, 510200, 510300, 520100, 520200, 520300, 520400, 520500, 520600, 530100, 530200, 530300, 530400, 530501, 530502, 530503, 530600, 540101, 540102, 550100, 550200, 560100, 560200, 560300, 560400, 560700, 560800, 560900, 561000, 561100, 570100, 570200, 570300, 570400, 570500, 580100, 580200, 580300, 580400, 580501, 580502, 580600, 580700, 580800, 590500, 590600, 590700, 600400, 600600, 600700, 600900, 610300, 610400, 610800, 611200, 611300, 611400, 611500, 611600, 611700, 611800, 611900, 612000, 612100, 612200, 620100, 620200, 620300, 620400, 630300, 630400, 630500, 630600, 630800, 630900, 640100, 640300, 640400, 640500, 640600, 640700, 640800, 650100, 650200, 650301, 650302, 650400, 650500, 660301, 660302, 660400, 660500, 660600, 660700, 660800, 660900, 661000, 661100, 670100, 670200, 670300, 670400, 670500, 670600, 670700, 670800, 670900, 671100, 671200, 671300, 671400, 671500, 671600, 671800, 671900, 672000, 680500, 680600, 680900, 681000, 681100, 681200, 681300, 681400, 690300, 690400, 690500, 690900, 691000, 691100, 691200, 691300, 691400, 691500, 700100, 700200, 700301, 700302, 700401, 700402, 700501, 700502, 710100, 710200, 710300, 710400, 710500, 710600, 710700, 710800, 710900, 711000, 711100, 711200, 711300, 711400, 711500, 720100, 720200, 720300, 720400, 720500, 720600, 720700, 730100, 730201, 730202, 730300, 730400, 730500, 730600, 730700, 740100, 740200, 740300, 740400, 750100, 750200, 750300, 750400, 750500, 750600, 760801, 760802, 760803, 770201, 770202, 770300, 770400, 770500, 770601, 770602, 770700, 770800, 770901, 770902, 800100, 800200, 800300, 800400, 800500, 800600, 800700, 800800, 800900, 801000, 801100, 801200, 801300, 801400, 801500, 801601, 801603, 801605, 801606, 801607, 801608, 801701, 801702, 801800, 801901, 801902, 802002, 802003, 802004, 802100, 802200, 802300, 802402, 802403, 802404, 802503, 802504, 802505, 802506, 802605, 802607, 802608, 802609, 802610, 802701, 802702, 802801, 802802, 802900, 803005, 803007, 803008, 803010, 803012, 803013, 803014, 803015, 803016, 803017, 803100, 803200, 803300, 803400, 803500, 803603, 803604, 803605, 803607, 803608, 803611, 803612, 803613, 803614, 803615, 803616, 803701, 803702, 803800, 803901, 803902, 804000, 804102, 804104, 804105, 804106, 804108, 804109, 804202, 804203, 804204, 804305, 804306, 804308, 804309, 804312, 804313, 804314, 804315, 804316, 804403, 804404, 804405, 804406, 804505, 804506, 804508, 804509, 804510, 804511, 804512, 804513, 804514, 804603, 804606, 804607, 804608, 804609, 804610, 804611, 804701, 804705, 804706, 804709, 804710, 804711, 804712, 804713, 804714, 804715, 804716, 804803, 804804, 804805, 804806, 804807, 804808, 804809, 804810, 804901, 804902, 805001, 805002, 805105, 805106, 805107, 805108, 805109, 805110, 805111, 805112, 805201, 805202, 805301, 805302, 805401, 805402, 805501, 805502, 805600, 805701, 805702, 805801, 805802, 805901, 805902, 806001, 806002, 806004, 806005, 806006, 806102, 806103, 806104, 806201, 806202, 806300, 806400, 806501, 806502, 806600, 806700, 806801, 806802, 806900, 807000, 807100, 807200, 807300, 807400, 807500, 807600, 807700, 807800, 807900, 808001, 808002, 808100, 808200, 808301, 808302, 808400, 808500, 808600, 808702, 808800, 808900, 809000, 809100, 809200, 809300, 809401, 809402, 809500, 809600, 809700, 809800, 809900, 810000, 810100, 810200, 810301, 810302, 810400, 810501, 810502, 810600, 810701, 810702, 810800, 810900, 811000, 811100, 811200, 811301, 811302, 811401, 811402, 811500, 811600, 811701, 811702, 811800, 811900, 812000, 812100, 812200, 812301, 812302, 812400, 812500, 812600, 812700, 812801, 812802, 812900, 813000, 813100, 813200, 813301, 813302, 813400, 813500, 813600, 813701, 813702, 813801, 813802, 813900, 814000, 814100, 814200, 814300, 814400, 814500, 814600, 814700, 814800, 814900, 815000, 815100, 815200, 815300, 815400, 815500, 815600, 815701, 815702, 815800, 815900, 816000, 816100, 816200, 816300, 816401, 816402, 816500, 816600, 816700, 816800, 816900, 817000, 817101, 817102, 817200, 817300, 817400, 817500, 817600, 817700, 817900, 818000, 818100, 818200, 818300, 818401, 818402, 818500, 818600, 818700, 818800, 818900, 819000, 819100, 819200, 819300, 819400, 819500, 819600, 819700, 819801, 819802, 819900, 820000, 820101, 820103, 820104, 820202, 820203, 820204, 820300, 820400, 820501, 820502, 820603, 820604, 820605, 820606, 820700, 820800, 820901, 820902, 821001, 821002, 821101, 821102, 821200, 821300, 821401, 821402, 821500, 821600, 821700, 821800, 821900, 822000, 822101, 822102, 822200, 822301, 822302, 822400, 822500, 822601, 822602, 822701, 822702, 822801, 822802, 822900, 823001, 823002, 823101, 823102, 823200, 823302, 823303, 823304, 823400, 823500, 823602, 823603, 823604, 823605, 823702, 823703, 823704, 823705, 823801, 823803, 823805, 823806, 823901, 823903, 823904, 824003, 824004, 824005, 824006, 824105, 824106, 824107, 824113, 824114, 824115, 824116, 824119, 824121, 824122, 824123, 824124, 824125, 824126, 824127, 824128, 824129, 824300, 824400, 824503, 824505, 824507, 824508, 824509, 824601, 824602, 824701, 824702, 824800, 824900, 825000, 825200, 825302, 825303, 825304, 825400, 825501, 825503, 825504, 825505, 825600, 825700, 825801, 825802, 825803, 825900, 826000, 826100, 826201, 826202, 826301, 826303, 826304, 826401, 826402, 826500, 826600, 826700, 826800, 826901, 826902, 827000, 827100, 827200, 827300, 827400, 827500, 827600, 827700, 827801, 827802, 827804, 827805, 827901, 827902, 828000, 828100, 828201, 828202, 828300, 828401, 828402, 828503, 828504, 828505, 828507, 828508, 828601, 828602, 828701, 828702, 828801, 828802, 828900, 829000, 829100, 829200, 829301, 829302, 829401, 829402, 829500, 829600, 829700, 829800, 829902, 829903, 829904, 830001, 830003, 830004, 830005, 830006, 830007, 830008, 830100, 830201, 830202, 830300, 830400, 830500, 830600, 830700, 830800, 830900, 831000, 831100, 831200, 831300, 831400, 831500, 831600, 831700, 831800, 831900, 832000, 832100, 832200, 832300, 832400, 832500, 832600, 832900, 833000, 833100, 833300, 833900, 834000, 834200, 834300, 834400, 834500, 834600, 834700, 834800, 834900, 835000, 835100, 835200, 835500, 835600, 835800, 836000, 836100, 836200, 836300, 836400, 836500, 836600, 836700, 836800, 836900, 837000, 837100, 837300, 837400, 837800, 838000, 838100, 838200, 838300, 838600, 838700, 838800, 839000, 839100, 839200, 839500, 839600, 839700, 839800, 839900, 840000, 840100, 840200, 840300, 840400, 840700, 840800, 841000, 841100, 841200, 841300, 841500, 841700, 841800, 841900, 842000, 842100, 842200, 842300, 842400, 842500, 842600, 842800, 842900, 843000, 843100, 843200, 843300, 843400, 843500, 843600, 843700, 843800, 843900, 844600, 844700, 980000, 980100, 990000],
    '033' : [880100, 880200, 880300, 880400, 880500, 880600],
    '035' : [972400, 972500, 972600],
    '037' : [100, 200, 300, 401, 402, 500, 600, 700, 800, 900, 1002, 1003, 1004, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000, 2100, 2200],
    '039' : [971400, 971500, 971600, 971700, 971800],
    '041' : [952000, 952100, 952200, 952300, 952400],
    '043' : [840000, 840101, 840102, 840103, 840104, 840201, 840202, 840303, 840304, 840600, 840703, 840704, 840705, 840706, 840801, 840802, 840901, 840904, 840906, 840907, 840908, 840910, 840911, 841002, 841003, 841004, 841102, 841103, 841104, 841108, 841109, 841110, 841111, 841112, 841113, 841114, 841204, 841205, 841206, 841207, 841208, 841209, 841210, 841307, 841308, 841310, 841312, 841313, 841314, 841315, 841316, 841318, 841320, 841321, 841322, 841323, 841324, 841325, 841326, 841327, 841401, 841403, 841404, 841501, 841503, 841504, 841603, 841604, 841605, 841606, 841607, 841704, 841705, 841706, 841707, 841708, 841801, 841802, 841901, 841902, 842000, 842100, 842200, 842300, 842400, 842500, 842601, 842602, 842603, 842604, 842605, 842702, 842703, 842704, 842706, 842708, 842709, 842710, 842711, 842800, 842900, 843000, 843100, 843200, 843301, 843302, 843400, 843500, 843601, 843602, 843700, 843800, 843900, 844001, 844002, 844100, 844201, 844202, 844304, 844305, 844306, 844307, 844308, 844309, 844310, 844401, 844402, 844501, 844502, 844601, 844602, 844701, 844702, 844801, 844802, 844901, 844902, 845000, 845100, 845200, 845300, 845401, 845402, 845502, 845505, 845506, 845507, 845508, 845509, 845510, 845601, 845602, 845701, 845702, 845703, 845704, 845802, 845803, 845805, 845807, 845808, 845809, 845810, 845811, 845901, 845902, 846002, 846003, 846004, 846102, 846103, 846104, 846105, 846106, 846201, 846202, 846203, 846205, 846206, 846207, 846208, 846209, 846304, 846305, 846307, 846308, 846310, 846311, 846312, 846313, 846314, 846315, 846404, 846405, 846408, 846409, 846410, 846411, 846412, 846413, 846504, 846507, 846509, 846510, 846511, 846513, 846514, 846515, 846517, 846518, 846519, 846521, 846522, 846523, 846524, 846603, 846604, 846701, 846702],
    '045' : [70100, 70200, 70300, 70400, 70500],
    '047' : [956900, 957000, 957100],
    '049' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
    '051' : [950500, 950600, 950700, 950800, 950900, 951000, 951100],
    '053' : [961600, 961700, 961800, 961900, 962000],
    '055' : [40100, 40200, 40300, 40400, 40500, 40600, 40700, 40800, 40900, 41000, 41100, 41200],
    '057' : [952800, 952900, 953000, 953100, 953200, 953300, 953400, 953500, 953600, 953700, 953800, 953900],
    '059' : [972700, 972800],
    '061' : [973600, 973700, 973800, 973900, 974000],
    '063' : [102, 103, 200, 300, 400, 500, 600, 700, 800, 900],
    '065' : [973100, 973200, 973300],
    '067' : [953700, 953800, 953900, 954000, 954100, 954200, 954300],
    '069' : [970900, 971000],
    '071' : [973300, 973400, 973500],
    '073' : [30100, 30201, 30202, 30203, 30301, 30302, 30400, 30500, 30600, 30800, 30900, 31000, 31100, 31200],
    '075' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900],
    '077' : [10100, 10200, 10300, 10400, 10601, 10602, 10700, 10800, 10900, 11001, 11002, 11100, 11200, 11400, 11600, 11701, 11702],
    '079' : [977300, 977400, 977500],
    '081' : [50100, 50200, 50300, 50400, 50500, 50600, 50700, 50800, 50900, 51000, 51100],
    '083' : [10100, 10200, 10300, 10401, 10402, 10500],
    '085' : [20101, 20102, 20200, 20300, 20401, 20402, 20500],
    '087' : [977600, 977700, 977800, 980000],
    '089' : [850101, 850103, 850105, 850106, 850201, 850202, 850301, 850302, 850400, 850500, 850600, 850703, 850704, 850705, 850706, 850707, 850708, 850709, 850710, 850711, 850800, 851000, 851101, 851102, 851301, 851302, 851400, 851500, 851600, 851801, 851904, 851907, 851908, 851909, 851910, 851911, 851912, 851913, 852001, 852002, 852004, 852005, 852101, 852103, 852104, 852201, 852203, 852204, 852300, 852403, 852404, 852405, 852406, 852407, 852408, 852500, 852606, 852607, 852608, 852700, 852803, 852805, 852806, 852807, 852808, 852903, 852904, 852905, 852906, 852907, 853001, 853004, 853005, 853006, 853007, 853008, 853100, 853200, 853300, 853401, 853402, 853500, 853601, 853602, 853900, 854001, 854002, 854100, 854200, 854301, 854302, 854401, 854402, 854403, 854504, 854505, 854506, 854507, 854508, 854509, 854600, 854700, 854800, 854900],
    '091' : [10100, 10201, 10203, 10204, 10300, 10400, 10500, 10601, 10602, 10701, 10702, 10800, 10900, 11000, 11100, 11200, 11300, 11400, 11500, 11600, 11700, 11800, 11900, 12000, 12100, 12200, 12300, 12400, 12500, 12600],
    '093' : [890103, 890104, 890105, 890106, 890107, 890108, 890201, 890202, 890301, 890302, 890401, 890402, 890403, 890404, 890501, 890502, 890601, 890602, 890701, 890702, 890703],
    '095' : [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600],
    '097' : [860103, 860104, 860105, 860106, 860200, 860301, 860302, 860400, 860500, 860600, 860805, 860806, 860807, 860808, 860809, 860811, 860812, 860813, 860903, 860905, 860906, 860907, 860908, 861007, 861008, 861009, 861010, 861011, 861012, 861013, 861014, 861105, 861106, 861107, 861108, 861201, 861202, 861301, 861303, 861304, 861402, 861403, 861404, 861504, 861505, 861506, 861507, 861508, 861509, 861510, 861603, 861604, 861607, 861608, 861609, 861610, 861611, 861701, 861702, 861803, 861804, 861901, 861902, 862000, 862100, 862200, 862300, 862401, 862402, 862501, 862502, 862603, 862604, 862605, 862700, 862800, 862901, 862902, 863003, 863004, 863005, 863006, 863100, 863201, 863202, 863300, 863400, 863500, 863601, 863603, 863604, 863701, 863702, 863801, 863902, 863903, 863904, 864001, 864002, 864105, 864106, 864107, 864108, 864109, 864110, 864203, 864204, 864206, 864207, 864208, 864303, 864305, 864306, 864307, 864308, 864402, 864403, 864407, 864408, 864409, 864410, 864411, 864412, 864510, 864511, 864512, 864513, 864514, 864515, 864516, 864517, 864518, 864519, 864520, 864521, 864522, 864523, 864524, 864601, 864602, 864700, 864801, 864802, 864901, 864903, 864904, 865000, 865200, 865300, 865400, 865501, 865502, 865600, 865700, 865801, 865802, 866000, 866100, 866200, 990000],
    '099' : [961701, 961702, 961800, 961900, 962000, 962100, 962200, 962300, 962400, 962500, 962600, 962700, 962800, 962900, 963000, 963100, 963200, 963300, 963400, 963500, 963600, 963700, 963800, 963900, 964000, 964100, 964200, 964300],
    '101' : [880700, 880800, 880900, 881000, 881100],
    '103' : [100, 200, 300, 400, 500, 600, 700, 800, 900],
    '105' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000],
    '107' : [952900, 953000, 953100, 953200, 953300, 953400, 953500, 953600],
    '109' : [10100, 10200, 10300, 10401, 10402, 10600, 10700, 10900, 11000, 11100, 980000],
    '111' : [870103, 870104, 870105, 870106, 870200, 870301, 870302, 870402, 870403, 870404, 870501, 870502, 870603, 870604, 870605, 870606, 870702, 870703, 870704, 870807, 870808, 870809, 870810, 870811, 870812, 870813, 870814, 870903, 870904, 870905, 870906, 870907, 871003, 871004, 871105, 871107, 871108, 871109, 871110, 871111, 871112, 871113, 871114, 871115, 871201, 871202, 871205, 871206, 871207, 871208, 871209, 871301, 871304, 871305, 871307, 871310, 871311, 871312, 871313, 871402, 871404, 871501, 871502, 871600],
    '113' : [105, 106, 107, 108, 109, 200, 301, 302, 400, 501, 502, 504, 506, 507, 1103, 1105, 1106, 1107, 1108, 1200, 1301, 1302, 1303, 1402, 1403, 1404, 1500, 1600, 1700, 1800, 2101, 2102, 5102, 5103, 5104, 5201, 5202, 5401, 5402, 5501, 5502, 5601, 5602, 5700, 5800, 5900, 6000],
    '115' : [200, 300, 400, 501, 502, 600, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1801, 1802, 1900, 2001, 2002, 2100, 2200, 2300, 2401, 2402, 2500, 2601, 2602, 2700, 2800, 2901, 2902, 2904, 2905, 2906, 3000, 3100],
    '117' : [956000, 956100, 956200, 956300, 956400, 956500, 956600, 956700, 956800, 956900, 957000, 957100, 957200],
    '119' : [400101, 400102, 400200, 400600, 400700, 400801, 400802, 400903, 400904, 400951, 400952, 401000, 401101, 401102, 401200, 401300, 401400, 401500, 401701, 401721, 401722, 401800, 401901, 401905, 402000, 402100, 402200, 402300, 402400, 402500, 402600, 402701, 402721, 402722, 402801, 402803, 402804, 402805, 402900, 403001, 403002, 403101, 403121, 403122, 403200, 403300, 403401, 403403, 403404, 403502, 403531, 403532, 403533, 403534, 403601, 403603, 403604, 403701, 403702, 403801, 403802, 404000, 404100],
    '121' : [951600, 951700, 951800, 951900, 952000, 952100, 952200, 952300, 952400, 952500, 952600, 952700],
    '123' : [961100, 961200, 961300, 961400, 961500],
    '125' : [956300, 956400, 956500, 956600, 956700, 956800],
    '127' : [970100, 970200, 970300, 970400],
    '129' : [10100, 10200, 10300],
    '131' : [40100, 40200, 40300, 40400],
    '133' : [600102, 600103, 600104, 600401, 600402, 600501, 600502],
    '135' : [957300, 957400, 957500, 957600, 957700, 957800, 957900, 958000],
    '137' : [951400, 951500, 951600, 951700, 951800, 951900, 952000, 952100, 952200, 952300],
    '139' : [976900, 977000, 977100, 977200],
    '141' : [960700, 960800, 960900, 961001, 961002, 961100, 961200, 961301, 961302, 961400, 961500, 961600, 961700],
    '143' : [200, 300, 600, 900, 1200, 1300, 1500, 1600, 1800, 1900, 2000, 2100, 2200, 2300, 2400, 2500, 2600, 2701, 2702, 2800, 2900, 3000, 3101, 3103, 3104, 3200, 3300, 3402, 3403, 3404, 3601, 3602, 3700, 3800, 3900, 4000, 4101, 4102, 4200, 4300, 4400, 4500, 4600, 4801, 4802, 4901, 4902, 5000, 5100],
    '145' : [30100, 30200, 30300, 30400, 30500, 30600],
    '147' : [954500, 954600, 954700, 954800],
    '149' : [952400, 952500, 952600, 952700, 952800],
    '151' : [971200, 971300],
    '153' : [971000, 971100],
    '155' : [954500, 954600],
    '157' : [950500, 950600, 950700, 950800, 950900, 951000, 951100, 951201, 951202, 951300],
    '159' : [977900, 978000, 978100, 978200, 978300],
    '161' : [20101, 20102, 20103, 20200, 20301, 20302, 20400, 20600, 20700, 20800, 20900, 21000, 21100, 21200, 21300, 21400, 21500, 21600, 21700, 21800, 21900, 22000, 22100, 22200, 22300, 22600, 22800, 22900, 23000, 23100, 23200, 23300, 23500, 23600, 23700, 24000, 24101, 24102, 24103, 24200, 24300, 24400, 24500],
    '163' : [500400, 500500, 500900, 501100, 501200, 501300, 501400, 501501, 501502, 501602, 501604, 501605, 501606, 501607, 501700, 501801, 501802, 501900, 502100, 502200, 502300, 502401, 502404, 502500, 502602, 502603, 502700, 502800, 502900, 503101, 503102, 503202, 503203, 503211, 503301, 503304, 503322, 503323, 503324, 503332, 503334, 503404, 503411, 503412, 503413, 503414, 503415, 503416, 503800, 503903, 503905, 503906, 503907, 503908, 504001, 504002, 504351, 504352, 504353, 504354, 504355, 504356, 504357, 504358, 504359, 504501, 504502, 504600],
    '165' : [955100, 955500, 955600, 955700, 955800, 955900, 956000, 956100, 956200],
    '167' : [100, 201, 202, 300, 400, 501, 503, 504, 600, 700, 800, 900, 1001, 1003, 1004, 1100, 1200, 1300, 1400, 1600, 1800, 1900, 2001, 2002, 2100, 2200, 2300, 2400, 2500, 2600, 2700, 2801, 2802, 2900, 3000, 3100, 3201, 3202, 3203, 3300, 3400, 3500, 3601, 3602, 3603, 3604, 3701, 3702, 3801, 3802, 3901, 3902, 4000, 4200],
    '169' : [970100, 970200, 970300],
    '171' : [970600, 970700],
    '173' : [959100, 959200, 959300, 959400, 959500, 959600],
    '175' : [951400, 951500],
    '177' : [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300],
    '179' : [20100, 20301, 20302, 20400, 20500, 20600, 20700, 20800, 20900, 21000, 21101, 21102, 21201, 21202, 21203, 21500, 21603, 21604, 21605, 21606, 21701, 21702, 21801, 21802, 21900, 22000, 22100, 22200, 22300, 22400],
    '181' : [950100, 950200, 950300, 950400, 950500],
    '183' : [100, 200, 300, 400, 500, 600, 700, 800, 900, 1200, 1300, 10100, 10200, 10300, 10400, 10500, 10600, 10701, 10702, 10800, 10900, 11000, 11100, 11200],
    '185' : [957200, 957300, 957400, 957500],
    '187' : [870100, 870200, 870300, 870400, 870500],
    '189' : [950100, 950200, 950300, 950400],
    '191' : [954900, 955000, 955100, 955200, 955300],
    '193' : [958000, 958100, 958200, 958300, 958400],
    '195' : [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1101, 1102, 1200, 1300, 1400, 1500, 1600, 1700, 1800],
    '197' : [880105, 880106, 880107, 880109, 880111, 880112, 880113, 880114, 880115, 880116, 880117, 880118, 880119, 880122, 880123, 880124, 880125, 880202, 880203, 880204, 880303, 880304, 880305, 880307, 880309, 880314, 880315, 880316, 880317, 880318, 880319, 880320, 880321, 880322, 880323, 880324, 880325, 880326, 880408, 880411, 880412, 880414, 880416, 880417, 880418, 880421, 880422, 880423, 880424, 880425, 880426, 880427, 880428, 880429, 880430, 880431, 880432, 880502, 880503, 880508, 880509, 880510, 880511, 880601, 880602, 880701, 880702, 880901, 880903, 880905, 881001, 881002, 881005, 881006, 881007, 881009, 881010, 881011, 881012, 881105, 881107, 881108, 881109, 881111, 881112, 881113, 881115, 881116, 881201, 881202, 881301, 881302, 881401, 881402, 881500, 881601, 881603, 881604, 881700, 881800, 881900, 882000, 882100, 882200, 882300, 882400, 882500, 882601, 882602, 882701, 882702, 882801, 882802, 882900, 883000, 883100, 883206, 883208, 883209, 883210, 883211, 883212, 883213, 883214, 883216, 883217, 883218, 883219, 883303, 883304, 883305, 883306, 883307, 883401, 883402, 883504, 883505, 883507, 883509, 883510, 883511, 883513, 883514, 883515, 883516, 883517, 883519, 883521, 883522, 883602, 883603, 883605, 883606, 883700, 883803, 883804, 883806, 883808, 883809, 883810, 883811, 883902, 883903, 883904, 884003, 884004, 884005, 884006, 884101, 884103, 980000, 980100],
    '199' : [20100, 20201, 20202, 20300, 20400, 20500, 20600, 20700, 20801, 20802, 20900, 21001, 21002, 21003, 21100, 21200, 21300, 21400],
    '201' : [101, 103, 104, 105, 200, 300, 401, 402, 403, 501, 502, 506, 507, 510, 511, 512, 513, 514, 515, 516, 600, 700, 800, 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000, 2100, 2200, 2301, 2302, 2400, 2500, 2600, 2700, 2800, 2900, 3000, 3100, 3200, 3300, 3400, 3500, 3601, 3602, 3604, 3605, 3606, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3801, 3805, 3806, 3808, 3809, 3810, 3811, 3901, 3903, 3904, 4002, 4003, 4004, 4005, 4100, 4200, 4300, 980000],
    '203' : [30100, 30200, 30300, 30400, 30501, 30502, 30601, 30602, 30700]
]]]></entry>
        <entry id="census2020_ky" type="java"><![CDATA[[
    '001' : [970100, 970200, 970300, 970401, 970402, 970500, 970600],
    '003' : [920100, 920200, 920300, 920400, 920500, 920600],
    '005' : [950101, 950102, 950201, 950202, 950300, 950400],
    '007' : [950100, 950200, 950300],
    '009' : [950100, 950200, 950300, 950401, 950402, 950500, 950601, 950602, 950701, 950702, 950800, 950900, 951000],
    '011' : [970100, 970201, 970202, 970300],
    '013' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 961100],
    '015' : [70101, 70102, 70201, 70202, 70301, 70305, 70309, 70311, 70312, 70313, 70314, 70315, 70316, 70317, 70318, 70403, 70404, 70405, 70406, 70407, 70502, 70503, 70505, 70506, 70601, 70604, 70605, 70606, 70607, 980100],
    '017' : [30101, 30102, 30201, 30202, 30300, 30400, 30500, 30600],
    '019' : [30200, 30300, 30400, 30500, 30600, 30700, 30800, 30900, 31001, 31003, 31004, 31101, 31102, 31200, 31300],
    '021' : [930100, 930200, 930300, 930400, 930500, 930600, 930700],
    '023' : [950100, 950200, 950300],
    '025' : [920200, 920301, 920302, 920500, 920600, 920700, 920800],
    '027' : [960100, 960200, 960300, 960400, 960501, 960502],
    '029' : [20101, 20102, 20103, 20201, 20202, 20300, 20401, 20402, 20501, 20502, 20601, 20602, 20702, 20703, 20704, 20800, 20900, 21102, 21103, 21104, 21200, 980100],
    '031' : [930100, 930200, 930301, 930302, 930400, 930500],
    '033' : [920100, 920200, 920301, 920302],
    '035' : [10100, 10200, 10301, 10303, 10304, 10400, 10500, 10601, 10602, 10700, 10800],
    '037' : [50100, 50400, 50500, 50600, 51101, 51102, 51200, 51300, 51901, 51903, 51904, 52001, 52002, 52100, 52200, 52301, 52302, 52400, 52500, 52800, 52900, 53100, 53200, 53301, 53302],
    '039' : [960100, 960200, 960300],
    '041' : [950100, 950200, 950300],
    '043' : [960100, 960200, 960300, 960400, 960500, 960601, 960602, 960700],
    '045' : [950100, 950200, 950301, 950302, 950400, 950500],
    '047' : [200100, 200200, 200300, 200400, 200500, 200600, 200700, 200800, 200901, 200902, 201000, 201100, 201200, 201301, 201303, 201304, 201400, 201501, 201502, 201503, 980100],
    '049' : [20101, 20103, 20105, 20106, 20201, 20202, 20300, 20400, 20500, 20600],
    '051' : [950100, 950201, 950202, 950301, 950302, 950400, 950500, 950600],
    '053' : [970100, 970202, 970203, 970204],
    '055' : [930100, 930200, 930300, 930400],
    '057' : [950100, 950200],
    '059' : [100, 200, 300, 401, 402, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1401, 1402, 1501, 1502, 1601, 1602, 1701, 1702, 1703, 1800],
    '061' : [920200, 920300, 920401, 920402, 980100],
    '063' : [920101, 920102, 920200],
    '065' : [920100, 920201, 920202, 920301, 920302, 920400],
    '067' : [101, 102, 200, 300, 400, 500, 600, 700, 801, 802, 900, 1000, 1100, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2001, 2002, 2200, 2302, 2303, 2304, 2400, 2500, 2600, 2700, 2800, 2900, 3000, 3101, 3102, 3201, 3202, 3300, 3402, 3404, 3405, 3406, 3407, 3501, 3503, 3504, 3600, 3701, 3702, 3703, 3704, 3802, 3803, 3804, 3906, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 4001, 4003, 4005, 4006, 4007, 4103, 4104, 4105, 4106, 4107, 4204, 4205, 4207, 4208, 4209, 4210],
    '069' : [920100, 920200, 920300, 920400],
    '071' : [920100, 920200, 920301, 920302, 920401, 920402, 920500, 920600, 920700, 920801, 920802, 920900, 921001, 921002],
    '073' : [70101, 70102, 70401, 70403, 70404, 70405, 70500, 70601, 70602, 70703, 70704, 70705, 70706, 70801, 70802, 71001, 71002, 71101, 71102, 71200],
    '075' : [960100, 960200],
    '077' : [960102, 960103, 960104],
    '079' : [970101, 970102, 970201, 970202, 970300, 970400],
    '081' : [920101, 920102, 920201, 920202, 920301, 920302, 920400],
    '083' : [20100, 20200, 20301, 20302, 20400, 20500, 20600, 20700, 20800, 20900],
    '085' : [950101, 950102, 950200, 950300, 950401, 950402, 950500, 950600, 950700],
    '087' : [930100, 930200, 930300, 930400],
    '089' : [40100, 40201, 40202, 40300, 40400, 40501, 40502, 40600, 40700],
    '091' : [960100, 960200, 960300],
    '093' : [100, 201, 202, 300, 400, 500, 600, 700, 800, 902, 903, 904, 1003, 1004, 1005, 1006, 1100, 1200, 1300, 1401, 1402, 1500, 1601, 1602, 1603, 1701, 1702, 980100],
    '095' : [970100, 970200, 970300, 970400, 970500, 970600, 970700, 970800, 970900, 971000, 971300],
    '097' : [950100, 950200, 950300, 950400, 950500],
    '099' : [970100, 970200, 970301, 970302, 970400, 970500],
    '101' : [20101, 20200, 20300, 20401, 20501, 20602, 20603, 20604, 20701, 20703, 20704, 20800, 20901, 20902],
    '103' : [90100, 90200, 90301, 90302, 90400],
    '105' : [970100],
    '107' : [970100, 970200, 970301, 970302, 970400, 970500, 970600, 970700, 970800, 970900, 971000, 971100, 971300],
    '109' : [960101, 960102, 960200, 960301, 960302],
    '111' : [201, 202, 300, 400, 600, 700, 800, 900, 1000, 1100, 1200, 1400, 1500, 1600, 1700, 1800, 2100, 2300, 2401, 2402, 2700, 2800, 3000, 3501, 3502, 3600, 3700, 3800, 3900, 4000, 4100, 4301, 4302, 4400, 4500, 4600, 4900, 5000, 5100, 5200, 5300, 5600, 5901, 5902, 6200, 6300, 6400, 6500, 6600, 6800, 6900, 7000, 7101, 7102, 7400, 7501, 7502, 7601, 7602, 7603, 7700, 7800, 7900, 8100, 8201, 8202, 8300, 8400, 8500, 8700, 8800, 8900, 9001, 9002, 9103, 9105, 9106, 9300, 9401, 9402, 9600, 9700, 9800, 9900, 10001, 10004, 10005, 10006, 10007, 10008, 10102, 10103, 10104, 10309, 10312, 10313, 10314, 10315, 10316, 10317, 10318, 10319, 10320, 10321, 10322, 10323, 10324, 10403, 10405, 10406, 10407, 10408, 10500, 10601, 10602, 10701, 10702, 10706, 10707, 10708, 10800, 10901, 10902, 11003, 11005, 11006, 11007, 11008, 11009, 11109, 11110, 11111, 11112, 11113, 11114, 11115, 11116, 11117, 11118, 11201, 11202, 11301, 11302, 11403, 11404, 11405, 11406, 11506, 11508, 11509, 11513, 11514, 11515, 11516, 11517, 11518, 11519, 11520, 11521, 11522, 11603, 11604, 11605, 11606, 11706, 11707, 11708, 11709, 11710, 11711, 11712, 11713, 11800, 11901, 11904, 11906, 11907, 11908, 11909, 12001, 12003, 12004, 12005, 12103, 12104, 12105, 12107, 12108, 12109, 12203, 12204, 12205, 12206, 12301, 12302, 12406, 12407, 12408, 12409, 12410, 12412, 12413, 12501, 12502, 12503, 12603, 12604, 12605, 12606, 12701, 12702, 12703, 12801, 12802, 13100, 980100],
    '113' : [60102, 60103, 60104, 60200, 60300, 60401, 60402, 60502, 60503, 60504, 60600],
    '115' : [960100, 960200, 960300, 960401, 960402, 960500, 960600],
    '117' : [60300, 60700, 60900, 61000, 61100, 61200, 61300, 61400, 61600, 63604, 63606, 63607, 63608, 63609, 63610, 63701, 63702, 63800, 64001, 64002, 64300, 64400, 64500, 64600, 64700, 64800, 64900, 65000, 65100, 65200, 65300, 65400, 65501, 65502, 65600, 65700, 65800, 65900, 66801, 66802, 66900, 67000, 67100, 67200],
    '119' : [960100, 960200, 960300, 960400, 960500],
    '121' : [930100, 930200, 930300, 930401, 930402, 930501, 930502, 930602, 930603, 930604, 930700],
    '123' : [960101, 960103, 960104, 960200, 960300],
    '125' : [970100, 970201, 970202, 970300, 970400, 970500, 970600, 970700, 970800, 970900, 971001, 971003, 971004, 971101, 971103, 971104],
    '127' : [930101, 930102, 930200, 930300, 930400, 930500],
    '129' : [950100, 950200, 950300],
    '131' : [920101, 920102, 920200, 920300],
    '133' : [950100, 950201, 950202, 950300, 950401, 950403, 950404, 950500, 950601, 950602],
    '135' : [930100, 930200, 930300, 930400],
    '137' : [920101, 920102, 920103, 920200, 920301, 920302, 920400],
    '139' : [40100, 40201, 40202],
    '141' : [960100, 960200, 960300, 960400, 960500, 960600],
    '143' : [960101, 960102, 960200, 980100],
    '145' : [30100, 30200, 30300, 30400, 30500, 30600, 30700, 30800, 30900, 31000, 31100, 31200, 31301, 31302, 31401, 31402, 31501, 31502, 31600],
    '147' : [960100, 960200, 960301, 960302, 960401, 960402],
    '149' : [970100, 970200, 970500],
    '151' : [10101, 10103, 10104, 10201, 10202, 10301, 10302, 10303, 10400, 10500, 10601, 10602, 10701, 10702, 10801, 10802, 10901, 10902, 10903, 11001, 11002, 11101, 11102, 11103, 11201, 11202, 11301, 11303, 11304, 11401, 11402],
    '153' : [970100, 970201, 970202, 970300, 970400],
    '155' : [970200, 970300, 970400, 970500, 970700, 970800],
    '157' : [950101, 950102, 950200, 950300, 950400, 950501, 950502, 950601, 950602, 950603],
    '159' : [950100, 950201, 950202, 950300],
    '161' : [960100, 960200, 960300, 960400, 960500],
    '163' : [970100, 970200, 970301, 970302, 970401, 970403, 970404, 970500, 980100],
    '165' : [960100, 960200],
    '167' : [960100, 960200, 960300, 960400, 960500],
    '169' : [960100, 960200, 960300],
    '171' : [930100, 930200, 930300, 930400],
    '173' : [920100, 920201, 920202, 920301, 920302, 920400, 920500],
    '175' : [950100, 950200, 950300, 950400, 950500],
    '177' : [960100, 960201, 960202, 960300, 960400, 960500, 960600, 960700, 960800, 960900],
    '179' : [930100, 930201, 930202, 930301, 930303, 930304, 930305, 930400, 930500, 930600, 930700],
    '181' : [960100, 960200],
    '183' : [920100, 920200, 920300, 920400, 920501, 920502, 920600, 920700],
    '185' : [30100, 30200, 30301, 30302, 30401, 30402, 30501, 30502, 30601, 30602, 30701, 30703, 30704, 30801, 30802],
    '187' : [970100, 970201, 970202, 970300],
    '189' : [930100, 930200],
    '191' : [930101, 930102, 930200, 930300],
    '193' : [970300, 970400, 970501, 970502, 970601, 970602, 970700, 970800, 970900, 971000],
    '195' : [930100, 930201, 930202, 930301, 930302, 930400, 930500, 930600, 930700, 930800, 930900, 931000, 931101, 931102, 931200, 931300, 931400, 931500, 931600, 931700, 931800, 931900],
    '197' : [970101, 970102, 970201, 970202],
    '199' : [930101, 930102, 930200, 930301, 930302, 930401, 930403, 930404, 930503, 930504, 930505, 930506, 930600, 930700, 930801, 930802, 930900, 931000, 931101, 931103, 931104],
    '201' : [970100],
    '203' : [950100, 950201, 950202, 950300, 950400],
    '205' : [950100, 950201, 950202, 950301, 950302, 950400],
    '207' : [960101, 960102, 960200, 960300, 960400],
    '209' : [40101, 40102, 40203, 40205, 40207, 40208, 40209, 40210, 40301, 40302, 40303, 40400, 40501, 40502, 40601, 40604, 40605, 40606, 40607],
    '211' : [40101, 40102, 40201, 40202, 40301, 40302, 40402, 40403, 40404, 40501, 40503, 40504],
    '213' : [970100, 970200, 970300, 970401, 970402],
    '215' : [80101, 80102, 80103, 80200],
    '217' : [920100, 920200, 920300, 920401, 920402, 920501, 920502],
    '219' : [950100, 950200, 950300, 950400],
    '221' : [970100, 970201, 970202, 970301, 970302, 980100, 980200],
    '223' : [100100, 100200],
    '225' : [950100, 950201, 950202, 950300],
    '227' : [10100, 10200, 10300, 10400, 10500, 10600, 10701, 10702, 10801, 10802, 10804, 10805, 10900, 11001, 11002, 11100, 11200, 11300, 11401, 11402, 11500, 11600, 11701, 11702, 11801, 11802, 11900],
    '229' : [930100, 930201, 930202, 930300],
    '231' : [920101, 920102, 920201, 920202, 920300, 920401, 920402, 920701, 920702],
    '233' : [960100, 960200, 960300, 960400],
    '235' : [920100, 920200, 920301, 920302, 920401, 920402, 920501, 920502, 920601, 920602, 920700, 920800],
    '237' : [930100, 930200],
    '239' : [50103, 50104, 50105, 50106, 50107, 50200, 50300, 50400]
]]]></entry>
        <entry id="census2020_la" type="java"><![CDATA[[
    '001' : [960101, 960102, 960201, 960202, 960300, 960401, 960402, 960403, 960501, 960502, 960503, 960601, 960602, 960700, 960801, 960802, 960901, 960902, 961000, 961100, 961200],
    '003' : [950100, 950201, 950202, 950300, 950400, 950501, 950502],
    '005' : [30102, 30104, 30105, 30106, 30107, 30207, 30208, 30209, 30210, 30211, 30212, 30213, 30214, 30215, 30301, 30302, 30303, 30304, 30403, 30404, 30405, 30406, 30501, 30502, 30503, 30600, 30900, 31001, 31002],
    '007' : [50100, 50201, 50202, 50300, 50400, 50500, 50600],
    '009' : [30100, 30200, 30300, 30401, 30402, 30501, 30502, 30600, 30701, 30702, 30800, 30900],
    '011' : [960101, 960102, 960200, 960300, 960400, 960500, 960600, 960701, 960702],
    '013' : [970100, 970200, 970300, 970400, 970500],
    '015' : [10400, 10500, 10601, 10602, 10701, 10702, 10801, 10805, 10806, 10807, 10808, 10900, 11002, 11003, 11004, 11107, 11111, 11112, 11113, 11114, 11115, 11116, 11117, 11118, 11119, 11120, 11121, 11122, 11123, 11124, 11201, 11202, 11300],
    '017' : [20500, 20600, 20700, 21000, 21100, 21200, 21300, 21400, 21500, 21600, 21700, 21800, 21900, 22000, 22101, 22102, 22200, 22300, 22400, 22500, 22600, 22700, 22800, 22900, 23000, 23100, 23200, 23300, 23401, 23402, 23500, 23600, 23701, 23702, 23801, 23802, 23903, 23904, 23905, 23906, 23907, 24001, 24002, 24102, 24104, 24107, 24108, 24109, 24110, 24111, 24201, 24204, 24205, 24206, 24207, 24303, 24304, 24305, 24306, 24400, 24503, 24504, 24601, 24602, 24700, 24800, 24900, 25000, 25100, 25200, 25300, 25405, 25406, 980000],
    '019' : [100, 200, 300, 400, 500, 601, 602, 700, 800, 900, 1000, 1100, 1201, 1202, 1301, 1302, 1401, 1402, 1500, 1600, 1700, 1802, 1803, 1901, 1905, 1906, 1907, 1908, 2001, 2002, 2100, 2204, 2205, 2206, 2207, 2208, 2300, 2401, 2402, 2500, 2600, 2701, 2702, 2800, 2900, 3000, 3101, 3102, 3200, 3300, 3400, 3500, 3601, 3602, 980000, 980100],
    '021' : [100, 200, 300],
    '023' : [970101, 970102, 970202, 970203, 990000],
    '025' : [100, 200, 300],
    '027' : [950100, 950201, 950202, 950300, 950400, 950500],
    '029' : [100, 201, 202, 300, 400, 500],
    '031' : [950101, 950102, 950103, 950200, 950300, 950400, 950500, 950600, 950700],
    '033' : [100, 200, 300, 400, 500, 601, 602, 701, 702, 900, 1000, 1102, 1103, 1104, 1600, 1700, 1800, 1900, 2000, 2200, 2300, 2400, 2500, 2601, 2602, 2700, 2801, 2802, 3000, 3104, 3201, 3202, 3300, 3400, 3501, 3504, 3505, 3506, 3507, 3601, 3603, 3604, 3701, 3702, 3703, 3804, 3806, 3807, 3808, 3809, 3810, 3811, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 4010, 4013, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4201, 4203, 4204, 4205, 4301, 4302, 4401, 4402, 4403, 4503, 4504, 4507, 4509, 4511, 4512, 4513, 4514, 4515, 4516, 4602, 4603, 4605, 4606, 4700, 4800, 4900, 5000, 5100, 5200, 5300, 980000],
    '035' : [100, 200, 300],
    '037' : [951300, 951400, 951501, 951502, 951600],
    '039' : [950101, 950102, 950200, 950301, 950302, 950401, 950402, 950500, 950600, 950700, 950800],
    '041' : [950100, 950200, 950300, 950400, 950500, 950600],
    '043' : [20100, 20200, 20300, 20403, 20404, 20405, 20406],
    '045' : [30101, 30102, 30201, 30202, 30301, 30303, 30304, 30401, 30402, 30500, 30601, 30602, 30700, 30800, 30900, 31000, 31101, 31102, 31200, 31301, 31302, 31600, 990000],
    '047' : [952600, 952701, 952702, 952901, 952902, 953000, 953101, 953102, 953200],
    '049' : [970100, 970200, 970300, 970400, 970500],
    '051' : [20204, 20205, 20206, 20304, 20305, 20400, 20502, 20505, 20506, 20507, 20511, 20512, 20513, 20514, 20515, 20516, 20517, 20518, 20519, 20600, 21000, 21100, 21200, 21300, 21400, 21500, 21601, 21602, 22601, 23003, 23004, 23300, 23400, 23500, 23600, 23700, 23800, 23901, 23902, 23903, 23904, 24001, 24002, 24100, 24202, 24300, 24400, 24500, 24601, 24700, 24801, 24900, 25002, 25003, 25004, 25005, 25102, 25103, 25104, 25201, 25202, 25300, 25400, 25500, 25600, 25700, 25800, 25900, 26000, 26100, 26200, 26300, 26400, 26500, 26600, 26700, 26800, 26900, 27000, 27100, 27200, 27501, 27502, 27601, 27602, 27701, 27703, 27803, 27806, 27810, 27811, 27812, 27813, 27814, 27815, 27816, 27817, 27818, 27819, 27820, 27903, 27904, 28000, 28200, 28300, 28400, 28500, 28600, 28700, 28800, 28900, 29000, 29100, 29200, 29300, 29400, 29500, 29600, 29700, 29800, 29900, 30000, 30100, 30200, 30300, 980000, 990000, 990100],
    '053' : [100, 200, 300, 401, 402, 500, 600, 700],
    '055' : [100, 200, 500, 602, 603, 605, 606, 700, 800, 900, 1001, 1002, 1003, 1100, 1201, 1202, 1301, 1302, 1403, 1408, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1500, 1600, 1700, 1801, 1802, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 2001, 2003, 2004, 2101, 2102, 2103, 2105, 2106, 2200],
    '057' : [20100, 20202, 20400, 20500, 20600, 20702, 20703, 20704, 20800, 20900, 21000, 21101, 21102, 21200, 21300, 21400, 21500, 21602, 21603, 21604, 21700, 21800, 21902, 21903, 21904, 22000, 990000],
    '059' : [970100, 970200, 970300],
    '061' : [960100, 960200, 960300, 960401, 960402, 960500, 960600, 960701, 960702, 960800, 960900, 961000],
    '063' : [40101, 40102, 40103, 40202, 40203, 40204, 40304, 40305, 40306, 40307, 40308, 40403, 40404, 40405, 40406, 40501, 40502, 40503, 40601, 40602, 40700, 40805, 40807, 40808, 40809, 40810, 40811, 40812, 40813, 40814, 40903, 40904, 40905, 40906],
    '065' : [960100, 960200, 960300, 960400, 960500],
    '067' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
    '069' : [100, 200, 300, 400, 500, 601, 602, 700, 800, 901, 902],
    '071' : [100, 200, 300, 400, 601, 602, 603, 604, 605, 606, 607, 611, 612, 615, 616, 617, 618, 619, 620, 701, 702, 800, 901, 902, 903, 904, 1100, 1200, 1301, 1302, 1401, 1402, 1500, 1600, 1701, 1702, 1720, 1723, 1724, 1736, 1737, 1739, 1740, 1741, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1800, 1900, 2000, 2100, 2200, 2300, 2401, 2402, 2501, 2502, 2503, 2504, 2600, 2700, 2800, 2900, 3000, 3100, 3301, 3302, 3303, 3304, 3307, 3308, 3400, 3500, 3600, 3701, 3702, 3800, 3900, 4000, 4100, 4401, 4402, 4500, 4600, 4800, 4900, 5000, 5400, 5500, 5601, 5602, 5603, 5604, 6000, 6300, 6400, 6500, 6900, 7000, 7101, 7200, 7501, 7502, 7604, 7605, 7607, 7608, 7700, 7800, 8200, 8300, 8400, 8500, 8600, 8800, 9000, 9100, 9200, 9400, 9600, 9700, 9900, 10000, 10100, 10200, 10300, 10600, 10700, 10800, 10900, 11100, 11200, 11400, 11500, 11600, 11700, 11900, 12000, 12101, 12102, 12200, 12300, 12400, 12500, 12600, 12700, 12800, 12900, 13000, 13100, 13200, 13301, 13302, 13400, 13501, 13502, 13600, 13701, 13702, 13800, 13900, 14000, 14101, 14102, 14200, 14300, 14400, 14500, 980000, 980100, 990000],
    '073' : [100, 200, 401, 402, 500, 600, 700, 900, 1100, 1400, 1500, 1700, 5100, 5201, 5203, 5204, 5303, 5304, 5305, 5306, 5400, 5500, 5800, 5900, 10101, 10103, 10104, 10202, 10203, 10204, 10301, 10302, 10401, 10402, 10502, 10503, 10505, 10506, 10604, 10605, 10606, 10700, 10800, 10900, 11000, 11100, 980000],
    '075' : [50100, 50201, 50202, 50300, 50400, 50500, 50600, 50700, 50800, 990000],
    '077' : [951900, 952000, 952100, 952201, 952202, 952300, 952400],
    '079' : [10101, 10102, 10300, 10400, 10501, 10502, 10600, 10701, 10702, 11000, 11300, 11501, 11502, 11600, 11700, 12000, 12100, 12200, 12301, 12302, 12400, 12500, 12600, 12700, 12800, 12900, 13000, 13100, 13201, 13202, 13300, 13400, 13501, 13502, 13600, 13700, 13800, 13900, 980000],
    '081' : [960100, 960300],
    '083' : [970100, 970200, 970300, 970400, 970500, 970600],
    '085' : [100, 201, 202, 300, 400, 500, 600, 701, 702],
    '087' : [30103, 30104, 30105, 30203, 30204, 30206, 30207, 30208, 30209, 30300, 30400, 30500, 30601, 30602, 30603, 30700, 30800, 990000],
    '089' : [60100, 62100, 62200, 62301, 62302, 62400, 62500, 62700, 62800, 62900, 63000, 63100, 63200],
    '091' : [951100, 951201, 951202],
    '093' : [40100, 40200, 40300, 40400, 40500, 40600, 40700],
    '095' : [70100, 70200, 70300, 70400, 70500, 70600, 70700, 70800, 70900, 71000, 71100],
    '097' : [960100, 960200, 960300, 960400, 960500, 960601, 960602, 960701, 960702, 960800, 960901, 960902, 961000, 961100, 961200, 961301, 961302, 961401, 961402, 961501, 961502, 961601, 961602, 961701, 961702, 961801, 961802, 961900],
    '099' : [20101, 20102, 20201, 20202, 20301, 20303, 20304, 20401, 20402, 20502, 20503, 20504, 20601, 20602, 20800, 20900, 21000],
    '101' : [40100, 40200, 40300, 40400, 40500, 40600, 40700, 40800, 40900, 41000, 41100, 41200, 41300, 41400, 41500, 41600, 990000],
    '103' : [40103, 40105, 40106, 40107, 40108, 40203, 40204, 40205, 40206, 40304, 40306, 40307, 40308, 40309, 40401, 40402, 40501, 40502, 40601, 40602, 40606, 40607, 40608, 40609, 40705, 40706, 40708, 40709, 40710, 40711, 40712, 40713, 40714, 40801, 40804, 40805, 40806, 40807, 40900, 41002, 41003, 41004, 41101, 41103, 41104, 41105, 41106, 41202, 41207, 41208, 41209, 41210, 41211, 41212, 41213, 41214, 41301, 41302, 990000],
    '105' : [953200, 953300, 953401, 953402, 953501, 953502, 953601, 953602, 953701, 953702, 953800, 953901, 953902, 954001, 954003, 954004, 954103, 954104, 954105, 954106, 954200, 954300, 954400, 954503, 954504, 954505, 954506, 954601, 954602, 954700, 954800],
    '107' : [100, 200, 300],
    '109' : [103, 104, 105, 106, 201, 203, 204, 300, 401, 402, 501, 502, 601, 602, 701, 702, 800, 901, 902, 1001, 1002, 1100, 1201, 1202, 1301, 1302, 1303, 1400, 1501, 1502, 1600, 1701, 1702, 1703, 990000],
    '111' : [960100, 960200, 960300, 960400, 960500, 960600],
    '113' : [950101, 950102, 950103, 950201, 950202, 950400, 950500, 950600, 950700, 950800, 950901, 950903, 950904, 951001, 951002, 951100, 990000],
    '115' : [950100, 950200, 950301, 950302, 950400, 950501, 950502, 950600, 950701, 950702, 950703, 950704, 950801, 950802, 950901, 950902],
    '117' : [950101, 950102, 950201, 950202, 950300, 950400, 950501, 950502, 950600, 950700, 950800, 950900, 951000],
    '119' : [31100, 31200, 31300, 31400, 31501, 31502, 31600, 31700, 31800, 31900, 32000, 32101, 32102],
    '121' : [20100, 20200, 20301, 20302, 20401, 20402],
    '123' : [100, 200, 300],
    '125' : [951703, 951704, 951705, 951801, 951802, 951803, 980000],
    '127' : [960100, 960201, 960202, 960300, 960400]
]]]></entry>
        <entry id="census2020_ma" type="java"><![CDATA[[
    '001' : [10100, 10206, 10208, 10304, 10306, 10400, 10500, 10600, 10700, 10800, 10900, 11002, 11100, 11200, 11300, 11400, 11500, 11600, 11700, 11801, 11802, 12001, 12002, 12101, 12102, 12200, 12502, 12601, 12602, 12700, 12800, 12900, 13002, 13100, 13200, 13300, 13400, 13500, 13600, 13700, 13800, 13900, 14002, 14100, 14300, 14402, 14500, 14600, 14700, 14800, 14900, 15001, 15002, 15100, 15200, 15300, 990000],
    '003' : [900100, 900200, 900300, 900400, 900500, 900600, 900700, 900800, 900900, 901100, 911100, 912100, 913100, 914100, 920101, 920102, 921300, 921400, 921500, 922100, 922200, 922300, 923100, 924100, 925101, 925102, 926100, 931100, 931300, 931400, 932200, 932300, 933200, 933300, 933400, 934200, 934300, 935100, 935200, 935300],
    '005' : [600100, 600202, 600203, 600204, 610100, 610202, 610203, 610204, 611101, 611102, 611201, 611202, 612100, 612201, 612202, 613100, 613300, 613400, 613600, 613700, 613800, 613901, 613902, 614000, 614101, 614102, 615100, 616100, 617101, 617102, 630101, 630102, 630201, 630202, 630301, 630302, 630400, 631101, 631102, 631200, 631300, 631400, 631500, 631600, 631700, 631800, 632100, 632200, 633100, 633200, 640100, 640201, 640202, 640300, 640400, 640500, 640600, 640700, 640800, 640901, 641000, 641101, 641200, 641300, 641400, 641500, 641600, 641700, 641800, 641900, 642000, 642100, 642200, 642300, 642400, 642500, 644101, 644102, 644200, 645101, 645102, 645103, 646101, 646103, 646104, 650101, 650102, 650201, 650202, 650300, 650400, 650500, 650600, 650700, 650800, 650900, 651001, 651002, 651100, 651200, 651300, 651400, 651500, 651600, 651700, 651800, 651900, 652000, 652100, 652200, 652300, 652400, 652500, 652600, 652700, 652800, 653101, 653102, 653203, 653204, 653301, 653304, 654100, 654200, 655100, 655200, 655300, 655400, 985500, 985600, 990000],
    '007' : [200100, 200200, 200300, 200400, 990000],
    '009' : [201100, 202101, 202103, 202104, 202200, 203100, 203200, 203301, 203302, 204101, 204102, 204200, 204300, 204400, 204500, 204600, 204701, 204702, 205100, 205200, 205300, 205400, 205500, 205600, 205700, 205800, 205900, 206000, 206100, 206200, 206300, 206400, 206500, 206600, 206700, 206800, 206900, 207000, 207100, 207200, 208101, 208102, 208200, 208301, 208302, 208401, 208402, 209100, 209200, 210100, 210200, 210301, 210302, 210401, 210402, 210500, 210600, 210700, 210800, 210900, 211100, 211201, 211202, 211300, 211401, 211402, 212101, 212102, 213100, 214100, 215101, 215102, 216100, 217101, 217102, 217201, 217202, 217300, 217401, 217402, 217500, 217601, 217602, 218100, 220101, 220102, 221100, 221300, 221400, 221500, 221600, 221700, 221800, 221901, 221902, 222100, 223100, 223200, 223300, 250100, 250200, 250300, 250400, 250500, 250600, 250700, 250800, 250900, 251000, 251100, 251200, 251300, 251400, 251500, 251600, 251700, 251800, 252101, 252102, 252201, 252202, 252300, 252400, 252501, 252502, 252601, 252602, 252603, 253100, 253201, 253202, 253203, 253204, 253205, 254100, 254200, 254301, 254302, 254401, 254402, 254403, 260100, 260200, 260301, 260302, 260401, 260402, 260500, 260600, 260700, 260800, 260900, 261000, 261101, 261102, 262100, 263100, 264100, 265101, 265102, 266100, 266200, 266300, 266400, 267102, 267103, 267104, 268100, 268200, 268300, 268400, 269100, 270100, 990100],
    '011' : [40100, 40200, 40300, 40400, 40501, 40502, 40600, 40701, 40702, 40800, 40900, 41000, 41100, 41200, 41301, 41302, 41400, 41501, 41502],
    '013' : [800101, 800102, 800201, 800202, 800300, 800400, 800500, 800600, 800700, 800800, 800900, 801101, 801102, 801200, 801300, 801401, 801402, 801501, 801502, 801503, 801601, 801602, 801603, 801604, 801605, 801700, 801800, 801901, 801902, 802000, 802101, 802200, 802300, 802400, 802500, 802601, 802602, 810100, 810200, 810300, 810403, 810404, 810412, 810414, 810601, 810602, 810700, 810800, 810901, 810902, 811000, 811101, 811102, 811200, 811301, 811302, 811400, 811500, 811600, 811700, 811800, 811900, 812001, 812002, 812101, 812103, 812104, 812201, 812202, 812300, 812401, 812403, 812404, 812500, 812600, 812701, 812702, 812800, 812901, 812902, 812903, 813001, 813002, 813101, 813102, 813204, 813205, 813206, 813207, 813208, 813209, 813301, 813303, 813304, 813401, 813403, 813404, 813500, 813601, 813602, 813701, 813702, 813801, 813802],
    '015' : [820101, 820102, 820205, 820206, 820207, 820300, 820400, 820500, 820600, 820700, 820801, 820802, 820900, 821000, 821101, 821200, 821300, 821400, 821500, 821601, 821602, 821700, 821901, 821903, 821904, 822000, 822200, 822300, 822401, 822402, 822500, 822601, 822603, 822607, 822700],
    '017' : [300100, 301101, 301102, 310101, 310102, 310200, 310300, 310400, 310500, 310601, 310602, 310700, 311100, 311200, 311300, 311400, 311500, 311600, 311700, 311800, 311900, 312000, 312100, 312200, 312300, 312400, 312501, 312502, 313101, 313102, 314101, 314102, 314200, 314301, 314302, 315100, 315200, 315401, 315402, 315403, 315500, 316101, 316102, 316201, 316202, 316300, 316400, 316500, 317101, 317102, 317103, 317201, 317202, 317203, 317301, 317302, 318100, 318200, 318300, 318400, 320102, 320105, 320106, 320107, 321100, 321200, 321301, 321302, 321400, 321500, 321600, 322100, 322200, 322300, 322400, 323101, 323102, 324101, 324102, 325101, 325102, 326101, 326102, 327101, 327102, 327103, 328100, 330101, 330102, 330201, 330202, 331101, 331102, 331200, 331300, 332100, 332201, 332202, 332300, 332401, 332402, 333100, 333200, 333300, 333400, 333501, 333502, 333601, 333602, 334100, 334200, 334300, 334400, 335100, 335200, 335301, 335302, 335400, 336100, 336201, 336202, 336300, 336402, 336403, 336404, 337101, 337102, 337201, 337202, 337300, 338100, 338200, 338300, 338400, 338500, 339101, 339102, 339200, 339300, 339400, 339500, 339600, 339700, 339802, 339803, 339804, 339900, 340000, 340100, 341101, 341102, 341200, 341301, 341302, 341400, 341500, 341600, 341700, 341800, 341901, 341903, 341904, 342101, 342102, 342201, 342202, 342301, 342302, 342401, 342402, 342501, 342502, 342600, 350105, 350106, 350107, 350108, 350109, 350201, 350202, 350300, 350400, 350500, 350600, 350701, 350702, 350800, 350900, 351001, 351002, 351101, 351102, 351203, 351204, 351300, 351403, 351404, 351500, 352101, 352102, 352200, 352300, 352400, 352500, 352600, 352700, 352800, 352900, 353000, 353101, 353102, 353200, 353300, 353600, 353700, 353800, 353900, 354000, 354100, 354200, 354300, 354400, 354500, 354601, 354602, 354700, 354800, 354901, 354902, 355000, 356100, 356300, 356400, 356500, 356601, 356602, 356701, 356703, 356704, 357100, 357200, 357300, 357400, 357500, 357600, 357700, 357800, 358100, 358300, 358400, 358500, 358600, 358700, 359100, 359301, 359302, 359303, 359400, 360300, 361100, 361200, 361300, 362100, 363103, 363104, 363105, 363106, 363201, 363202, 364101, 364102, 365100, 365201, 365202, 366100, 366201, 366202, 367100, 367200, 368101, 368102, 368200, 368300, 368400, 368500, 368600, 368700, 368800, 368901, 368902, 369000, 369100, 370101, 370103, 370104, 370201, 370202, 370301, 370302, 370401, 370402, 370403, 373100, 373200, 373300, 373400, 373500, 373600, 373700, 373800, 373901, 373902, 374000, 374100, 374200, 374300, 374400, 374500, 374600, 374700, 374800, 382100, 382200, 382300, 382400, 382500, 382601, 382602, 383101, 383102, 383200, 383300, 383401, 383402, 383501, 383502, 383600, 383700, 383800, 383902, 383903, 383904, 384003, 384004, 385101, 385102, 385201, 385203, 385204, 386100, 387100, 387201, 387202, 388100, 388200, 388300, 980000],
    '019' : [950100, 950201, 950202, 950307, 950400, 950500, 990000],
    '021' : [400100, 400201, 400202, 400300, 400401, 400402, 400500, 400600, 400700, 400800, 400900, 401000, 401100, 401201, 401202, 402101, 402102, 402200, 402300, 402400, 402500, 403100, 403300, 403400, 403501, 403502, 404100, 404201, 404202, 404301, 404302, 404400, 405100, 406101, 406102, 407101, 407102, 408102, 408103, 408104, 409101, 409102, 410100, 410300, 410400, 411101, 411102, 411200, 411301, 411302, 412100, 412200, 412300, 413100, 413201, 413202, 413300, 413401, 413402, 413500, 414100, 414200, 414300, 415101, 415103, 415104, 415201, 415202, 415300, 416101, 416102, 416200, 416300, 416400, 417100, 417201, 417202, 417300, 417400, 417501, 417502, 417601, 417602, 417702, 417703, 417704, 417801, 417802, 417901, 417902, 418002, 418003, 418004, 418101, 418102, 418201, 419100, 419200, 419300, 419400, 419500, 419601, 419602, 419700, 419800, 420101, 420102, 420201, 420202, 420301, 420302, 421100, 421200, 422100, 422201, 422202, 422301, 422303, 422304, 422401, 422402, 422501, 422502, 422600, 422700, 422800, 423101, 423102, 440101, 440102, 441202, 441203, 441204, 442101, 442103, 442104, 442105, 442201, 442203, 442204, 443103, 443104, 443105, 443106, 456101, 456102, 456200, 456301, 456302, 456401, 456402, 457100, 457200, 980000],
    '023' : [500101, 500103, 500104, 501101, 501102, 501201, 501203, 501204, 502101, 502102, 502200, 503101, 503102, 504101, 504102, 505102, 505103, 505104, 505201, 505202, 506102, 506103, 506104, 506202, 506203, 506205, 506206, 507101, 507103, 507104, 508101, 508102, 508200, 509101, 509102, 510100, 510200, 510300, 510400, 510501, 510503, 510504, 510505, 510600, 510700, 510800, 510900, 511000, 511100, 511200, 511301, 511302, 511400, 511500, 511601, 511602, 511701, 511702, 520100, 520201, 520202, 521101, 521102, 521201, 521202, 522101, 522102, 523100, 523201, 523203, 523204, 524101, 524102, 525101, 525104, 525204, 526100, 530100, 530200, 530300, 530400, 530500, 530600, 530700, 530801, 530802, 530902, 530903, 530904, 540101, 540102, 540103, 541100, 542101, 542102, 542200, 542301, 542302, 543100, 544100, 544200, 545100, 545200, 545300, 545400, 560100, 561100, 561400, 980200, 980300, 990003],
    '025' : [101, 102, 201, 202, 301, 302, 401, 402, 502, 503, 505, 506, 601, 603, 604, 701, 703, 704, 804, 805, 806, 807, 10103, 10104, 10204, 10205, 10206, 10300, 10403, 10404, 10405, 10408, 10500, 10600, 10701, 10702, 10801, 10802, 20101, 20200, 20301, 20302, 20304, 20305, 30100, 30200, 30301, 30302, 30400, 30500, 40100, 40200, 40300, 40401, 40600, 40801, 50101, 50200, 50300, 50400, 50500, 50600, 50700, 50901, 51000, 51101, 51200, 60101, 60200, 60301, 60400, 60501, 60601, 60602, 60603, 60604, 60700, 60800, 61000, 61101, 61201, 61202, 61203, 61204, 70102, 70103, 70104, 70201, 70202, 70301, 70302, 70402, 70501, 70502, 70600, 70700, 70801, 70802, 70901, 70902, 71101, 71201, 80100, 80300, 80401, 80500, 80601, 80801, 80900, 81001, 81101, 81102, 81200, 81301, 81302, 81400, 81500, 81700, 81800, 81900, 82000, 82100, 90100, 90200, 90300, 90400, 90600, 90700, 90901, 91001, 91100, 91200, 91300, 91400, 91500, 91600, 91700, 91800, 91900, 92000, 92101, 92200, 92300, 92400, 100100, 100200, 100300, 100400, 100500, 100601, 100603, 100700, 100800, 100900, 101001, 101002, 101101, 101102, 110104, 110105, 110106, 110201, 110301, 110401, 110403, 110501, 110502, 110601, 110607, 120103, 120104, 120105, 120201, 120301, 120400, 120500, 120600, 120700, 130101, 130200, 130300, 130402, 130404, 130406, 140102, 140105, 140106, 140107, 140201, 140202, 140300, 140400, 160102, 160103, 160200, 160300, 160400, 160501, 160502, 160601, 160602, 170101, 170102, 170200, 170301, 170302, 170400, 170502, 170503, 170504, 170601, 170701, 170702, 170800, 180101, 180200, 180301, 180400, 180500, 980101, 980300, 980700, 980900, 981000, 981100, 981201, 981202, 981300, 981501, 981502, 981600, 981700, 981800, 981900, 990101],
    '027' : [700100, 701101, 701102, 702201, 702202, 703100, 703200, 703300, 704201, 704202, 705101, 705102, 706100, 707100, 707200, 707300, 707400, 707500, 708100, 709100, 709201, 709203, 709204, 709400, 709501, 709502, 709600, 709701, 709702, 710100, 710200, 710300, 710400, 710500, 710601, 710602, 710700, 710800, 711000, 711100, 712101, 712102, 713100, 715100, 716101, 716102, 716200, 716300, 717100, 718100, 719100, 720100, 721101, 721103, 721104, 722100, 723100, 724100, 725100, 726100, 726200, 727100, 728100, 728200, 728300, 728400, 729100, 729200, 730100, 730200, 730300, 730401, 730402, 730500, 730600, 730700, 730801, 730802, 730901, 730902, 731001, 731002, 731101, 731102, 731202, 731203, 731204, 731300, 731400, 731500, 731601, 731602, 731700, 731801, 731802, 731900, 732001, 732002, 732201, 732202, 732203, 732301, 732302, 732400, 732500, 732600, 732700, 732801, 732802, 732901, 732902, 733000, 733101, 733102, 735100, 735200, 736100, 736200, 736300, 736400, 736500, 737100, 737200, 737300, 738100, 738201, 738202, 739101, 739102, 739201, 739202, 739300, 739401, 739402, 739500, 740101, 740102, 740200, 741101, 741102, 742300, 742401, 742402, 743100, 744102, 744103, 744104, 744201, 744202, 744300, 744400, 745100, 746100, 747101, 747102, 748100, 749100, 749200, 750100, 750200, 750300, 751101, 751102, 752101, 752102, 753100, 753200, 754100, 754200, 754300, 754400, 755100, 755201, 755202, 756101, 756102, 757100, 757200, 757300, 757400, 757500, 758101, 758103, 758104, 759100, 760100, 761100, 761200, 761300, 761401, 761402]
]]]></entry>
        <entry id="census2020_mi" type="java"><![CDATA[[
    '099' : [206700, 210000, 211000, 212000, 214000, 214500, 215000, 215201, 215202, 215300, 215500, 216000, 217000, 218001, 218002, 220002, 220003, 220004, 221100, 221200, 221500, 221800, 222103, 222104, 222105, 222106, 222500, 222800, 223401, 223402, 223500, 223801, 223802, 223803, 223901, 223902, 224001, 224002, 224101, 224102, 224201, 224202, 224300, 224400, 224500, 224600, 225100, 225200, 225300, 225401, 225402, 225500, 225600, 225701, 225702, 225800, 225900, 226101, 226102, 226400, 226700, 227000, 227300, 228000, 228100, 230000, 230200, 230300, 230400, 230501, 230502, 230602, 230603, 230604, 230700, 230800, 230901, 230902, 231000, 231100, 231200, 231400, 231500, 231600, 231700, 231800, 231900, 232000, 232100, 232200, 232301, 232400, 232500, 233000, 240000, 240300, 240400, 240500, 240601, 240602, 240700, 240801, 240802, 240900, 241000, 241200, 241300, 241400, 241500, 241600, 241700, 241800, 241900, 242001, 242002, 242003, 242100, 242500, 243000, 243501, 243502, 244000, 245000, 245100, 245200, 245300, 245400, 247100, 247201, 247202, 247301, 247302, 247400, 247500, 247601, 247602, 250000, 250100, 250200, 250300, 250400, 250500, 250600, 250700, 250800, 250900, 251000, 251100, 251200, 251300, 251400, 251500, 251600, 251700, 251800, 251900, 252000, 252100, 252200, 254000, 254100, 254200, 254500, 255000, 255100, 255200, 255300, 255400, 255500, 255600, 255700, 255800, 255900, 256000, 256100, 256200, 256300, 256400, 256500, 256600, 256700, 256800, 258000, 258100, 258200, 258300, 258400, 258500, 258600, 258700, 258800, 258900, 260000, 260100, 260200, 260300, 260400, 260600, 260700, 260800, 260900, 261000, 261100, 261200, 261300, 261400, 261500, 261601, 261700, 261800, 261900, 262000, 262100, 262200, 262300, 262400, 262500, 262600, 262700, 262800, 262900, 263200, 263400, 263500, 263600, 263700, 263800, 263900, 264000, 264200, 267600, 268000, 268100, 268200, 268300, 268400, 980000, 980100, 982001, 982002, 982100, 982200, 982300, 990100],
    '125' : [120000, 120300, 121000, 121400, 121500, 121700, 121800, 122200, 122400, 122700, 122900, 123000, 123100, 124000, 124500, 125000, 125600, 126200, 126300, 126400, 126500, 127000, 127100, 127200, 127300, 127400, 127500, 127600, 127700, 128000, 128100, 128200, 128300, 128400, 128500, 128600, 128700, 128800, 128900, 129000, 130000, 130100, 130200, 130300, 130400, 130500, 130600, 130700, 131100, 131300, 131400, 131500, 131600, 131800, 132100, 132500, 132600, 132700, 133001, 133002, 133003, 133101, 133102, 134000, 134300, 134400, 134500, 134600, 134700, 134800, 134900, 135000, 135100, 135200, 135300, 136000, 136101, 136102, 136300, 136500, 136601, 136602, 136700, 136800, 137101, 137102, 137400, 137700, 137800, 138100, 138301, 138302, 138600, 139201, 139202, 139400, 140101, 140301, 140303, 140500, 140600, 140700, 140800, 140900, 141001, 141002, 141100, 141200, 141300, 141400, 141500, 141600, 141700, 142000, 142100, 142200, 142300, 142400, 142500, 142600, 142700, 143500, 144100, 144200, 144301, 144400, 144500, 144600, 144701, 144800, 144900, 145100, 145200, 145300, 145400, 145501, 145502, 145600, 145700, 145900, 150000, 150100, 150200, 150300, 150400, 150500, 150600, 150700, 150800, 150900, 151000, 152000, 152600, 152700, 152900, 153000, 153100, 153200, 153300, 154000, 154100, 154200, 154500, 154600, 156000, 156100, 156200, 156300, 156400, 156500, 156900, 157000, 157100, 157200, 157300, 157400, 157500, 157600, 157700, 157800, 157900, 158000, 158100, 158200, 159000, 160000, 160300, 160400, 160500, 160600, 160700, 160800, 160900, 161000, 161100, 161200, 161300, 161400, 161500, 161600, 161700, 161800, 161900, 162000, 162100, 162200, 162300, 162400, 162500, 165000, 165100, 165200, 166000, 166100, 166200, 166400, 166500, 166600, 166700, 166800, 166900, 167000, 167300, 167400, 167500, 167800, 167900, 168100, 168400, 168500, 168601, 168602, 168700, 168800, 168901, 168902, 170000, 170100, 170200, 170300, 170400, 171000, 171100, 171200, 171300, 171400, 171500, 171600, 172400, 172500, 173000, 173100, 173200, 173300, 173400, 173500, 173600, 175000, 175100, 175200, 175300, 180000, 180100, 180200, 180300, 181001, 181100, 181200, 181300, 181400, 181500, 181600, 183000, 183100, 183200, 183300, 183400, 183500, 183600, 183700, 183800, 183900, 184000, 184100, 184200, 184300, 184400, 184500, 184600, 184700, 187000, 188001, 188100, 190200, 190400, 190500, 190700, 190800, 191000, 191100, 191200, 191300, 192000, 192200, 192400, 192500, 192700, 193000, 193100, 193300, 193400, 193500, 193600, 193700, 194000, 194100, 194200, 194300, 194400, 194500, 194600, 196000, 196100, 196200, 196300, 196400, 196500, 196600, 196700, 196800, 196900, 197000, 197100, 197200, 197300, 197400, 197500, 197600, 197701, 197702, 197900, 198000, 198100, 981000, 981100, 981200, 981300, 981400, 981500, 981600],
    '163' : [500100, 500200, 500300, 500400, 500500, 500600, 500700, 500800, 500900, 501000, 501100, 501200, 501300, 501400, 501500, 501600, 501700, 501800, 501900, 502000, 502600, 502700, 503100, 503200, 503300, 503400, 503500, 503600, 503900, 504000, 504100, 504200, 504300, 504400, 505100, 505200, 505400, 505600, 505700, 505800, 506100, 506200, 506300, 506400, 506500, 506600, 506700, 506800, 506900, 507000, 507100, 507200, 507300, 507400, 507500, 508000, 508100, 509000, 509100, 510600, 511200, 511300, 511400, 511900, 512800, 513200, 513300, 513700, 513800, 513900, 514100, 514200, 514300, 514500, 515200, 515300, 515400, 515700, 516000, 516400, 516500, 516600, 516700, 516800, 516900, 517000, 517100, 517200, 517300, 517500, 518000, 518900, 519000, 519100, 519200, 519300, 520200, 520300, 520400, 520700, 520800, 521100, 521400, 521500, 521800, 521900, 522000, 522300, 522400, 522500, 522800, 523100, 523200, 523300, 523400, 523800, 524001, 524101, 524200, 524300, 524500, 524600, 524700, 524800, 525400, 525700, 525800, 525900, 526000, 526100, 526200, 526300, 526400, 526500, 527900, 530100, 530200, 530300, 530400, 530500, 530800, 530900, 531100, 531200, 531300, 531400, 531501, 531502, 531600, 531700, 531800, 531900, 532100, 532400, 532600, 532700, 533000, 533100, 533200, 533300, 533400, 533600, 533800, 533900, 534100, 534200, 534300, 534400, 534700, 534800, 535000, 535100, 535200, 535300, 535600, 535700, 535800, 536100, 536200, 536300, 536400, 536500, 536600, 536700, 536800, 536900, 537000, 537100, 537200, 537300, 537500, 537600, 537700, 537800, 538100, 538200, 538300, 538400, 538500, 538600, 538700, 538800, 538900, 539000, 539100, 539200, 539300, 539400, 539500, 539600, 539700, 540100, 540200, 540300, 540400, 540500, 540600, 540700, 540800, 540900, 541000, 541100, 541200, 541300, 541400, 541500, 541700, 541800, 542100, 542200, 542300, 542400, 542500, 542600, 542900, 543000, 543100, 543200, 543300, 543400, 543500, 543700, 543900, 544000, 544100, 544200, 544300, 544800, 545100, 545200, 545500, 545600, 545700, 545800, 545900, 546000, 546100, 546201, 546301, 546600, 546700, 547000, 547100, 547200, 550100, 550200, 550300, 550400, 550500, 550600, 550700, 550800, 550900, 551100, 551200, 551300, 551400, 551500, 551600, 551700, 551800, 552000, 552100, 552200, 552300, 552400, 552801, 553000, 553100, 553200, 553601, 553800, 554100, 554200, 554300, 554400, 554500, 554600, 554700, 554800, 554900, 555100, 555300, 555401, 555500, 555600, 556100, 556200, 556300, 556400, 556500, 556600, 556700, 556800, 556900, 557000, 557100, 557200, 557300, 557400, 557500, 557600, 557700, 557901, 558000, 558100, 558200, 558301, 558400, 558500, 558600, 558700, 558800, 558900, 559000, 559100, 559200, 559800, 560100, 560201, 560202, 560300, 560400, 561200, 561301, 561302, 561600, 561700, 561900, 562300, 562400, 562500, 562600, 562700, 562800, 562900, 563200, 563300, 563400, 563500, 563600, 563700, 563800, 563900, 564000, 564100, 564200, 564300, 564401, 564402, 564501, 564502, 564503, 564504, 564600, 564700, 564800, 564900, 565001, 565100, 565200, 565301, 565302, 565600, 565700, 565800, 565900, 566400, 566500, 566600, 566700, 566800, 566900, 567000, 567100, 567201, 567202, 567300, 567400, 567800, 567900, 568000, 568200, 568300, 568400, 568500, 568700, 568800, 568900, 569100, 569200, 569300, 569400, 569500, 569600, 569700, 569800, 569900, 570100, 570200, 570400, 570500, 570600, 570800, 570900, 571000, 571500, 571600, 571700, 571800, 571900, 572000, 572100, 572200, 572400, 572500, 572600, 572700, 572800, 572900, 573000, 573100, 573300, 573400, 573501, 573600, 573701, 573702, 573800, 573900, 574000, 574100, 574203, 574301, 574600, 574700, 574800, 574900, 575000, 575100, 575200, 575300, 575401, 575500, 575600, 576001, 576100, 576200, 576300, 576400, 576500, 576600, 576700, 577000, 577100, 577200, 577300, 577400, 577500, 577600, 577700, 577800, 577900, 578000, 578500, 578600, 579100, 579200, 579300, 579501, 579600, 579700, 579800, 579900, 580100, 580200, 580300, 580400, 580500, 580600, 580700, 580800, 580900, 581101, 581200, 581500, 581600, 581800, 581900, 582000, 582100, 583001, 583101, 583200, 583300, 583400, 583500, 583600, 583700, 583800, 583900, 584000, 584100, 584200, 584300, 584400, 584501, 584600, 584700, 584801, 584802, 585500, 585600, 585700, 585800, 585900, 586201, 586300, 587000, 587900, 588001, 588002, 588101, 588102, 588200, 588300, 588400, 589300, 589401, 589402, 590401, 590500, 590600, 591501, 591502, 591600, 591700, 591800, 591900, 592000, 593001, 593200, 593301, 594000, 594100, 594200, 594300, 594401, 594500, 595000, 595100, 595201, 596100, 596200, 596300, 597000, 598000, 599001, 599100, 981700, 981800, 981901, 981902, 982000, 982101, 982102, 982200, 982301, 982302, 982400, 982500, 982600, 982700, 982900, 983100, 983200, 983301, 983302, 983400, 983600, 983700, 983800, 983901, 983902, 983903, 984100, 984200, 985000, 985100, 985200, 985300, 985400, 985500, 985600, 985700, 985800, 985900, 986100, 986200, 986300, 986400, 986501, 986502, 986600, 987000, 990100, 990200]
]]]></entry>
        <entry id="census2020_nj" type="java"><![CDATA[[
    '001' : [100, 200, 300, 400, 500, 1100, 1200, 1300, 1400, 1500, 1900, 2300, 2400, 2500, 10101, 10102, 10104, 10105, 10200, 10300, 10401, 10403, 10501, 10503, 10505, 10506, 10600, 10700, 10800, 10900, 11000, 11100, 11201, 11202, 11300, 11401, 11403, 11404, 11500, 11600, 11702, 11703, 11704, 11803, 11804, 11805, 11806, 11807, 11808, 11901, 11902, 12000, 12100, 12200, 12302, 12401, 12402, 12501, 12502, 12602, 12701, 12702, 12801, 12802, 13000, 13101, 13102, 13201, 13202, 13301, 13302, 13500, 983400, 990000],
    '003' : [1001, 1002, 2100, 2200, 2300, 3100, 3200, 3300, 3401, 3402, 3500, 4001, 4002, 5000, 6101, 6102, 6201, 6202, 6301, 6302, 7001, 7002, 8001, 8002, 9100, 9200, 10100, 10200, 10300, 11100, 11200, 11300, 11400, 12001, 12002, 13002, 13003, 13004, 14000, 15100, 15200, 15300, 15401, 15402, 15500, 16000, 17101, 17102, 17200, 17301, 17302, 17400, 17501, 17502, 18101, 18102, 18200, 19102, 19103, 19104, 19202, 19203, 19204, 19303, 19304, 19305, 19306, 20100, 20200, 21101, 21102, 21200, 21300, 21400, 21500, 21600, 22100, 22200, 23100, 23201, 23202, 23301, 23303, 23304, 23401, 23402, 23501, 23502, 23601, 23602, 24100, 24200, 25100, 25200, 26100, 26200, 27000, 28001, 28002, 29100, 29200, 30100, 30201, 30202, 30300, 30401, 30402, 31100, 31200, 31300, 31400, 32102, 32103, 32104, 32201, 32202, 33100, 33200, 33300, 34001, 34002, 35100, 35200, 36100, 36200, 37100, 37201, 37203, 37204, 38100, 38200, 38300, 39100, 39200, 39300, 40001, 40002, 41100, 41200, 41301, 41302, 42101, 42102, 42301, 42302, 42400, 42500, 43001, 43002, 44100, 44201, 44202, 45101, 45102, 45200, 46100, 46200, 46300, 47100, 47200, 47300, 47400, 47500, 48100, 48200, 49001, 49002, 50000, 51100, 51200, 51300, 51400, 52100, 52200, 53100, 53201, 53202, 54101, 54102, 54200, 54300, 54400, 54500, 54601, 54602, 55100, 55201, 55202, 56100, 56200, 57101, 57102, 57200, 58100, 58200, 59100, 59200, 60001, 60002, 61100, 61200, 61300, 61400],
    '005' : [700102, 700103, 700104, 700200, 700303, 700304, 700305, 700306, 700307, 700401, 700402, 700403, 700405, 700407, 700408, 700501, 700502, 700503, 700504, 700505, 700602, 700603, 700605, 700701, 700702, 700703, 700800, 700900, 701001, 701002, 701102, 701103, 701104, 701105, 701201, 701203, 701204, 701205, 701301, 701302, 701303, 701401, 701402, 701502, 701700, 702101, 702203, 702204, 702206, 702207, 702208, 702209, 702210, 702300, 702400, 702500, 702601, 702603, 702701, 702702, 702801, 702802, 702803, 702804, 702805, 702806, 702807, 702808, 702809, 702810, 702811, 702905, 702906, 702907, 702908, 702909, 702910, 702913, 702914, 702915, 702917, 702918, 703000, 703102, 703103, 703104, 703201, 703202, 703203, 703600, 703700, 703801, 703802, 703803, 703804, 703900, 704004, 704005, 704006, 704007, 704008, 704009, 704011, 704012, 704013, 704015, 704016, 704201, 704202, 704302, 704500, 704600, 704700, 704801, 981802, 982111, 982200],
    '007' : [600200, 600400, 600700, 600800, 600900, 601000, 601101, 601102, 601200, 601300, 601400, 601500, 601600, 601700, 601800, 601900, 602000, 602503, 602601, 602602, 602901, 602902, 603001, 603002, 603100, 603201, 603202, 603301, 603302, 603303, 603400, 603501, 603503, 603504, 603505, 603506, 603507, 603601, 603602, 603603, 603700, 603800, 603901, 603902, 604100, 604200, 604300, 604400, 604600, 604700, 605100, 605200, 605300, 605400, 605602, 605700, 605800, 605900, 606000, 606100, 606200, 606300, 606400, 606500, 606600, 606700, 606800, 607000, 607100, 607200, 607300, 607401, 607402, 607502, 607503, 607504, 607505, 607506, 607507, 607600, 607701, 607702, 607801, 607802, 607900, 608001, 608202, 608205, 608206, 608209, 608210, 608211, 608302, 608303, 608304, 608401, 608402, 608403, 608404, 608503, 608504, 608600, 608700, 608800, 608901, 608903, 608904, 609000, 609103, 609201, 609202, 609204, 609205, 609206, 609207, 610300, 610400, 610500, 610600, 610800, 610900, 611000, 611100, 611200, 611300, 611400, 611500, 611600, 611700],
    '009' : [20101, 20102, 20201, 20203, 20205, 20206, 20301, 20302, 20400, 20500, 20600, 20700, 20800, 20901, 20902, 21001, 21002, 21100, 21300, 21400, 21500, 21600, 21701, 21702, 21803, 21804, 21805, 21806, 21900, 22000, 22101, 22102, 990100],
    '011' : [10101, 10103, 10200, 10301, 10302, 10401, 10402, 10500, 10600, 10701, 10702, 10800, 20100, 20200, 20301, 20302, 20400, 20502, 20503, 20600, 30100, 30200, 30300, 30401, 30402, 30501, 30502, 40300, 40400, 40500, 40601, 40602, 40701, 40702, 40800, 40901, 40902, 41001, 41002, 41101, 41102, 990000],
    '013' : [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000, 2100, 2202, 2203, 2204, 2300, 2400, 2500, 2600, 2800, 3100, 3500, 3700, 3800, 3900, 4100, 4200, 4300, 4400, 4500, 4600, 4700, 4801, 4802, 4900, 5000, 5100, 5200, 5300, 5400, 5700, 6200, 6400, 6600, 6700, 6800, 6900, 7000, 7100, 7200, 7300, 7400, 7501, 7502, 7600, 7700, 7800, 7900, 8000, 8100, 8200, 8700, 8800, 8900, 9000, 9100, 9200, 9300, 9400, 9500, 9600, 9700, 9900, 10000, 10100, 10200, 10300, 10400, 10500, 10600, 10700, 10800, 10900, 11100, 11200, 11300, 11400, 11500, 11600, 11700, 11800, 11900, 12000, 12100, 12200, 12300, 12400, 12500, 12600, 12700, 12800, 12900, 13000, 13100, 13200, 13300, 13400, 13500, 13600, 13700, 13800, 13900, 14000, 14100, 14200, 14300, 14400, 14500, 14600, 14700, 14800, 14900, 15000, 15100, 15200, 15300, 15400, 15500, 15600, 15700, 15800, 15900, 16000, 16100, 16200, 16300, 16400, 16500, 16600, 16700, 16800, 16900, 17000, 17100, 17200, 17301, 17302, 17400, 17500, 17600, 17700, 17800, 17900, 18000, 18100, 18200, 18300, 18400, 18600, 18700, 18800, 18900, 19000, 19100, 19200, 19300, 19400, 19500, 19600, 19700, 19800, 19900, 20000, 20100, 20200, 20300, 20400, 20500, 20600, 20700, 20800, 20901, 20902, 21000, 21100, 21200, 21300, 21400, 21601, 21602, 21701, 21702, 21801, 21802, 21803, 22700, 22800, 22900, 23000, 23100, 23200, 980100, 980200],
    '015' : [500100, 500201, 500202, 500203, 500204, 500205, 500300, 500400, 500500, 500601, 500602, 500702, 500703, 500704, 500705, 500800, 500900, 501001, 501002, 501003, 501101, 501102, 501103, 501104, 501105, 501106, 501107, 501201, 501202, 501203, 501204, 501205, 501206, 501208, 501209, 501210, 501212, 501213, 501301, 501302, 501303, 501402, 501403, 501404, 501405, 501406, 501501, 501502, 501603, 501604, 501605, 501606, 501608, 501609, 501701, 501702, 501703, 501704, 501800, 501900, 502001, 502002, 502100, 502201, 502202, 502203, 502204, 502300, 502400],
    '017' : [101, 102, 200, 300, 400, 500, 600, 700, 800, 902, 1000, 1100, 1201, 1202, 1300, 1400, 1701, 1800, 1900, 2001, 2002, 2200, 2300, 2400, 2700, 2800, 2900, 3000, 3101, 3102, 3500, 4000, 4102, 4103, 4104, 4200, 4300, 4400, 4500, 4600, 4700, 4800, 4900, 5200, 5300, 5400, 5500, 5600, 5801, 5802, 5901, 5902, 6000, 6101, 6102, 6200, 6300, 6400, 6500, 6600, 6700, 6800, 6900, 7001, 7002, 7100, 7200, 7300, 7400, 7500, 7601, 7602, 7701, 7702, 7703, 7800, 10100, 10200, 10300, 10400, 10500, 10601, 10602, 10701, 10702, 10800, 10900, 11000, 11100, 11200, 11300, 11400, 11500, 11600, 12300, 12400, 12500, 12600, 12700, 12800, 12900, 13000, 13100, 13200, 13300, 13400, 13500, 13600, 13700, 13800, 13900, 14000, 14101, 14102, 14200, 14300, 14401, 14402, 14501, 14502, 14600, 14700, 14801, 14802, 14900, 15001, 15003, 15004, 15100, 15201, 15202, 15300, 15500, 15600, 15700, 15801, 15802, 15900, 16000, 16100, 16200, 16300, 16400, 16500, 16600, 16700, 16800, 16900, 17000, 17100, 17200, 17300, 17400, 17500, 17600, 17700, 17800, 17900, 18000, 18100, 18200, 18301, 18302, 18401, 18402, 18501, 18502, 18600, 18701, 18702, 18800, 18900, 19000, 19100, 19200, 19300, 19400, 19800, 19900, 20000, 20100, 32400, 980100],
    '019' : [10100, 10201, 10202, 10300, 10400, 10500, 10600, 10701, 10702, 10801, 10802, 10900, 11001, 11003, 11004, 11100, 11202, 11203, 11204, 11301, 11303, 11304, 11305, 11306, 11400, 11500, 11600, 11700, 11800, 11900],
    '021' : [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1101, 1102, 1200, 1300, 1401, 1402, 1500, 1600, 1700, 1800, 1900, 2000, 2100, 2200, 2500, 2601, 2602, 2701, 2702, 2800, 2902, 2903, 2904, 3001, 3002, 3003, 3004, 3006, 3007, 3008, 3009, 3100, 3201, 3202, 3301, 3303, 3304, 3400, 3500, 3601, 3602, 3703, 3704, 3706, 3707, 3708, 3800, 3902, 3903, 3904, 3905, 4000, 4203, 4204, 4205, 4206, 4306, 4307, 4309, 4311, 4312, 4313, 4314, 4315, 4316, 4403, 4404, 4406, 4407, 4408, 4409, 4501, 4502, 980000],
    '023' : [101, 102, 200, 300, 401, 403, 404, 501, 503, 504, 603, 608, 609, 610, 701, 702, 801, 802, 901, 902, 1001, 1003, 1004, 1100, 1200, 1300, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1417, 1418, 1419, 1502, 1504, 1505, 1506, 1600, 1701, 1702, 1803, 1804, 1805, 1806, 1901, 1902, 1903, 2000, 2101, 2102, 2200, 2301, 2302, 2401, 2402, 2500, 2603, 2604, 2605, 2701, 2703, 2805, 2901, 2902, 3001, 3002, 3101, 3102, 3201, 3203, 3300, 3401, 3500, 3601, 3700, 3801, 3802, 4000, 4100, 4200, 4300, 4400, 4501, 4502, 4600, 4700, 4800, 4900, 5000, 5100, 5200, 5300, 5500, 5601, 5602, 5700, 5800, 6001, 6002, 6101, 6103, 6104, 6204, 6205, 6206, 6207, 6208, 6209, 6300, 6403, 6500, 6601, 6604, 6605, 6606, 6607, 6608, 6701, 6703, 6800, 6900, 7000, 7101, 7102, 7103, 7202, 7203, 7301, 7303, 7305, 7306, 7402, 7500, 7600, 7702, 7703, 7704, 7801, 7804, 7805, 7806, 7905, 7906, 7907, 7908, 7909, 7910, 7911, 7913, 7914, 8001, 8101, 8102, 8103, 8204, 8205, 8206, 8207, 8209, 8210, 8211, 8212, 8213, 8214, 8300, 8403, 8404, 8405, 8406, 8501, 8502, 8504, 8505, 8506, 8601, 8602, 8604, 8605, 8606, 8700, 8801, 9000, 9101, 9200, 9300, 9400, 980000, 980100, 980200],
    '025' : [800101, 800102, 800200, 800400, 800500, 800601, 800602, 800701, 800702, 800800, 800900, 801000, 801100, 801200, 801300, 801400, 801500, 801600, 801700, 801800, 801900, 802000, 802100, 802200, 802300, 802400, 802500, 802600, 802700, 802800, 802900, 803000, 803100, 803201, 803202, 803300, 803400, 803500, 803601, 803602, 803700, 803800, 803900, 804100, 804200, 804600, 804801, 804802, 805001, 805100, 805300, 805400, 805500, 805600, 805700, 805800, 805900, 806000, 806100, 806201, 806202, 806300, 806400, 806501, 806502, 806503, 806504, 806600, 807004, 807005, 807006, 807100, 807200, 807300, 807401, 807402, 807500, 807600, 807700, 807800, 807900, 808001, 808002, 808100, 808201, 808202, 808300, 808401, 808402, 808501, 808502, 808600, 808701, 808702, 808800, 808901, 808902, 809000, 809100, 809200, 809301, 809302, 809400, 809503, 809504, 809505, 809506, 809600, 809701, 809703, 809704, 809901, 809902, 809903, 810001, 810002, 810003, 810004, 810101, 810102, 810201, 810202, 810300, 810401, 810402, 810501, 810503, 810504, 810505, 810600, 810700, 810800, 810900, 811000, 811101, 811102, 811200, 811301, 811303, 811304, 811401, 811402, 811501, 811502, 811600, 811900, 812000, 812100, 812200, 812300, 812400, 812501, 812502, 812600, 990000],
    '027' : [40101, 40102, 40200, 40301, 40302, 40400, 40500, 40600, 40701, 40702, 40801, 40803, 40804, 40805, 40900, 41000, 41100, 41200, 41300, 41400, 41500, 41602, 41603, 41604, 41605, 41606, 41701, 41702, 41704, 41705, 41706, 41801, 41802, 41803, 41901, 41902, 42000, 42100, 42200, 42301, 42302, 42500, 42601, 42602, 42700, 42800, 42900, 43000, 43100, 43200, 43301, 43302, 43303, 43401, 43402, 43500, 43601, 43602, 43700, 43801, 43802, 43900, 44000, 44101, 44102, 44200, 44300, 44401, 44403, 44404, 44502, 44503, 44504, 44601, 44602, 44701, 44702, 44800, 44900, 45000, 45100, 45200, 45300, 45402, 45403, 45404, 45501, 45503, 45504, 45603, 45701, 45703, 45704, 45804, 45901, 45903, 45904, 46000, 46103, 46104, 46107, 46108, 46109, 46110, 46201, 46202, 46297, 46298, 46400, 46500],
    '029' : [710101, 710102, 711100, 711200, 711300, 711400, 713000, 713100, 713201, 713202, 713203, 713300, 713401, 713402, 713500, 713600, 713700, 713800, 713900, 714000, 714100, 714200, 714300, 715001, 715002, 715201, 715202, 715301, 715303, 715304, 715401, 715403, 715404, 715501, 715502, 715503, 715600, 715701, 715702, 715800, 715901, 715902, 716000, 717001, 717002, 717101, 717102, 717200, 717300, 717400, 717501, 717502, 718000, 720001, 720102, 720104, 720105, 720106, 720107, 720202, 720203, 720204, 720205, 720206, 721000, 722001, 722003, 722004, 722100, 722200, 722300, 722401, 722402, 722500, 722600, 722701, 722702, 722800, 722900, 723000, 723100, 723200, 723300, 723400, 723500, 723600, 724000, 725001, 725002, 725100, 726000, 727001, 727002, 728001, 728002, 728003, 728004, 729000, 730000, 731001, 731002, 731101, 731102, 731103, 731201, 731202, 731203, 731204, 731205, 731206, 732001, 732003, 732004, 732101, 732103, 732104, 733001, 733002, 734002, 734003, 734004, 734005, 735001, 735003, 735004, 735101, 735104, 735105, 735106, 736001, 736002, 736101, 736105, 736106, 736107, 737000, 738001, 738002, 738100, 739000, 739100, 739200, 980000, 980100, 990000],
    '031' : [116500, 124201, 124202, 124311, 124312, 124321, 124322, 124323, 124402, 124403, 124404, 124500, 124601, 124602, 124700, 124800, 124900, 125000, 125100, 133701, 133702, 143201, 143202, 143301, 143302, 143401, 143402, 154003, 154004, 154005, 154006, 163501, 163502, 175200, 175301, 175302, 175401, 175402, 175501, 175502, 175601, 175603, 175604, 175701, 175703, 175704, 175801, 175803, 175804, 175900, 180101, 180102, 180201, 180203, 180204, 180301, 180302, 180600, 180700, 180800, 180900, 181000, 181101, 181102, 181200, 181300, 181400, 181500, 181702, 181800, 181900, 182000, 182100, 182200, 182301, 182302, 182400, 182501, 182502, 182600, 182701, 182702, 182800, 182900, 183001, 183002, 183101, 183102, 183200, 196401, 196403, 196404, 203600, 216701, 216702, 223801, 223802, 223900, 236601, 236603, 236604, 246001, 246002, 246003, 246101, 246102, 246103, 246104, 246201, 246202, 246203, 246300, 256801, 256802, 256803, 256804, 256805, 264101, 264102, 264200],
    '033' : [20100, 20200, 20300, 20400, 20500, 20600, 20700, 20800, 20900, 21000, 21101, 21102, 21201, 21202, 21300, 21400, 21500, 21600, 21700, 21900, 22000, 22100, 22201, 22202, 990000],
    '035' : [50100, 50200, 50300, 50400, 50500, 50600, 50701, 50703, 50704, 50801, 50802, 50901, 50902, 50903, 51000, 51100, 51200, 51300, 51400, 51500, 51600, 51700, 51800, 51900, 52001, 52002, 52100, 52201, 52203, 52204, 52300, 52400, 52603, 52604, 52605, 52701, 52702, 52800, 52901, 52904, 52905, 52906, 53000, 53102, 53103, 53105, 53200, 53300, 53402, 53403, 53405, 53406, 53501, 53602, 53603, 53604, 53703, 53704, 53705, 53706, 53707, 53801, 53804, 53805, 53806, 53807, 53901, 53904, 53905, 54100, 54201, 54202, 54301, 54302],
    '037' : [371000, 371100, 371200, 371300, 371400, 371502, 371503, 371600, 371700, 371801, 371802, 371900, 372000, 372100, 372200, 372300, 372400, 372500, 372600, 372700, 372800, 372900, 373000, 373100, 373200, 373300, 373400, 373500, 373600, 373700, 373800, 373900, 374000, 374100, 374200, 374300, 374400, 374500, 374600, 374700, 374800, 374900],
    '039' : [30200, 30400, 30500, 30600, 30701, 30703, 30704, 30802, 30900, 31000, 31100, 31200, 31301, 31302, 31400, 31500, 31601, 31602, 31700, 31801, 31802, 31903, 31904, 32002, 32003, 32004, 32101, 32102, 32200, 32300, 32401, 32402, 32500, 32600, 32701, 32702, 32800, 32901, 32902, 33000, 33100, 33200, 33300, 33400, 33501, 33502, 33600, 33700, 33800, 33900, 34000, 34100, 34200, 34300, 34400, 34500, 34600, 34700, 34800, 34900, 35000, 35100, 35200, 35300, 35400, 35500, 35600, 35700, 35800, 35900, 36000, 36100, 36200, 36301, 36302, 36400, 36500, 36600, 36700, 36800, 36900, 37000, 37100, 37200, 37300, 37400, 37500, 37601, 37602, 37700, 37800, 37900, 38000, 38101, 38103, 38104, 38201, 38202, 38300, 38400, 38500, 38601, 38602, 38701, 38702, 38800, 38900, 39000, 39100, 39200, 39301, 39302, 39400, 39501, 39502, 39600, 39700, 39801, 39900, 980000],
    '041' : [30600, 30700, 30800, 30900, 31101, 31102, 31200, 31301, 31302, 31401, 31402, 31500, 31601, 31602, 31700, 31800, 31900, 32000, 32101, 32102, 32200, 32300, 32400]
]]]></entry>
        <entry id="census2020_nm" type="java"><![CDATA[[
    '001' : [107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 203, 204, 205, 206, 207, 208, 300, 401, 402, 501, 503, 504, 601, 603, 605, 704, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 904, 905, 906, 907, 908, 1101, 1102, 1201, 1202, 1300, 1400, 1500, 1701, 1702, 1800, 2000, 2100, 2200, 2301, 2302, 2303, 2401, 2403, 2404, 2700, 2900, 3001, 3002, 3100, 3201, 3202, 3400, 3501, 3502, 3600, 3707, 3712, 3715, 3717, 3718, 3719, 3722, 3723, 3724, 3725, 3726, 3728, 3729, 3730, 3731, 3733, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3803, 3804, 3805, 3806, 3807, 4001, 4300, 4401, 4402, 4501, 4502, 4602, 4603, 4604, 4712, 4713, 4715, 4716, 4720, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4742, 4743, 4744, 4745, 4747, 4749, 4750, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4800, 4900, 940500, 940601, 940602, 940700, 940800, 980000, 980300, 980500, 980600],
    '003' : [976401, 976402],
    '005' : [201, 202, 301, 302, 400, 500, 600, 700, 800, 900, 1001, 1002, 1101, 1102, 1200, 1300, 1400],
    '006' : [941500, 945800, 946100, 974201, 974202, 974401, 974402, 974701, 974702],
    '007' : [950500, 950600, 950700],
    '009' : [100, 201, 202, 303, 305, 306, 307, 308, 400, 500, 601, 602, 603, 900],
    '011' : [960100],
    '013' : [102, 103, 104, 203, 204, 205, 206, 300, 401, 402, 500, 600, 700, 800, 901, 902, 1000, 1102, 1103, 1105, 1106, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1401, 1402, 1501, 1502, 1600, 1701, 1702, 1703, 1705, 1706, 1707, 1805, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1900],
    '015' : [100, 200, 300, 401, 402, 500, 600, 700, 800, 900, 1001, 1002, 1100],
    '017' : [964100, 964200, 964300, 964401, 964402, 964500, 964600, 964701, 964702, 964800],
    '019' : [961600],
    '021' : [100],
    '023' : [970000, 970200],
    '025' : [100, 200, 300, 400, 502, 503, 504, 600, 701, 702, 703, 704, 800, 900, 1003, 1004, 1005, 1100],
    '027' : [960200, 960300, 960401, 960402, 960403, 960601, 960602, 960603, 960800],
    '028' : [100, 200, 400, 500],
    '029' : [100, 200, 300, 401, 402, 500, 600],
    '031' : [940301, 940302, 940500, 943500, 943601, 943602, 943701, 943702, 943801, 943802, 943803, 943903, 943904, 943905, 943906, 943907, 944000, 945201, 945202, 945300, 945400, 945501, 945502, 945503, 945601, 945602, 945701, 945702, 946001, 946002, 946003, 973100, 980000],
    '033' : [955201, 955202],
    '035' : [100, 200, 303, 304, 305, 306, 401, 403, 404, 501, 502, 601, 602, 603, 604, 701, 702, 901, 903, 904, 940000],
    '037' : [958601, 958602, 958900],
    '039' : [100, 200, 301, 302, 401, 402, 500, 940700, 940800, 941000, 944100],
    '041' : [100, 200, 300, 401, 402],
    '043' : [10503, 10601, 10602, 10702, 10705, 10712, 10713, 10714, 10715, 10719, 10721, 10722, 10724, 10725, 10726, 10727, 10728, 10729, 10730, 10731, 10732, 10733, 10734, 10900, 11101, 11102, 11200, 940200, 940300, 940500, 940600, 940700, 940900, 941000, 980000],
    '045' : [100, 201, 202, 204, 206, 207, 301, 302, 401, 402, 503, 504, 506, 507, 607, 609, 610, 611, 612, 613, 614, 615, 702, 705, 706, 707, 708, 900, 942801, 942802, 942803, 942900, 943000, 943100, 943201, 943300],
    '047' : [957200, 957300, 957400, 957501, 957502, 957601, 957602, 957603, 957700, 957800],
    '049' : [102, 103, 201, 202, 300, 400, 500, 600, 700, 800, 900, 1001, 1002, 1102, 1103, 1105, 1106, 1107, 1202, 1203, 1205, 1206, 1207, 1301, 1302, 1304, 1305, 1306, 10102, 10204, 10205, 10304, 10308, 10309, 10310, 10311, 10312, 10315, 10316, 10317, 10318, 10400, 10500, 10601, 10602, 10603, 10701, 10702, 10800, 10900, 940300, 940400, 940500, 940600, 940900, 980000, 980200],
    '051' : [962200, 962300, 962401, 962402],
    '053' : [940000, 978100, 978200, 978301, 978302, 978303],
    '055' : [940000, 940101, 940102, 952101, 952102, 952300, 952601, 952602, 952701, 952702],
    '057' : [963201, 963202, 963601, 963700, 980000],
    '059' : [950200],
    '061' : [940300, 941400, 970101, 970103, 970104, 970200, 970302, 970304, 970305, 970306, 970307, 970401, 970404, 970405, 970701, 970800, 970901, 970902, 971000, 971100, 971301, 980100, 980200, 980300, 980400]
]]]></entry>
        <entry id="census2020_ny" type="java"><![CDATA[[
    '001' : [100, 201, 202, 301, 302, 401, 403, 404, 501, 502, 600, 700, 800, 1100, 1400, 1500, 1600, 1700, 1802, 1803, 1804, 1901, 1902, 2000, 2100, 2200, 2300, 2500, 2600, 12700, 12800, 12900, 13000, 13100, 13200, 13300, 13400, 13503, 13505, 13507, 13509, 13510, 13511, 13512, 13602, 13603, 13604, 13703, 13706, 13707, 13708, 13709, 13802, 13803, 13804, 13901, 13902, 14001, 14002, 14100, 14201, 14202, 14203, 14301, 14303, 14304, 14401, 14402, 14501, 14502, 14503, 14606, 14608, 14609, 14611, 14612, 14613, 14614, 14615, 14616, 14617, 14700, 14801, 14802, 14803],
    '003' : [940200, 950100, 950300, 950401, 950402, 950500, 950600, 950700, 950800, 950900, 951000, 951100, 951201, 951202, 951301, 951302],
    '005' : [100, 200, 400, 1600, 1901, 1902, 1903, 1904, 2001, 2002, 2300, 2400, 2500, 2701, 2702, 2800, 3100, 3300, 3500, 3700, 3800, 3900, 4001, 4100, 4200, 4300, 4400, 4600, 4800, 5001, 5002, 5100, 5200, 5300, 5400, 5600, 5902, 6000, 6100, 6200, 6301, 6302, 6400, 6500, 6700, 6800, 6900, 7000, 7100, 7200, 7300, 7400, 7500, 7600, 7700, 7800, 7900, 8300, 8400, 8500, 8600, 8700, 8900, 9000, 9200, 9301, 9302, 9600, 9800, 11000, 11502, 11701, 11702, 11800, 11900, 12101, 12102, 12300, 12500, 12701, 12901, 13000, 13100, 13200, 13300, 13500, 13800, 14100, 14300, 14400, 14500, 14701, 14702, 14900, 15100, 15200, 15300, 15500, 15700, 15800, 15900, 16000, 16100, 16200, 16300, 16400, 16500, 16600, 16700, 16900, 17100, 17300, 17500, 17701, 17702, 17901, 17902, 18101, 18102, 18301, 18302, 18400, 18501, 18502, 18900, 19300, 19400, 19500, 19700, 19900, 20000, 20100, 20200, 20400, 20501, 20502, 20601, 20900, 21001, 21002, 21100, 21200, 21301, 21302, 21501, 21502, 21601, 21602, 21700, 21800, 21900, 22000, 22101, 22102, 22200, 22300, 22401, 22403, 22404, 22500, 22701, 22702, 22703, 22800, 22901, 22902, 23000, 23100, 23200, 23301, 23302, 23501, 23502, 23600, 23702, 23703, 23704, 23800, 23900, 24000, 24100, 24300, 24400, 24501, 24502, 24600, 24700, 24800, 24900, 25000, 25100, 25200, 25300, 25400, 25500, 25600, 25700, 26100, 26300, 26400, 26500, 26601, 26602, 26701, 26702, 26900, 27300, 27401, 27402, 27600, 27700, 27900, 28100, 28300, 28400, 28500, 28600, 28700, 28800, 28900, 29301, 29302, 29500, 29600, 29700, 30000, 30100, 30201, 30202, 30701, 30900, 31000, 31200, 31400, 31600, 31800, 31900, 32300, 32400, 32600, 32800, 33000, 33201, 33202, 33400, 33500, 33601, 33602, 33700, 33801, 33802, 34000, 34200, 34300, 34400, 34500, 34800, 35000, 35100, 35600, 35800, 35900, 36000, 36100, 36300, 36400, 36501, 36502, 36700, 36800, 36901, 36902, 37000, 37100, 37200, 37300, 37400, 37504, 37600, 37800, 37900, 38000, 38100, 38200, 38301, 38303, 38304, 38500, 38600, 38700, 38800, 38900, 39000, 39100, 39200, 39300, 39400, 39500, 39600, 39700, 39800, 39901, 39902, 40100, 40302, 40303, 40304, 40400, 40501, 40502, 40600, 40701, 40702, 40800, 40900, 41100, 41300, 41400, 41500, 41800, 41900, 42000, 42100, 42200, 42300, 42400, 42500, 42600, 42800, 42901, 42902, 43000, 43101, 43102, 43400, 43501, 43502, 43503, 43600, 44200, 44400, 44800, 44901, 44902, 45101, 45102, 45600, 45800, 46000, 46203, 46204, 46205, 46206, 46207, 46208, 46209, 48401, 48402, 50400, 51601, 51602],
    '007' : [100, 200, 300, 400, 500, 600, 700, 900, 1100, 1200, 1300, 1401, 1402, 1500, 1600, 1700, 1800, 10200, 11901, 11902, 11903, 12000, 12101, 12102, 12103, 12201, 12202, 12300, 12400, 12501, 12502, 12600, 12701, 12702, 12800, 12900, 13000, 13100, 13201, 13202, 13301, 13303, 13304, 13400, 13500, 13600, 13700, 13800, 13900, 14000, 14100, 14200, 14301, 14302, 14400, 14500, 14600],
    '009' : [940000, 940200, 940301, 940302, 960100, 960200, 960300, 960400, 960500, 960600, 960703, 960704, 960800, 961000, 961100, 961200, 961301, 961302, 961400, 961500, 961600, 961700, 961800, 962200],
    '011' : [40101, 40102, 40201, 40202, 40300, 40400, 40500, 40600, 40700, 40800, 40900, 41001, 41002, 41101, 41102, 41201, 41202, 41300, 41400, 41500, 41600, 41700, 41800, 42100, 990200],
    '013' : [30100, 30200, 30300, 30400, 30500, 30600, 30700, 30800, 35100, 35300, 35400, 35500, 35600, 35700, 35800, 35901, 35902, 36000, 36100, 36300, 36401, 36402, 36500, 36600, 36700, 36801, 36802, 36901, 36902, 37000, 37100, 37200, 37300, 37400, 37500, 37600, 990000],
    '015' : [100, 200, 300, 400, 500, 600, 700, 900, 1000, 1100, 10100, 10200, 10301, 10302, 10400, 10500, 10600, 10701, 10702, 10800, 10900, 11000, 11101, 11102, 11200],
    '017' : [970101, 970102, 970201, 970202, 970300, 970400, 970501, 970502, 970601, 970602, 970700, 970801, 970802, 970901, 970902, 971000],
    '019' : [100101, 100102, 100200, 100600, 100700, 100800, 100901, 100902, 101000, 101600, 101901, 101902, 102100, 102200, 102800, 103000, 103100, 103200, 103512, 103800, 103900, 104200],
    '021' : [100, 200, 300, 401, 402, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000],
    '023' : [970100, 970201, 970202, 970300, 970400, 970500, 970600, 970700, 970800, 970900, 971000, 971100, 971200],
    '025' : [970101, 970102, 970200, 970300, 970401, 970402, 970501, 970502, 970601, 970602, 970700, 970800, 970900, 971000, 971100, 971200, 971300, 971400],
    '027' : [10000, 20003, 20004, 20005, 30000, 40001, 40003, 50102, 50103, 50104, 50203, 50204, 50205, 60100, 60201, 60202, 60301, 60302, 60400, 70101, 70102, 70201, 70301, 70401, 80103, 80104, 80201, 80202, 90000, 100000, 110003, 110004, 110005, 120000, 130003, 130004, 130005, 140101, 140201, 140202, 140301, 140302, 140400, 140500, 140602, 140700, 140801, 150003, 150004, 150005, 150006, 160003, 160004, 160005, 170000, 180001, 190101, 190102, 190203, 190204, 190301, 190401, 190402, 200001, 200002, 210101, 210201, 210301, 220101, 220102, 220201, 220300, 220700, 220801, 220901, 221001, 221100, 300000, 410000, 610000, 640001, 640002],
    '029' : [110, 200, 500, 600, 700, 800, 900, 1000, 1100, 1403, 1404, 1500, 1601, 1602, 1700, 1900, 2300, 2400, 2502, 2703, 2704, 2801, 2802, 2900, 3000, 3100, 3301, 3302, 3400, 3501, 3502, 3600, 3700, 3800, 3901, 4002, 4003, 4100, 4200, 4300, 4401, 4402, 4500, 4601, 4701, 4702, 4800, 4901, 4902, 5000, 5100, 5201, 5202, 5300, 5400, 5500, 5600, 5700, 5801, 5802, 5900, 6100, 6301, 6302, 6501, 6601, 6602, 6701, 6702, 6801, 6802, 6901, 6903, 6904, 7000, 7102, 7103, 7104, 7202, 7303, 7304, 7305, 7306, 7600, 7700, 7800, 7901, 7902, 7903, 7904, 7905, 8001, 8002, 8003, 8101, 8102, 8201, 8202, 8300, 8400, 8500, 8600, 8700, 8800, 8900, 9004, 9007, 9008, 9009, 9010, 9011, 9012, 9104, 9106, 9107, 9109, 9110, 9112, 9113, 9114, 9115, 9116, 9200, 9301, 9302, 9401, 9402, 9501, 9503, 9504, 9601, 9602, 9701, 9702, 9800, 9900, 10001, 10002, 10003, 10101, 10102, 10103, 10201, 10202, 10300, 10400, 10500, 10600, 10700, 10803, 10804, 10805, 10807, 10808, 10809, 10901, 10902, 11000, 11100, 11201, 11202, 11300, 11400, 11500, 11600, 11700, 11800, 12001, 12002, 12003, 12300, 12400, 12501, 12502, 12800, 12902, 12903, 12904, 13001, 13002, 13101, 13103, 13104, 13201, 13202, 13300, 13400, 13501, 13502, 13600, 13701, 13702, 13801, 13802, 13900, 14000, 14101, 14102, 14204, 14206, 14207, 14208, 14209, 14300, 14400, 14501, 14502, 14601, 14603, 14605, 14606, 14701, 14703, 14704, 14801, 14804, 14805, 14901, 14903, 15001, 15002, 15003, 15101, 15102, 15201, 15202, 15301, 15302, 15401, 15402, 15501, 15503, 15504, 15600, 15700, 15800, 15900, 16200, 16300, 16400, 16500, 16600, 16700, 16801, 16802, 16900, 17000, 17100, 17200, 17301, 17302, 17400, 17501, 17502, 940000, 940100, 980000, 980300, 980400, 980500, 990000],
    '031' : [960100, 960200, 960300, 960401, 960402, 960501, 960502, 960700, 960800, 960901, 960902, 961001, 961002, 961100, 961201, 961202, 961300, 961400],
    '033' : [940000, 950200, 950301, 950501, 950502, 950601, 950701, 950800, 950900, 951000, 951100, 951200, 951300, 951400, 952000],
    '035' : [970100, 970200, 970300, 970400, 970500, 970601, 970602, 970700, 970800, 970900, 971000, 971100, 971200, 971300, 971400, 971501, 971502],
    '037' : [940100, 950100, 950200, 950301, 950302, 950401, 950402, 950501, 950502, 950600, 950700, 950800, 950900, 951000, 951100, 951200, 951300, 951400],
    '039' : [80100, 80201, 80202, 80301, 80302, 80402, 80403, 80404, 80501, 80502, 80600, 80700, 80800, 80900, 81001, 81002, 81101, 81102],
    '041' : [950100, 950300, 950400, 950500],
    '043' : [10100, 10201, 10202, 10300, 10400, 10501, 10502, 10701, 10702, 10900, 11001, 11002, 11100, 11200, 11301, 11302, 11400, 11502, 11503, 11504],
    '045' : [60101, 60102, 60201, 60202, 60203, 60301, 60302, 60401, 60402, 60500, 60601, 60602, 60700, 60803, 60805, 60806, 60901, 60902, 61000, 61101, 61102, 61200, 61300, 61400, 61500, 61600, 61700, 61801, 61802, 61900, 62100, 62200, 62400, 62500, 980000, 990001],
    '047' : [100, 200, 301, 501, 502, 700, 900, 1100, 1300, 1501, 1502, 1801, 1802, 1803, 1804, 2000, 2100, 2200, 2300, 2901, 3000, 3101, 3102, 3300, 3400, 3500, 3600, 3700, 3800, 3900, 4100, 4300, 4400, 4500, 4600, 4700, 4900, 5000, 5100, 5201, 5202, 5301, 5302, 5303, 5400, 5601, 5602, 5800, 5900, 6000, 6200, 6300, 6400, 6500, 6600, 6700, 6800, 6901, 6902, 7000, 7100, 7200, 7400, 7500, 7600, 7700, 7800, 8000, 8200, 8400, 8500, 8600, 8800, 9001, 9002, 9201, 9202, 9401, 9402, 9600, 9800, 10000, 10100, 10200, 10401, 10402, 10601, 10602, 10801, 10802, 11000, 11200, 11400, 11600, 11700, 11800, 11901, 11902, 12000, 12100, 12200, 12600, 12700, 12801, 12901, 12902, 13000, 13100, 13200, 13300, 13400, 13500, 13600, 13700, 13800, 13900, 14000, 14101, 14102, 14200, 14300, 14500, 14700, 14800, 14901, 14902, 15000, 15100, 15200, 15300, 15400, 15500, 15700, 15900, 16000, 16100, 16200, 16300, 16400, 16500, 16600, 16700, 16800, 16900, 17000, 17100, 17200, 17400, 17500, 17600, 17700, 17800, 17900, 18000, 18100, 18200, 18300, 18400, 18501, 18600, 18700, 18800, 19000, 19100, 19200, 19300, 19400, 19500, 19600, 19700, 19800, 19900, 20000, 20100, 20200, 20300, 20400, 20500, 20600, 20700, 20800, 21000, 21100, 21200, 21300, 21400, 21500, 21600, 21700, 21800, 21900, 22000, 22100, 22200, 22400, 22600, 22700, 22800, 22900, 23000, 23100, 23200, 23300, 23400, 23500, 23600, 23800, 24000, 24100, 24200, 24300, 24400, 24500, 24600, 24700, 24800, 24900, 25000, 25100, 25200, 25300, 25400, 25500, 25600, 25700, 25800, 25901, 25902, 26000, 26100, 26200, 26300, 26400, 26500, 26600, 26700, 26800, 26900, 27000, 27100, 27200, 27300, 27400, 27500, 27600, 27700, 27800, 27900, 28000, 28100, 28200, 28300, 28400, 28501, 28502, 28600, 28700, 28800, 28900, 29000, 29100, 29200, 29300, 29400, 29500, 29600, 29700, 29800, 29900, 30000, 30100, 30200, 30300, 30400, 30500, 30600, 30700, 30800, 30900, 31100, 31300, 31401, 31402, 31500, 31701, 31702, 31900, 32100, 32300, 32500, 32600, 32700, 32800, 32900, 33000, 33100, 33300, 33500, 33600, 33701, 33702, 33900, 34000, 34100, 34200, 34300, 34500, 34700, 34800, 34901, 34902, 35000, 35101, 35102, 35200, 35301, 35302, 35400, 35500, 35601, 35602, 35701, 35702, 35900, 36001, 36002, 36100, 36200, 36300, 36400, 36501, 36502, 36600, 36700, 36900, 37000, 37100, 37300, 37401, 37402, 37500, 37700, 37900, 38100, 38200, 38300, 38500, 38600, 38700, 38800, 38900, 39000, 39100, 39200, 39300, 39400, 39500, 39600, 39700, 39800, 39900, 40000, 40100, 40200, 40300, 40400, 40500, 40600, 40700, 40800, 40900, 41000, 41100, 41200, 41300, 41401, 41402, 41500, 41600, 41700, 41800, 41900, 42000, 42100, 42200, 42300, 42400, 42500, 42600, 42700, 42800, 42900, 43000, 43100, 43200, 43300, 43400, 43500, 43600, 43700, 43800, 43900, 44000, 44100, 44200, 44300, 44400, 44500, 44600, 44700, 44800, 44901, 44902, 45000, 45200, 45300, 45400, 45600, 45800, 46000, 46201, 46202, 46400, 46800, 47000, 47200, 47400, 47600, 47700, 47800, 48000, 48100, 48200, 48400, 48500, 48600, 48800, 48900, 49000, 49100, 49200, 49301, 49302, 49400, 49500, 49600, 49700, 49800, 49900, 50001, 50002, 50100, 50202, 50300, 50401, 50402, 50500, 50600, 50700, 50801, 50803, 50804, 50900, 51001, 51002, 51100, 51200, 51300, 51400, 51500, 51601, 51602, 51700, 51800, 51900, 52000, 52300, 52500, 52600, 52700, 52800, 52900, 53000, 53101, 53102, 53200, 53300, 53400, 53500, 53700, 53800, 53900, 54200, 54300, 54400, 54500, 54600, 54700, 54800, 54900, 55000, 55100, 55200, 55300, 55400, 55500, 55600, 55700, 55800, 56000, 56100, 56200, 56301, 56302, 56400, 56500, 56600, 56800, 56900, 57000, 57100, 57200, 57300, 57400, 57500, 57600, 57800, 57901, 57902, 58000, 58200, 58400, 58600, 58800, 58901, 58902, 59000, 59100, 59200, 59300, 59402, 59403, 59404, 59600, 59800, 60000, 60600, 60800, 61002, 61003, 61004, 61200, 61600, 62000, 62200, 62600, 62800, 63200, 63600, 63800, 64000, 64200, 64400, 64600, 64800, 65000, 65200, 65400, 65600, 65800, 66000, 66200, 66600, 67000, 67200, 67400, 67600, 67800, 68000, 68200, 68600, 68800, 69000, 69200, 69601, 69602, 69800, 70000, 70201, 70202, 70203, 70601, 70602, 72000, 72200, 72400, 72600, 72800, 73000, 73200, 73400, 73600, 73800, 74000, 74200, 74400, 74600, 74800, 75000, 75200, 75400, 75600, 75800, 76000, 76200, 76400, 76600, 76800, 77000, 77200, 77400, 77600, 78000, 78200, 78400, 78601, 78602, 78801, 78802, 79001, 79002, 79201, 79202, 79400, 79601, 79602, 79801, 79802, 80000, 80200, 80400, 80600, 80800, 81000, 81400, 81600, 81800, 82000, 82200, 82400, 82600, 82800, 83000, 83200, 83400, 83600, 83800, 84000, 84600, 84800, 85000, 85200, 85400, 85600, 85800, 86000, 86200, 86400, 86600, 86800, 87000, 87200, 87401, 87600, 87800, 88001, 88002, 88200, 88400, 88600, 88800, 89000, 89200, 89400, 89600, 89800, 90000, 90200, 90600, 90800, 91000, 91200, 91600, 91800, 92000, 92200, 92400, 92800, 93000, 93200, 93400, 93600, 93800, 94401, 94402, 94600, 95000, 95400, 95600, 95800, 96000, 96200, 96400, 96600, 96800, 97000, 97400, 98200, 98400, 98600, 98800, 99000, 99200, 99400, 99600, 99800, 100400, 100600, 100800, 101000, 101200, 101400, 101600, 101800, 102000, 102200, 102400, 102600, 102801, 102802, 103401, 103402, 105801, 105804, 107001, 107002, 107003, 107800, 109800, 110400, 110600, 111000, 111600, 111800, 112000, 112200, 112400, 112600, 112800, 113000, 113200, 113400, 114201, 114202, 114400, 114600, 115000, 115200, 115600, 115800, 116000, 116200, 116400, 116600, 116800, 117000, 117201, 117202, 117400, 117601, 117602, 117800, 118000, 118201, 118202, 118400, 118600, 118800, 119000, 119200, 119400, 119600, 119800, 120000, 120200, 120801, 120802, 120803, 121000, 121400, 122000, 123700, 150200, 152200, 990100],
    '049' : [950101, 950200, 950301, 950302, 950401, 950500, 950601, 950700, 950800],
    '051' : [30100, 30201, 30203, 30204, 30300, 30400, 30500, 30600, 30701, 30702, 30800, 30900, 31000, 31101, 31102, 31200, 31300, 31400],
    '053' : [30101, 30102, 30103, 30200, 30300, 30401, 30402, 30403, 30404, 30501, 30502, 30601, 30602, 30701, 30702, 30800, 30900, 31000, 31100],
    '055' : [200, 700, 1000, 1300, 1600, 1800, 1900, 2000, 2100, 2200, 2300, 2400, 2700, 2900, 3000, 3101, 3102, 3200, 3300, 3400, 3500, 3600, 3700, 3806, 3807, 3900, 4000, 4100, 4602, 4701, 4702, 4800, 4900, 5000, 5100, 5200, 5400, 5500, 5600, 5700, 5800, 5900, 6000, 6100, 6200, 6300, 6400, 6500, 6600, 6700, 6800, 6900, 7000, 7100, 7500, 7600, 7700, 7801, 7802, 7900, 8000, 8100, 8200, 8301, 8400, 8500, 8600, 8702, 8801, 9200, 9301, 9302, 9401, 9402, 9403, 9404, 9500, 9601, 9602, 9605, 10100, 10200, 10300, 10400, 10500, 10601, 10602, 10700, 10800, 10901, 10902, 11000, 11100, 11201, 11203, 11205, 11207, 11209, 11210, 11302, 11303, 11304, 11401, 11402, 11403, 11503, 11504, 11505, 11506, 11507, 11601, 11603, 11604, 11605, 11705, 11707, 11708, 11709, 11710, 11711, 11712, 11800, 11901, 11903, 11904, 12000, 12100, 12201, 12202, 12301, 12304, 12305, 12307, 12308, 12401, 12402, 12500, 12600, 12700, 12800, 12900, 13003, 13004, 13005, 13006, 13101, 13103, 13104, 13203, 13205, 13206, 13207, 13208, 13300, 13401, 13402, 13503, 13505, 13507, 13508, 13509, 13510, 13511, 13601, 13603, 13604, 13701, 13702, 13800, 13901, 13902, 14001, 14003, 14004, 14102, 14103, 14104, 14202, 14204, 14205, 14206, 14301, 14302, 14400, 14501, 14503, 14504, 14505, 14601, 14602, 14700, 14802, 14803, 14805, 14806, 14901, 14903, 14905, 14906, 15000, 15101, 15102, 15200, 15301, 15303, 15304, 15400, 980000, 980100, 980200, 990000],
    '057' : [70200, 70300, 70400, 70500, 70600, 70700, 70800, 70900, 72100, 72200, 72300, 72400, 72500, 72600, 72700, 72800],
    '059' : [300100, 300300, 300400, 300500, 300600, 300700, 300800, 300901, 300902, 301000, 301101, 301102, 301200, 301300, 301400, 301500, 301600, 301700, 301800, 301900, 302000, 302101, 302102, 302200, 302300, 302400, 302501, 302502, 302600, 302700, 302800, 302900, 303000, 303101, 303102, 303203, 303204, 303301, 303302, 303400, 303500, 303600, 303700, 303800, 303900, 304001, 304002, 304100, 304202, 304203, 304204, 404300, 404400, 404500, 404600, 404700, 404800, 404901, 404902, 405000, 405100, 405200, 405301, 405302, 405400, 405500, 405600, 405700, 405800, 405900, 406001, 406002, 406100, 406201, 406202, 406300, 406400, 406501, 406600, 406701, 406702, 406801, 406802, 406900, 407000, 407101, 407102, 407201, 407203, 407204, 407301, 407302, 407401, 407402, 407501, 407502, 407600, 407700, 407801, 407802, 407900, 408000, 408100, 408200, 408300, 408400, 408500, 408600, 408700, 408800, 408900, 409000, 409100, 409200, 409300, 409400, 409500, 409600, 409700, 409800, 409900, 410000, 410100, 410200, 410300, 410400, 410500, 410600, 410700, 410800, 410900, 411000, 411100, 411200, 411301, 411302, 411400, 411500, 411600, 411700, 411800, 411901, 411902, 412000, 412100, 412200, 412301, 412302, 412400, 412500, 412600, 412700, 412800, 412900, 413001, 413002, 413100, 413200, 413300, 413400, 413500, 413600, 413700, 413803, 413804, 413900, 414001, 414002, 414100, 414201, 414202, 414301, 414303, 414304, 414400, 414501, 414502, 414600, 414700, 414800, 414900, 415000, 415101, 415102, 415201, 415202, 415300, 415401, 415402, 415500, 415600, 415700, 415802, 416000, 416100, 416201, 416202, 416300, 416401, 416402, 416500, 416600, 416701, 416702, 416801, 416802, 416900, 517000, 517101, 517102, 517201, 517202, 517301, 517302, 517400, 517500, 517600, 517701, 517705, 517801, 517802, 517901, 517902, 518000, 518100, 518201, 518203, 518204, 518300, 518400, 518501, 518502, 518600, 518700, 518800, 518900, 519000, 519100, 519200, 519300, 519400, 519500, 519601, 519602, 519702, 519703, 519704, 519801, 519802, 519900, 520001, 520002, 520100, 520200, 520300, 520401, 520402, 520501, 520502, 520600, 520700, 520800, 520900, 521000, 521100, 521200, 521301, 521302, 521400, 521500, 521601, 521602, 521700, 521801, 521802, 521902, 522000, 522700, 980100, 981100, 982100, 990100, 990200, 990301, 990302, 990400],
    '061' : [100, 201, 202, 500, 600, 700, 800, 900, 1001, 1002, 1200, 1300, 1401, 1402, 1501, 1502, 1600, 1800, 2000, 2100, 2201, 2202, 2400, 2500, 2601, 2602, 2700, 2800, 2901, 2902, 3001, 3002, 3100, 3200, 3300, 3400, 3601, 3602, 3700, 3800, 3900, 4001, 4002, 4100, 4200, 4300, 4400, 4500, 4700, 4800, 4900, 5000, 5200, 5400, 5501, 5502, 5600, 5700, 5800, 5900, 6000, 6100, 6200, 6300, 6400, 6500, 6600, 6700, 6800, 6900, 7001, 7002, 7100, 7200, 7300, 7400, 7500, 7600, 7700, 7800, 7900, 8000, 8100, 8200, 8300, 8400, 8601, 8602, 8603, 8700, 8800, 8900, 9000, 9100, 9200, 9300, 9400, 9500, 9600, 9700, 9800, 9901, 9902, 9903, 10000, 10100, 10200, 10300, 10400, 10601, 10602, 10801, 10802, 10803, 10900, 11000, 11100, 11201, 11202, 11203, 11300, 11401, 11402, 11500, 11600, 11700, 11800, 11900, 12000, 12101, 12102, 12200, 12400, 12500, 12601, 12602, 12700, 12800, 12901, 12902, 13000, 13100, 13201, 13202, 13203, 13300, 13400, 13501, 13502, 13601, 13602, 13603, 13604, 13700, 13800, 13900, 14000, 14200, 14300, 14401, 14402, 14500, 14601, 14602, 14700, 14801, 14802, 14900, 15001, 15002, 15101, 15102, 15200, 15301, 15302, 15401, 15402, 15403, 15501, 15502, 15601, 15602, 15700, 15801, 15802, 15900, 16001, 16002, 16100, 16200, 16300, 16400, 16500, 16600, 16700, 16800, 16900, 17000, 17100, 17200, 17300, 17401, 17402, 17500, 17700, 17800, 17900, 18000, 18100, 18200, 18300, 18400, 18500, 18600, 18700, 18800, 18900, 19000, 19100, 19200, 19300, 19400, 19500, 19600, 19701, 19702, 19800, 19900, 20000, 20101, 20102, 20300, 20500, 20600, 20701, 20800, 20901, 21000, 21100, 21200, 21303, 21400, 21500, 21600, 21703, 21800, 21900, 22000, 22102, 22200, 22301, 22302, 22400, 22500, 22600, 22700, 22800, 22900, 23000, 23100, 23200, 23300, 23400, 23501, 23502, 23600, 23700, 23802, 23803, 23804, 23900, 24000, 24100, 24200, 24301, 24302, 24500, 24700, 24900, 25100, 25300, 25500, 25700, 25900, 26100, 26300, 26500, 26700, 26900, 27100, 27300, 27500, 27700, 27900, 28100, 28300, 28500, 28700, 29100, 29300, 29500, 29700, 29900, 30300, 30700, 30900, 31100, 31703, 31704, 31900],
    '063' : [20100, 20200, 20300, 20400, 20500, 20600, 20700, 20900, 21000, 21100, 21200, 21300, 21400, 21700, 22000, 22100, 22200, 22300, 22401, 22500, 22601, 22602, 22702, 22713, 22714, 22715, 22716, 22717, 22803, 22804, 22901, 22902, 23001, 23100, 23200, 23301, 23302, 23401, 23402, 23404, 23405, 23500, 23600, 23700, 23800, 23901, 23902, 24001, 24002, 24101, 24102, 24201, 24202, 24301, 24302, 24303, 24401, 24404, 24405, 24406, 24501, 24502, 24600, 940001, 940100, 990000],
    '065' : [20102, 20300, 20705, 20802, 20803, 20900, 21000, 21103, 21104, 21201, 21202, 21301, 21302, 21303, 21401, 21402, 21500, 21601, 21602, 21701, 21702, 21900, 22000, 22100, 22200, 22400, 22500, 22701, 22702, 22800, 23000, 23200, 23300, 23400, 23501, 23502, 23702, 23901, 23902, 24000, 24101, 24102, 24200, 24301, 24302, 24303, 24400, 24500, 24700, 24800, 24900, 25001, 25002, 25003, 25100, 25200, 25300, 25400, 25500, 25601, 25602, 25700, 25800, 25900, 26100, 26200, 26300, 26400, 26501, 26502, 26600, 26700, 980002, 980003, 980100],
    '067' : [100, 200, 300, 400, 501, 600, 700, 800, 900, 1000, 1400, 1500, 1600, 1701, 1702, 1800, 1900, 2000, 2101, 2300, 2400, 2700, 2901, 3000, 3200, 3400, 3500, 3601, 3602, 3800, 3900, 4000, 4200, 4301, 4302, 4401, 4500, 4600, 4800, 4900, 5000, 5100, 5200, 5300, 5400, 5500, 5601, 5602, 5700, 5800, 5900, 6000, 6101, 6102, 6103, 10100, 10200, 10301, 10321, 10322, 10400, 10500, 10600, 10700, 10800, 10900, 11011, 11012, 11021, 11022, 11101, 11102, 11201, 11202, 11231, 11232, 11241, 11242, 11300, 11401, 11402, 11500, 11600, 11700, 11800, 11900, 12000, 12100, 12200, 12300, 12400, 12500, 12600, 12700, 12800, 12900, 13000, 13100, 13200, 13300, 13400, 13500, 13600, 13701, 13800, 13900, 14000, 14200, 14300, 14400, 14500, 14600, 14700, 14800, 14900, 15000, 15100, 15201, 15202, 15203, 15400, 15500, 15601, 15602, 15701, 15702, 15800, 16001, 16002, 16100, 16200, 16300, 16400, 16501, 16502, 16600, 16700, 16801, 16802, 16901, 16902, 940000],
    '069' : [50101, 50103, 50104, 50105, 50106, 50203, 50204, 50205, 50206, 50302, 50303, 50304, 50401, 50402, 50501, 50502, 50601, 50603, 50604, 50800, 50900, 51001, 51101, 51102, 51200, 51301, 51302, 51400, 51501, 51502, 51600, 51700, 51801, 51900, 52001, 52002, 52003, 52101, 52102, 52200],
    '071' : [100, 200, 301, 302, 400, 501, 502, 600, 1100, 1200, 1300, 1500, 1601, 1602, 2100, 2200, 2300, 10101, 10102, 10200, 10300, 10400, 10501, 10502, 10601, 10602, 10701, 10702, 10801, 10802, 10901, 10902, 11000, 11101, 11102, 11200, 11301, 11302, 11400, 11500, 11601, 11602, 11701, 11702, 11801, 11802, 11900, 12100, 12200, 12300, 12601, 12602, 12700, 12800, 12900, 13000, 13100, 13201, 13202, 13301, 13302, 13400, 13500, 13600, 13700, 13800, 13900, 14101, 14102, 14201, 14202, 14301, 14302, 14400, 14501, 14502, 14601, 14602, 14700, 14801, 14802, 14900, 15003, 15005, 15007, 15008, 15009, 15010, 15100, 15201, 15202, 15203],
    '073' : [40200, 40300, 40400, 40500, 40601, 40602, 40603, 40701, 40702, 40801, 40802, 401200, 401300, 990000],
    '075' : [20101, 20102, 20201, 20202, 20301, 20303, 20304, 20400, 20501, 20502, 20503, 20600, 20703, 20704, 20705, 20706, 20707, 20800, 20901, 20903, 20904, 20905, 21001, 21002, 21003, 21101, 21102, 21103, 21104, 21201, 21202, 21203, 21300, 21401, 21402, 21501, 21503, 21504, 21505, 21601, 21602, 21603, 21604, 21605, 990000],
    '077' : [590101, 590102, 590201, 590202, 590301, 590302, 590401, 590402, 590500, 590600, 590701, 590702, 590800, 590900, 591000, 591100, 591401, 591402, 591500, 591601, 591602, 591700],
    '079' : [10100, 10201, 10202, 10300, 10400, 10500, 10600, 10700, 10800, 10901, 10902, 11000, 11100, 11201, 11202, 11300, 11400, 11501, 11502, 11600, 11700, 11801, 11802, 11900],
    '081' : [101, 102, 103, 104, 200, 400, 600, 701, 702, 800, 1000, 1200, 1400, 1600, 1800, 1901, 1902, 1903, 2000, 2200, 2400, 2500, 2600, 2800, 3000, 3100, 3200, 3301, 3302, 3400, 3600, 3700, 3800, 3900, 4001, 4002, 4200, 4300, 4401, 4500, 4700, 5000, 5100, 5200, 5300, 5400, 5500, 5700, 5800, 5900, 6100, 6201, 6202, 6300, 6501, 6502, 6900, 7100, 7300, 7500, 7700, 7900, 8100, 8300, 8500, 8600, 8700, 8800, 9100, 9400, 9500, 9600, 9700, 9800, 9900, 10000, 10100, 10200, 10300, 10400, 10500, 10600, 10701, 10800, 11000, 11100, 11200, 11300, 11400, 11500, 11600, 11700, 11800, 11900, 12000, 12100, 12200, 12301, 12400, 12500, 12601, 12602, 12800, 13000, 13200, 13400, 13500, 13600, 13700, 13800, 14000, 14100, 14201, 14202, 14300, 14400, 14500, 14700, 14800, 14900, 15000, 15100, 15200, 15300, 15400, 15500, 15600, 15700, 15801, 15802, 15900, 16100, 16300, 16400, 16600, 16800, 16900, 17000, 17101, 17102, 17200, 17400, 17600, 17800, 17901, 17902, 18000, 18101, 18102, 18200, 18300, 18401, 18402, 18501, 18502, 18600, 18700, 18800, 18900, 19000, 19200, 19400, 19600, 19800, 19901, 19902, 19903, 20200, 20400, 20500, 20600, 20800, 21200, 21400, 21601, 21602, 21603, 21900, 22001, 22002, 22900, 23000, 23200, 23501, 23502, 23600, 23800, 24000, 24300, 24500, 24600, 24700, 24900, 25100, 25301, 25302, 25401, 25402, 25500, 25700, 25800, 25900, 26000, 26100, 26200, 26300, 26400, 26501, 26502, 26600, 26700, 26901, 26902, 27000, 27101, 27102, 27200, 27301, 27302, 27400, 27500, 27600, 27701, 27702, 27800, 27900, 28000, 28100, 28200, 28300, 28400, 28500, 28700, 28801, 28802, 28803, 28900, 29100, 29300, 29400, 29500, 29700, 29900, 30600, 30903, 30904, 30905, 30906, 31700, 32000, 32700, 32800, 32900, 33000, 33100, 33401, 33403, 33404, 33405, 33700, 33900, 34700, 35100, 35200, 35300, 35700, 35800, 36100, 36300, 36500, 36600, 36700, 36800, 37100, 37300, 37501, 37502, 37600, 37700, 37900, 38100, 38301, 38302, 38400, 39400, 39800, 39901, 39902, 40000, 40101, 40102, 40200, 40301, 40302, 40400, 40501, 40502, 40701, 40702, 40901, 40902, 41100, 41300, 41400, 41500, 42400, 42600, 42700, 43200, 43400, 43701, 43702, 43900, 44000, 44301, 44302, 44400, 44601, 44602, 44800, 45000, 45200, 45400, 45500, 45600, 45700, 45800, 45900, 46000, 46100, 46200, 46300, 46400, 46500, 46600, 46700, 46800, 46901, 46902, 47000, 47100, 47200, 47300, 47500, 47600, 47801, 47802, 47900, 48000, 48100, 48200, 48301, 48302, 48400, 48500, 48900, 49201, 49202, 49301, 49302, 49500, 49600, 49700, 49900, 50000, 50201, 50202, 50400, 50500, 50600, 50700, 50800, 51000, 51100, 51200, 51300, 51500, 51600, 51700, 51800, 52000, 52100, 52200, 52400, 52500, 52600, 52800, 53000, 53100, 53200, 53401, 53501, 53502, 53601, 53800, 53901, 53902, 54000, 54200, 54500, 54700, 54800, 54900, 55100, 55200, 55300, 55400, 55500, 55600, 55700, 55800, 55900, 56000, 56100, 56200, 56400, 56500, 56600, 56700, 56800, 57700, 57900, 58000, 58100, 58200, 58300, 58500, 58700, 58900, 59000, 59100, 59200, 59300, 59400, 59501, 59502, 59600, 59800, 59900, 60000, 60100, 60300, 60600, 60701, 60800, 61000, 61200, 61301, 61302, 61400, 61601, 61602, 61800, 61900, 62000, 62100, 62200, 62300, 62400, 62500, 62600, 62700, 62900, 63000, 63200, 63301, 63302, 63500, 63700, 63800, 63900, 64101, 64102, 64500, 64600, 65000, 65401, 65402, 65501, 65600, 65702, 65703, 65900, 66000, 66100, 66301, 66302, 66401, 66402, 66403, 66404, 66501, 66701, 66900, 67100, 67700, 67900, 68000, 68200, 68300, 68700, 69000, 69300, 69400, 69500, 69701, 69702, 70300, 70700, 70900, 71100, 71303, 71304, 71305, 71306, 71600, 71701, 71702, 71900, 72100, 72300, 72900, 73100, 73700, 73900, 74100, 74300, 74500, 74700, 74900, 75701, 75702, 76901, 76902, 77300, 77500, 77902, 77903, 77904, 77905, 77906, 77907, 77908, 78800, 79000, 79200, 79300, 79701, 79702, 79900, 80301, 80302, 80900, 81400, 81800, 83700, 83800, 84000, 84500, 84601, 84602, 84901, 84902, 85300, 85500, 85700, 85900, 86100, 86300, 86400, 86500, 86900, 87100, 88400, 88902, 88903, 89201, 89202, 90700, 91602, 91603, 91604, 91800, 91900, 92200, 92500, 92800, 92900, 93401, 93402, 93800, 93900, 94201, 94202, 94203, 94500, 94700, 95400, 96400, 97202, 97204, 97205, 97206, 97207, 97300, 98100, 98700, 99100, 99200, 99701, 99703, 99704, 99705, 99801, 99802, 99900, 100801, 100803, 100804, 101002, 101003, 101004, 101700, 102900, 103201, 103202, 103300, 103900, 104700, 105900, 107201, 107202, 108500, 109300, 109700, 109900, 111300, 112300, 112900, 113300, 113900, 114100, 114700, 115100, 115500, 115700, 115900, 116100, 116301, 116302, 116700, 117100, 117500, 118100, 118500, 118700, 118900, 119100, 119300, 119500, 119900, 120100, 120300, 120500, 120701, 120702, 121100, 121500, 122300, 122702, 122703, 122704, 124100, 124700, 125700, 126500, 126700, 127700, 128300, 129102, 129103, 129104, 130100, 133300, 133900, 134100, 134701, 134702, 136700, 137700, 138501, 138502, 139900, 140300, 140901, 140902, 141700, 142900, 143500, 144100, 144700, 145101, 145102, 145900, 146300, 146700, 147100, 147900, 148300, 150701, 150702, 152901, 152902, 155101, 155103, 155104, 156700, 157101, 157102, 157901, 157902, 157903, 161700, 162100, 990100],
    '083' : [40100, 40200, 40300, 40400, 40500, 40600, 40701, 40702, 40800, 40900, 41000, 41101, 41102, 41200, 41300, 41400, 51500, 51601, 51602, 51701, 51702, 51800, 51901, 51902, 52002, 52003, 52004, 52101, 52102, 52103, 52201, 52203, 52204, 52301, 52303, 52305, 52306, 52402, 52405, 52406, 52407, 52408, 52501, 52502, 52503, 52601, 52602, 52603],
    '085' : [300, 600, 700, 800, 900, 1100, 1700, 1800, 2001, 2002, 2100, 2700, 2900, 3300, 3600, 3900, 4001, 4002, 4003, 4004, 4700, 5000, 5901, 5902, 6400, 6700, 7001, 7002, 7400, 7500, 7700, 8100, 9601, 9602, 9701, 9702, 10500, 11201, 11203, 11204, 11401, 11402, 12100, 12200, 12500, 12804, 12805, 12806, 13201, 13203, 13204, 13301, 13302, 13400, 13800, 14100, 14604, 14605, 14606, 14607, 14608, 14700, 15100, 15400, 15601, 15602, 15603, 16901, 17005, 17007, 17009, 17011, 17012, 17013, 17014, 17015, 17016, 17300, 17600, 17701, 17702, 18100, 18701, 18703, 18704, 18901, 18902, 19700, 19800, 20100, 20701, 20702, 20803, 20804, 20805, 20806, 21300, 22300, 22601, 22602, 22801, 22802, 23100, 23900, 24401, 24402, 24700, 24800, 25100, 27301, 27302, 27702, 27704, 27705, 27706, 27900, 29102, 29104, 29105, 29106, 30301, 30302, 31901, 31902, 32300, 990100],
    '087' : [10101, 10102, 10200, 10501, 10503, 10504, 10601, 10602, 10701, 10702, 10703, 10801, 10802, 10803, 10804, 10901, 10902, 11000, 11101, 11102, 11200, 11302, 11303, 11304, 11305, 11401, 11403, 11404, 11405, 11505, 11506, 11507, 11508, 11509, 11510, 11511, 11512, 11601, 11602, 11603, 11700, 11800, 11901, 11902, 12000, 12107, 12108, 12109, 12110, 12111, 12112, 12113, 12114, 12115, 12116, 12203, 12204, 12205, 12206, 12301, 12302, 12401, 12403, 12404, 12503, 12504, 12505, 12506, 12600, 12700, 12800, 13001, 13002, 13003, 13101, 13102, 13200, 13300, 13401, 13402],
    '089' : [490100, 490200, 490300, 490400, 490500, 490600, 490700, 490800, 490900, 491000, 491100, 491200, 491300, 491400, 491500, 491600, 491700, 491800, 491900, 492000, 492100, 492301, 492302, 492401, 492501, 492600, 492700, 492800, 492900, 493000],
    '091' : [60102, 60103, 60104, 60200, 60301, 60400, 60501, 60504, 60505, 60506, 60507, 60601, 60602, 60703, 60704, 60705, 60706, 60800, 60901, 60902, 61001, 61002, 61101, 61102, 61201, 61202, 61301, 61303, 61304, 61305, 61401, 61403, 61404, 61500, 61600, 61701, 61702, 61800, 61904, 61905, 61906, 61907, 62001, 62002, 62100, 62200, 62300, 62404, 62406, 62407, 62408, 62409, 62410, 62501, 62503, 62505, 62506, 62507, 62508, 62509, 62601, 62602, 62700, 62800, 62900],
    '093' : [20101, 20102, 20200, 20300, 20500, 20600, 20700, 20800, 20900, 21001, 21002, 21200, 21400, 21500, 21600, 21700, 21801, 21802, 31901, 31902, 32000, 32101, 32102, 32200, 32300, 32402, 32403, 32404, 32502, 32503, 32504, 32601, 32602, 32700, 32901, 32902, 33002, 33003, 33004, 33101, 33102, 33200, 33300, 33400, 33500],
    '095' : [740100, 740200, 740300, 740400, 740500, 740600, 740700, 740800],
    '097' : [950100, 950200, 950300, 950400, 950500],
    '099' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950801, 950802, 950900, 951000],
    '101' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100, 961200, 961300, 961400, 961500, 961600, 961700, 961800, 961900, 962000, 962100, 962200, 962301, 962302, 962400, 962500, 962600, 962700, 962800, 962900, 963000],
    '103' : [110101, 110103, 110104, 110200, 110300, 110401, 110402, 110501, 110502, 110601, 110602, 110801, 110803, 110901, 110902, 111001, 111002, 111101, 111102, 111103, 111201, 111202, 111300, 111401, 111402, 111503, 111504, 111506, 111507, 111508, 111601, 111602, 111701, 111703, 111704, 111801, 111802, 111803, 111804, 111900, 112001, 112002, 112102, 112103, 112104, 112204, 112211, 112212, 112213, 112215, 112216, 112217, 112218, 112219, 112220, 122300, 122405, 122406, 122407, 122408, 122501, 122502, 122602, 122603, 122604, 122605, 122704, 122705, 122706, 122707, 122801, 122802, 122901, 122902, 123001, 123002, 123101, 123102, 123201, 123203, 123204, 123303, 123304, 123401, 123403, 123404, 123500, 123600, 123701, 123703, 123704, 123801, 123802, 123900, 124001, 124002, 124101, 124102, 124200, 124301, 124302, 124401, 124402, 124500, 124601, 124602, 134702, 134703, 134704, 134902, 134906, 134907, 134908, 134909, 135002, 135003, 135004, 135005, 135101, 135102, 135103, 135104, 135201, 135205, 135208, 135209, 135303, 135305, 135306, 135401, 135402, 135403, 135500, 145601, 145602, 145603, 145604, 145605, 145701, 145702, 145703, 145705, 145706, 145803, 145804, 145807, 145808, 145809, 145810, 145901, 145903, 145904, 145905, 146001, 146002, 146004, 146005, 146102, 146103, 146105, 146106, 146201, 146202, 146203, 146204, 146205, 146206, 146300, 146402, 146403, 146404, 146500, 146607, 146608, 146611, 146612, 146613, 146614, 146616, 146617, 146618, 146619, 146620, 146703, 146704, 146705, 146706, 146800, 146901, 146902, 147001, 147003, 147004, 147100, 147201, 147202, 147301, 147302, 147401, 147402, 147502, 147503, 147504, 147505, 147601, 147602, 147701, 147702, 147802, 147803, 147804, 147901, 147902, 158001, 158009, 158010, 158011, 158012, 158013, 158014, 158015, 158016, 158017, 158102, 158103, 158107, 158108, 158111, 158112, 158114, 158116, 158117, 158118, 158119, 158120, 158205, 158206, 158207, 158208, 158209, 158304, 158306, 158309, 158310, 158315, 158317, 158318, 158319, 158320, 158322, 158324, 158325, 158326, 158327, 158328, 158329, 158401, 158402, 158403, 158407, 158408, 158409, 158410, 158411, 158412, 158502, 158505, 158506, 158509, 158510, 158511, 158512, 158513, 158514, 158604, 158605, 158606, 158607, 158608, 158609, 158705, 158707, 158708, 158709, 158710, 158711, 158712, 158713, 158714, 158715, 158802, 158803, 158805, 158806, 158901, 158902, 159000, 159103, 159106, 159107, 159108, 159109, 159110, 159111, 159112, 159201, 159203, 159204, 159300, 159406, 159407, 159408, 159410, 159411, 159413, 159414, 159415, 159416, 159509, 159510, 159511, 159512, 159513, 159514, 159515, 159516, 159517, 159518, 159602, 159603, 159604, 159700, 169701, 169703, 169705, 169706, 169800, 169903, 169904, 169905, 169906, 170003, 170004, 170005, 170006, 170101, 170203, 170204, 170205, 170206, 180300, 190402, 190403, 190404, 190405, 190502, 190503, 190504, 190603, 190604, 190605, 190606, 190706, 190708, 190709, 190710, 190711, 190712, 190713, 190714, 190801, 190802, 200901, 200903, 200904, 200905, 200906, 201005, 201006, 201007, 201008, 201009, 201010, 201200, 990100],
    '105' : [950100, 950201, 950202, 950300, 950400, 950500, 950600, 950701, 950702, 950801, 950802, 950900, 951000, 951100, 951201, 951202, 951301, 951302, 951500, 951600, 951701, 951702, 951801, 951802, 951900, 952000, 952100, 952200, 952300, 952400, 952500],
    '107' : [20101, 20102, 20200, 20300, 20401, 20402, 20500, 20600, 20701, 20702, 20703],
    '109' : [100, 201, 202, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1301, 1302, 1400, 1500, 1600, 1700, 1800, 1901, 1902, 2000, 2100, 2200, 2300],
    '111' : [950100, 950200, 950300, 950400, 950500, 950600, 950900, 951000, 951100, 951200, 951300, 951400, 951500, 951600, 951700, 951800, 951900, 952000, 952100, 952200, 952300, 952400, 952500, 952600, 952700, 952800, 952901, 952902, 953000, 953300, 953400, 953500, 953600, 953700, 953800, 953900, 954000, 954100, 954200, 954401, 954402, 954500, 954600, 954700, 954800, 954900, 955001, 955002, 955300, 955400],
    '113' : [70100, 70200, 70300, 70400, 70500, 70602, 70603, 70604, 70701, 70702, 70801, 70802, 70900, 71000, 72001, 72002, 73000, 73500, 74000, 75001, 75002, 76000, 78000],
    '115' : [80100, 80200, 80301, 80302, 81001, 81002, 82001, 82002, 84001, 84002, 85000, 86000, 87000, 88001, 88002, 89000, 90000, 91000, 92000, 93000, 94000],
    '117' : [20103, 20104, 20105, 20106, 20201, 20202, 20302, 20303, 20401, 20402, 20500, 20601, 20602, 20700, 20800, 20900, 21000, 21100, 21200, 21400, 21501, 21502, 21600, 21700, 21800, 990100],
    '119' : [101, 103, 104, 202, 203, 204, 205, 300, 401, 403, 404, 501, 502, 601, 602, 701, 702, 801, 802, 803, 900, 1000, 1101, 1102, 1200, 1301, 1302, 1304, 1305, 1401, 1402, 1403, 1502, 1503, 1504, 1505, 1600, 1701, 1702, 1800, 1900, 2000, 2101, 2103, 2104, 2105, 2106, 2107, 2201, 2202, 2203, 2204, 2300, 2401, 2402, 2403, 2404, 2405, 2600, 2700, 2800, 2900, 3000, 3100, 3200, 3300, 3400, 3500, 3600, 3700, 3800, 3900, 4001, 4002, 4100, 4200, 4500, 4600, 4700, 4801, 4802, 4900, 5001, 5002, 5100, 5200, 5300, 5400, 5500, 5600, 5702, 5703, 5704, 5800, 5901, 5902, 6000, 6100, 6200, 6301, 6302, 6400, 6500, 6600, 6700, 6801, 6802, 6900, 7000, 7100, 7200, 7300, 7401, 7402, 7500, 7600, 7700, 7800, 7901, 7902, 8000, 8100, 8200, 8301, 8302, 8401, 8403, 8404, 8500, 8602, 8700, 8801, 8802, 8901, 8902, 9000, 9100, 9201, 9202, 9300, 9400, 9500, 9600, 9701, 9702, 9703, 9800, 9900, 10000, 10100, 10200, 10300, 10400, 10500, 10600, 10701, 10702, 10801, 10803, 10804, 10901, 10902, 10903, 11000, 11101, 11102, 11200, 11300, 11401, 11402, 11500, 11601, 11602, 11700, 11800, 11902, 12000, 12101, 12102, 12201, 12202, 12301, 12303, 12304, 12400, 12501, 12502, 12503, 12600, 12700, 12803, 12804, 12900, 13000, 13102, 13103, 13104, 13201, 13202, 13301, 13304, 13401, 13402, 13500, 13600, 13700, 13800, 13900, 14000, 14100, 14200, 14300, 14400, 14500, 14604, 14605, 14606, 14607, 14701, 14703, 14704, 14805, 14806, 14808, 14809, 14810, 14811, 14812, 14813, 14901, 14903, 14907, 14908, 14909, 15000, 15100, 981000, 982000, 983000, 984000, 985000],
    '121' : [970100, 970201, 970202, 970300, 970400, 970500, 970600, 970700, 970800, 970900, 971000, 971100],
    '123' : [150101, 150102, 150200, 150301, 150302, 150400, 150501, 150502]
]]]></entry>
        <entry id="census2020_tx" type="java"><![CDATA[[
    '001' : [950100, 950401, 950402, 950500, 950600, 950700, 950800, 950901, 950902, 951001, 951002, 951100],
    '003' : [950100, 950200, 950300, 950400],
    '005' : [102, 103, 104, 201, 202, 301, 302, 400, 500, 600, 700, 800, 902, 903, 904, 1001, 1002, 1101, 1102, 1200, 1300],
    '007' : [950101, 950102, 950103, 950200, 950301, 950302, 950400, 950501, 950502, 950503, 990000],
    '009' : [20100, 20200, 20300],
    '011' : [950100],
    '013' : [960101, 960102, 960203, 960204, 960205, 960206, 960300, 960401, 960403, 960404, 960500, 960601, 960602],
    '015' : [760100, 760201, 760202, 760301, 760302, 760400, 760501, 760502],
    '017' : [950101, 950102],
    '019' : [101, 103, 104, 200, 301, 302, 400],
    '021' : [950101, 950102, 950201, 950202, 950301, 950302, 950303, 950401, 950402, 950403, 950503, 950504, 950505, 950506, 950601, 950602, 950700, 950803, 950804, 950805, 950806],
    '023' : [950301, 950302],
    '025' : [950100, 950201, 950203, 950204, 950300, 950400, 950501, 950502, 950600],
    '027' : [20101, 20102, 20201, 20203, 20204, 20301, 20302, 20401, 20402, 20500, 20600, 20701, 20702, 20800, 20900, 21000, 21101, 21102, 21201, 21202, 21203, 21301, 21302, 21304, 21305, 21400, 21501, 21502, 21601, 21602, 21701, 21702, 21801, 21802, 21901, 21905, 21906, 21907, 21908, 22001, 22002, 22101, 22103, 22104, 22105, 22200, 22300, 22401, 22402, 22403, 22405, 22406, 22407, 22501, 22503, 22504, 22600, 22801, 22900, 23001, 23002, 23103, 23104, 23109, 23110, 23111, 23112, 23113, 23114, 23115, 23116, 23117, 23118, 23201, 23202, 23203, 23204, 23301, 23302, 23402, 23404, 23405, 23406, 23500, 980001, 980002, 980003],
    '029' : [110100, 110300, 110500, 110600, 110700, 111000, 111100, 120100, 120301, 120302, 120401, 120402, 120502, 120503, 120504, 120601, 120602, 120701, 120702, 120800, 120901, 120902, 121000, 121110, 121111, 121112, 121115, 121116, 121117, 121118, 121119, 121120, 121121, 121122, 121123, 121124, 121203, 121204, 121205, 121206, 121300, 121402, 121403, 121404, 121501, 121504, 121505, 121506, 121507, 121508, 121601, 121604, 121605, 121606, 121701, 121702, 121802, 121803, 121804, 121808, 121809, 121810, 121811, 121812, 121813, 121903, 121904, 121905, 121906, 121908, 121909, 121910, 121911, 121912, 130200, 130300, 130401, 130402, 130500, 130600, 130700, 130800, 130900, 131000, 131100, 131200, 131300, 131401, 131402, 131503, 131504, 131505, 131506, 131507, 131601, 131606, 131608, 131609, 131610, 131612, 131614, 131615, 131616, 131700, 131801, 131802, 140100, 140200, 140300, 140400, 140500, 140600, 140700, 140800, 140900, 141000, 141101, 141102, 141200, 141300, 141402, 141403, 141404, 141600, 141700, 141800, 141900, 150100, 150300, 150400, 150501, 150502, 150600, 150700, 150800, 150900, 151000, 151100, 151200, 151301, 151302, 151400, 151500, 151600, 151700, 151900, 152000, 152100, 152201, 152202, 160100, 160200, 160300, 160400, 160501, 160502, 160600, 160701, 160702, 160901, 160902, 161000, 161100, 161200, 161302, 161303, 161304, 161400, 161501, 161503, 161504, 161600, 161801, 161802, 161901, 161902, 162001, 162003, 162004, 170101, 170102, 170200, 170300, 170401, 170402, 170500, 170600, 170700, 170800, 170900, 171000, 171100, 171200, 171301, 171302, 171401, 171402, 171501, 171502, 171601, 171602, 171700, 171801, 171802, 171903, 171912, 171913, 171914, 171915, 171916, 171917, 171918, 171919, 171920, 171921, 171922, 171923, 171924, 171926, 171927, 171928, 171929, 172002, 172003, 172004, 172005, 172006, 172008, 172009, 180101, 180102, 180201, 180202, 180300, 180400, 180501, 180503, 180504, 180602, 180603, 180604, 180701, 180702, 180800, 180901, 180902, 181001, 181003, 181004, 181005, 181100, 181200, 181301, 181302, 181303, 181402, 181403, 181404, 181503, 181504, 181505, 181506, 181601, 181602, 181703, 181704, 181705, 181711, 181712, 181713, 181715, 181716, 181718, 181720, 181721, 181722, 181723, 181724, 181725, 181726, 181727, 181729, 181730, 181731, 181732, 181733, 181808, 181809, 181811, 181813, 181814, 181815, 181816, 181817, 181818, 181819, 181820, 181821, 181822, 181823, 181824, 181825, 181826, 181901, 181902, 182001, 182002, 182003, 182101, 182102, 182103, 182105, 182106, 190100, 190200, 190400, 190501, 190503, 190504, 190601, 190603, 190604, 190700, 190800, 190901, 190902, 191003, 191004, 191005, 191006, 191101, 191102, 191201, 191202, 191303, 191304, 191405, 191406, 191408, 191409, 191410, 191411, 191412, 191413, 191503, 191504, 191505, 191506, 191701, 191702, 191804, 191806, 191807, 191808, 191809, 191810, 191811, 191812, 191813, 191814, 191815, 191816, 191818, 191819, 191900, 192000, 192100, 192200, 192300, 980001, 980002, 980003, 980004, 980005, 980100],
    '031' : [950101, 950102, 950201, 950202],
    '033' : [950100],
    '035' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
    '037' : [10100, 10400, 10500, 10600, 10700, 10800, 10903, 10904, 10905, 10906, 11001, 11002, 11101, 11102, 11201, 11202, 11301, 11302, 11402, 11403, 11404, 11501, 11502, 11601, 11602, 11700],
    '039' : [660100, 660200, 660301, 660302, 660303, 660401, 660402, 660403, 660501, 660502, 660503, 660504, 660603, 660604, 660605, 660606, 660607, 660608, 660609, 660610, 660611, 660612, 660613, 660614, 660615, 660616, 660703, 660704, 660705, 660706, 660707, 660708, 660803, 660804, 660805, 660806, 660901, 660902, 661000, 661100, 661200, 661300, 661400, 661501, 661502, 661601, 661602, 661700, 661800, 661901, 661902, 662000, 662100, 662200, 662300, 662400, 662500, 662600, 662700, 662800, 662900, 663000, 663100, 663200, 663300, 663400, 663500, 663600, 663700, 663800, 663900, 664000, 664100, 664200, 664300, 664400, 664501, 990000],
    '041' : [103, 104, 105, 106, 107, 108, 203, 204, 205, 206, 207, 301, 302, 401, 402, 501, 502, 603, 605, 606, 700, 800, 900, 1001, 1002, 1101, 1102, 1301, 1302, 1303, 1401, 1604, 1605, 1606, 1607, 1608, 1702, 1703, 1704, 1801, 1803, 1804, 1901, 1902, 2001, 2006, 2009, 2010, 2011, 2014, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2100, 980000],
    '043' : [950300, 950400, 950500],
    '045' : [950200],
    '047' : [950100, 950200],
    '049' : [950100, 950201, 950202, 950300, 950500, 950600, 950700, 950800, 950900, 951000, 951100, 951200, 951300],
    '051' : [970100, 970201, 970202, 970300, 970400, 970501, 970502],
    '053' : [960101, 960102, 960200, 960301, 960302, 960401, 960402, 960501, 960502, 960600, 960701, 960702, 960801, 960802, 960803],
    '055' : [960102, 960103, 960104, 960200, 960300, 960400, 960501, 960502, 960600, 960701, 960702],
    '057' : [100, 200, 300, 401, 402, 501, 502, 990000],
    '059' : [30101, 30102, 30200],
    '061' : [10101, 10102, 10103, 10201, 10204, 10205, 10301, 10303, 10304, 10403, 10404, 10405, 10406, 10500, 10602, 10603, 10604, 10700, 10801, 10802, 10900, 11000, 11100, 11200, 11301, 11302, 11401, 11402, 11500, 11601, 11602, 11701, 11702, 11801, 11802, 11903, 11904, 11905, 11906, 11907, 11908, 12002, 12003, 12004, 12103, 12104, 12105, 12106, 12201, 12202, 12203, 12301, 12304, 12305, 12402, 12403, 12404, 12506, 12508, 12509, 12510, 12511, 12512, 12513, 12514, 12515, 12516, 12517, 12607, 12608, 12613, 12614, 12615, 12616, 12617, 12700, 12800, 12900, 13002, 13003, 13004, 13102, 13104, 13106, 13203, 13204, 13205, 13206, 13207, 13303, 13305, 13306, 13307, 13308, 13309, 13401, 13402, 13500, 13600, 13700, 13801, 13802, 13901, 13902, 13903, 14001, 14002, 14101, 14102, 14103, 14201, 14202, 14300, 14401, 14402, 14403, 14404, 14501, 14502, 980001, 980100, 990000],
    '063' : [950101, 950102, 950200],
    '065' : [950100, 950200],
    '067' : [950101, 950102, 950200, 950300, 950400, 950500, 950601, 950602, 950700],
    '069' : [950100, 950200, 950300],
    '071' : [710100, 710201, 710202, 710300, 710401, 710500, 710600, 990000],
    '073' : [950100, 950201, 950202, 950301, 950302, 950400, 950500, 950600, 950700, 950801, 950802, 950900, 951000, 951100],
    '075' : [950100, 950200],
    '077' : [30200, 30301, 30302],
    '079' : [950100],
    '081' : [950100, 950200],
    '083' : [950300, 950600, 950700],
    '085' : [30101, 30102, 30201, 30202, 30204, 30205, 30206, 30207, 30301, 30302, 30303, 30304, 30306, 30307, 30403, 30404, 30405, 30406, 30407, 30409, 30410, 30504, 30505, 30506, 30507, 30509, 30510, 30511, 30512, 30515, 30516, 30517, 30518, 30519, 30520, 30521, 30524, 30525, 30529, 30531, 30532, 30533, 30534, 30535, 30536, 30537, 30538, 30539, 30540, 30541, 30542, 30543, 30544, 30545, 30546, 30547, 30548, 30549, 30550, 30604, 30605, 30606, 30607, 30608, 30609, 30701, 30702, 30801, 30802, 30901, 30902, 30903, 31003, 31005, 31006, 31007, 31008, 31101, 31102, 31201, 31202, 31308, 31314, 31318, 31319, 31320, 31321, 31322, 31323, 31324, 31325, 31326, 31327, 31328, 31329, 31330, 31331, 31332, 31333, 31334, 31335, 31336, 31408, 31411, 31412, 31413, 31414, 31415, 31416, 31417, 31418, 31419, 31420, 31421, 31422, 31423, 31424, 31425, 31504, 31507, 31508, 31509, 31510, 31511, 31512, 31611, 31613, 31621, 31622, 31623, 31624, 31625, 31626, 31627, 31628, 31629, 31630, 31631, 31632, 31633, 31634, 31635, 31636, 31639, 31641, 31642, 31643, 31645, 31646, 31647, 31649, 31654, 31655, 31657, 31659, 31660, 31661, 31662, 31663, 31664, 31665, 31666, 31667, 31668, 31669, 31670, 31671, 31672, 31673, 31674, 31675, 31676, 31677, 31678, 31679, 31680, 31681, 31682, 31704, 31706, 31708, 31709, 31711, 31713, 31715, 31716, 31717, 31718, 31719, 31720, 31721, 31722, 31723, 31724, 31806, 31807, 31808, 31809, 31810, 31811, 31812, 31813, 31814, 31815, 31816, 31901, 31902, 31903, 31904, 32003, 32008, 32010, 32012, 32013, 32014, 32015, 32016, 32017, 32018, 32019],
    '087' : [950300],
    '089' : [750100, 750200, 750300, 750400, 750500],
    '091' : [310100, 310200, 310301, 310302, 310401, 310404, 310405, 310406, 310501, 310502, 310503, 310603, 310604, 310608, 310609, 310610, 310611, 310612, 310613, 310614, 310702, 310703, 310705, 310706, 310707, 310708, 310801, 310803, 310804, 310901, 310903, 310904, 310905],
    '093' : [950101, 950102, 950200, 950300, 950400],
    '095' : [950300],
    '097' : [100, 200, 400, 500, 600, 701, 702, 900, 1100],
    '099' : [10101, 10102, 10201, 10202, 10300, 10400, 10501, 10502, 10503, 10504, 10601, 10603, 10604, 10701, 10702, 10802, 10803, 10804, 980000],
    '101' : [950100],
    '103' : [950100],
    '105' : [950100],
    '107' : [950100, 950200, 950300],
    '109' : [950300],
    '111' : [950100, 950300],
    '113' : [100, 201, 202, 300, 401, 405, 407, 408, 409, 410, 501, 502, 503, 605, 606, 607, 608, 609, 610, 611, 703, 704, 705, 706, 801, 802, 901, 902, 1001, 1002, 1101, 1102, 1202, 1203, 1204, 1301, 1302, 1400, 1502, 1503, 1504, 1601, 1602, 1703, 1705, 1801, 1802, 1901, 1902, 2001, 2002, 2100, 2200, 2400, 2500, 2703, 3102, 3103, 3700, 4201, 4202, 4300, 4400, 4500, 4600, 4700, 4800, 5000, 5100, 5200, 5300, 5400, 5500, 5600, 5700, 5901, 5902, 6001, 6002, 6100, 6200, 6301, 6302, 6401, 6402, 6501, 6502, 6701, 6702, 6800, 6900, 7101, 7102, 7203, 7204, 7205, 7206, 7301, 7302, 7601, 7604, 7605, 7701, 7702, 7801, 7805, 7809, 7810, 7812, 7815, 7819, 7821, 7822, 7823, 7824, 7825, 7826, 7827, 7828, 7829, 7830, 7831, 7832, 7833, 7834, 7835, 7902, 7903, 7906, 7909, 7910, 7912, 7913, 7914, 7915, 7916, 8000, 8101, 8102, 8200, 8401, 8402, 8500, 8604, 8701, 8703, 8704, 8705, 8801, 8802, 9001, 9002, 9101, 9103, 9104, 9105, 9202, 9203, 9204, 9301, 9303, 9304, 9401, 9402, 9500, 9603, 9604, 9605, 9607, 9608, 9609, 9610, 9611, 9701, 9702, 9802, 9803, 9804, 9900, 10001, 10002, 10003, 10101, 10102, 10500, 10601, 10602, 10701, 10704, 10804, 10805, 10806, 10807, 10808, 10809, 10903, 10904, 10905, 10906, 11002, 11003, 11004, 11101, 11103, 11104, 11105, 11201, 11202, 11300, 11401, 11500, 11601, 11603, 11604, 11701, 11702, 11801, 11802, 11901, 11902, 12000, 12101, 12102, 12206, 12207, 12208, 12209, 12210, 12211, 12212, 12213, 12301, 12302, 12400, 12501, 12502, 12601, 12603, 12604, 12701, 12702, 12801, 12802, 12900, 13005, 13007, 13008, 13009, 13010, 13011, 13012, 13013, 13101, 13102, 13104, 13106, 13107, 13201, 13202, 13300, 13400, 13500, 13605, 13606, 13607, 13608, 13609, 13610, 13611, 13615, 13617, 13618, 13619, 13620, 13621, 13622, 13624, 13625, 13626, 13627, 13628, 13629, 13630, 13631, 13715, 13716, 13717, 13718, 13719, 13720, 13721, 13722, 13725, 13726, 13727, 13728, 13729, 13804, 13805, 13806, 13807, 13808, 13901, 13902, 14001, 14002, 14119, 14120, 14121, 14123, 14124, 14126, 14128, 14130, 14132, 14134, 14135, 14138, 14139, 14140, 14141, 14142, 14143, 14144, 14145, 14146, 14147, 14148, 14149, 14150, 14151, 14152, 14153, 14154, 14155, 14156, 14157, 14158, 14159, 14160, 14161, 14203, 14204, 14205, 14207, 14208, 14209, 14306, 14308, 14309, 14310, 14313, 14314, 14315, 14316, 14317, 14318, 14319, 14320, 14405, 14406, 14407, 14408, 14409, 14410, 14501, 14502, 14601, 14602, 14603, 14701, 14704, 14903, 15001, 15002, 15101, 15102, 15202, 15205, 15206, 15207, 15208, 15303, 15304, 15305, 15306, 15403, 15404, 15405, 15406, 15500, 15600, 15700, 15900, 16001, 16002, 16100, 16201, 16203, 16204, 16301, 16302, 16406, 16407, 16409, 16410, 16412, 16414, 16415, 16416, 16417, 16418, 16419, 16420, 16421, 16511, 16513, 16516, 16517, 16518, 16519, 16521, 16522, 16524, 16525, 16526, 16527, 16528, 16529, 16530, 16531, 16532, 16533, 16534, 16535, 16536, 16607, 16610, 16615, 16616, 16617, 16618, 16619, 16620, 16621, 16622, 16623, 16624, 16626, 16627, 16628, 16629, 16630, 16631, 16632, 16633, 16634, 16635, 16636, 16637, 16638, 16704, 16706, 16707, 16708, 16709, 16710, 16711, 16802, 16803, 16805, 16806, 16902, 16903, 17005, 17006, 17007, 17008, 17009, 17010, 17101, 17102, 17201, 17203, 17204, 17307, 17308, 17309, 17310, 17311, 17312, 17313, 17314, 17315, 17400, 17500, 17602, 17604, 17605, 17606, 17703, 17704, 17705, 17706, 17805, 17806, 17808, 17811, 17812, 17814, 17815, 17816, 17817, 17818, 17819, 17820, 17900, 18001, 18002, 18105, 18110, 18111, 18120, 18121, 18126, 18127, 18128, 18129, 18130, 18132, 18133, 18134, 18135, 18137, 18138, 18140, 18141, 18142, 18143, 18144, 18145, 18146, 18147, 18148, 18149, 18150, 18151, 18152, 18153, 18154, 18155, 18156, 18157, 18158, 18159, 18203, 18204, 18205, 18206, 18300, 18401, 18402, 18403, 18501, 18505, 18506, 18507, 18508, 18600, 18700, 18801, 18802, 18900, 19013, 19016, 19018, 19019, 19020, 19023, 19024, 19025, 19026, 19027, 19028, 19029, 19031, 19032, 19033, 19034, 19035, 19036, 19037, 19039, 19040, 19041, 19042, 19044, 19045, 19046, 19047, 19048, 19049, 19050, 19051, 19052, 19053, 19101, 19102, 19202, 19203, 19205, 19208, 19210, 19211, 19212, 19213, 19214, 19215, 19216, 19301, 19302, 19400, 19501, 19502, 19600, 19700, 19800, 19900, 20000, 20100, 20200, 20300, 20401, 20402, 20500, 20600, 20700, 20800, 20900, 21000, 21100, 21200, 980000, 980100, 980200],
    '115' : [950401, 950402, 950500, 950600],
    '117' : [950300, 950400, 950500, 950600],
    '119' : [950100, 950200],
    '121' : [20109, 20110, 20111, 20112, 20115, 20116, 20117, 20118, 20119, 20120, 20121, 20122, 20123, 20124, 20125, 20126, 20127, 20128, 20129, 20130, 20131, 20132, 20133, 20134, 20135, 20136, 20137, 20203, 20204, 20205, 20206, 20207, 20208, 20305, 20310, 20311, 20312, 20313, 20314, 20315, 20316, 20317, 20318, 20319, 20320, 20321, 20322, 20402, 20403, 20404, 20405, 20504, 20505, 20506, 20507, 20508, 20601, 20603, 20604, 20605, 20700, 20800, 20900, 21000, 21100, 21202, 21203, 21204, 21301, 21304, 21305, 21306, 21307, 21410, 21411, 21412, 21413, 21414, 21415, 21416, 21417, 21418, 21419, 21420, 21421, 21422, 21423, 21502, 21505, 21512, 21513, 21514, 21516, 21517, 21518, 21520, 21521, 21522, 21526, 21528, 21529, 21530, 21531, 21532, 21533, 21534, 21535, 21536, 21537, 21538, 21539, 21540, 21611, 21612, 21613, 21614, 21615, 21616, 21618, 21619, 21620, 21621, 21622, 21626, 21630, 21631, 21632, 21633, 21634, 21635, 21637, 21638, 21639, 21640, 21641, 21642, 21643, 21644, 21645, 21646, 21647, 21648, 21649, 21650, 21651, 21652, 21653, 21654, 21655, 21715, 21716, 21717, 21719, 21720, 21721, 21722, 21723, 21724, 21725, 21726, 21727, 21728, 21729, 21730, 21731, 21732, 21733, 21734, 21735, 21736, 21737, 21738, 21739, 21740, 21741, 21742, 21743, 21744, 21745, 21746, 21748, 21749, 21750, 21751, 21752, 21754, 21755, 21756, 21757, 21758, 21759, 21800, 21900],
    '123' : [970100, 970201, 970202, 970300, 970400, 970500],
    '125' : [950300],
    '127' : [950201, 950202, 950400],
    '129' : [950200, 950300],
    '131' : [950100, 950200, 950500],
    '133' : [950100, 950201, 950202, 950301, 950302, 950400, 950500],
    '135' : [100, 300, 400, 500, 600, 700, 800, 1000, 1100, 1300, 1500, 1600, 1700, 1800, 1900, 2000, 2200, 2300, 2400, 2501, 2502, 2503, 2701, 2702, 2801, 2803, 2804, 2900, 3001, 3002, 3003, 3004, 3100],
    '137' : [950300],
    '139' : [60103, 60104, 60105, 60106, 60206, 60207, 60209, 60211, 60212, 60215, 60216, 60217, 60218, 60219, 60220, 60221, 60300, 60400, 60500, 60601, 60602, 60702, 60704, 60801, 60802, 60803, 60900, 61000, 61100, 61200, 61300, 61401, 61402, 61500, 61600, 61700],
    '141' : [106, 107, 108, 109, 110, 111, 112, 113, 114, 204, 205, 206, 207, 208, 301, 302, 401, 403, 404, 600, 800, 901, 902, 1001, 1002, 1107, 1109, 1110, 1111, 1112, 1114, 1115, 1116, 1117, 1118, 1119, 1202, 1204, 1301, 1302, 1400, 1501, 1502, 1600, 1700, 1800, 1900, 2000, 2100, 2201, 2202, 2300, 2400, 2500, 2600, 2800, 2900, 3000, 3100, 3200, 3300, 3402, 3403, 3404, 3501, 3502, 3601, 3602, 3701, 3702, 3801, 3803, 3804, 3901, 3902, 3904, 3905, 4004, 4005, 4006, 4007, 4008, 4103, 4104, 4105, 4106, 4107, 4201, 4202, 4303, 4307, 4309, 4310, 4311, 4312, 4313, 4314, 4316, 4317, 4318, 4319, 4320, 10101, 10102, 10103, 10203, 10210, 10211, 10212, 10213, 10214, 10217, 10218, 10220, 10222, 10223, 10224, 10225, 10226, 10227, 10228, 10229, 10230, 10231, 10232, 10303, 10307, 10311, 10312, 10316, 10317, 10322, 10323, 10326, 10327, 10328, 10329, 10333, 10334, 10335, 10336, 10337, 10338, 10344, 10346, 10347, 10348, 10349, 10350, 10351, 10352, 10353, 10354, 10355, 10356, 10357, 10358, 10359, 10360, 10361, 10362, 10363, 10364, 10365, 10366, 10367, 10368, 10369, 10370, 10371, 10372, 10401, 10404, 10406, 10408, 10409, 10410, 10411, 10412, 10413, 10501, 10502, 10504, 10505, 10506, 10601, 10602, 980000],
    '143' : [950100, 950201, 950203, 950204, 950301, 950302, 950401, 950402, 950501, 950502, 950600, 950700],
    '145' : [200, 300, 400, 500, 700, 800],
    '147' : [950100, 950300, 950401, 950402, 950500, 950600, 950701, 950702, 950800],
    '149' : [970100, 970200, 970301, 970302, 970400, 970500, 970601, 970602, 970700],
    '151' : [950300, 950400],
    '153' : [950500, 950600],
    '155' : [950100],
    '157' : [670101, 670102, 670201, 670202, 670300, 670400, 670500, 670602, 670603, 670604, 670700, 670801, 670802, 670803, 670804, 670902, 670903, 670904, 671001, 671002, 671101, 671102, 671200, 671300, 671401, 671402, 671501, 671502, 671601, 671602, 671700, 671800, 671900, 672002, 672003, 672004, 672100, 672201, 672202, 672303, 672304, 672305, 672306, 672401, 672402, 672500, 672602, 672603, 672604, 672701, 672702, 672703, 672801, 672802, 672901, 672902, 672903, 672904, 672905, 672906, 672907, 673004, 673005, 673006, 673007, 673008, 673009, 673010, 673103, 673104, 673105, 673106, 673107, 673108, 673109, 673110, 673111, 673112, 673113, 673201, 673202, 673300, 673401, 673402, 673403, 673404, 673501, 673502, 673600, 673700, 673801, 673802, 673902, 673903, 673904, 674001, 674002, 674100, 674200, 674301, 674302, 674401, 674402, 674403, 674404, 674503, 674504, 674505, 674506, 674507, 674508, 674601, 674602, 674603, 674604, 674701, 674702, 674800, 674900, 675000, 675101, 675102, 675200, 675300, 675401, 675402, 675501, 675502, 675503, 675600, 675701, 675702, 675800],
    '159' : [950101, 950102, 950200, 950300],
    '161' : [101, 102, 200, 300, 400, 600, 700, 900],
    '163' : [950101, 950102, 950201, 950202, 950301, 950302],
    '165' : [950100, 950201, 950202, 950300],
    '167' : [720100, 720200, 720301, 720302, 720400, 720501, 720504, 720505, 720506, 720507, 720508, 720509, 720510, 720511, 720512, 720601, 720602, 720603, 720604, 720605, 720701, 720702, 720703, 720800, 720900, 721000, 721101, 721102, 721103, 721203, 721204, 721205, 721206, 721207, 721208, 721209, 721210, 721211, 721301, 721302, 721401, 721402, 721403, 721501, 721502, 721503, 721600, 721701, 721702, 721703, 721800, 721901, 721902, 722001, 722002, 722100, 722200, 722300, 722600, 722700, 722800, 722900, 723000, 723100, 723200, 723300, 723401, 723402, 723403, 723501, 723503, 723504, 723505, 723600, 723700, 723800, 723900, 724000, 724101, 724200, 724300, 724400, 724500, 724600, 724700, 724800, 724900, 725000, 725100, 725200, 725300, 725400, 725500, 725600, 725700, 725800, 725900, 726000, 726101, 726102, 726200, 990000, 990100],
    '169' : [950101, 950102, 980000],
    '171' : [950100, 950200, 950301, 950302, 950401, 950402, 950500],
    '173' : [950100],
    '175' : [960100, 960200],
    '177' : [100, 200, 300, 400, 500, 600],
    '179' : [950100, 950300, 950400, 950500, 950600, 950700, 950800],
    '181' : [101, 102, 200, 302, 304, 305, 306, 400, 501, 502, 600, 700, 800, 901, 903, 904, 1101, 1103, 1104, 1200, 1300, 1400, 1500, 1700, 1801, 1802, 1803, 1901, 1902, 2000],
    '183' : [201, 202, 300, 401, 402, 501, 502, 601, 602, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 10100, 10201, 10202, 10301, 10302, 10401, 10402, 10501, 10502, 10600, 10700, 980000],
    '185' : [180101, 180102, 180201, 180202, 180302, 180303, 180304, 180400],
    '187' : [210100, 210200, 210300, 210400, 210505, 210506, 210508, 210509, 210510, 210511, 210512, 210513, 210603, 210606, 210608, 210609, 210610, 210611, 210612, 210613, 210614, 210705, 210706, 210707, 210709, 210710, 210711, 210712, 210713, 210715, 210716, 210717, 210718, 210803, 210804, 210805, 210806, 210902, 210903, 210904, 210905],
    '189' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900],
    '191' : [950500],
    '193' : [950100, 950200, 950300],
    '195' : [950100, 950300],
    '197' : [950100],
    '199' : [30100, 30200, 30301, 30302, 30400, 30501, 30503, 30504, 30600, 30700, 30800, 30900, 31000],
    '201' : [100001, 210400, 210500, 210600, 210700, 210800, 210900, 211000, 211101, 211102, 211200, 211301, 211302, 211400, 211501, 211502, 211600, 211700, 211900, 212300, 212400, 212500, 220100, 220200, 220300, 220400, 220500, 220600, 220701, 220702, 220800, 220900, 221000, 221100, 221200, 221301, 221302, 221400, 221501, 221502, 221601, 221602, 221701, 221702, 221800, 221900, 222000, 222100, 222200, 222300, 222401, 222402, 222501, 222502, 222504, 222505, 222601, 222602, 222701, 222702, 222800, 222900, 223001, 223002, 223100, 230100, 230200, 230300, 230400, 230500, 230600, 230700, 230800, 230900, 231000, 231100, 231200, 231300, 231400, 231500, 231600, 231700, 231800, 231900, 232000, 232100, 232201, 232202, 232203, 232303, 232304, 232305, 232306, 232402, 232403, 232404, 232405, 232500, 232600, 232701, 232703, 232704, 232801, 232802, 232901, 232902, 233001, 233002, 233003, 233101, 233103, 233104, 233105, 233200, 233300, 233400, 233501, 233502, 233600, 233701, 233702, 233703, 240101, 240102, 240400, 240503, 240504, 240505, 240506, 240600, 240703, 240704, 240705, 240706, 240707, 240802, 240803, 240804, 240903, 240904, 240905, 240906, 241001, 241002, 241101, 241103, 241104, 241105, 241201, 241202, 241301, 241302, 241400, 241501, 241502, 241503, 250101, 250102, 250201, 250202, 250303, 250304, 250305, 250306, 250403, 250404, 250405, 250406, 250407, 250408, 250500, 250601, 250602, 250701, 250702, 250801, 250802, 250901, 250902, 251000, 251100, 251200, 251300, 251401, 251402, 251501, 251503, 251504, 251505, 251600, 251701, 251702, 251800, 251902, 251903, 251904, 252001, 252002, 252003, 252100, 252201, 252202, 252303, 252304, 252305, 252306, 252400, 252500, 252601, 252602, 252700, 252800, 252901, 252902, 253000, 253101, 253102, 253201, 253202, 253300, 253501, 253502, 253601, 253602, 253700, 253800, 253900, 254000, 254100, 254200, 254300, 254400, 254600, 254700, 254800, 310101, 310102, 310200, 310300, 310400, 310500, 310600, 310700, 310800, 310900, 311001, 311002, 311100, 311200, 311300, 311400, 311501, 311502, 311600, 311701, 311702, 311800, 311900, 312000, 312200, 312300, 312400, 312501, 312502, 312601, 312602, 312603, 312700, 312800, 312901, 312902, 313000, 313101, 313102, 313201, 313202, 313300, 313400, 313500, 313600, 313700, 313801, 313802, 313901, 313902, 314001, 314003, 314004, 314005, 314301, 314302, 314401, 314402, 320100, 320201, 320202, 320500, 320601, 320602, 320700, 320800, 320901, 320902, 321001, 321002, 321101, 321102, 321200, 321301, 321302, 321401, 321402, 321500, 321600, 321700, 321800, 321900, 322000, 322100, 322200, 322600, 322701, 322702, 322800, 322900, 323000, 323100, 323200, 323300, 323400, 323500, 323601, 323602, 323701, 323702, 323801, 323802, 323900, 324000, 324101, 324102, 324200, 330101, 330102, 330200, 330301, 330302, 330303, 330400, 330500, 330600, 330700, 330801, 330802, 330901, 330902, 331100, 331200, 331300, 331400, 331501, 331502, 331602, 331603, 331604, 331700, 331800, 331900, 332000, 332100, 332200, 332300, 332400, 332500, 332600, 332700, 332800, 332900, 333000, 333100, 333201, 333203, 333204, 333205, 333301, 333302, 333501, 333502, 333600, 333700, 333801, 333802, 333903, 333904, 333905, 333906, 334001, 334002, 334003, 334101, 334102, 340101, 340102, 340201, 340202, 340203, 340301, 340302, 340400, 340501, 340502, 340600, 340701, 340702, 340800, 340900, 341001, 341002, 341101, 341102, 341201, 341203, 341204, 341302, 341303, 341304, 341400, 341501, 341502, 341600, 341700, 341800, 342001, 342002, 342100, 342200, 342300, 342400, 342500, 342700, 342801, 342802, 342900, 343000, 343100, 343200, 343301, 343302, 343601, 343602, 343700, 350101, 350102, 350103, 350104, 350201, 350202, 350300, 350400, 350500, 350601, 350603, 350604, 350700, 350801, 350803, 350804, 410101, 410102, 410201, 410202, 410300, 410401, 410402, 410501, 410502, 410601, 410602, 410703, 410704, 410705, 410706, 410801, 410802, 410900, 411001, 411002, 411003, 411100, 411200, 411301, 411302, 411400, 411503, 411504, 411505, 411506, 411507, 411600, 411700, 411801, 411802, 411901, 411902, 412000, 412201, 412202, 412300, 412400, 412500, 412600, 412700, 412800, 412901, 412902, 413000, 413100, 413203, 413204, 413205, 413206, 413301, 413302, 420100, 420200, 420300, 420400, 420500, 420600, 420700, 420800, 420900, 421000, 421101, 421103, 421104, 421203, 421204, 421205, 421206, 421301, 421302, 421401, 421402, 421403, 421501, 421502, 421601, 421602, 421700, 421801, 421802, 421900, 422000, 422100, 422200, 422302, 422303, 422304, 422403, 422404, 422405, 422406, 422501, 422502, 422601, 422602, 422701, 422702, 422800, 422900, 423001, 423002, 423100, 423201, 423203, 423204, 423301, 423303, 423304, 423401, 423402, 423500, 423600, 430101, 430102, 430200, 430300, 430400, 430500, 430600, 430700, 430800, 430900, 431001, 431002, 431101, 431102, 431203, 431204, 431205, 431206, 431302, 431303, 431304, 431401, 431403, 431404, 431503, 431504, 431505, 431506, 431600, 431701, 431702, 431801, 431803, 431804, 431901, 431902, 432003, 432004, 432005, 432006, 432101, 432102, 432200, 432301, 432302, 432303, 432401, 432402, 432501, 432502, 432600, 432703, 432704, 432705, 432706, 432803, 432804, 432805, 432806, 432901, 432903, 432904, 433003, 433004, 433005, 433006, 433007, 433100, 433201, 433202, 433300, 433400, 433503, 433504, 433505, 433506, 433507, 433601, 433602, 440101, 440102, 450100, 450200, 450301, 450302, 450401, 450402, 450500, 450600, 450700, 450801, 450803, 450804, 450900, 451003, 451004, 451005, 451006, 451100, 451200, 451301, 451302, 451401, 451404, 451405, 451406, 451407, 451501, 451502, 451603, 451604, 451605, 451606, 451700, 451800, 451902, 451903, 451904, 452001, 452002, 452101, 452102, 452103, 452202, 452203, 452204, 452300, 452401, 452402, 452501, 452502, 452601, 452602, 452701, 452702, 452703, 452801, 452802, 452900, 453001, 453002, 453100, 453201, 453202, 453300, 453401, 453403, 453404, 453405, 453501, 453502, 453601, 453603, 453604, 453701, 453702, 453800, 453901, 453902, 454000, 454100, 454200, 454302, 454303, 454304, 454305, 454400, 454502, 454503, 454504, 454505, 454600, 454700, 454801, 454802, 454901, 454902, 455000, 455102, 455103, 455104, 455200, 455300, 510100, 510201, 510202, 510301, 510302, 510400, 510500, 510601, 510602, 510701, 510702, 510801, 510802, 510803, 510901, 510902, 511001, 511003, 511004, 511100, 511201, 511202, 511301, 511302, 511400, 511501, 511502, 511600, 520100, 520200, 520301, 520302, 520400, 520501, 520502, 520601, 520603, 520604, 520700, 521000, 521100, 521201, 521202, 521300, 521401, 521402, 521501, 521502, 521600, 521701, 521702, 521800, 521900, 522001, 522002, 522101, 522102, 522201, 522202, 522301, 522302, 522401, 522402, 522500, 530101, 530102, 530200, 530300, 530400, 530501, 530502, 530600, 530701, 530702, 530800, 530900, 531000, 531100, 531200, 531300, 531400, 531500, 531600, 531700, 531800, 531900, 532003, 532004, 532101, 532102, 532200, 532301, 532302, 532400, 532502, 532503, 532504, 532600, 532700, 532800, 532900, 533000, 533100, 533200, 533301, 533302, 533401, 533402, 533500, 533600, 533701, 533702, 533802, 533803, 533804, 533902, 533903, 533904, 534001, 534002, 534003, 534101, 534102, 534201, 534203, 534204, 534205, 540101, 540102, 540200, 540502, 540503, 540504, 540601, 540602, 540700, 540800, 540901, 540903, 540904, 541004, 541005, 541006, 541007, 541008, 541009, 541100, 541203, 541204, 541205, 541206, 541207, 541301, 541302, 541401, 541402, 541403, 541404, 541500, 541603, 541604, 541701, 541702, 541703, 541801, 541802, 541901, 541902, 542001, 542002, 542003, 542004, 542103, 542104, 542105, 542106, 542107, 542108, 542201, 542202, 542203, 542302, 542303, 542304, 542305, 542401, 542402, 542500, 542600, 542700, 542800, 542901, 542902, 543004, 543005, 543006, 543007, 543008, 543009, 543010, 543011, 543100, 543201, 543202, 550101, 550102, 550201, 550202, 550303, 550304, 550305, 550306, 550307, 550308, 550403, 550404, 550405, 550406, 550407, 550500, 550601, 550602, 550603, 550700, 550800, 550901, 550902, 551000, 551101, 551102, 551201, 551202, 551300, 551400, 551501, 551502, 551601, 551602, 551702, 551703, 551704, 551705, 551800, 551901, 551902, 552002, 552003, 552004, 552101, 552102, 552103, 552200, 552301, 552303, 552304, 552401, 552402, 552501, 552502, 552602, 552603, 552604, 552701, 552702, 552801, 552802, 552901, 552902, 553001, 553002, 553101, 553102, 553201, 553202, 553300, 553401, 553403, 553404, 553405, 553500, 553601, 553602, 553700, 553801, 553803, 553804, 553901, 554001, 554002, 554103, 554104, 554201, 554202, 554301, 554302, 554404, 554405, 554406, 554407, 554408, 554409, 554410, 554501, 554502, 554600, 554701, 554702, 554803, 554804, 554805, 554806, 554807, 554808, 554809, 554902, 554904, 554905, 554906, 554907, 554908, 555001, 555002, 555101, 555102, 555200, 555301, 555303, 555304, 555305, 555401, 555403, 555404, 555501, 555503, 555504, 555505, 555600, 555701, 555703, 555704, 556000, 556100, 980000, 980100, 980200, 980300, 980400, 980700],
    '203' : [20103, 20104, 20105, 20106, 20201, 20202, 20301, 20302, 20401, 20402, 20501, 20502, 20603, 20604, 20605, 20606],
    '205' : [950200],
    '207' : [950300, 950400],
    '209' : [10100, 10200, 10302, 10305, 10306, 10307, 10308, 10309, 10401, 10402, 10500, 10601, 10602, 10603, 10702, 10703, 10704, 10806, 10807, 10809, 10810, 10811, 10812, 10813, 10814, 10815, 10816, 10817, 10818, 10905, 10909, 10911, 10912, 10913, 10914, 10915, 10916, 10917, 10918, 10919, 10920, 10921, 10922, 10923, 10924, 10925],
    '211' : [950300],
    '213' : [950101, 950102, 950201, 950202, 950301, 950302, 950303, 950400, 950500, 950601, 950603, 950604, 950700, 950801, 950802, 950902, 950903, 950904, 950905, 951000, 951101, 951102, 951201, 951202, 951300, 951401, 951402, 951403],
    '215' : [20103, 20104, 20105, 20106, 20107, 20108, 20205, 20206, 20207, 20208, 20209, 20210, 20211, 20303, 20304, 20305, 20306, 20307, 20403, 20405, 20406, 20407, 20408, 20409, 20505, 20506, 20507, 20508, 20509, 20510, 20511, 20512, 20513, 20600, 20724, 20725, 20727, 20728, 20729, 20730, 20731, 20732, 20733, 20734, 20735, 20736, 20804, 20805, 20806, 20807, 20808, 20905, 20906, 20907, 20908, 20909, 20910, 21001, 21002, 21003, 21100, 21201, 21203, 21204, 21306, 21307, 21308, 21309, 21310, 21311, 21312, 21313, 21314, 21315, 21401, 21405, 21406, 21407, 21408, 21409, 21500, 21600, 21703, 21704, 21705, 21706, 21707, 21803, 21804, 21807, 21808, 21809, 21810, 21903, 21904, 21905, 21906, 22005, 22006, 22007, 22008, 22009, 22010, 22011, 22105, 22107, 22108, 22109, 22110, 22111, 22112, 22113, 22203, 22204, 22205, 22206, 22301, 22302, 22401, 22402, 22502, 22503, 22504, 22600, 22703, 22704, 22705, 22706, 22801, 22802, 22900, 23000, 23103, 23104, 23105, 23106, 23516, 23517, 23518, 23519, 23520, 23521, 23522, 23523, 23524, 23525, 23526, 23527, 23528, 23529, 23530, 23531, 23532, 23533, 23534, 23535, 23536, 23601, 23602, 23700, 23803, 23804, 23805, 23806, 23903, 23905, 23906, 23907, 23908, 24001, 24002, 24003, 24004, 24107, 24108, 24109, 24115, 24116, 24117, 24118, 24119, 24120, 24121, 24122, 24123, 24124, 24125, 24126, 24127, 24128, 24129, 24130, 24131, 24132, 24204, 24206, 24207, 24208, 24209, 24210, 24211, 24212, 24301, 24302, 24403, 24404, 24405, 24406, 24501, 24502, 24600, 980000],
    '217' : [960100, 960200, 960400, 960501, 960502, 960600, 960700, 960800, 960900, 961000, 961100, 961400],
    '219' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
    '221' : [160100, 160204, 160206, 160210, 160211, 160212, 160213, 160214, 160215, 160216, 160217, 160218, 160302, 160303],
    '223' : [950100, 950200, 950301, 950302, 950401, 950402, 950500, 950600, 950700, 950800],
    '225' : [950101, 950102, 950200, 950300, 950400, 950500, 950600, 950700],
    '227' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950801, 950802, 950900],
    '229' : [950300],
    '231' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961101, 961102, 961200, 961300, 961401, 961402, 961501, 961502, 961503, 961600, 961700],
    '233' : [950200, 950501, 950502, 950600, 950700, 950800, 950900, 951000],
    '235' : [950100],
    '237' : [950100, 950300, 950500],
    '239' : [950100, 950200, 950300],
    '241' : [950101, 950102, 950200, 950300, 950400, 950500, 950600, 950701, 950702, 950800],
    '243' : [950100],
    '245' : [101, 102, 103, 200, 304, 306, 307, 309, 310, 311, 312, 313, 314, 400, 500, 600, 700, 900, 1100, 1200, 1301, 1302, 1303, 1700, 1900, 2000, 2100, 2200, 2300, 2400, 2500, 2600, 5100, 5400, 5500, 5600, 5900, 6100, 6300, 6400, 6500, 6600, 6700, 6800, 6900, 7002, 7003, 7004, 7100, 10100, 10200, 10300, 10400, 10500, 10600, 10700, 10800, 10901, 10902, 11001, 11002, 11101, 11102, 11204, 11205, 11303, 11304, 11401, 11402, 11500, 11600, 11700, 11800, 980000, 980200, 980300, 990000],
    '247' : [950200, 950400],
    '249' : [950101, 950102, 950201, 950202, 950301, 950302, 950303, 950400, 950500, 950600, 950700],
    '251' : [130100, 130205, 130210, 130211, 130212, 130213, 130214, 130215, 130216, 130217, 130218, 130219, 130220, 130221, 130222, 130302, 130303, 130304, 130405, 130406, 130411, 130412, 130413, 130414, 130415, 130416, 130417, 130418, 130419, 130501, 130502, 130602, 130603, 130604, 130700, 130800, 130900, 131000, 131100],
    '253' : [20101, 20102, 20200, 20300, 20400, 20500],
    '255' : [970100, 970200, 970301, 970302, 970400],
    '257' : [50204, 50207, 50208, 50209, 50210, 50211, 50212, 50213, 50214, 50215, 50300, 50401, 50402, 50500, 50601, 50602, 50701, 50703, 50704, 50801, 50802, 51000, 51100, 51201, 51202, 51301, 51302],
    '259' : [970101, 970102, 970301, 970302, 970403, 970404, 970405, 970406, 970500],
    '261' : [950100, 990000],
    '263' : [950100],
    '265' : [960101, 960102, 960200, 960301, 960303, 960304, 960401, 960403, 960404, 960500, 960601, 960602, 960700, 960800],
    '267' : [950100, 950200],
    '269' : [950100],
    '271' : [950100],
    '273' : [20101, 20102, 20200, 20301, 20302, 20401, 20402, 20501, 20502, 990000],
    '275' : [950100, 950200],
    '277' : [101, 102, 200, 301, 302, 401, 402, 500, 600, 700, 800, 900, 1000],
    '279' : [950100, 950200, 950300, 950500, 950600],
    '281' : [950100, 950302, 950303, 950304, 950400, 950500],
    '283' : [950301, 950302],
    '285' : [100, 200, 300, 400, 500, 600],
    '287' : [100, 200, 300, 400],
    '289' : [950101, 950102, 950201, 950202, 950301, 950302],
    '291' : [700100, 700200, 700301, 700302, 700303, 700400, 700500, 700600, 700700, 700801, 700802, 700900, 701000, 701100, 701200, 701300, 701400],
    '293' : [970100, 970200, 970300, 970400, 970500, 970600, 970700, 970800],
    '295' : [950200, 950300],
    '297' : [950100, 950200, 950300, 950400],
    '299' : [970100, 970200, 970300, 970401, 970402, 970501, 970502, 970600],
    '301' : [950100],
    '303' : [100, 201, 202, 301, 303, 304, 402, 403, 406, 407, 408, 409, 410, 411, 501, 502, 503, 603, 605, 607, 700, 901, 902, 1000, 1200, 1300, 1401, 1402, 1501, 1502, 1601, 1602, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1804, 1805, 1806, 1807, 1808, 1904, 1905, 1906, 1907, 1908, 2001, 2002, 2102, 2103, 2104, 2203, 2205, 2206, 2207, 2208, 2301, 2302, 2401, 2402, 2500, 10101, 10102, 10201, 10202, 10203, 10204, 10301, 10302, 10402, 10404, 10409, 10410, 10411, 10412, 10413, 10414, 10415, 10416, 10417, 10418, 10419, 10420, 10421, 10422, 10423, 10502, 10504, 10505, 10506, 10509, 10510, 10511, 10512, 10513, 10514, 10601, 10602, 10700, 980000],
    '305' : [950400, 950500, 950600],
    '307' : [950300, 950400, 950500],
    '309' : [100, 200, 300, 401, 402, 598, 700, 800, 900, 1000, 1100, 1200, 1300, 1401, 1402, 1500, 1600, 1700, 1800, 1900, 2000, 2100, 2302, 2498, 2501, 2503, 2504, 2600, 2700, 2800, 2900, 3000, 3200, 3300, 3401, 3402, 3500, 3601, 3602, 3701, 3703, 3708, 3709, 3710, 3711, 3712, 3801, 3802, 3901, 3902, 4000, 4102, 4104, 4105, 4201, 4202, 4300, 980000],
    '311' : [950100],
    '313' : [100, 200, 300, 400],
    '315' : [950100, 950200, 950300, 950400],
    '317' : [950100, 950200],
    '319' : [950100, 950200],
    '321' : [730100, 730202, 730203, 730204, 730301, 730302, 730303, 730400, 730502, 730503, 730600, 730700, 990000],
    '323' : [950204, 950206, 950207, 950208, 950209, 950301, 950302, 950400, 950500, 950601, 950602, 950701, 950702],
    '325' : [101, 103, 104, 200, 301, 302, 401, 402, 500, 801, 802],
    '327' : [950300],
    '329' : [100, 200, 302, 303, 304, 305, 401, 402, 500, 600, 1100, 1200, 1300, 1400, 1500, 1700, 10105, 10106, 10107, 10108, 10115, 10116, 10117, 10118, 10119, 10120, 10121, 10122, 10123, 10124, 10125, 10126, 10127, 10128, 10129, 10200, 980000],
    '331' : [950100, 950300, 950401, 950402, 950500, 950700, 950800],
    '333' : [950100, 950200],
    '335' : [950200, 950400],
    '337' : [950100, 950200, 950300, 950401, 950402, 950501, 950502, 950600],
    '339' : [690101, 690102, 690203, 690204, 690205, 690206, 690207, 690300, 690403, 690404, 690405, 690406, 690407, 690408, 690501, 690502, 690503, 690603, 690604, 690605, 690606, 690607, 690608, 690609, 690610, 690701, 690702, 690800, 690900, 691000, 691100, 691201, 691202, 691301, 691302, 691401, 691402, 691403, 691500, 691601, 691602, 691700, 691801, 691802, 691900, 692003, 692004, 692005, 692006, 692007, 692008, 692009, 692010, 692101, 692102, 692103, 692201, 692202, 692301, 692302, 692303, 692304, 692401, 692402, 692501, 692502, 692601, 692603, 692604, 692605, 692701, 692702, 692802, 692803, 692804, 692900, 693001, 693002, 693102, 693103, 693104, 693201, 693202, 693301, 693302, 693303, 693304, 693401, 693402, 693501, 693502, 693503, 693600, 693701, 693702, 693703, 693800, 693901, 693902, 693903, 693904, 694001, 694002, 694103, 694104, 694105, 694106, 694107, 694203, 694204, 694205, 694206, 694207, 694208, 694209, 694210, 694303, 694304, 694305, 694306, 694307, 694308, 694309, 694401, 694402, 694403, 694501, 694502, 694503, 694601, 694602, 694603, 694700],
    '341' : [950100, 950201, 950202, 950301, 950302, 950400],
    '343' : [950100, 950200, 950300],
    '345' : [950100],
    '347' : [950100, 950200, 950303, 950304, 950305, 950306, 950401, 950402, 950501, 950502, 950600, 950700, 950800, 950900, 951001, 951002, 951100],
    '349' : [970100, 970200, 970301, 970302, 970400, 970500, 970600, 970701, 970800, 970901, 970902, 971000],
    '351' : [950100, 950201, 950202, 950300, 950400],
    '353' : [950100, 950200, 950300, 950400, 950500],
    '355' : [500, 601, 602, 700, 800, 900, 1000, 1100, 1201, 1202, 1300, 1400, 1500, 1601, 1602, 1702, 1703, 1704, 1801, 1802, 1903, 1904, 1905, 1906, 2001, 2002, 2101, 2102, 2200, 2301, 2303, 2304, 2400, 2500, 2601, 2602, 2603, 2703, 2705, 2706, 2707, 2708, 2900, 3002, 3003, 3004, 3101, 3102, 3202, 3204, 3205, 3206, 3303, 3304, 3305, 3306, 3401, 3402, 3500, 3601, 3602, 3603, 3700, 5103, 5104, 5404, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5415, 5416, 5417, 5603, 5604, 5605, 5606, 5801, 5803, 5804, 5900, 6000, 6100, 6201, 6202, 6203, 6204, 6205, 6300, 6400, 980000, 990000],
    '357' : [950100, 950300, 950400],
    '359' : [950100],
    '361' : [20200, 20300, 20500, 20700, 20800, 20900, 21000, 21100, 21200, 21300, 21400, 21501, 21503, 21504, 21600, 21700, 21800, 21901, 21902, 22000, 22200, 22301, 22302, 22400],
    '363' : [100, 200, 300, 401, 402, 500, 600, 700, 800, 900],
    '365' : [950100, 950200, 950300, 950401, 950402, 950500, 950600],
    '367' : [140101, 140102, 140201, 140202, 140300, 140403, 140408, 140409, 140410, 140411, 140412, 140413, 140414, 140415, 140416, 140502, 140503, 140504, 140601, 140603, 140604, 140707, 140708, 140709, 140710, 140711, 140712, 140713, 140714],
    '369' : [950200, 950300],
    '371' : [950100, 950300, 950400, 950500, 980000],
    '373' : [210103, 210104, 210105, 210106, 210203, 210204, 210205, 210206, 210301, 210302, 210401, 210402, 210500],
    '375' : [10100, 10200, 10300, 10400, 10600, 10700, 11000, 11500, 11600, 11700, 11800, 11900, 12000, 12200, 12600, 12800, 13000, 13200, 13300, 13400, 13900, 14100, 14300, 14401, 14500, 14701, 14702, 14800, 14900, 15000, 15100, 15200, 15300, 15400, 980000],
    '377' : [950100, 950200],
    '379' : [950101, 950102, 950200],
    '381' : [20100, 20200, 20300, 20400, 20500, 20600, 20800, 20900, 21000, 21101, 21102, 21200, 21300, 21500, 21602, 21603, 21604, 21605, 21606, 21609, 21610, 21611, 21702, 21705, 21706, 21707, 21708, 21802, 21803, 21804, 21900, 22001, 22002],
    '383' : [950100],
    '385' : [950100],
    '387' : [950100, 950501, 950502, 950600, 950700],
    '389' : [950200, 950300, 950400, 950600],
    '391' : [950200, 950400],
    '393' : [950100],
    '395' : [960100, 960200, 960300, 960400, 960501, 960502],
    '397' : [40101, 40103, 40104, 40201, 40202, 40203, 40301, 40303, 40304, 40305, 40403, 40404, 40405, 40406, 40407, 40408, 40409, 40410, 40411, 40412, 40503, 40507, 40508, 40509, 40510, 40511, 40512, 40513, 40514],
    '399' : [950100, 950200, 950500, 950600],
    '401' : [950101, 950102, 950200, 950300, 950400, 950501, 950502, 950600, 950700, 950800, 950900, 951000, 951100, 951200],
    '403' : [950100, 950200, 950300],
    '405' : [950100, 950200, 950300],
    '407' : [200103, 200104, 200105, 200106, 200107, 200201, 200202, 200301, 200302],
    '409' : [10201, 10202, 10301, 10302, 10500, 10601, 10602, 10603, 10604, 10700, 10800, 10900, 11000, 11100, 11200, 11300],
    '411' : [950100, 950200],
    '413' : [950300],
    '415' : [950100, 950200, 950300, 950600],
    '417' : [950300],
    '419' : [950100, 950200, 950300, 950401, 950402, 950500, 950600],
    '421' : [950200],
    '423' : [100, 201, 202, 300, 400, 500, 600, 700, 800, 900, 1000, 1101, 1102, 1200, 1300, 1404, 1405, 1406, 1407, 1408, 1501, 1502, 1602, 1605, 1606, 1607, 1608, 1701, 1702, 1803, 1804, 1805, 1806, 1807, 1906, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 2003, 2004, 2006, 2009, 2010, 2011, 2012, 2013, 2101, 2102, 2200, 980000],
    '425' : [101, 102, 200],
    '427' : [950101, 950104, 950105, 950106, 950107, 950108, 950202, 950203, 950204, 950402, 950403, 950404, 950500, 950601, 950602, 950701, 950702],
    '429' : [950200, 950300, 950500],
    '431' : [950100],
    '433' : [950300],
    '435' : [950300],
    '437' : [950200, 950300, 950400],
    '439' : [100101, 100102, 100201, 100202, 100300, 100401, 100402, 100503, 100504, 100505, 100506, 100601, 100602, 100700, 100800, 100900, 101201, 101202, 101301, 101302, 101401, 101402, 101403, 101500, 101700, 102000, 102101, 102102, 102201, 102202, 102301, 102302, 102401, 102402, 102500, 102601, 102602, 102700, 103500, 103601, 103602, 103701, 103702, 103800, 104100, 104202, 104203, 104204, 104301, 104302, 104400, 104502, 104503, 104504, 104505, 104601, 104602, 104603, 104604, 104605, 104701, 104702, 104802, 104803, 104804, 104900, 105007, 105008, 105009, 105201, 105203, 105204, 105206, 105207, 105403, 105404, 105405, 105407, 105408, 105502, 105503, 105505, 105511, 105512, 105513, 105514, 105515, 105516, 105517, 105518, 105519, 105520, 105600, 105701, 105703, 105705, 105706, 105800, 105901, 105902, 106002, 106004, 106005, 106006, 106101, 106102, 106201, 106202, 106300, 106400, 106502, 106503, 106507, 106509, 106512, 106513, 106514, 106515, 106518, 106519, 106520, 106521, 106522, 106523, 106524, 106525, 106526, 106600, 106700, 110102, 110103, 110104, 110202, 110204, 110205, 110206, 110301, 110302, 110401, 110402, 110500, 110600, 110703, 110704, 110705, 110706, 110805, 110806, 110807, 110808, 110809, 110901, 110903, 110905, 110906, 110907, 111003, 111010, 111015, 111018, 111019, 111020, 111021, 111022, 111023, 111024, 111025, 111026, 111027, 111028, 111029, 111030, 111031, 111032, 111033, 111102, 111103, 111104, 111202, 111203, 111204, 111304, 111306, 111307, 111308, 111309, 111311, 111312, 111314, 111315, 111316, 111317, 111318, 111319, 111320, 111402, 111405, 111406, 111407, 111408, 111409, 111410, 111411, 111505, 111506, 111513, 111514, 111516, 111522, 111525, 111526, 111529, 111530, 111531, 111532, 111533, 111534, 111536, 111538, 111540, 111541, 111542, 111543, 111544, 111545, 111546, 111551, 111552, 111553, 111554, 111555, 111556, 111557, 111558, 111559, 111560, 111561, 111562, 111563, 111564, 111565, 111566, 111567, 111568, 111569, 111570, 111571, 111572, 113003, 113004, 113005, 113006, 113007, 113102, 113104, 113107, 113108, 113109, 113110, 113112, 113115, 113116, 113117, 113118, 113119, 113120, 113121, 113122, 113206, 113207, 113210, 113212, 113213, 113214, 113215, 113216, 113217, 113218, 113221, 113222, 113223, 113301, 113302, 113403, 113404, 113407, 113408, 113409, 113410, 113509, 113510, 113511, 113512, 113513, 113514, 113516, 113517, 113519, 113520, 113521, 113522, 113607, 113611, 113612, 113613, 113618, 113619, 113622, 113623, 113624, 113625, 113626, 113628, 113629, 113630, 113632, 113633, 113634, 113635, 113636, 113637, 113638, 113639, 113640, 113707, 113709, 113710, 113711, 113712, 113713, 113714, 113715, 113716, 113803, 113808, 113809, 113810, 113811, 113812, 113813, 113814, 113815, 113816, 113906, 113908, 113912, 113916, 113917, 113918, 113919, 113920, 113923, 113924, 113925, 113930, 113931, 113932, 113933, 113934, 113935, 113936, 113937, 113938, 113939, 113940, 113941, 113942, 113943, 113944, 113945, 113946, 113947, 113948, 113949, 113950, 113951, 113952, 113953, 113954, 113955, 113956, 113957, 113958, 114003, 114006, 114009, 114010, 114011, 114012, 114013, 114014, 114015, 114105, 114106, 114107, 114108, 114109, 114110, 114111, 114112, 114113, 114203, 114204, 114205, 114206, 114207, 121605, 121606, 121608, 121609, 121610, 121611, 121612, 121613, 121614, 121615, 121702, 121703, 121704, 121904, 121905, 121906, 121907, 121908, 122001, 122002, 122100, 122200, 122300, 122401, 122402, 122500, 122600, 122701, 122702, 122801, 122802, 122901, 122902, 123001, 123002, 123100, 123200, 123301, 123302, 123500, 123600, 123700, 980000],
    '441' : [10100, 10200, 10300, 10400, 10500, 10600, 10700, 10800, 10900, 11000, 11200, 11300, 11400, 11500, 11600, 11700, 11900, 12000, 12100, 12200, 12300, 12400, 12500, 12600, 12701, 12702, 12801, 12802, 12900, 13000, 13100, 13200, 13300, 13401, 13402, 13404, 13501, 13502, 13601, 13602, 980000],
    '443' : [950100],
    '445' : [950100, 950300, 950400],
    '447' : [950300],
    '449' : [950100, 950200, 950301, 950302, 950400, 950500, 950600, 950700, 950800],
    '451' : [100, 200, 300, 400, 700, 801, 802, 900, 1000, 1101, 1102, 1200, 1301, 1303, 1304, 1401, 1402, 1500, 1600, 1702, 1706, 1707, 1708, 1709, 1710, 1800, 980000],
    '453' : [101, 102, 203, 204, 205, 206, 302, 304, 305, 307, 308, 309, 401, 402, 500, 601, 605, 606, 607, 608, 700, 801, 802, 803, 804, 901, 902, 1000, 1101, 1102, 1103, 1200, 1304, 1307, 1308, 1309, 1310, 1311, 1312, 1401, 1402, 1403, 1501, 1503, 1504, 1505, 1602, 1603, 1604, 1605, 1606, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 2002, 2003, 2004, 2006, 2007, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2201, 2211, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2304, 2307, 2310, 2313, 2314, 2315, 2316, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2403, 2407, 2409, 2410, 2411, 2412, 2413, 2419, 2422, 2423, 2424, 2430, 2432, 2434, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2500, 30000, 30100, 30200, 30300, 30400, 30500, 30600, 30700, 30800, 30900, 31000, 31100, 31200, 31300, 31400, 31500, 31600, 31700, 31800, 31900, 32000, 32100, 32200, 32300, 32400, 32500, 32600, 32700, 32800, 32900, 33000, 33100, 33200, 33300, 33400, 33500, 33600, 33700, 33800, 33900, 34000, 34100, 34200, 34300, 34400, 34500, 34600, 34700, 34800, 34900, 35000, 35100, 35200, 35300, 35400, 35500, 35600, 35700, 35800, 35900, 36000, 36100, 36200, 36300, 36400, 36500, 36600, 36700, 36800, 36900, 37000, 37100, 37200, 37300, 37400, 37500, 37600, 40000, 40100, 40200, 40300, 40400, 40500, 40600, 40700, 40800, 40900, 41000, 41100, 41200, 41300, 41400, 41500, 41600, 41700, 41800, 41900, 42000, 42100, 42200, 42300, 42400, 42500, 42600, 42700, 42800, 42900, 43000, 43100, 43200, 43300, 43400, 43500, 43600, 43700, 43800, 43900, 44000, 44100, 44200, 44300, 44400, 44500, 44600, 44700, 44800, 44900, 45000, 45100, 45200, 45300, 45400, 45500, 45600, 45700, 45800, 45900, 46000, 46100, 46200, 46300, 46400, 46500, 46600, 46700, 46800, 46900, 47000, 980000],
    '455' : [950100, 950200, 950300, 950400, 950500],
    '457' : [950100, 950201, 950202, 950300, 950400, 950500],
    '459' : [950101, 950102, 950200, 950301, 950302, 950400, 950501, 950502, 950600, 950700],
    '461' : [950100, 950200],
    '463' : [950100, 950201, 950202, 950300, 950400, 950500],
    '465' : [950202, 950203, 950301, 950302, 950400, 950501, 950502, 950601, 950602, 950701, 950702, 950801, 950802, 980000],
    '467' : [950100, 950200, 950300, 950400, 950500, 950601, 950602, 950700, 950801, 950802, 950901, 950902, 951001, 951002],
    '469' : [100, 201, 202, 301, 302, 400, 501, 502, 601, 602, 700, 800, 1300, 1401, 1402, 1501, 1503, 1504, 1601, 1604, 1605, 1607, 1608, 1700, 980000],
    '471' : [790101, 790102, 790103, 790200, 790301, 790302, 790401, 790402, 790500, 790600, 790700, 790800],
    '473' : [680100, 680201, 680202, 680301, 680302, 680303, 680501, 680502, 680601, 680602, 980000],
    '475' : [950100, 950200, 950300],
    '477' : [170100, 170201, 170202, 170300, 170400, 170501, 170502, 170601, 170602],
    '479' : [101, 105, 106, 107, 108, 109, 200, 300, 601, 602, 700, 800, 901, 903, 904, 1001, 1003, 1004, 1101, 1103, 1104, 1105, 1201, 1202, 1300, 1401, 1402, 1501, 1502, 1601, 1602, 1706, 1709, 1710, 1711, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1806, 1809, 1810, 1811, 1813, 1815, 1816, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1900, 980000],
    '481' : [740100, 740200, 740300, 740400, 740500, 740600, 740700, 740800, 740901, 740902, 741000, 741100],
    '483' : [950100, 950300],
    '485' : [10100, 10200, 10400, 10600, 10700, 10800, 10900, 11000, 11100, 11200, 11300, 11400, 11500, 11600, 11700, 11800, 11901, 11902, 12001, 12002, 12100, 12201, 12202, 12301, 12302, 12401, 12402, 12600, 12700, 12800, 12900, 13000, 13100, 13201, 13202, 13300, 13401, 13502, 13503, 13504, 13600, 13700, 13800, 980000],
    '487' : [950300, 950500, 950600, 950700],
    '489' : [950300, 950400, 950500, 950600, 950700, 990000],
    '491' : [20106, 20108, 20109, 20111, 20113, 20114, 20115, 20116, 20117, 20118, 20119, 20120, 20121, 20122, 20123, 20124, 20201, 20203, 20205, 20206, 20207, 20208, 20310, 20311, 20319, 20321, 20323, 20325, 20326, 20327, 20329, 20330, 20331, 20332, 20333, 20334, 20335, 20336, 20337, 20338, 20339, 20340, 20341, 20342, 20343, 20344, 20345, 20346, 20347, 20348, 20349, 20350, 20351, 20352, 20353, 20354, 20355, 20356, 20403, 20404, 20405, 20406, 20408, 20409, 20410, 20411, 20503, 20505, 20507, 20508, 20509, 20511, 20512, 20513, 20514, 20515, 20516, 20517, 20602, 20604, 20606, 20607, 20608, 20609, 20701, 20704, 20706, 20707, 20709, 20710, 20711, 20712, 20713, 20808, 20810, 20811, 20812, 20813, 20814, 20815, 20816, 20817, 20818, 20819, 20820, 20821, 20822, 20900, 21000, 21100, 21201, 21202, 21203, 21300, 21402, 21404, 21405, 21406, 21407, 21502, 21503, 21506, 21509, 21510, 21511, 21512, 21513, 21514, 21515, 21516, 21517, 21518, 21601, 21602, 21603],
    '493' : [102, 103, 104, 201, 202, 300, 402, 404, 405, 406, 500, 600],
    '495' : [950200, 950300, 950400],
    '497' : [150101, 150103, 150104, 150201, 150202, 150300, 150402, 150403, 150404, 150405, 150500, 150603, 150604, 150605, 150606, 150607],
    '499' : [950100, 950200, 950301, 950303, 950304, 950401, 950402, 950500, 950601, 950602, 950700, 950800],
    '501' : [950100, 950200],
    '503' : [950200, 950401, 950402, 950500, 950600],
    '505' : [950303, 950304, 950305, 950306, 950401, 950402],
    '507' : [950100, 950200, 950301, 950302]
]]]></entry>
        <entry id="census2020_ut" type="java"><![CDATA[[
    '001' : [100100, 100200],
    '003' : [960100, 960200, 960301, 960302, 960400, 960500, 960601, 960602, 960701, 960702, 960801, 960802],
    '005' : [101, 102, 201, 202, 301, 302, 401, 402, 403, 501, 502, 601, 602, 701, 702, 800, 900, 1001, 1002, 1101, 1102, 1201, 1202, 1300, 1401, 1402, 1500, 980100],
    '007' : [100, 200, 300, 500, 600],
    '009' : [960100],
    '011' : [125102, 125103, 125104, 125201, 125301, 125304, 125305, 125306, 125307, 125407, 125408, 125409, 125410, 125411, 125412, 125413, 125414, 125415, 125501, 125502, 125503, 125600, 125701, 125702, 125801, 125804, 125805, 125807, 125809, 125810, 125905, 125906, 125907, 125908, 126001, 126002, 126101, 126105, 126106, 126107, 126108, 126203, 126204, 126205, 126206, 126303, 126304, 126305, 126306, 126402, 126404, 126405, 126406, 126500, 126600, 126700, 126801, 126802, 126901, 126902, 127002, 127003, 127005, 127006, 127100, 980000],
    '013' : [940300, 940501, 940502, 940600],
    '015' : [976200, 976300, 976500],
    '017' : [300, 400],
    '019' : [200, 301, 302],
    '021' : [110100, 110201, 110202, 110300, 110400, 110501, 110502, 110601, 110602, 110702, 110703, 110704],
    '023' : [10100, 10200],
    '025' : [130100, 130200],
    '027' : [974100, 974200, 974300],
    '029' : [970101, 970102, 970200],
    '031' : [960100],
    '033' : [950100],
    '035' : [100100, 100200, 100306, 100307, 100308, 100500, 100600, 100700, 100800, 101000, 101101, 101102, 101200, 101401, 101402, 101500, 101600, 101700, 101800, 101900, 102000, 102100, 102300, 102501, 102502, 102600, 102701, 102702, 102801, 102802, 102900, 103000, 103100, 103200, 103300, 103400, 103500, 103600, 103700, 103800, 103900, 104000, 104100, 104200, 104300, 104400, 104700, 104800, 104900, 110103, 110104, 110105, 110106, 110200, 110300, 110401, 110402, 110500, 110600, 110701, 110702, 110800, 110900, 111001, 111002, 111104, 111105, 111106, 111107, 111108, 111109, 111201, 111202, 111302, 111304, 111305, 111306, 111400, 111500, 111601, 111602, 111701, 111702, 111801, 111802, 111903, 111904, 111905, 111906, 112001, 112002, 112101, 112102, 112201, 112202, 112301, 112302, 112402, 112404, 112405, 112406, 112501, 112503, 112504, 112505, 112604, 112608, 112609, 112610, 112611, 112612, 112613, 112614, 112615, 112616, 112617, 112618, 112619, 112620, 112621, 112700, 112804, 112805, 112812, 112813, 112814, 112815, 112816, 112818, 112821, 112822, 112823, 112824, 112825, 112826, 112827, 112828, 112829, 112830, 112831, 112904, 112905, 112907, 112912, 112913, 112914, 112916, 112917, 112918, 112920, 112921, 113007, 113008, 113010, 113011, 113012, 113013, 113014, 113016, 113017, 113021, 113022, 113023, 113024, 113025, 113101, 113102, 113105, 113108, 113109, 113110, 113111, 113112, 113113, 113114, 113307, 113308, 113309, 113310, 113311, 113312, 113313, 113314, 113406, 113408, 113409, 113410, 113411, 113412, 113413, 113414, 113415, 113505, 113509, 113510, 113511, 113512, 113513, 113514, 113515, 113520, 113521, 113522, 113523, 113526, 113527, 113528, 113532, 113533, 113536, 113537, 113538, 113539, 113540, 113541, 113542, 113543, 113544, 113545, 113600, 113701, 113702, 113801, 113802, 113804, 113805, 113903, 113904, 113905, 113906, 113908, 113909, 114000, 114100, 114200, 114301, 114302, 114303, 114304, 114500, 114601, 114602, 114700, 114800, 115107, 115108, 115109, 115210, 115211, 980000, 980100],
    '037' : [942000, 942100, 978100, 978200],
    '039' : [972101, 972102, 972200, 972300, 972401, 972402, 972500],
    '041' : [975100, 975200, 975300, 975400, 975500],
    '043' : [964101, 964103, 964104, 964201, 964202, 964203, 964303, 964304, 964305, 964306, 964307, 964308, 964401, 964402],
    '045' : [130600, 130701, 130704, 130705, 130706, 130707, 130708, 130800, 130900, 131001, 131003, 131004, 131005, 131101, 131102, 131200, 980000],
    '047' : [940201, 968201, 968202, 968301, 968302, 968401, 968403, 968404],
    '049' : [102, 103, 104, 105, 203, 205, 206, 207, 208, 400, 504, 505, 506, 507, 508, 510, 511, 601, 603, 604, 703, 706, 707, 708, 709, 710, 711, 801, 803, 804, 901, 903, 904, 1001, 1002, 1103, 1105, 1106, 1107, 1108, 1201, 1202, 1300, 1401, 1403, 1404, 1501, 1503, 1504, 1601, 1602, 1701, 1702, 1801, 1802, 1803, 1900, 2001, 2002, 2101, 2102, 2204, 2205, 2206, 2208, 2209, 2210, 2211, 2212, 2213, 2300, 2400, 2500, 2702, 2703, 2901, 2902, 3001, 3002, 3103, 3104, 3105, 3106, 3201, 3203, 3204, 3205, 3301, 3302, 3401, 3403, 3404, 3405, 10107, 10110, 10114, 10115, 10116, 10117, 10118, 10119, 10120, 10121, 10122, 10123, 10124, 10125, 10126, 10127, 10128, 10129, 10130, 10131, 10132, 10208, 10209, 10210, 10211, 10212, 10213, 10216, 10217, 10219, 10220, 10221, 10222, 10223, 10224, 10225, 10226, 10303, 10305, 10306, 10307, 10308, 10404, 10405, 10406, 10407, 10408, 10409, 10410, 10411, 10503, 10504, 10505, 10506, 10600, 10700, 10900, 980100, 980200, 980300, 980400, 980500, 980600],
    '051' : [940501, 960100, 960201, 960202, 960203, 960204, 960401, 960402, 960500, 980100],
    '053' : [270101, 270102, 270200, 270301, 270302, 270401, 270402, 270501, 270502, 270601, 270602, 270701, 270702, 270802, 270803, 270804, 270805, 270806, 270901, 270903, 270904, 270905, 271000, 271101, 271102, 271200, 271300, 271400, 271501, 271502, 271600, 271702, 271703, 271704, 271800],
    '055' : [979100],
    '057' : [200100, 200202, 200203, 200204, 200301, 200302, 200400, 200500, 200600, 200700, 200800, 200900, 201100, 201200, 201301, 201302, 201400, 201500, 201600, 201700, 201800, 201900, 202000, 210101, 210102, 210201, 210203, 210204, 210303, 210304, 210305, 210306, 210404, 210405, 210406, 210407, 210408, 210508, 210509, 210510, 210511, 210512, 210513, 210514, 210515, 210516, 210517, 210518, 210600, 210701, 210703, 210704, 210800, 210900, 211000, 211100, 211201, 211202]
]]]></entry>
        <entry id="census2020_wa" type="java"><![CDATA[[
    '009' : [300, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1701, 1702, 1800, 1901, 1902, 2001, 2002, 2100, 2301, 2302, 2400, 940000, 990100],
    '027' : [201, 202, 300, 401, 402, 501, 502, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1601, 1602, 940000, 990000],
    '029' : [970100, 970200, 970300, 970401, 970402, 970500, 970601, 970602, 970700, 970800, 970900, 971000, 971100, 971301, 971302, 971400, 971500, 971600, 971700, 971800, 971900, 972000, 972100, 992201],
    '031' : [950202, 950301, 950302, 950400, 950501, 950502, 950602, 950603, 950604, 950702, 990000],
    '033' : [101, 102, 201, 202, 300, 402, 403, 404, 500, 601, 602, 700, 800, 900, 1000, 1100, 1201, 1202, 1300, 1400, 1500, 1600, 1701, 1702, 1800, 1900, 2000, 2100, 2200, 2400, 2500, 2600, 2700, 2800, 2900, 3000, 3100, 3201, 3202, 3301, 3302, 3400, 3500, 3601, 3602, 3800, 3900, 4000, 4101, 4102, 4201, 4202, 4301, 4302, 4401, 4402, 4500, 4600, 4701, 4702, 4703, 4800, 4901, 4902, 5000, 5100, 5201, 5202, 5303, 5304, 5305, 5306, 5307, 5401, 5402, 5600, 5700, 5801, 5803, 5804, 5901, 5902, 6000, 6100, 6200, 6300, 6400, 6500, 6600, 6701, 6702, 6703, 6800, 6900, 7001, 7002, 7101, 7102, 7201, 7202, 7203, 7301, 7302, 7303, 7403, 7404, 7405, 7406, 7501, 7502, 7503, 7600, 7700, 7800, 7901, 7902, 8002, 8003, 8004, 8101, 8102, 8200, 8300, 8401, 8402, 8500, 8600, 8700, 8800, 8900, 9000, 9100, 9200, 9300, 9400, 9500, 9600, 9701, 9702, 9801, 9802, 9900, 10001, 10002, 10101, 10102, 10200, 10301, 10302, 10401, 10402, 10501, 10502, 10601, 10602, 10701, 10702, 10800, 10900, 11001, 11002, 11101, 11102, 11200, 11300, 11401, 11402, 11500, 11601, 11602, 11700, 11801, 11802, 11901, 11902, 12000, 12100, 20100, 20200, 20301, 20302, 20401, 20402, 20500, 20600, 20700, 20800, 20900, 21000, 21100, 21300, 21400, 21500, 21600, 21701, 21702, 21802, 21803, 21804, 21903, 21904, 21905, 21906, 22001, 22003, 22005, 22006, 22101, 22102, 22201, 22203, 22204, 22205, 22300, 22401, 22402, 22501, 22502, 22603, 22604, 22605, 22606, 22701, 22702, 22703, 22802, 22803, 22804, 22805, 22901, 22902, 23000, 23100, 23201, 23202, 23300, 23401, 23403, 23404, 23500, 23601, 23603, 23604, 23701, 23702, 23801, 23805, 23806, 23807, 23808, 23901, 23902, 24001, 24002, 24100, 24200, 24301, 24302, 24400, 24500, 24601, 24602, 24701, 24703, 24704, 24800, 24901, 24902, 24904, 24905, 25001, 25005, 25006, 25007, 25008, 25101, 25103, 25104, 25201, 25202, 25302, 25303, 25304, 25401, 25402, 25500, 25601, 25602, 25702, 25703, 25704, 25803, 25804, 25805, 25806, 26001, 26003, 26004, 26101, 26102, 26200, 26300, 26400, 26500, 26600, 26700, 26801, 26802, 27000, 27100, 27200, 27300, 27400, 27500, 27600, 27701, 27702, 27800, 27901, 27902, 28000, 28100, 28200, 28300, 28402, 28403, 28500, 28600, 28700, 28801, 28802, 28901, 28902, 29001, 29003, 29004, 29101, 29102, 29203, 29205, 29206, 29207, 29208, 29304, 29305, 29306, 29307, 29308, 29309, 29403, 29405, 29406, 29407, 29408, 29504, 29505, 29506, 29507, 29508, 29602, 29603, 29604, 29701, 29702, 29803, 29804, 29805, 29806, 29901, 29902, 30003, 30005, 30006, 30007, 30008, 30101, 30102, 30201, 30203, 30204, 30304, 30305, 30306, 30308, 30309, 30310, 30311, 30312, 30313, 30314, 30403, 30404, 30405, 30406, 30407, 30501, 30503, 30504, 30600, 30700, 30801, 30802, 30901, 30902, 31000, 31101, 31102, 31202, 31204, 31206, 31207, 31208, 31301, 31302, 31400, 31501, 31502, 31601, 31603, 31604, 31605, 31704, 31705, 31707, 31708, 31709, 31710, 31800, 31904, 31906, 31908, 31909, 31910, 31911, 31912, 31913, 32002, 32003, 32005, 32006, 32007, 32008, 32010, 32011, 32102, 32103, 32104, 32207, 32211, 32213, 32215, 32216, 32217, 32218, 32219, 32220, 32221, 32222, 32223, 32224, 32225, 32307, 32311, 32313, 32315, 32316, 32317, 32318, 32319, 32320, 32321, 32322, 32323, 32324, 32325, 32326, 32327, 32328, 32330, 32331, 32332, 32333, 32401, 32402, 32500, 32601, 32603, 32604, 32605, 32703, 32704, 32705, 32706, 32800, 990100],
    '035' : [80101, 80102, 80200, 80300, 80400, 80500, 80600, 80700, 80800, 80900, 81000, 81100, 81200, 81400, 90101, 90102, 90201, 90202, 90300, 90400, 90501, 90502, 90700, 90800, 90901, 90902, 91001, 91002, 91100, 91201, 91204, 91205, 91206, 91301, 91302, 91400, 91500, 91600, 91701, 91702, 91800, 91900, 92000, 92101, 92102, 92200, 92300, 92400, 92500, 92600, 92701, 92704, 92801, 92802, 92803, 92901, 92902, 940000, 940100, 990100],
    '045' : [940000, 960100, 960201, 960202, 960301, 960302, 960401, 960402, 960403, 960500, 960600, 960700, 960800, 960900, 961000, 961101, 961102, 961200, 961300],
    '053' : [60200, 60300, 60400, 60500, 60600, 60700, 60800, 60903, 60904, 60906, 60907, 60908, 61001, 61002, 61100, 61200, 61300, 61400, 61501, 61502, 61601, 61602, 61700, 61800, 61900, 62000, 62300, 62400, 62501, 62502, 62600, 62801, 62802, 62901, 62902, 63000, 63100, 63200, 63301, 63302, 63401, 63402, 63501, 63502, 70100, 70204, 70205, 70206, 70207, 70208, 70209, 70307, 70308, 70309, 70310, 70311, 70312, 70313, 70314, 70315, 70316, 70401, 70403, 70404, 70703, 71100, 71205, 71206, 71207, 71209, 71210, 71211, 71212, 71304, 71305, 71306, 71307, 71309, 71310, 71403, 71408, 71409, 71411, 71412, 71413, 71414, 71415, 71416, 71417, 71503, 71504, 71505, 71506, 71601, 71603, 71604, 71703, 71704, 71705, 71706, 71707, 71803, 71805, 71806, 71807, 71808, 71901, 71902, 72000, 72105, 72106, 72107, 72108, 72109, 72111, 72112, 72305, 72307, 72309, 72310, 72311, 72312, 72313, 72314, 72315, 72405, 72406, 72407, 72408, 72409, 72410, 72503, 72504, 72506, 72507, 72508, 72509, 72601, 72602, 72603, 72801, 72802, 72901, 72903, 72907, 72908, 72909, 73001, 73005, 73006, 73110, 73111, 73114, 73115, 73116, 73117, 73118, 73119, 73120, 73121, 73122, 73123, 73124, 73126, 73127, 73128, 73129, 73130, 73131, 73132, 73133, 73200, 73301, 73302, 73404, 73405, 73406, 73407, 73408, 73501, 73502, 940001, 940002, 940004, 940005, 940006, 940007, 940008, 940009, 940010, 940011, 940012, 940013],
    '055' : [960101, 960102, 960103, 960301, 960302, 960400, 960501, 960502, 990100],
    '057' : [940201, 940301, 940302, 940401, 940402, 940403, 940500, 940600, 940700, 940801, 940802, 950100, 950801, 950802, 950803, 950900, 951000, 951101, 951102, 951200, 951300, 951400, 951501, 951502, 951503, 951600, 951700, 951800, 951900, 952100, 952200, 952301, 952303, 952304, 952401, 952403, 952404, 952405, 952500, 952600, 952700, 990100],
    '061' : [40100, 40200, 40300, 40400, 40500, 40700, 40800, 40900, 41000, 41100, 41201, 41202, 41301, 41303, 41304, 41400, 41500, 41601, 41605, 41606, 41607, 41609, 41610, 41701, 41703, 41704, 41805, 41808, 41809, 41810, 41812, 41813, 41814, 41815, 41816, 41901, 41904, 41905, 41906, 41907, 42001, 42003, 42004, 42005, 42006, 50101, 50102, 50200, 50300, 50402, 50403, 50404, 50501, 50502, 50600, 50700, 50800, 50900, 51000, 51100, 51200, 51301, 51302, 51401, 51402, 51500, 51601, 51602, 51701, 51702, 51802, 51803, 51804, 51912, 51913, 51914, 51916, 51917, 51918, 51921, 51922, 51926, 51927, 51928, 51929, 51930, 51931, 51932, 51933, 51934, 51935, 51936, 51937, 51938, 52004, 52005, 52006, 52007, 52008, 52009, 52010, 52104, 52105, 52107, 52108, 52112, 52113, 52114, 52119, 52120, 52121, 52122, 52203, 52204, 52206, 52207, 52208, 52210, 52211, 52301, 52302, 52401, 52402, 52502, 52504, 52505, 52506, 52603, 52604, 52605, 52606, 52607, 52701, 52706, 52707, 52708, 52709, 52710, 52711, 52803, 52805, 52807, 52808, 52809, 52810, 52903, 52904, 52905, 52906, 53101, 53102, 53201, 53202, 53301, 53302, 53400, 53505, 53506, 53507, 53508, 53509, 53510, 53511, 53603, 53604, 53605, 53606, 53700, 53801, 53802, 53803, 940001, 940002, 990002, 990100],
    '067' : [10100, 10200, 10300, 10400, 10510, 10520, 10600, 10700, 10801, 10802, 10910, 10920, 11000, 11100, 11200, 11300, 11410, 11421, 11422, 11500, 11622, 11623, 11624, 11625, 11626, 11627, 11628, 11720, 11721, 11722, 11810, 11821, 11822, 11901, 11902, 12001, 12002, 12100, 12211, 12221, 12223, 12224, 12225, 12226, 12320, 12330, 12331, 12332, 12412, 12420, 12421, 12422, 12510, 12530, 12531, 12532, 12610, 12620, 12710, 12720, 12730, 990100],
    '073' : [101, 102, 201, 202, 203, 301, 302, 401, 402, 501, 502, 600, 700, 803, 804, 805, 807, 808, 809, 902, 903, 904, 1000, 1101, 1102, 1202, 1203, 1204, 10101, 10102, 10103, 10201, 10202, 10301, 10302, 10303, 10405, 10406, 10407, 10408, 10409, 10410, 10411, 10503, 10504, 10505, 10506, 10600, 10701, 10702, 10900, 11000, 940001, 940002]
]]]></entry>
        <entry id="census_az" type="java"><![CDATA[[
    '001' : [970100,970200,970300,970400,970500,976000,977100,977200,977300,977400,977500,977600,977700,977800],
    '003' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100],
    '005' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,2400,2500],
    '007' : [980100,980200,980300,980400,980500,980600,980700,980800,980900,981000,981100,981200,981300,985000,986000],
    '009' : [991098,991100,991200,991300,991400,991500,991600,995000,995196,995197,995198],
    '011' : [990100,990200,990398,990497,990498],
    '012' : [20100,20200,20300,20400,20500,20600],
    '013' : [10100,20200,30302,30303,30304,30309,30311,30312,30313,30314,30315,30318,30319,30321,30322,30323,30325,30326,30329,30330,30331,30332,30333,30334,30335,30336,30337,30338,30339,30340,30341,30342,30343,30400,40502,40505,40506,40507,40508,40509,50600,50700,60800,60900,61002,61003,61004,61005,61006,61007,61008,61100,61200,61300,61400,71503,71504,71505,71506,71507,71508,71509,71510,71600,71700,71801,71802,71903,71904,71906,71908,71909,71910,71911,82002,82003,82004,82005,82006,82100,82201,82202,92304,92305,92306,92307,92308,92309,92400,92500,92600,92703,92704,92705,92706,92707,92708,92709,92800,92900,93000,93101,93102,103205,103206,103207,103208,103209,103210,103211,103212,103214,103215,103216,103217,103218,103302,103303,103304,103400,103501,103502,103604,103605,103606,103607,103608,103609,103700,103800,103900,104000,104100,104202,104203,104204,104205,104206,104207,104212,104214,104215,104216,104217,104218,104219,104221,104222,104223,104224,104225,104226,104300,104400,104500,104600,104700,104801,104802,104900,105001,105002,105101,105102,105103,105200,105300,105400,105500,105600,105700,105800,105900,106000,106100,106200,106300,106400,106500,106600,106700,106800,106900,107000,107100,107200,107300,107400,107500,107600,107700,107800,107900,108000,108100,108200,108300,108400,108500,108600,108700,108800,108900,109000,109100,109200,109300,109400,109500,109601,109602,109701,109702,109800,109900,110000,110100,110200,110300,110400,110500,110600,110700,110800,110900,111000,111100,111201,111202,111300,111400,111500,111600,111700,111800,111900,112000,112100,112200,112300,112400,112502,112503,112505,112506,112600,112700,112800,112900,113000,113100,113200,113300,113400,113500,113600,113700,113800,113900,114000,114100,114200,114300,114400,114500,114600,114700,114800,114900,115000,115100,115200,115300,115400,115500,115600,115700,115800,115900,116000,116100,116202,116203,116204,116300,116400,116500,116601,116602,116702,116703,116704,116705,116707,116708,116710,116711,116712,116713,116714,216802,216806,216807,216809,216812,216813,216814,216815,216816,216817,216818,216819,216901,216902,217001,217002,217101,217102,217201,217202,217300,217400,217500,217600,217700,217800,217900,218000,218100,218200,218300,318400,318501,318502,318600,318700,318800,318900,319000,319100,319200,319300,319401,319402,319403,319404,319500,319600,319702,319703,319704,319800,319902,319903,319904,319905,319906,319907,319908,320001,320002,420101,420102,420103,420202,420203,420204,420206,420207,420300,420400,420501,420502,420602,420603,420604,420702,420703,420704,420800,420901,420902,421000,421101,421102,421201,421202,421301,421302,421400,421501,421502,421601,421602,421700,421801,421802,421901,421902,422001,422002,422102,422103,422104,422105,422106,422203,422204,422205,422209,422210,422211,422212,422213,422214,422215,422216,422217,422301,422302,422304,422305,422401,422402,422501,422502,422503,422504,422506,422507,422601,422603,422604,422605,422607,422608,422609,422610,422611,522703,522708,522709,522710,522711,522712,522713,522714,522715,522716,522717,522718,522719,522720,522721,522800,522901,522902,523002,523003,523005,523006,523102,523103,523104,623200,723300],
    '015' : [950100,950200,950300,950400,950500,950600,950700,950800,950900,951000,951100,951200,951300,951400,951500,951600,951700,951800,951900,952000,952100,952200,952300,952400,952500,952600,952700,952800,952900,953000,953100,953200,953300,953400],
    '017' : [960100,960200,960300,960400,960500,960600,960700,960800,960900,961000,961100,961200,961300,961400,965000,965100,965200,965300,966000,967100,967200,967300,967400,967500,967600],
    '019' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1301,1302,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,2400,2501,2502,2601,2602,2701,2702,2800,2901,2903,2904,3001,3002,3101,3102,3200,3301,3302,3400,3501,3502,3503,3504,3600,3701,3702,3703,3800,3900,4001,4004,4008,4009,4010,4011,4012,4013,4014,4015,4017,4020,4021,4022,4023,4024,4025,4026,4027,4028,4029,4102,4103,4104,4200,4301,4305,4306,4307,4308,4309,4401,4404,4406,4407,4408,4409,4410,4504,4505,4506,4507,4508,4509,4603,4604,4607,4608,4609,4610,4611,4612,4613,4703,4704,4706,4707,4708,4709,4800,4900,5000],
    '021' : [100,200,301,302,303,304,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100],
    '023' : [996000,996100,996200,996300,996400],
    '025' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000],
    '027' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,10500,10600,10700,10900,11000,11100,11200,11300,11400,11500,11600]
 ]]]></entry>
        <entry id="census_ca" type="java"><![CDATA[[
    '001' : [400100,400200,400300,400400,400500,400600,400700,400800,400900,401000,401100,401200,401300,401400,401500,401600,401700,401799,401800,401900,401999,402000,402100,402200,402300,402400,402500,402600,402700,402800,402900,403000,403100,403200,403300,403400,403500,403600,403700,403800,403900,404000,404100,404200,404300,404400,404501,404502,404600,404700,404800,404900,405000,405100,405200,405300,405400,405500,405600,405700,405800,405900,406000,406100,406200,406300,406400,406500,406600,406700,406800,406900,407000,407100,407200,407300,407400,407500,407600,407700,407800,407900,408000,408100,408200,408300,408400,408500,408600,408700,408800,408900,409000,409100,409200,409300,409400,409500,409600,409700,409800,409900,410000,410100,410200,410300,410400,420100,420200,420300,420400,420500,420600,421100,421200,421300,421400,421500,421600,421700,421800,421900,422000,422100,422200,422300,422400,422500,422600,422700,422800,422900,423000,423100,423200,423300,423400,423500,423600,423700,423800,423900,424000,425100,426100,426200,427100,427200,427299,427300,427399,427400,427500,427599,427600,427700,427800,427900,428000,428100,428200,428300,428400,428500,428600,430100,430200,430300,430400,430500,430600,430700,430800,430900,431000,431100,431200,432100,432200,432300,432400,432500,432600,432700,432800,432900,433000,433100,433200,433300,433400,433500,433600,433700,433800,433900,434000,435101,435102,435200,435300,435400,435500,435600,435700,435800,435900,436000,436100,436200,436300,436401,436402,436500,436600,436700,436800,436900,437000,437100,437200,437300,437400,437500,437600,437700,437800,437900,438000,438100,438201,438202,438300,438400,440100,440200,440301,440302,440304,440305,440306,440307,440308,440309,440331,440332,441100,441200,441300,441400,441501,441502,441598,441600,441700,441800,441901,441902,442000,442100,442200,442300,442400,442500,442600,442700,442800,442900,443000,443100,443200,443300,444100,444200,444300,444400,444500,444600,450100,450200,450300,450400,450500,450601,450602,450603,450604,450605,450606,450607,450701,450703,450704,450721,450722,451100,451200,451300,451400,451500,451600,451700,451898,451998,452095,452096,452097,452098,452193,452194,452195,452196,452197,452198],
    '013' : [301000,302001,302002,303100,303200,304000,305000,306001,306002,307101,307102,307201,307202,307204,307205,308001,308002,309000,310000,311000,312000,313101,313102,313103,313201,313202,314101,314102,314200,314298,315000,315099,316000,317000,318000,319000,320001,320002,320099,321101,321102,321103,321200,322000,323000,324000,325000,326000,327000,328000,329000,330000,331000,332000,333100,333200,334001,334002,334003,335000,336100,336200,337100,337200,337300,338100,338201,338202,338301,338302,339000,340001,340002,341000,342000,343001,343002,343003,344000,345101,345102,345103,345105,345107,345108,345109,345198,345201,345202,346101,346102,346201,346202,347000,348000,349000,350000,351100,351200,352101,352102,352201,352202,353001,353002,354001,354002,355101,355102,355103,355200,355301,355302,355303,355304,355305,356001,356002,357000,357099,358000,358099,359101,359102,359202,359203,359204,360100,360200,361000,362000,363000,364001,364002,365001,365002,366000,367100,367200,368000,369000,370000,371000,372000,373000,374000,375000,376000,377000,378000,378099,379000,380000,381000,382000,383000,384000,385100,385200,386000,387000,388000,389100,389200,390100,390200,391000,392000],
    '041' : [101100,101200,102100,102201,103100,103200,104101,104102,104200,104300,105000,106001,106002,107000,108100,108200,109000,110100,110200,111000,112100,112200,113000,114100,114200,115000,116000,117000,118100,118200,119100,119200,120000,121100,121200,122000,123000,124100,124200,125000,126100,126200,127000,128100,128200,129000,130200,131000,132100,132200,133000],
    '075' : [10100,10200,10300,10400,10500,10600,10700,10800,10900,11000,11100,11200,11300,11400,11500,11600,11700,11800,11900,12000,12100,12200,12300,12400,12500,12600,12700,12800,12900,13000,13100,13200,13300,13400,13500,15100,15200,15300,15400,15500,15600,15700,15800,15900,16000,16100,16298,16300,16400,16500,16600,16700,16898,16900,17000,17100,17602,17698,17700,17800,17901,17902,17999,18000,20198,20298,20300,20400,20500,20600,20700,20800,20900,21000,21100,21200,21300,21400,21500,21600,21700,21800,22600,22700,22800,22900,23000,23100,23200,23300,23400,25100,25200,25300,25400,25500,25600,25700,25800,25900,26000,26100,26200,26300,26400,30101,30102,30200,30300,30400,30500,30600,30700,30800,30900,31000,31100,31200,31300,31400,32600,32700,32800,32900,33000,33100,33200,35100,35200,35300,35400,40100,40200,42600,42700,42800,45100,45200,47600,47700,47800,47900,60100,60200,60300,60400,60500,60600,60699,60700,60900,61000],
    '081' : [600100,600200,600300,600400,600500,600600,600700,600800,600900,601000,601100,601200,601300,601400,601500,601601,601602,601603,601700,601800,601900,602000,602100,602200,602300,602400,602500,602600,602700,602800,602900,603000,603100,603200,603300,603400,603500,603600,603700,603800,603900,604000,604101,604102,604200,604300,604400,604500,604600,604700,604800,604900,605000,605100,605200,605300,605400,605500,605600,605700,605800,605900,606000,606100,606200,606300,606400,606500,606600,606700,606800,606900,607000,607100,607200,607300,607400,607500,607600,607701,607702,607800,607900,608001,608002,608004,608013,608023,608100,608200,608300,608400,608501,608502,608600,608700,608800,608900,609000,609100,609200,609300,609400,609500,609601,609602,609603,609700,609800,609900,610000,610100,610200,610301,610302,610400,610500,610600,610700,610800,610900,611000,611100,611200,611300,611400,611500,611600,611700,611800,611900,612000,612198,612200,612300,612400,612598,612600,612798,612800,612900,613000,613100,613298,613300,613400,613500,613600,613700,613898,613991,613992,613993,613994,613995,613996,613997,613998],

    '053' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,10198,10201,10202,10301,10302,10400,10501,10502,10601,10602,10700,10898,10900,11000,11100,11200,11300,11402,11498,11500,11600,11700,11800,11900,12000,12100,12200,12300,12301,12401,12402,12500,12599,12600,12700,12800,12900,13000,13100,13200,13300,13400,13500,13600,13700,13800,13900,14000,14100,14200,14301,14302,14498,14598],
    '069' : [198,200,300,400,500,600,700,800,900],
    '085' : [500100,500200,500300,500400,500500,500600,500700,500800,500900,501000,501100,501200,501300,501400,501500,501600,501700,501800,501900,502000,502101,502102,502200,502300,502400,502500,502601,502602,502701,502702,502800,502901,502902,502903,502906,502907,502908,502909,502910,503001,503002,503003,503101,503103,503105,503106,503107,503108,503109,503203,503204,503205,503207,503208,503209,503210,503304,503305,503306,503311,503312,503313,503314,503315,503316,503317,503318,503319,503320,503400,503502,503503,503504,503505,503601,503602,503702,503703,503704,503705,503801,503802,503900,504000,504100,504200,504304,504305,504307,504308,504309,504310,504311,504314,504315,504407,504408,504409,504410,504411,504412,504497,504498,504503,504598,504601,504698,504700,504802,504803,504804,504901,504902,505001,505004,505097,505098,505100,505201,505202,505203,505301,505302,505303,505304,505305,505401,505402,505403,505500,505600,505700,505800,505900,506000,506101,506102,506103,506202,506203,506204,506301,506302,506304,506305,506401,506402,506501,506502,506503,506601,506603,506604,506605,506606,506701,506702,506703,506801,506802,506803,506804,506900,507000,507100,507202,507203,507205,507206,507301,507302,507401,507402,507500,507600,507701,507702,507703,507801,507803,507804,507903,507904,507905,507906,508001,508002,508101,508102,508201,508202,508301,508303,508304,508401,508402,508503,508504,508505,508506,508600,508701,508702,508703,508800,508900,509000,509102,509103,509104,509105,509201,509202,509302,509303,509304,509401,509402,509500,509600,509700,509801,509802,509901,509902,510001,510002,510100,510200,510300,510400,510500,510600,510700,510801,510802,510803,510900,511000,511100,511200,511398,511498,511598,511602,511603,511698,511701,511702,511703,511798,511898,511901,511905,511907,511909,511910,511911,511912,511997,511998,512005,512012,512014,512015,512016,512017,512018,512019,512020,512021,512022,512023,512024,512025,512026,512027,512028,512029,512030,512031,512032,512033,512097,512098,512100,512298,512303,512304,512398,512400,512502,512503,512504,512601,512602,512798,512894,512896,512897,512898,512996,512997,512998,513096,513097,513098,513191,513192,513193,513194,513195,513196,513197,513198,513282,513283,513284,513285,513286,513287,513288,513289,513290,513291,513292,513293,513294,513295,513296,513297,513298,513396,513397,513398,513495,513496,513497,513498,513592,513593,513594,513595,513596,513597,513598,513670,513671,513672,513673,513674,513675,513676,513677,513678,513679,513680,513681,513682,513683,513684,513685,513686,513687,513688,513689,513690,513691,513692,513693,513694,513695,513696,513697,513698,513797,513798,513897,513898,513998,514097,514098,514196,514197,514198],
    '087' : [100100,100200,100300,100400,100500,100600,100700,100800,100900,101000,101100,101200,101300,110100,110200,110300,110498,110500,110600,110700,120100,120200,120300,120400,120598,120600,120700,120800,120900,121098,121100,121200,121300,121400,121500,121600,121700,121800,121900,122000,122100,122200,122300,122497,122498,122598,122694,122695,122696,122697,122698,122783,122784,122785,122786,122787,122788,122789,122790,122791,122792,122793,122794,122795,122796,122797,122798,122888,122889,122890,122891,122892,122893,122894,122895,122896,122897,122898,122998,123098],

    '037' : [101100,101200,101300,101400,102101,102102,103101,103102,103200,103300,103400,104101,104102,104201,104202,104300,104401,104402,104500,104600,104701,104702,104800,106000,106102,106111,106112,106401,106402,106500,106601,106602,106603,106641,106642,106643,107000,108101,108102,108103,108104,108200,109100,109200,109300,109400,109500,109601,109602,109700,109800,111100,111201,111202,111203,111204,111301,111302,111400,113100,113202,113211,113212,113213,113231,113232,113233,113234,113301,113303,113321,113322,113401,113421,113422,115101,115102,115201,115202,115301,115302,115401,115402,117100,117200,117301,117302,117303,117401,117404,117500,119000,119100,119200,119300,119400,119700,119800,119900,120000,120101,120102,120300,120400,121000,121100,121200,121600,121800,121900,122000,122100,122200,122400,123000,123102,123201,123202,123301,123302,123400,123500,123601,123602,123700,123800,123900,124000,124101,124102,124201,124202,124300,124400,124500,124600,124700,124901,125100,125200,125300,125400,125500,125600,127101,127102,127200,127300,127400,127500,127601,127602,127700,127801,127802,127900,128100,128200,128301,128400,128500,128600,128701,128702,128800,128900,131000,131100,131200,131300,131400,131600,131700,131800,131900,132000,132100,132300,132500,132700,132900,133000,133101,134000,134101,134102,134201,134301,134302,134303,134401,134421,134422,134500,134700,134800,134901,134902,135102,135111,135112,135201,135202,135203,137000,137101,137102,137201,137301,137302,137401,137402,137501,137502,137504,138000,139000,139200,139301,139302,139303,139400,139501,139502,139600,139701,139702,139703,139801,139802,141100,141200,141301,141302,141400,141500,141600,141700,143100,143200,143300,143401,143402,143500,143601,143602,143700,143800,143901,143902,181000,181300,181400,181500,181600,183101,183102,183200,183300,183400,183500,183600,183700,183800,185100,185201,185202,185300,186100,186200,186300,186401,186402,187100,187200,187300,188100,188200,188300,189100,189200,189300,189400,189500,189600,189701,189702,189800,189901,189902,190100,190200,190301,190400,190500,190700,190800,190901,190902,191000,191100,191201,191202,191300,191400,191500,191600,191700,191800,191900,192000,192300,192400,192500,192600,192700,194100,194200,194300,194400,194500,195100,195200,195300,195400,195500,195600,195700,195801,195802,195900,197100,197200,197300,197400,197500,197600,197700,199000,199100,199201,199202,199300,199400,199700,199800,199900,201100,201200,201301,201302,201401,201402,201501,201502,201600,201700,203100,203200,203300,203400,203500,203600,203700,203800,203900,204100,204200,204300,204400,204500,204600,204700,204800,204900,205100,206000,206200,206300,207100,207300,207400,207500,207700,207900,208000,208300,208400,208500,208600,208700,208800,208901,208902,209101,209102,209200,209300,209401,209402,209403,209500,209800,210000,211000,211100,211200,211300,211400,211500,211701,211702,211801,211802,211900,212100,212201,212202,212301,212302,212400,212500,212600,212700,212800,212900,213100,213201,213202,213300,213401,213402,214000,214100,214400,214500,214600,214700,214800,214900,215100,216100,216200,216300,216400,216700,216800,216900,217000,217100,217200,218100,218200,218300,218400,218500,218600,218700,218800,218900,219000,219300,219500,219700,219800,219900,220000,220100,221100,221200,221301,221302,221400,221500,221600,221700,221800,221900,222000,222100,222200,222500,222600,222700,224000,224200,224300,224400,224600,224700,226000,226400,226700,227000,228100,228200,228300,228400,228500,228600,228700,228800,228900,229100,229200,229300,229400,231100,231200,231300,231400,231500,231600,231700,231800,231900,232100,232200,232300,232400,232500,232600,232700,232800,234000,234200,234300,234500,234600,234700,234800,234900,235100,235201,235202,236000,236100,236201,236202,236400,237100,237200,237300,237400,237500,237600,237700,237800,237900,238000,238100,238200,238300,238400,239200,239300,239500,239600,239700,239800,240000,240200,240300,240400,240500,240600,240700,240800,240900,241000,241100,241200,241300,241400,242000,242100,242200,242300,242600,242700,243000,243100,261101,261102,261200,262100,262200,262301,262302,262303,262400,262500,262601,262602,262701,262702,262800,264000,264101,264301,264302,265100,265200,265301,265302,265400,265500,265600,265700,267100,267200,267300,267401,267402,267501,267502,267600,267700,267800,267900,269000,269100,269300,269500,269600,269700,269800,269901,269902,270100,270200,270300,271100,271200,271300,271400,271500,271600,271701,271702,271801,271802,271900,272100,272200,272301,272302,273100,273200,273300,273400,273500,273600,273700,273800,273900,274100,274200,275100,275200,275302,275311,275312,275400,275500,275600,276000,276100,276400,276500,276601,276602,277000,277100,277200,277400,278000,278100,291100,291200,291300,292000,293201,293202,293301,293302,293303,294100,294200,294300,294400,294500,294600,294700,294800,294900,294999,295100,295199,296100,296199,296200,296299,296300,296400,296500,296600,296900,297000,297100,297199,297200,297300,297400,297500,297600,300100,300200,300300,300400,300500,300600,300701,300702,300800,300900,301000,301100,301201,301202,301300,301400,301500,301601,301602,301700,301800,301900,302001,302002,302101,302102,302200,302300,302400,302501,302502,310100,310200,310300,310400,310500,310600,310700,310800,310900,311000,311100,311200,311300,311400,311500,311600,311700,311800,320000,320100,320200,320300,400201,400202,400301,400302,400401,400402,400500,400601,400602,400800,400900,401001,401002,401101,401102,401201,401202,401203,401302,401311,401312,401500,401601,401602,401603,401701,401702,401800,401901,401902,402000,402101,402102,402200,402301,402302,402401,402402,402403,402404,402501,402502,402600,402701,402702,402800,402901,402902,403000,403200,403302,403311,403312,403313,403314,403315,403400,403500,403600,403701,403721,403722,403801,403802,403901,403902,404000,404100,404200,404300,404400,404500,404600,404700,404800,404900,405000,405100,405200,405300,405400,405500,405600,405700,405800,405900,406000,406101,406102,406200,406300,406402,406411,406412,406500,406601,406602,406700,406800,406900,407000,407101,407102,407200,407300,407400,407500,407600,407700,407800,407900,408001,408002,408101,408102,408131,408132,408201,408202,408211,408212,408301,408302,408303,408401,408402,408501,408502,408503,408601,408621,408622,408623,408624,408625,408701,408721,408722,408800,430001,430002,430101,430102,430200,430301,430302,430400,430501,430502,430600,430701,430721,430722,430801,430802,430803,430900,431001,431002,431100,431200,431300,431400,431500,431600,431700,431800,431900,432000,432101,432102,432200,432300,432400,432500,432600,432700,432800,432900,433100,433200,433300,433400,433500,433601,433602,433700,433800,433900,434000,460000,460100,460200,460301,460302,460400,460501,460502,460600,460700,460800,460900,461000,461100,461200,461300,461400,461500,461600,461700,461900,462000,462100,462200,462300,462400,462500,462600,462700,462800,462900,463000,463101,463102,463200,463300,463400,463500,463600,463700,463800,463900,464000,464100,464200,480002,480011,480012,480101,480102,480200,480300,480400,480500,480600,480701,480702,480801,480802,480900,481000,481100,481201,481202,481300,481400,481500,481601,481602,481702,481711,481712,481800,481901,481902,482001,482002,482101,482102,482201,482202,482301,482302,482401,482402,482501,482521,482522,482600,482700,482800,500100,500201,500202,500300,500401,500402,500500,500600,500700,500800,500900,501000,501200,501300,501400,501501,501502,501600,501700,501800,501900,502001,502002,502100,502200,502300,502400,502500,502601,502602,502700,502800,502901,502902,503000,503101,503102,503201,503202,503301,503302,503401,503402,503501,503502,503601,503602,503701,503702,503703,503801,503802,503901,503902,504001,504002,504101,504102,530001,530002,530101,530102,530201,530202,530300,530400,530500,530600,530700,530800,530900,531000,531100,531201,531202,531301,531302,531501,531502,531601,531602,531701,531702,531800,531901,531902,532000,532100,532200,532301,532302,532400,532500,532601,532602,532700,532800,532900,533000,533101,533102,533200,533300,533400,533500,533600,533700,533801,533802,533900,534000,534100,534200,534300,534401,534402,534500,534700,534801,534802,534900,535000,535101,535102,535200,535300,535400,535500,535601,535602,535700,535801,535802,535900,536000,536100,536200,540000,540101,540102,540200,540300,540400,540500,540600,540700,540800,540901,540902,541001,541002,541100,541200,541300,541400,541500,541601,541602,541700,541800,542000,542101,542102,542200,542401,542402,542500,542600,542700,542800,542900,543000,543100,543200,543301,543303,543321,543322,543400,543501,543502,543503,543601,543602,543603,543604,543701,543702,543703,543801,543802,543901,543902,544000,550000,550100,550200,550300,550400,550500,550600,550700,550800,550900,551000,551100,551200,551300,551400,551500,551600,551700,551800,551900,552000,552100,552200,552300,552400,552600,552700,552800,552900,553000,553100,553200,553300,553400,553500,553600,553700,553800,553900,554000,554100,554200,554300,554401,554402,554511,554512,554513,554514,554515,554516,554517,554518,554519,554521,554522,554600,554700,554801,554802,554900,555000,555102,555198,555202,555211,555212,570001,570002,570003,570100,570201,570202,570301,570302,570400,570500,570600,570701,570702,570800,570901,570902,571000,571101,571102,571200,571300,571400,571501,571502,571600,571700,571800,571900,572001,572002,572100,572201,572202,572300,572400,572500,572600,572700,572800,572900,573000,573100,573201,573202,573300,573400,573500,573600,573700,573800,573901,573902,574000,574100,574201,574202,574300,574400,574500,574601,574602,574700,574800,574901,574902,575001,575002,575100,575200,575300,575400,575500,575600,575699,575700,575799,575800,575900,576000,576100,576200,576300,576400,576500,576600,576700,576800,576900,577000,577100,577200,577300,577400,577501,577502,577601,577602,577603,577699,599000,599100,600100,600201,600202,600301,600302,600400,600501,600502,600601,600602,600701,600702,600801,600802,600902,600911,600912,601001,601002,601100,601202,601211,601212,601301,601302,601303,601401,601402,601500,601600,601700,601800,601900,602001,602002,602101,602102,602200,602301,602302,602401,602402,602501,602502,602503,602600,602700,602800,602900,603001,603002,603100,603200,603300,603400,603500,603600,603701,603702,603800,603900,604000,604100,609900,620000,620099,620100,620200,620301,620302,620303,620400,620501,620521,620522,620601,620602,620701,620702,620800,620901,620902,621001,621002,621100,621201,621202,621301,621321,621322,621400,650001,650002,650101,650102,650200,650300,650400,650501,650502,650601,650602,650603,650701,650702,650800,650901,650902,651001,651002,651101,651102,651201,651221,651222,651301,651302,651400,670001,670002,670003,670100,670201,670202,670301,670321,670322,670402,670411,670412,670500,670600,670701,670702,700100,700200,700300,700400,700500,700600,700700,700800,700901,700902,701000,701100,701201,701202,701301,701302,701400,701501,701502,701601,701602,701701,701702,701801,701802,701900,702000,702100,702201,702202,702300,702400,702500,702600,702700,702801,702802,702803,702900,702999,703001,703002,703100,703200,800100,800200,800301,800321,800322,800401,800402,800501,800502,900100,900200,900300,900500,900601,900602,900603,900701,900702,900801,900802,900900,901001,901002,901100,901201,901202,910000,910100,910200,910300,910400,910500,910600,910701,910702,910801,910802,910900,911000,920003,920011,920012,920013,920021,920022,920023,920024,920025,920101,920102,920200,920303,920311,920312,920313,920321,920322,920324,920325,930000,930100,930200],

    '003' : [10000,20098,30096,30097,30098],
    '005' : [198,200,300,400,500],
    '007' : [100,200,300,400,500,601,602,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,2400,2500,2600,2700,2800,2900,3000,3100,3200,3300,3400,3500,3600],
    '009' : [100,200,300,400,500],
    '011' : [100,200,300,400,500],
    '015' : [100,199,200],
    '017' : [30101,30102,30200,30300,30401,30402,30501,30502,30503,30601,30602,30603,30700,30801,30802,30803,30804,30901,30902,31000,31100,31200,31301,31302,31401,31402,31403,31501,31502,31698,31898,31998],
    '019' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1403,1404,1405,1406,1500,1600,1700,1800,1900,2000,2100,2200,2300,2400,2500,2600,2700,2800,2901,2902,3000,3101,3102,3200,3300,3400,3500,3600,3700,3801,3802,3803,3900,4000,4100,4201,4202,4204,4205,4301,4302,4303,4402,4404,4498,4503,4504,4505,4506,4600,4701,4702,4800,4900,5000,5100,5201,5202,5301,5302,5303,5403,5404,5405,5406,5407,5408,5501,5502,5602,5603,5604,5701,5702,5703,5704,5801,5802,5803,5901,5902,6000,6100,6200,6300,6401,6402,6403,6500,6601,6602,6700,6801,6802,6900,7001,7002,7100,7200,7300,7400,7500,7600,7700,7800,7998,8000,8100,8200,8300,8401,8402,8598,8697,8698,8798],
    '021' : [10100,10200,10300,10400,10500],
    '023' : [100,199,200,300,400,500,600,700,800,900,1000,1100,1200,10100,10200,10300,10400,10500,10600,10700,10800,10900,11000,11100,11200,11300],
    '025' : [10100,10200,10300,10400,10500,10600,10700,10800,10900,11000,11100,11201,11202,11300,11400,11500,11600,11700,11801,11802,11803,11900,12000,12100,12200,12301,12302,12400,12500],
    '027' : [100,200,300,400,500,600,700],
    '029' : [101,102,200,300,400,500,501,502,600,700,800,902,903,904,905,906,907,908,909,910,1000,1101,1102,1103,1200,1300,1400,1500,1600,1700,1801,1802,1901,1902,2000,2100,2200,2301,2302,2400,2500,2600,2700,2802,2803,2804,2805,2806,2807,2808,2809,2810,2900,3000,3103,3111,3112,3113,3114,3115,3121,3122,3201,3202,3302,3303,3304,3400,3500,3600,3700,3801,3802,3900,4000,4100,4200,4300,4400,4500,4600,4700,4800,4901,4902,5000,5102,5201,5202,5300,5401,5402,5403,5404,5501,5503,5504,5505,5506,5600,5700,5800,5900,6001,6002,6100,6200,6300,6400],
    '031' : [100,200,300,401,402,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700],
    '033' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300],
    '035' : [40100,40200,40300,40400,40500,40600],
    '039' : [102,103,104,105,200,300,400,502,503,504,505,601,602,700,800,900,1000,1198,1298],
    '043' : [100,200,300,400],
    '045' : [10100,10200,10300,10400,10500,10599,10600,10700,10800,10900,11000,11100,11200,11300,11400,11500,11600,11700,11800],
    '047' : [100,200,301,302,400,501,502,600,700,800,900,1001,1002,1100,1200,1300,1400,1500,1600,1700,1800,1998,2000,2198,2200,2301,2302,2400,2475,2476,2477,2478,2479,2480,2481,2482,2483,2484,2485,2486,2487,2488,2489,2490,2491,2492,2493,2494,2495,2496,2497,2498,30100],
    '049' : [10100,10200],
    '051' : [100,200],
    '055' : [200100,200200,200300,200400,200500,200600,200700,200800,200900,201000,201100,201200,201300,201400,201500,201600,201700,201800,201900,202000],
    '057' : [101,102,103,200,300,401,402,501,502,600,701,702,800,900,1000,1100,1201,1202],
    '059' : [1101,1102,1103,1200,1301,1303,1304,1401,1402,1403,1404,1501,1502,1503,1504,1505,1601,1602,1703,1704,1705,1706,1801,1802,1901,1902,1903,11000,11101,11102,11200,11300,11495,11496,11497,11498,11501,11502,11601,11602,11707,11708,11709,11710,11711,11712,11714,11715,11716,11717,11718,11719,11720,21802,21807,21809,21810,21811,21812,21813,21814,21815,21816,21817,21818,21819,21903,21904,21905,21909,21910,21911,21912,21913,21914,21998,32002,32003,32006,32011,32012,32013,32014,32015,32016,32017,32018,32019,32020,32021,32022,32023,32024,32025,32026,32298,42103,42105,42106,42107,42108,42109,42110,42201,42203,42204,42305,42306,42307,42308,42310,42311,42312,42313,42315,42316,42317,42318,42319,42320,42321,42322,42323,52404,52405,52408,52410,52411,52412,52413,52414,52415,52416,52501,52502,52505,52506,52511,52512,52513,52514,52515,52516,52517,52518,52595,52596,52597,52598,62604,62605,62607,62610,62611,62612,62613,62614,62617,62618,62619,62620,62621,62622,62623,62624,62625,62626,62627,62628,62629,62630,62631,62701,62702,62799,62800,62900,63004,63005,63006,63007,63008,63009,63010,63101,63102,63103,63201,63202,63300,63400,63500,63601,63602,63603,63700,63802,63803,63805,63806,63807,63808,63902,63903,63904,63905,63906,63907,63908,74003,74004,74005,74006,74101,74102,74103,74104,74106,74107,74200,74300,74403,74404,74405,74406,74501,74502,74601,74602,74701,74702,74801,74802,74803,74805,74806,74901,74902,75001,75002,75100,75201,75202,75301,75302,75303,75401,75403,75404,75405,75504,75505,75506,75507,75508,75509,75602,75603,75604,75605,75701,75702,75703,75802,75804,75805,75806,75807,75808,75809,75810,75811,75812,75901,75902,76000,76101,76102,76103,76201,76202,76204,76205,76206,76207,76297,76298,86301,86303,86304,86305,86306,86402,86404,86405,86406,86407,86501,86502,86601,86602,86701,86702,86801,86802,86803,86901,86902,86903,87001,87002,87101,87102,87103,87104,87200,87300,87401,87402,87403,87501,87503,87504,87601,87602,87701,87703,87704,87801,87802,87803,87805,87806,87901,87902,88001,88002,88101,88104,88105,88106,88107,88201,88202,88203,88301,88302,88401,88402,88403,88501,88502,88601,88602,88701,88702,88801,88802,88901,88902,88903,88904,88905,89001,89002,89101,89102,89104,89105,99201,99202,99203,99204,99212,99214,99215,99216,99217,99220,99222,99223,99224,99225,99226,99227,99228,99229,99230,99231,99232,99233,99234,99235,99237,99238,99239,99240,99241,99242,99243,99244,99245,99246,99302,99305,99306,99307,99308,99309,99402,99404,99405,99406,99407,99408,99410,99411,99412,99413,99415,99416,99417,99502,99504,99505,99506,99507,99508,99509,99510,99601,99602,99603,99604,99605,99701,99702,99703,99801,99802,99803,99902,99903,99904,99905,99906,110001,110003,110004,110005,110006,110007,110008,110010,110011,110012,110013,110102,110104,110106,110108,110109,110110,110111,110112,110113,110114,110115,110116,110201,110202,110203,110301,110302,110303,110304,110401,110402,110500,110601,110603,110604,110605,110798],
    '061' : [20101,20102,20103,20104,20105,20106,20107,20200,20300,20400,20500,20601,20602,20603,20701,20702,20703,20800,20900,21001,21002,21101,21102,21200,21301,21302,21400,21501,21502,21600,21801,21802,21901,21902,22001,22002],
    '063' : [100,200,300,400,598],
    '065' : [30100,30200,30300,30400,30500,30600,30700,30800,30900,31000,31100,31200,31300,31401,31402,31501,31502,31600,31700,40100,40200,40300,40400,40500,40601,40602,40700,40802,40803,40804,40805,40900,41000,41100,41200,41300,41401,41402,41500,41600,41701,41702,41801,41802,41901,41902,42001,42002,42100,42201,42202,42203,42204,42300,42400,42501,42502,42503,42601,42602,42603,42702,42703,42705,42706,42707,42800,42900,43000,43198,43201,43202,43203,43204,43205,43301,43302,43303,43401,43402,43501,43502,43600,43700,43802,43803,43805,43806,43900,44000,44100,44200,44300,44401,44402,44403,44501,44502,44600,44700,44802,44803,44901,44902,44903,45000,45102,45103,45104,45201,45202,45300,45400,45500,45601,45602,45701,45702,45800,45900,46000,46100,46200,46398],
    '067' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,2400,2500,2600,2700,2800,2900,3000,3101,3102,3201,3202,3300,3400,3501,3502,3600,3700,3800,3900,4001,4004,4005,4006,4007,4008,4100,4201,4202,4203,4300,4401,4402,4500,4601,4602,4700,4801,4802,4903,4904,4905,4906,5001,5002,5101,5102,5103,5201,5202,5203,5300,5402,5403,5404,5502,5503,5504,5601,5605,5606,5701,5702,5801,5803,5804,5901,5902,6001,6002,6100,6201,6202,6300,6400,6500,6600,6701,6702,6800,6900,7001,7003,7004,7005,7006,7007,7100,7201,7202,7203,7204,7300,7402,7403,7404,7406,7408,7410,7411,7412,7413,7501,7502,7601,7602,7701,7702,7801,7802,7901,7903,7904,8005,8006,8007,8008,8009,8010,8102,8107,8111,8112,8113,8114,8115,8116,8117,8118,8119,8120,8121,8122,8123,8124,8125,8201,8202,8203,8204,8206,8207,8300,8301,8401,8402,8598,8698,8700,8800,8903,8904,8905,8907,8908,9001,9002,9003,9103,9104,9105,9106,9107,9108,9109,9110,9200,9303,9304,9305,9306,9307,9308,9309,9310,9401,9402,9500,9601,9602,9603,9604,9605,9700,9800],
    '071' : [101,102,201,202,301,302,400,500,601,602,700,804,805,806,807,808,809,810,811,812,900,1000,1100,1200,1301,1302,1400,1500,1600,1701,1702,1703,1801,1802,1803,1900,2001,2002,2003,2004,2005,2006,2100,2201,2202,2300,2400,2500,2600,2700,2800,2900,3000,3100,3200,3300,3400,3501,3502,3601,3602,3700,3800,3900,4000,4100,4200,4300,4400,4501,4502,4601,4602,4700,4800,4900,5000,5100,5200,5300,5400,5500,5600,5700,5800,5900,6000,6100,6200,6300,6400,6500,6600,6700,6800,6900,7000,7101,7102,7103,7200,7300,7403,7404,7405,7406,7500,7601,7602,7700,7800,7900,8001,8002,8100,8200,8301,8302,8401,8402,8403,8404,8500,8600,8701,8702,8800,8901,9102,9103,9104,9200,9300,9400,9500,9603,9704,9705,9706,9800,9901,9902,9903,10003,10004,10005,10006,10007,10008,10300,10402,10403,10405,10406,10407,10408,10409,10500,10600,10700,10800,10900,11000,11100,11200,11300,11400,11500,11600,11700,11800,11900,12000,12100],
    '073' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2001,2002,2100,2200,2300,2400,2501,2502,2600,2701,2702,2703,2704,2705,2706,2801,2802,2901,2902,2903,3001,3002,3101,3102,3103,3105,3107,3108,3109,3110,3201,3202,3203,3204,3207,3208,3209,3210,3300,3401,3402,3500,3600,3800,3899,3900,4000,4100,4200,4300,4400,4500,4600,4700,4800,4900,5000,5099,5100,5199,5200,5300,5400,5500,5600,5700,5800,5899,5900,6000,6100,6200,6299,6300,6400,6500,6600,6800,6900,7001,7002,7100,7200,7301,7302,7400,7500,7600,7700,7800,7901,7902,8001,8002,8101,8102,8200,8301,8303,8305,8306,8307,8310,8311,8312,8313,8314,8315,8316,8317,8318,8319,8320,8321,8322,8324,8325,8326,8501,8502,8503,8504,8505,8506,8507,8509,8510,8511,8597,8598,8600,8701,8702,8800,8901,8902,9000,9101,9102,9103,9104,9105,9201,9202,9301,9303,9304,9400,9501,9502,9503,9504,9602,9603,9604,9703,9704,9705,9706,9801,9802,9804,9805,9901,9902,9999,10001,10002,10003,10004,10005,10007,10008,10009,10103,10104,10106,10107,10108,10109,10200,10300,10400,10500,10601,10602,10603,10700,10800,10900,11000,11100,11200,11300,11399,11400,11499,11500,11600,11700,11800,11900,12000,12100,12200,12301,12302,12401,12402,12500,12600,12700,12800,12900,13000,13101,13102,13201,13203,13204,13301,13302,13303,13304,13305,13401,13405,13406,13407,13408,13409,13503,13504,13505,13506,13601,13603,13604,13700,13800,13901,13903,13904,13905,14001,14002,14100,14200,14300,14400,14500,14600,14700,14801,14803,14804,14900,15000,15100,15200,15301,15302,15402,15403,15404,15501,15502,15601,15602,15701,15702,15800,15900,16000,16100,16201,16202,16300,16401,16402,16501,16502,16602,16603,16605,16606,16607,16608,16609,16610,16611,16701,16702,16802,16804,16806,16807,16808,16809,16900,17006,17007,17008,17009,17010,17011,17014,17015,17016,17018,17019,17020,17021,17022,17023,17026,17027,17028,17097,17098,17103,17104,17105,17106,17200,17302,17303,17304,17401,17403,17404,17500,17601,17602,17700,17801,17803,17805,17806,17807,17808,17900,18000,18100,18200,18300,18400,18501,18504,18507,18508,18597,18598,18601,18603,18605,18606,18607,18700,18801,18802,18803,18901,18902,19000,19101,19103,19104,19105,19202,19203,19204,19300,19401,19402,19500,19601,19602,19701,19702,19801,19802,19901,19902,19903,20005,20006,20007,20008,20009,20010,20011,20012,20101,20103,20104,20202,20204,20205,20297,20298,20301,20302,20303,20401,20402,20403,20500,20601,20698,20701,20703,20705,20706,20801,20804,20897,20898,20901,20902,21000,21100,21201,21202,21301,21302],
    '077' : [100,200,300,400,500,600,700,800,899,900,1000,1101,1102,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,2400,2500,2600,2701,2702,2800,2900,3103,3106,3108,3109,3110,3111,3112,3113,3114,3203,3205,3207,3208,3209,3210,3211,3212,3303,3304,3305,3306,3307,3403,3404,3405,3406,3407,3408,3409,3410,3500,3601,3602,3700,3800,3900,4000,4101,4102,4201,4202,4302,4303,4305,4306,4401,4402,4500,4600,4700,4701,4702,4800,4901,4998,5001,5002,5101,5106,5108,5109,5110,5111,5112,5113,5114,5115,5116,5117,5118,5119,5120,5202,5203,5204,5205,5302,5303,5305,5306,5402,5500],
    '079' : [10000,10100,10200,10300,10400,10500,10599,10600,10699,10701,10702,10800,10900,11000,11100,11200,11300,11400,11500,11600,11699,11700,11800,11900,12000,12100,12200,12300,12400,12500,12600,12701,12702,12800],
    '083' : [101,102,103,200,300,400,501,502,600,700,801,802,900,1000,1100,1202,1203,1204,1299,1301,1302,1400,1500,1601,1602,1701,1702,1800,1901,1903,1905,1906,2003,2005,2006,2007,2008,2009,2010,2100,2203,2205,2206,2207,2208,2302,2303,2304,2402,2403,2404,2500,2601,2602,2702,2703,2705,2706,2707,2708,2802,2805,2806,2807,2808,2809,2902,2903,2904,2906,2907,2909,2910,2911,2912,2913,2914,2999,3001,3002,3004,3005],
    '089' : [10100,10200,10300,10400,10500,10600,10700,10800,10900,11000,11100,11200,11300,11400,11500,11600,11700,11800,11900,12000,12100,12200,12300,12400,12500,12600,12700,12897,12898],
    '091' : [10000],
    '093' : [100,200,300,400,500,600,700,800,900,1000,1100,1200],
    '095' : [250101,250102,250200,250300,250400,250501,250502,250601,250603,250701,250702,250800,250899,250900,251000,251100,251200,251300,251400,251500,251600,251701,251702,251801,251802,251901,251902,251903,252000,252101,252102,252199,252201,252202,252301,252305,252306,252307,252308,252309,252398,252401,252402,252501,252502,252604,252605,252606,252607,252608,252609,252702,252703,252704,252705,252706,252707,252800,252902,252903,252904,252906,252907,253000,253101,253102,253103,253105,253201,253202,253203,253398,253400,253500],
    '097' : [150100,150200,150301,150302,150400,150500,150601,150602,150603,150604,150700,150800,150900,151000,151100,151201,151202,151301,151302,151303,151304,151400,151501,151502,151600,151700,151800,151900,152000,152100,152200,152202,152300,152400,152501,152600,152700,152800,152901,152902,153001,153002,153003,153004,153100,153200,153300,153401,153402,153500,153600,153701,153702,153800,153900,154000,154100,154200,154300,154399],
    '099' : [100,201,202,203,300,401,402,501,502,503,504,505,506,601,602,603,700,801,803,804,805,904,905,906,907,908,909,910,1001,1002,1100,1200,1300,1400,1500,1601,1602,1700,1800,1900,2002,2003,2004,2005,2100,2200,2300,2400,2500,2601,2602,2700,2800,2901,2902,3000,3100,3200,3398,3498,3500,3602,3603,3604,3605,3700,3801,3802,3803,3903,3904,3905,3906,3907,4176,4177,4178,4179,4180,4181,4182,4183,4184,4185,4186,4187,4188,4189,4190,4191,4192,4193,4194,4195,4196,4197,4198,4298],
    '101' : [50100,50200,50300,50400,50501,50502,50601,50602,50700,50800,50900,51000,51100],
    '103' : [100,200,300,400,500,600,700,800,900,1000,1100,1298],
    '105' : [100,200,398,400],
    '107' : [100,200,302,398,400,500,600,700,800,900,1001,1002,1100,1200,1300,1400,1500,1600,1701,1702,1800,1900,2001,2002,2003,2004,2005,2100,2200,2301,2302,2400,2500,2600,2700,2800,2901,2902,3000,3100,3200,3300,3400,3500,3600,3700,3800,3900,4000,4100,4200,4300,4400,4500],
    '109' : [1100,1200,2198,2200,3198,3200,4100,4200,5100,5200],
    '111' : [100,200,300,400,500,600,700,800,900,1001,1002,1100,1201,1202,1204,1205,1300,1400,1502,1503,1504,1505,1601,1602,1700,1800,1900,2000,2102,2200,2300,2400,2500,2600,2700,2801,2802,2900,3001,3002,3100,3200,3300,3401,3402,3500,3603,3604,3605,3606,3700,3800,3900,4000,4100,4200,4301,4302,4400,4500,4501,4502,4600,4701,4702,4703,4900,5001,5002,5100,5201,5202,5301,5302,5401,5402,5501,5502,5600,5700,5800,5901,5902,5904,5905,5906,5907,6000,6100,6200,6301,6302,6400,6500,6600,6700,6800,6900,7000,7100,7201,7202,7300,7401,7402,7501,7502,7503,7504,7505,7601,7602,7603,7700,7800,7901,7902,8001,8002,8003,8101,8200,8202,8302,8303,8304,8401,8402,8501,8502],
    '113' : [10101,10102,10201,10203,10204,10300,10400,10501,10503,10504,10505,10506,10602,10603,10604,10701,10703,10704,10800,10901,10902,11001,11002,11100,11202,11203,11204,11300,11400,11500,11698],
    '115' : [40100,40200,40300,40400,40500,40600,40700,40800,40900,40901,40902,41000,41100]
 ]]]></entry>
        <entry id="census_ct" type="java"><![CDATA[[
    '001' : [10101,10102,10201,10202,10300,10400,10500,10600,10700,10800,10900,11000,11100,11200,11300,20100,20200,20300,20400,20500,20600,20700,20800,20900,21000,21100,21200,21300,21400,21500,21600,21700,21800,21900,22000,22100,22200,22300,22400,30100,30200,30300,30400,30500,35100,35200,35300,35400,42500,42600,42700,42800,42900,43000,43100,43200,43300,43400,43500,43600,43700,43800,43900,44000,44100,44200,44300,44400,44500,44600,45100,45200,45300,45400,50100,50200,50300,50400,50500,50600,55100,55200,60100,60200,60300,60400,60500,60600,60700,60800,60900,61000,61100,61200,61300,61400,61500,61600,70100,70200,70300,70400,70500,70600,70700,70800,70900,71000,71100,71200,71300,71400,71500,71600,71700,71800,71900,72000,72100,72200,72300,72400,72500,72600,72700,72800,72900,73000,73100,73200,73300,73400,73500,73600,73700,73800,73900,74000,74100,74200,74300,74400,80100,80200,80300,80400,80500,80600,80700,80800,80900,81000,81100,81200,81300,90100,90200,90300,90400,90500,90600,90700,100100,100200,100300,105100,105200,110100,110200,110301,110302,110400,110500,110600,200100,200200,200301,200302,205100,205200,205300,210100,210200,210300,210400,210500,210600,210700,210800,210900,211000,211100,211200,211300,211400,220100,220200,220300,230100,230200,230300,230400,230500,230600,240100,240200,245100,245200,245300,245400,245500,245600,257100],
    '003' : [330100,400100,400200,400300,405100,405200,405300,405400,405500,405600,405700,405800,405900,406001,406002,406100,410100,415300,415400,415500,415600,415700,415800,415900,416000,416100,416200,416300,416400,416500,416600,416700,416800,417100,417200,417300,417400,417500,420400,420500,420600,420700,430100,430201,430202,430203,430301,430302,430400,430500,430601,430602,460100,460201,460202,460300,462101,462102,462201,462202,464101,464102,466101,466102,466201,466202,466300,466400,468101,468102,470100,471100,471200,471300,471400,471500,473100,473400,473501,473502,473601,473602,473700,473800,476100,476200,476300,477101,477102,477200,480100,480200,480300,480400,480500,480600,480700,480800,480900,481000,481100,481200,481300,484100,484200,487100,487200,487300,487400,487500,490100,490200,490301,490302,492100,492200,492300,492400,492500,492600,494100,494201,494202,494300,494400,494500,494600,496100,496200,496300,496400,496500,496600,496700,496800,496900,497000,497100,497200,497300,497400,497500,497600,497700,500100,500200,500300,500400,500500,500600,500700,500800,500900,501000,501100,501200,501300,501400,501500,501600,501700,501800,501900,502000,502100,502200,502300,502400,502500,502600,502700,502800,502900,503000,503100,503200,503300,503400,503500,503600,503700,503800,503900,504000,504100,504200,504300,504400,504500,504600,504700,504800,504900,510100,510200,510300,510400,510500,510600,510700,510800,510900,511000,511100,511200,511300,511400,514100,514200,514300,514400,514500,514600,514700,514800,514900,515000,515101,515102,515200,520100,520201,520202,520300,520400,520501,520502,524100],
    '005' : [250100,253100,253200,253300,253400,253500,260200,261100,262100,262200,263200,265100,266100,267100,268100,290100,293100,296100,298300,298400,300100,300400,300500,303100,306100,308100,310100,310200,310300,310400,310500,310601,310602,310700,310801,310802,320100,320200,320300,342100,349100,349200,360100,360200,360300,360400,362100,368100,425300,425400,425500],
    '007' : [541100,541200,541300,541400,541500,541600,541700,541800,541900,542000,542100,542200,550100,550200,560100,560200,570100,570200,570300,580100,585100,590100,595100,600100,610100,610200,610300,610400,620100,630100,640100,670100,670200,680100],
    '009' : [120100,120200,125100,125200,125300,125400,130100,130200,140100,140200,140300,140400,140500,140600,140700,140800,140900,141000,141100,141200,141300,141400,141500,141600,141700,141800,141900,142000,142100,142200,142300,142400,142500,142601,142602,142700,142800,142899,150100,150200,150300,150400,150500,150600,150700,150800,150900,151000,151100,151200,154100,154200,154300,154400,154500,154600,154700,154800,154900,155000,155100,157100,157200,157300,157400,160100,160200,161100,165100,165200,165300,165400,165500,165600,165700,165801,165802,165900,166001,166002,167100,167200,167300,170101,170102,170201,170202,170300,170400,170500,170600,170700,170800,170900,171000,171100,171200,171300,171400,171500,171600,171700,175100,175200,175300,175400,175500,175600,175700,175800,175900,176000,180100,180200,180300,180400,180500,180601,180602,184100,184200,184300,184400,184500,184600,184700,186100,186200,190100,190200,190301,190302,190303,194100,194201,194202,341100,343100,343200,343300,343400,344100,344200,345100,345201,345202,345300,345400,346100,347100,347200,348102,348111,348121,350100,350200,350300,350400,350500,350600,350700,350800,350900,351000,351100,351200,351300,351400,351500,351600,351700,351800,351900,352000,352100,352200,352300,352400,352500,352600,352700,352800,361100,361200,361300],
    '011' : [650100,660101,660102,690100,690199,690200,690299,690300,690400,690500,690600,690699,690700,690799,690800,690900,693300,693400,693500,693600,693700,695100,695201,695202,696100,696200,696300,696400,696500,696600,696700,696800,696900,697000,700100,700200,701100,701200,702100,702200,702300,702400,702500,702599,702600,702700,702800,702900,703000,703100,703199,705100,705200,705300,705400,707100,708100,709100,709200,710100,711100,712100,713100,714101,714102,715100,716100,716200,870100],
    '013' : [526100,528100,529100,530100,530200,530301,530302,530400,530500,530600,533101,533102,535100,535200,538100,538201,538202,840100,850100,850200,860100,881100,881200,881300,881400,881500,890100,890200,896100],
    '015' : [800100,800200,800300,800400,800500,815000,820000,825000,830100,900100,900200,901100,902200,902500,903100,903200,904100,904400,904500,905100,906100,907100,907200,907300,908100]
 ]]]></entry>
        <entry id="census_ga" type="java"><![CDATA[[
    '063' : [40100,40200,40301,40302,40303,40304,40305,40401,40402,40403,40405,40406,40503,40504,40505,40506,40507,40508,40603,40604,40605,40606,40607,40608],
    '067' : [30198,30203,30204,30205,30206,30207,30302,30307,30309,30310,30311,30312,30313,30314,30315,30316,30317,30318,30319,30320,30321,30401,30402,30404,30405,30406,30501,30502,30503,30600,30700,30800,30901,30902,30903,31001,31002,31003,31101,31103,31105,31106,31107,31108,31109,31202,31203,31204,31301,31302,31304,31305,31403,31404,31498,31501,31502,31697,31698],
    '089' : [20100,20200,20300,20400,20500,20600,20700,20800,20900,21100,21202,21204,21205,21207,21208,21209,21210,21211,21212,21301,21302,21303,21304,21401,21402,21403,21404,21500,21601,21602,21603,21702,21703,21704,21805,21806,21808,21809,21810,21898,21902,21903,21904,21905,22001,22002,22004,22005,22100,22200,22301,22302,22401,22402,22403,22500,22600,22700,22800,22900,23000,23101,23102,23103,23105,23106,23203,23204,23205,23206,23207,23302,23303,23305,23306,23307,23308,23403,23404,23405,23407,23408,23409,23501,23502,23503,23600,23700,23801,23802,23803,23998],
    '121' : [100,200,400,500,600,700,800,1095,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,2400,2500,2600,2700,2800,2900,3000,3100,3200,3300,3500,3600,3700,3800,3900,4000,4100,4295,4300,4400,4695,4800,4995,5000,5200,5300,5501,5502,5600,5700,5800,6000,6100,6200,6300,6400,6500,6601,6602,6700,6801,6802,6900,7000,7100,7200,7300,7400,7500,7601,7602,7701,7702,7802,7803,7804,7900,8000,8101,8102,8201,8202,8301,8302,8400,8500,8601,8602,8701,8702,8800,8900,9000,9100,9200,9300,9401,9402,9500,9600,9700,9800,9900,10000,10101,10103,10105,10106,10107,10108,10201,10203,10204,10205,10301,10302,10400,10503,10504,10505,10506,10601,10602,10700,10800,10900,11000,11100,11201,11202,11301,11302,11403,11404,11405,11406,11407,11408,11409,11410,11411,11500,11601,11602,11603],
    '135' : [50101,50102,50202,50203,50204,50304,50305,50306,50307,50308,50309,50310,50311,50312,50313,50314,50403,50406,50407,50408,50409,50410,50411,50412,50413,50414,50415,50416,50502,50503,50505,50506,50507,50508,50509,50601,50602,50704,50705,50706,50707,50708,50709,50710,50711,50898],

    '125' : [990100,990200],
    '133' : [950100,950200,950300,950400,950500],
    '141' : [980100,980200,980300,980400],
    '159' : [990100,990200,990300,990400],
    '163' : [960100,960200,960300,960400],
    '211' : [980100,980200,980300,980400,980500],
    '237' : [960100,960200,960300],
    '265' : [990100,990200],
    '301' : [970100,970200,970300,970400],
    '303' : [950100,950200,950300,950400,950500,950600,950700],

    '001' : [950100,950200,950300,950400,950500],
    '003' : [960100,960200,960300],
    '005' : [970100,970200],
    '007' : [960100,960298,960397,960398],
    '009' : [970100,970200,970300,970400,970500,970600,970700,970800],
    '011' : [980100,980200,980300,980400,980596,980597,980598],
    '013' : [180100,180200,180300,180400,180500],
    '015' : [960100,960200,960398,960400,960500,960600,960700,960800,960900,961000],
    '017' : [960100,960200,960300,960400,960500],
    '019' : [970100,970200,970300,970400,970500,970600],
    '021' : [10100,10200,10300,10400,10500,10600,10700,10800,11000,11100,11200,11300,11400,11500,11701,11702,11800,11900,12000,12100,12200,12300,12400,12500,12600,12700,12800,12900,13000,13101,13102,13201,13202,13301,13302,13497,13498,13501,13502,13601,13602,13797,13798],
    '023' : [990100,990200,990300],
    '025' : [980100,980200,980300],
    '027' : [990100,990200,990300,990400,990500,990600,990700],
    '029' : [920100,920200,920300],
    '031' : [990100,990200,990300,990400,990500,990600,990700,990800,990900],
    '033' : [950100,950200,950300,950400,950500,950600,950700,950800],
    '035' : [150100,150200,150300,150498],
    '037' : [950100,950200,950300,950400],
    '039' : [10100,10200,10300,10400,10500,10599,10600],
    '043' : [950100,950200,950300],
    '045' : [990100,990200,990300,990400,990500,990600,990700,990800,990900,991000,991100,991200],
    '047' : [30198,30200,30300,30400,30500,30600,30700,30898],
    '049' : [990100,990200],
    '051' : [100,300,601,800,900,1000,1100,1200,1300,1500,1700,1800,1900,2000,2100,2200,2300,2400,2500,2600,2700,2800,2900,3000,3200,3301,3302,3400,3501,3502,3601,3602,3700,3800,3900,4001,4002,4100,4202,4203,4205,4206,4300,4400,4500,10101,10102,10200,10501,10502,10601,10603,10604,10605,10699,10798,10804,10806,10807,10897,10898,10901,10902,11002,11003,11004,11101,11102,11103,11199,11298],
    '053' : [20100,20200],
    '055' : [980100,980200,980300,980400,980500,980600],
    '057' : [90100,90200,90300,90400,90500,90600,90700,90800,90901,90902,90903,91001,91002,91003,91101,91103,91198,91298],
    '059' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1302,1398,1401,1402,1501,1502,1698],
    '061' : [960100,960200],
    '065' : [970100,970200],
    '069' : [990100,990200,990300,990400,990500,990600,990700,990800],
    '071' : [970100,970200,970300,970400,970500,970600,970700,970800,970900],
    '073' : [30101,30102,30103,30201,30202,30203,30301,30302,30400,30501,30502,30603],
    '075' : [980100,980200,980300,980400],
    '077' : [170100,170200,170300,170400,170500,170600,170700,170800],
    '079' : [70100,70200],
    '081' : [980100,980200,980300,980400,980500],
    '083' : [40100,40200,40398],
    '085' : [970100,970200],
    '087' : [970100,970200,970300,970400,970500,970600,970700,970800],
    '091' : [960100,960200,960300,960400,960500,960600],
    '093' : [970100,970200,970300],
    '095' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1401,1402,1500,10100,10200,10301,10302,10401,10402,10403,10500,10601,10602,10700,10800,10900,11000,11100],
    '097' : [80198,80200,80300,80400,80501,80503,80504,80601,80602,80797,80798],
    '099' : [990198,990200,990300,990400,990500,990698],
    '101' : [980198,980200,980398],
    '103' : [30100,30200,30398,30400,30598],
    '105' : [990100,990200,990300,990400,990500],
    '107' : [980100,980200,980300,980400,980500,980600,980700],
    '109' : [970100,970200,970300],
    '111' : [950100,950200,950398,950400,950500,950698],
    '113' : [140101,140102,140201,140202,140301,140302,140401,140402,140501,140502],
    '115' : [198,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2197,2198],
    '117' : [130100,130200,130300,130400,130500,130600],
    '119' : [990100,990200,990300,990400],
    '123' : [980198,980200,980300,980496,980497,980498],
    '127' : [100,199,200,300,400,500,600,700,800,900,1000],
    '129' : [970100,970298,970300,970400,970500,970600,970700,970800,970900,971098],
    '131' : [950100,950200,950300,950400,950500,950600],
    '137' : [990100,990200,990300,990400,990500,990600],
    '139' : [198,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600],
    '143' : [980100,980200,980300],
    '145' : [980198,980200,980300,980400,980598],
    '147' : [960100,960200,960300,960400,960500],
    '149' : [970100,970200,970300],
    '151' : [70102,70103,70198,70201,70202,70203,70301,70302,70402,70498,70500],
    '153' : [20101,20102,20103,20200,20300,20400,20500,20600,20700,20800,20900,21000,21101,21102,21103,21200,21300,21400,21501,21502],
    '155' : [950100,950200,950300],
    '157' : [10100,10200,10300,10400,10500,10600,10700],
    '161' : [960100,960200,960300],
    '165' : [960100,960200],
    '167' : [980100,980200,980300,980400],
    '169' : [30101,30102,30200,30300],
    '171' : [970100,970200,970300],
    '173' : [950100,950200,950398],
    '175' : [950100,950200,950300,950400,950500,950600,950700,950800,950900,951000,951100,951200,951300,951498],
    '177' : [20100,20200,20300],
    '179' : [10100,10200,10300,10400,10500,10600],
    '181' : [970100,970200],
    '183' : [980100,980200],
    '185' : [10100,10200,10300,10400,10500,10600,10700,10800,10900,11000,11100,11200,11300,11400,11500,11698],
    '187' : [960100,960200],
    '189' : [950100,950200,950300,950400,950500],
    '191' : [990100,990200,990300],
    '193' : [980100,980200,980300,980400],
    '195' : [20100,20200,20300,20400,20500,20600],
    '197' : [980100,980200],
    '199' : [970100,970200,970300,970400,970500,970600],
    '201' : [950100,950200,950300,950498],
    '205' : [980100,980200,980300,980400,980500,980600,980700],
    '207' : [50100,50200,50398,50498],
    '209' : [950100,950200,950300],
    '213' : [990100,990298,990300,990400,990500,990693,990694,990695,990696,990697,990698],
    '215' : [100,200,300,400,500,600,800,900,1000,1100,1200,1300,1400,1500,1600,1800,1900,2000,2100,2200,2300,2400,2500,2600,2700,2800,2901,2902,3000,3100,3200,3300,3400,10102,10103,10104,10201,10202,10301,10302,10401,10402,10500,10602,10604,10605,10606,10701,10702,10703,10800,10900,11000],
    '217' : [100100,100200,100300,100400,100500,100600,100700,100800,100900],
    '219' : [30198,30200,30300,30400,30500,30600,30798],
    '221' : [960100,960200,960300],
    '223' : [120100,120200,120300,120400,120500,120698],
    '225' : [40100,40200,40301,40302,40400],
    '227' : [950100,950200,950300,950400],
    '229' : [960100,960200,960300,960400],
    '231' : [980100,980200,980300,980400],
    '233' : [990100,990200,990300,990400,990500,990600,990700],
    '235' : [950100,950200,950300],
    '239' : [980100,980200],
    '241' : [970100,970200,970300],
    '243' : [990100,990200],
    '245' : [100,200,300,400,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,10101,10102,10104,10105,10201,10203,10204,10300,10400,10504,10505,10506,10507,10508,10509,10510,10511,10600,10703,10704,10705,10706,10800,10901,10902],
    '247' : [60100,60200,60302,60303,60304,60401,60402],
    '249' : [960100,960200],
    '251' : [970100,970200,970300,970400,970500,970600],
    '253' : [980100,980200,980300],
    '255' : [160100,160200,160300,160400,160500,160600,160700,160800,160900,161000,161100,161200],
    '257' : [970100,970200,970300,970400],
    '259' : [950100,950200,950300],
    '261' : [950100,950200,950300,950400,950500,950600,950700,950800],
    '263' : [960198,960200,960300],
    '267' : [990100,990298,990300,990400,990598],
    '269' : [950100,950200,950300,950400],
    '271' : [950100,950200,950300,950400],
    '273' : [980100,980200,980300,980400,980500],
    '275' : [960100,960200,960300,960400,960500,960600,960700,960800,960900,961000,961100],
    '277' : [990100,990200,990300,990400,990500,990600,990700,990800,990900],
    '279' : [970100,970200,970300,970400,970500,970698,970798],
    '281' : [960100,960200,960300],
    '283' : [960198,960298],
    '285' : [960100,960200,960300,960400,960500,960600,960700,960800,960900,961000,961100,961298],
    '287' : [970100,970200,970300],
    '289' : [60198,60200],
    '291' : [990100,990200,990300],
    '293' : [990100,990200,990300,990400,990500,990600],
    '295' : [20100,20200,20300,20498,20500,20601,20602,20700,20800,20901,20902],
    '297' : [110100,110200,110300,110400,110500,110600,110700,110800],
    '299' : [950100,950200,950300,950400,950500,950600,950700,950800,950900,951000],
    '305' : [970100,970200,970300,970400,970500,970600],
    '307' : [960100,960200],
    '309' : [980100,980200],
    '311' : [950100,950200,950300],
    '313' : [100,200,300,400,500,698,700,800,900,1000,1100,1200,1300,1400,1500,1697,1698],
    '315' : [990100,990200,990300,990400],
    '317' : [980100,980200,980300],
    '319' : [960100,960200,960300,960400],
    '321' : [950100,950200,950300,950400,950500,950600]
 ]]]></entry>
        <entry id="census_hi" type="java"><![CDATA[[
    '001' : [20100,20200,20300,20400,20500,20600,20699,20701,20702,20801,20802,20900,21001,21002,21100,21200,21300,21400,21501,21502,21597,21598,21600,21700,21800,21900,22000,22100],
    '003' : [102,104,105,106,107,108,200,398,497,498,500,600,700,800,901,902,903,1000,1100,1201,1202,1300,1400,1500,1600,1700,1801,1802,1901,1902,2001,2002,2100,2200,2300,2401,2402,2500,2600,2701,2702,2800,2900,3000,3101,3102,3200,3300,3403,3404,3405,3406,3407,3500,3696,3697,3698,3700,3800,3900,4000,4100,4200,4300,4400,4500,4600,4700,4800,4900,5000,5100,5200,5300,5400,5500,5600,5700,5799,5800,5900,6000,6100,6201,6202,6301,6302,6401,6402,6500,6600,6701,6702,6802,6803,6804,6805,6806,6807,6900,7000,7100,7200,7300,7399,7400,7499,7502,7503,7504,7505,7506,7701,7702,7802,7803,7804,7805,7806,7807,7808,8001,8002,8003,8005,8006,8007,8100,8200,8301,8302,8400,8500,8603,8604,8698,8699,8701,8702,8798,8800,8901,8904,8905,8906,8907,8908,8909,8910,8911,8912,9000,9100,9200,9300,9400,9501,9502,9503,9504,9505,9601,9603,9604,9701,9702,9800,9901,9902,10000,10100,10201,10202,10302,10303,10305,10306,10503,10504,10505,10506,10601,10602,10701,10702,10800,10901,10903,10904,10905,11000,11103,11104,11105,11106,11201,11202,11301,11302,11498],
    '005' : [31900],
    '007' : [40100,40201,40202,40300,40400,40500,40599,40600,40700,40800,40900,41000,41198],
    '009' : [30100,30200,30301,30302,30401,30402,30500,30600,30700,30799,30800,30900,31000,31101,31102,31103,31200,31300,31400,31500,31600,31700,31800]
 ]]]></entry>
        <entry id="census_ia" type="java"><![CDATA[[
    '001' : [960100,960200,960300],
    '003' : [950100,950200],
    '005' : [960100,960200,960300,960400,960500],
    '007' : [950100,950200,950300,950400,950500],
    '009' : [970100,970200,970300],
    '011' : [980100,980200,980300,980400,980500,980600,980700],
    '013' : [100,200,300,400,500,700,800,900,1000,1100,1200,1301,1302,1400,1501,1502,1503,1600,1701,1702,1800,1900,2000,2200,2300,2400,2500,2601,2603,2604,2700,2800,2901,2902,3001,3002],
    '015' : [20100,20200,20300,20400,20500,20600,20700],
    '017' : [4000,4100,4200,4300,4400,4500,4600,4700],
    '019' : [950100,950200,950300,950400,950500,950600],
    '021' : [960100,960200,960300,960400,960500,960600],
    '023' : [970100,970200,970300,970400,970500],
    '025' : [950100,950200,950300,950400],
    '027' : [960100,960200,960300,960500,960600,970400],
    '029' : [990100,990200,990300,990400,990500],
    '031' : [950100,950200,950300,950400,950500],
    '033' : [950100,950200,950300,950400,950500,950600,950700,950800,950900,951000],
    '035' : [980100,980200,980300,980400],
    '037' : [970100,970200,970300,970400],
    '039' : [990100,990200,990300],
    '041' : [980100,980200,980300,980400],
    '043' : [970100,970200,970300,970400,970500,970600],
    '045' : [100,200,300,400,500,600,700,800,900,1000,1100,1200],
    '047' : [970100,970200,970300,970400,970500],
    '049' : [50100,50200,50300,50400,50500,50600,50700,50800],
    '051' : [980100,980200],
    '053' : [960100,960200,960300],
    '055' : [950100,950200,950300,950400],
    '057' : [100,200,300,400,500,600,700,800,900,1000,1100,1200],
    '059' : [950100,950200,950300,950400,950500,950600,950700,950800],
    '061' : [100,200,299,300,400,500,600,701,702,801,802,900,1000,1101,1102,1201,1202,1203,10101,10102,10103,10200,10300,10400,10500,10600],
    '063' : [970100,970200,970300,970400],
    '065' : [980100,980200,980300,980400,980500,980600,980700],
    '067' : [980100,980200,980300,980400,980500],
    '069' : [960100,960200,960300],
    '071' : [970100,970200,970300],
    '073' : [980100,980200,980300,980400],
    '075' : [990100,990200,990300,990400],
    '077' : [950100,950200,950300],
    '079' : [960100,960200,960300,960400,960500],
    '081' : [970100,970200,970300,970400],
    '083' : [980100,980200,980300,980400,980500,980600],
    '085' : [990100,990200,990300,990400,990500],
    '087' : [970100,970200,970300,970400,970500],
    '089' : [960100,960200,960300],
    '091' : [970100,970200,970300,970400],
    '093' : [990100,990200,990300],
    '095' : [990100,990200,990300,990400],
    '097' : [950100,950200,950300,950400,950500,950600],
    '099' : [40100,40200,40300,40400,40500,40600,40700,40800,40900],
    '101' : [990100,990200,990300,990400],
    '103' : [100,200,301,302,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,10100,10200,10300,10400,10500,10600],
    '105' : [970100,970200,970300,970400,970500,990200],
    '107' : [980100,980200,980300,980400],
    '109' : [950100,950200,950300,950400,950500,950600],
    '111' : [990100,990200,990300,990400,990500,990600,990700,990800,990899,990900,991000,991100],
    '113' : [100,201,202,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,2400,2500,2600,2700,2800,2900,3001,3002,10100,10200,10300,10400,10500,10600,10700,10800],
    '115' : [950100,950200,950300],
    '117' : [950100,950200,950300,950400],
    '119' : [950100,950200,950300],
    '121' : [60100,60200,60300],
    '123' : [950100,950200,950300,950400,950500,950600,950700],
    '125' : [30100,30200,30300,30400,30500,30600,30700],
    '127' : [950100,950200,950300,950400,950500,950600,950700,950800,950900,951000],
    '129' : [40100,40200,40300,40498],
    '131' : [960100,960200,960300],
    '133' : [960100,960200,960300,960400],
    '135' : [970100,970200,970300],
    '137' : [980100,980200,980300,980400],
    '139' : [50100,50200,50300,50400,50500,50600,50700,50800,50900,51000],
    '141' : [990100,990200,990300,990400],
    '143' : [960100,960200],
    '145' : [990100,990200,990300,990400,990500,990600],
    '147' : [960100,960200,960300,960400],
    '149' : [970100,970200,970300,970400,970500,970600],
    '151' : [980100,980200,980300],
    '153' : [101,102,103,201,202,300,400,500,600,701,702,703,704,801,802,803,901,902,1000,1100,1200,1500,1700,1800,1900,2100,2600,2700,2800,2900,3001,3002,3100,3200,3900,4001,4002,4100,4200,4300,4400,4501,4502,4601,4602,4700,4800,4900,5000,5100,5200,5300,10101,10102,10203,10204,10205,10206,10401,10402,10403,10500,10600,10701,10702,10800,10900,11001,11021,11022,11102,11111,11112,11201,11202,11300,11400,11500],
    '155' : [21200,21400,21500,21600,21700,30100,30200,30300,30401,30402,30501,30502,30601,30602,30700,30800,30900,31000,31100,31200,31300,31400,31500,31600,31700,31800],
    '157' : [970100,970200,970300,970400,970500],
    '159' : [950100,950200],
    '161' : [980100,980200,980300,980400],
    '163' : [10101,10102,10200,10300,10400,10500,10600,10700,10800,10900,11000,11100,11200,11300,11400,11500,11600,11700,11800,11900,12000,12100,12200,12300,12400,12500,12600,12700,12800,12900,13000,13100,13200,13300,13400,13500,13600,13701,13702],
    '165' : [960100,960200,960300,960400],
    '167' : [970100,970200,970300,970400,970500,970600,970700],
    '169' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1301,1302,10100,10200,10300,10400,10500,10600],
    '171' : [990100,990200,990300,990400,990500,990600],
    '173' : [980100,980200,980300],
    '175' : [990100,990200,990300,990400],
    '177' : [950100,950200],
    '179' : [960100,960200,960300,960400,960500,960600,960700,960800,960900,961000,961100],
    '181' : [20100,20200,20300,20400,20500,20600,20700,20800,20900,21000,21100,21200],
    '183' : [960100,960200,960300,960400,960500],
    '185' : [970100,970200,970300],
    '187' : [100,200,300,400,500,600,700,800,900,10100,10200,10300,10400],
    '189' : [980100,980200,980300],
    '191' : [950100,950200,950300,950400,950500],
    '193' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2101,2102,3100,3200,3300,3500],
    '195' : [990100,990200,990300],
    '197' : [980100,980200,980300,980400,980500]
 ]]]></entry>
        <entry id="census_il" type="java"><![CDATA[['001' : [000100, 000201, 000202, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001001, 001002, 001100, 010100, 010200, 010300, 010400, 010500, 010600],
'003' : [957600, 957700, 957800, 957900],
'005' : [951200, 951300, 951400, 951500],
'007' : [010100, 010200, 010300, 010400, 010500, 010600],
'009' : [970400, 970500],
'011' : [964700, 964800, 964900, 965000, 965100, 965200, 965300, 965400, 965500, 965600],
'013' : [951200, 951300],
'015' : [960100, 960200, 960300, 960400, 960500, 960600],
'017' : [960100, 960200, 960300, 960400, 960500],
'019' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001201, 001202, 001300, 001400, 005100, 005200, 005300, 005400, 005500, 005600, 005700, 005800, 005900, 006000, 010100, 010201, 010202, 010203, 010300, 010400, 010500, 010601, 010602, 010700, 010800, 010900],
'021' : [958100, 958200, 958300, 958400, 958500, 958600, 958700, 958800, 958900, 959000],
'023' : [060100, 060200, 060300, 060400],
'025' : [971900, 972000, 972100, 972200, 972300],
'027' : [900100, 900200, 900300, 900400, 900500, 900600],
'029' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200],
'031' : [010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 020100, 020200, 020300, 020400, 020500, 020600, 020700, 020800, 020900, 030100, 030200, 030300, 030400, 030500, 030600, 030700, 030800, 030900, 031000, 031100, 031200, 031300, 031400, 031500, 031600, 031700, 031800, 031900, 032000, 032100, 040100, 040200, 040300, 040400, 040500, 040600, 040700, 040800, 040900, 041000, 050100, 050200, 050300, 050400, 050500, 050600, 050700, 050800, 050900, 051000, 051100, 051200, 051300, 051400, 051500, 060100, 060200, 060300, 060400, 060500, 060600, 060700, 060800, 060900, 061000, 061100, 061200, 061300, 061400, 061500, 061600, 061700, 061800, 061900, 062000, 062100, 062200, 062300, 062400, 062500, 062600, 062700, 062800, 062900, 063000, 063100, 063200, 063300, 063400, 070100, 070200, 070300, 070400, 070500, 070600, 070700, 070800, 070900, 071000, 071100, 071200, 071300, 071400, 071500, 071600, 071700, 071800, 071900, 072000, 080100, 080200, 080300, 080400, 080500, 080600, 080700, 080800, 080900, 081000, 081100, 081200, 081300, 081400, 081500, 081600, 081700, 081800, 081900, 090100, 090200, 090300, 100100, 100200, 100300, 100400, 100500, 100600, 100700, 110100, 110200, 110300, 110400, 110500, 120100, 120200, 120300, 120400, 130100, 130200, 130300, 130400, 130500, 140100, 140200, 140300, 140400, 140500, 140600, 140700, 140800, 150100, 150200, 150300, 150400, 150500, 150600, 150700, 150800, 150900, 151000, 151100, 151200, 160100, 160200, 160300, 160400, 160500, 160600, 160700, 160800, 160900, 161000, 161100, 161200, 161300, 170100, 170200, 170300, 170400, 170500, 170600, 170700, 170800, 170900, 171000, 171100, 180100, 180200, 180300, 190100, 190200, 190300, 190400, 190500, 190600, 190700, 190800, 190900, 191000, 191100, 191200, 191300, 191400, 200100, 200200, 200300, 200400, 200500, 200600, 210100, 210200, 210300, 210400, 210500, 210600, 210700, 210800, 210900, 220100, 220200, 220300, 220400, 220500, 220600, 220700, 220800, 220900, 221000, 221100, 221200, 221300, 221400, 221500, 221600, 221700, 221800, 221900, 222000, 222100, 222200, 222300, 222400, 222500, 222600, 222700, 222800, 222900, 230100, 230200, 230300, 230400, 230500, 230600, 230700, 230800, 230900, 231000, 231100, 231200, 231300, 231400, 231500, 231600, 231700, 231800, 240100, 240200, 240300, 240400, 240500, 240600, 240700, 240800, 240900, 241000, 241100, 241200, 241300, 241400, 241500, 241600, 241700, 241800, 241900, 242000, 242100, 242200, 242300, 242400, 242500, 242600, 242700, 242800, 242900, 243000, 243100, 243200, 243300, 243400, 243500, 243600, 250100, 250200, 250300, 250400, 250500, 250600, 250700, 250800, 250900, 251000, 251100, 251200, 251300, 251400, 251500, 251600, 251700, 251800, 251900, 252000, 252100, 252200, 252300, 252400, 260100, 260200, 260300, 260400, 260500, 260600, 260700, 260800, 260900, 261000, 270100, 270200, 270300, 270400, 270500, 270600, 270700, 270800, 270900, 271000, 271100, 271200, 271300, 271400, 271500, 271600, 271700, 271800, 271900, 280100, 280200, 280300, 280400, 280500, 280600, 280700, 280800, 280900, 281000, 281100, 281200, 281300, 281400, 281500, 281600, 281700, 281800, 281900, 282000, 282100, 282200, 282300, 282400, 282500, 282600, 282700, 282800, 282900, 283000, 283100, 283200, 283300, 283400, 283500, 283600, 283700, 283800, 283900, 284000, 284100, 284200, 284300, 290100, 290200, 290300, 290400, 290500, 290600, 290700, 290800, 290900, 291000, 291100, 291200, 291300, 291400, 291500, 291600, 291700, 291800, 291900, 292000, 292100, 292200, 292300, 292400, 292500, 292600, 292700, 300100, 300200, 300300, 300400, 300500, 300600, 300700, 300800, 300900, 301000, 301100, 301200, 301300, 301400, 301500, 301600, 301700, 301800, 301900, 302000, 310100, 310200, 310300, 310400, 310500, 310600, 310700, 310800, 310900, 311000, 311100, 311200, 311300, 311400, 311500, 320100, 320200, 320300, 320400, 320500, 320600, 330100, 330200, 330300, 330400, 330500, 340100, 340200, 340300, 340400, 340500, 340600, 350100, 350200, 350300, 350400, 350500, 350600, 350700, 350800, 350900, 351000, 351100, 351200, 351300, 351400, 351500, 360100, 360200, 360300, 360400, 360500, 370100, 370200, 370300, 370400, 380100, 380200, 380300, 380400, 380500, 380600, 380700, 380800, 380900, 381000, 381100, 381200, 381300, 381400, 381500, 381600, 381700, 381800, 381900, 382000, 390100, 390200, 390300, 390400, 390500, 390600, 390700, 400100, 400200, 400300, 400400, 400500, 400600, 400700, 400800, 410100, 410200, 410300, 410400, 410500, 410600, 410700, 410800, 410900, 411000, 411100, 411200, 411300, 411400, 420100, 420200, 420300, 420400, 420500, 420600, 420700, 420800, 420900, 421000, 421100, 421200, 430100, 430200, 430300, 430400, 430500, 430600, 430700, 430800, 430900, 431000, 431100, 431200, 431300, 431400, 440100, 440200, 440300, 440400, 440500, 440600, 440700, 440800, 440900, 450100, 450200, 450300, 460100, 460200, 460300, 460400, 460500, 460600, 460700, 460800, 460900, 461000, 470100, 480100, 480200, 480300, 480400, 480500, 490100, 490200, 490300, 490400, 490500, 490600, 490700, 490800, 490900, 491000, 491100, 491200, 491300, 491400, 500100, 500200, 500300, 510100, 510200, 510300, 510400, 510500, 520100, 520200, 520300, 520400, 520500, 520600, 530100, 530200, 530300, 530400, 530500, 530600, 540100, 550100, 550200, 560100, 560200, 560300, 560400, 560500, 560600, 560700, 560800, 560900, 561000, 561100, 561200, 561300, 570100, 570200, 570300, 570400, 570500, 580100, 580200, 580300, 580400, 580500, 580600, 580700, 580800, 580900, 581000, 581100, 590100, 590200, 590300, 590400, 590500, 590600, 590700, 600100, 600200, 600300, 600400, 600500, 600600, 600700, 600800, 600900, 601000, 601100, 601200, 601300, 601400, 601500, 601600, 610100, 610200, 610300, 610400, 610500, 610600, 610700, 610800, 610900, 611000, 611100, 611200, 611300, 611400, 611500, 611600, 611700, 611800, 611900, 612000, 612100, 612200, 620100, 620200, 620300, 620400, 630100, 630200, 630300, 630400, 630500, 630600, 630700, 630800, 630900, 640100, 640200, 640300, 640400, 640500, 640600, 640700, 640800, 650100, 650200, 650300, 650400, 650500, 660100, 660200, 660300, 660400, 660500, 660600, 660700, 660800, 660900, 661000, 661100, 670100, 670200, 670300, 670400, 670500, 670600, 670700, 670800, 670900, 671000, 671100, 671200, 671300, 671400, 671500, 671600, 671700, 671800, 671900, 672000, 680100, 680200, 680300, 680400, 680500, 680600, 680700, 680800, 680900, 681000, 681100, 681200, 681300, 681400, 690100, 690200, 690300, 690400, 690500, 690600, 690700, 690800, 690900, 691000, 691100, 691200, 691300, 691400, 691500, 700100, 700200, 700300, 700400, 700500, 710100, 710200, 710300, 710400, 710500, 710600, 710700, 710800, 710900, 711000, 711100, 711200, 711300, 711400, 711500, 720100, 720200, 720300, 720400, 720500, 720600, 720700, 730100, 730200, 730300, 730400, 730500, 730600, 730700, 740100, 740200, 740300, 740400, 750100, 750200, 750300, 750400, 750500, 750600, 760800, 760900, 770200, 770300, 770400, 770500, 770600, 770700, 770800, 770900, 800100, 800200, 800300, 800400, 800500, 800600, 800700, 800800, 800900, 801000, 801100, 801200, 801300, 801400, 801500, 801601, 801603, 801605, 801606, 801607, 801608, 801701, 801702, 801800, 801901, 801902, 802001, 802002, 802100, 802200, 802300, 802401, 802402, 802502, 802503, 802504, 802601, 802605, 802606, 802701, 802702, 802801, 802802, 802900, 803004, 803005, 803006, 803007, 803008, 803009, 803010, 803011, 803100, 803200, 803300, 803400, 803500, 803603, 803604, 803605, 803606, 803607, 803608, 803609, 803610, 803700, 803800, 803901, 803902, 804000, 804102, 804104, 804105, 804106, 804107, 804201, 804202, 804301, 804302, 804304, 804305, 804306, 804307, 804497, 804498, 804501, 804503, 804504, 804505, 804603, 804604, 804605, 804606, 804607, 804701, 804705, 804706, 804707, 804708, 804709, 804710, 804711, 804712, 804803, 804804, 804805, 804806, 804807, 804808, 804809, 804810, 804901, 804902, 805001, 805002, 805105, 805106, 805107, 805108, 805109, 805110, 805111, 805112, 805201, 805202, 805301, 805302, 805401, 805402, 805501, 805502, 805600, 805701, 805702, 805801, 805802, 805901, 805902, 806001, 806002, 806003, 806004, 806101, 806102, 806200, 806300, 806400, 806501, 806502, 806600, 806700, 806801, 806802, 806900, 807000, 807100, 807200, 807300, 807400, 807500, 807600, 807700, 807800, 807900, 808001, 808002, 808100, 808200, 808301, 808302, 808400, 808500, 808600, 808701, 808702, 808800, 808900, 809000, 809100, 809200, 809300, 809400, 809500, 809600, 809700, 809800, 809900, 810000, 810100, 810200, 810301, 810302, 810400, 810501, 810502, 810600, 810701, 810702, 810800, 810900, 811000, 811100, 811200, 811301, 811302, 811401, 811402, 811500, 811600, 811701, 811702, 811800, 811900, 812000, 812100, 812200, 812300, 812400, 812500, 812600, 812700, 812800, 812900, 813000, 813100, 813200, 813300, 813400, 813500, 813600, 813700, 813800, 813900, 814000, 814100, 814200, 814300, 814400, 814500, 814600, 814700, 814800, 814900, 815000, 815100, 815200, 815300, 815400, 815500, 815600, 815701, 815702, 815800, 815900, 816000, 816100, 816200, 816300, 816401, 816402, 816500, 816600, 816700, 816800, 816900, 817000, 817101, 817102, 817200, 817300, 817400, 817500, 817600, 817700, 817800, 817900, 818000, 818100, 818200, 818300, 818401, 818402, 818500, 818600, 818700, 818800, 818900, 819000, 819100, 819200, 819300, 819400, 819500, 819600, 819700, 819801, 819802, 819900, 820000, 820101, 820103, 820104, 820201, 820202, 820300, 820400, 820501, 820502, 820601, 820602, 820700, 820800, 820901, 820902, 821001, 821002, 821101, 821102, 821200, 821300, 821401, 821402, 821500, 821600, 821700, 821800, 821900, 822000, 822101, 822102, 822200, 822301, 822302, 822400, 822500, 822601, 822602, 822701, 822702, 822801, 822802, 822900, 823001, 823002, 823101, 823102, 823200, 823302, 823303, 823304, 823400, 823500, 823602, 823603, 823604, 823605, 823702, 823703, 823704, 823705, 823801, 823803, 823804, 823901, 823903, 823904, 824001, 824002, 824104, 824105, 824106, 824107, 824108, 824109, 824110, 824111, 824112, 824200, 824300, 824400, 824503, 824505, 824597, 824598, 824601, 824602, 824701, 824702, 824800, 824900, 825000, 825100, 825200, 825301, 825302, 825400, 825501, 825503, 825504, 825505, 825600, 825700, 825801, 825802, 825803, 825900, 826000, 826100, 826201, 826202, 826301, 826303, 826304, 826401, 826402, 826500, 826600, 826700, 826800, 826901, 826902, 827000, 827100, 827200, 827300, 827400, 827500, 827600, 827700, 827801, 827802, 827804, 827805, 827901, 827902, 828000, 828100, 828201, 828202, 828300, 828401, 828402, 828503, 828504, 828505, 828506, 828601, 828602, 828701, 828702, 828801, 828802, 828900, 829000, 829100, 829200, 829301, 829302, 829401, 829402, 829500, 829600, 829700, 829800, 829901, 829902, 830001, 830002, 830003, 830004, 830005, 830006, 830100, 830201, 830202, 830300, 830400, 830500, 830898],
'033' : [980100, 980200, 980300, 980400, 980500, 980600],
'035' : [972400, 972500, 972600],
'037' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100],
'039' : [971400, 971500, 971600, 971700, 971800],
'041' : [952000, 952100, 952200, 952300, 952400],
'043' : [840000, 840101, 840102, 840103, 840200, 840301, 840302, 840400, 840500, 840600, 840701, 840798, 840800, 840901, 840902, 840903, 841001, 841002, 841103, 841104, 841105, 841106, 841107, 841202, 841203, 841204, 841205, 841301, 841302, 841303, 841304, 841305, 841401, 841402, 841500, 841601, 841602, 841701, 841702, 841800, 841900, 842000, 842100, 842200, 842300, 842400, 842500, 842602, 842603, 842604, 842703, 842704, 842705, 842706, 842707, 842800, 842900, 843000, 843100, 843200, 843300, 843400, 843500, 843600, 843700, 843800, 843900, 844000, 844100, 844201, 844202, 844301, 844302, 844400, 844500, 844600, 844700, 844800, 844900, 845000, 845100, 845200, 845300, 845400, 845501, 845503, 845504, 845600, 845701, 845702, 845801, 845803, 845804, 845805, 845900, 846001, 846002, 846101, 846102, 846103, 846203, 846204, 846205, 846206, 846207, 846301, 846302, 846304, 846305, 846306, 846401, 846403, 846404, 846501, 846503, 846504],
'045' : [070100, 070200, 070300, 070400, 070500],
'047' : [956900, 957000, 957100],
'049' : [950100, 950200, 950300, 950400, 950500, 959700, 959800, 959900],
'051' : [950500, 950600, 950700, 950800, 950900, 951000, 951100],
'053' : [961600, 961700, 961800, 961900, 962000],
'055' : [040100, 040200, 040300, 040400, 040500, 040600, 040700, 040800, 040900, 041000, 041100, 041200],
'057' : [952800, 952900, 953000, 953100, 953200, 953300, 953400, 953500, 953600, 953700, 953800, 953900],
'059' : [972700, 972800],
'061' : [973600, 973700, 973800, 973900, 974000],
'063' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900],
'065' : [973000, 973100, 973200],
'067' : [953700, 953800, 953900, 954000, 954100, 954200, 954300, 954400],
'069' : [970800, 970900],
'071' : [973300, 973400, 973500],
'073' : [030100, 030201, 030202, 030203, 030300, 030400, 030500, 030600, 030700, 030800, 030900, 031000, 031100, 031200],
'075' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900],
'077' : [010100, 010200, 010300, 010400, 010600, 010700, 010800, 010900, 011000, 011100, 011200, 011300, 011400, 011500, 011600],
'079' : [977300, 977400, 977500],
'081' : [050100, 050200, 050300, 050400, 050500, 050600, 050700, 050800, 050900, 051000, 051100],
'083' : [010100, 010200, 010300, 010400, 010500],
'085' : [020100, 020200, 020300, 020400, 020500],
'087' : [977600, 977700, 977800],
'089' : [850100, 850201, 850202, 850301, 850302, 850400, 850500, 850600, 850701, 850702, 850800, 850900, 851000, 851100, 851200, 851300, 851400, 851500, 851600, 851700, 851801, 851802, 851902, 851903, 851904, 852001, 852002, 852100, 852201, 852202, 852300, 852401, 852402, 852403, 852500, 852600, 852700, 852801, 852802, 852902, 852903, 852904, 852905, 853001, 853002, 853003, 853004, 853100, 853200, 853300, 853400, 853500, 853600, 853700, 853800, 853900, 854001, 854002, 854100, 854200, 854300, 854400, 854501, 854502, 854696, 854697, 854698, 854798],
'091' : [010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 011900, 012000, 012100, 012200, 012300, 012400, 012500, 012600],
'093' : [890100, 890201, 890202, 890300, 890400, 890500, 890600, 890700],
'095' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600],
'097' : [860101, 860102, 860200, 860300, 860400, 860500, 860600, 860700, 860802, 860803, 860804, 860902, 860903, 860904, 861003, 861004, 861005, 861006, 861101, 861102, 861200, 861301, 861302, 861401, 861402, 861501, 861503, 861504, 861601, 861602, 861603, 861700, 861801, 861802, 861901, 861902, 862000, 862100, 862200, 862300, 862400, 862500, 862601, 862602, 862700, 862800, 862900, 863000, 863100, 863201, 863202, 863300, 863400, 863500, 863601, 863602, 863700, 863800, 863901, 863902, 864001, 864002, 864101, 864103, 864104, 864201, 864202, 864302, 864303, 864304, 864401, 864402, 864403, 864405, 864406, 864502, 864503, 864505, 864506, 864507, 864508, 864509, 864600, 864700, 864801, 864802, 864901, 864902, 865000, 865100, 865200, 865300, 865400, 865500, 865600, 865700, 865800],
'099' : [961700, 961800, 961900, 962000, 962100, 962200, 962300, 962400, 962500, 962600, 962700, 962800, 962900, 963000, 963100, 963200, 963300, 963400, 963500, 963600, 963700, 963800, 963900, 964000, 964100, 964200, 964300],
'101' : [980700, 980800, 980900, 981000, 981100],
'103' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900],
'105' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000],
'107' : [952900, 953000, 953100, 953200, 953300, 953400, 953500, 953600],
'109' : [010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011100],
'111' : [870100, 870200, 870300, 870400, 870500, 870601, 870602, 870701, 870702, 870803, 870804, 870805, 870806, 870901, 870902, 871001, 871002, 871100, 871201, 871202, 871203, 871301, 871302, 871303, 871401, 871402],
'113' : [000101, 000102, 000103, 000200, 000301, 000302, 000400, 000501, 000502, 000503, 001101, 001102, 001200, 001301, 001302, 001303, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 005100, 005200, 005300, 005400, 005500, 005600, 005700],
'115' : [000100, 000200, 000300, 000497, 000498, 000598, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001801, 001802, 001900, 002000, 002100, 002200, 002300, 002401, 002402, 002500, 002601, 002602, 002700, 002800, 002901, 002902, 002903, 002904, 003000],
'117' : [956000, 956100, 956200, 956300, 956400, 956500, 956600, 956700, 956800, 956900, 957000, 957100, 957200],
'119' : [400101, 400102, 400200, 400300, 400400, 400500, 400600, 400700, 400801, 400802, 400901, 400903, 400904, 400905, 401000, 401100, 401200, 401300, 401400, 401500, 401600, 401701, 401702, 401800, 401901, 401902, 402000, 402100, 402200, 402300, 402400, 402500, 402600, 402701, 402702, 402801, 402802, 402803, 402900, 403001, 403002, 403101, 403102, 403200, 403300, 403400, 403501, 403502, 403503, 403600, 403700, 403801, 403802],
'121' : [951600, 951700, 951800, 951900, 952000, 952100, 952200, 952300, 952400, 952500, 952600, 952700],
'123' : [961100, 961200, 961300, 961400, 961500],
'125' : [956300, 956400, 956500, 956600, 956700, 956800],
'127' : [970100, 970200, 970300, 970400],
'129' : [010100, 010200, 010300],
'131' : [040100, 040200, 040300, 040400],
'133' : [600100, 600200, 600300],
'135' : [957300, 957400, 957500, 957600, 957700, 957800, 957900, 958000],
'137' : [951400, 951500, 951600, 951700, 951800, 951900, 952000, 952100, 952200, 952300],
'139' : [976900, 977000, 977100, 977200],
'141' : [960700, 960800, 960900, 961000, 961100, 961200, 961300, 961400, 961500, 961600],
'143' : [000100, 000200, 000300, 000500, 000600, 000700, 000800, 000900, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002300, 002400, 002500, 002600, 002700, 002800, 002900, 003000, 003101, 003102, 003200, 003300, 003401, 003402, 003500, 003601, 003602, 003700, 003800, 003900, 004000, 004101, 004102, 004200, 004300, 004400, 004500, 004600, 004801, 004802, 004901, 004902, 005097, 005098],
'145' : [030100, 030200, 030300, 030400, 030500, 030600],
'147' : [954500, 954600, 954700, 954800],
'149' : [952400, 952500, 952600, 952700, 952800],
'151' : [971200, 971300],
'153' : [971000, 971100],
'155' : [954500, 954600],
'157' : [950500, 950600, 950700, 950800, 950900, 951000, 951100, 951200, 951300],
'159' : [977900, 978000, 978100, 978200, 978300],
'161' : [020100, 020200, 020300, 020400, 020600, 020700, 020800, 020900, 021000, 021100, 021200, 021300, 021400, 021500, 021600, 021700, 021800, 021900, 022000, 022100, 022200, 022300, 022400, 022500, 022600, 022700, 022800, 022900, 023000, 023100, 023200, 023300, 023400, 023500, 023600, 023700, 024000, 024101, 024102, 024103, 024200, 024300, 024400],
'163' : [500400, 500500, 500600, 500800, 500900, 501000, 501100, 501200, 501300, 501400, 501501, 501502, 501601, 501602, 501603, 501700, 501800, 501900, 502100, 502200, 502300, 502401, 502403, 502404, 502500, 502601, 502602, 502603, 502604, 502700, 502800, 502900, 503000, 503101, 503102, 503201, 503202, 503203, 503301, 503302, 503303, 503304, 503401, 503402, 503404, 503405, 503800, 503900, 504001, 504002, 504100, 504201, 504302, 504303, 504304, 504305, 504400],
'165' : [955100, 955500, 955600, 955700, 955800, 955900, 956000, 956100, 956200],
'167' : [000100, 000200, 000300, 000400, 000501, 000502, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002300, 002400, 002500, 002600, 002700, 002800, 002900, 003000, 003100, 003200, 003300, 003400, 003500, 003600, 003700, 003800, 003900, 004000],
'169' : [970100, 970200, 970300],
'171' : [970600, 970700],
'173' : [959100, 959200, 959300, 959400, 959500, 959600],
'175' : [951400, 951500],
'177' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300],
'179' : [020100, 020199, 020200, 020301, 020302, 020400, 020500, 020600, 020700, 020800, 020900, 021000, 021101, 021102, 021201, 021202, 021203, 021500, 021603, 021604, 021605, 021606, 021700, 021701, 021702, 021801, 021802, 021900, 022000, 022100, 022200, 022300, 022400],
'181' : [950100, 950200, 950300, 950400, 950500],
'183' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 010100, 010200, 010300, 010400, 010500, 010600, 010701, 010702, 010800, 010900, 011000, 011100],
'185' : [957200, 957300, 957400, 957500],
'187' : [870100, 870200, 870300, 870400, 870500],
'189' : [950100, 950200, 950300, 950400],
'191' : [954900, 955000, 955100, 955200, 955300],
'193' : [958000, 958100, 958200, 958300, 958400],
'195' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800],
'197' : [880103, 880104, 880105, 880106, 880107, 880108, 880109, 880110, 880111, 880112, 880113, 880201, 880202, 880301, 880302, 880404, 880405, 880406, 880407, 880501, 880502, 880600, 880700, 880800, 880900, 881001, 881002, 881003, 881004, 881103, 881104, 881105, 881106, 881200, 881300, 881400, 881500, 881600, 881700, 881800, 881900, 882000, 882100, 882200, 882300, 882400, 882500, 882600, 882700, 882800, 882900, 883000, 883100, 883203, 883204, 883205, 883206, 883207, 883301, 883302, 883400, 883501, 883502, 883503, 883504, 883505, 883506, 883601, 883602, 883700, 883802, 883803, 883804, 883805, 883806, 883901, 883902, 884001, 884002],
'199' : [020100, 020200, 020300, 020400, 020500, 020600, 020700, 020800, 020900, 021000, 021100, 021200, 021300, 021400],
'201' : [000101, 000102, 000103, 000104, 000105, 000200, 000300, 000401, 000402, 000403, 000501, 000502, 000504, 000506, 000507, 000508, 000509, 000600, 000700, 000800, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002301, 002302, 002400, 002500, 002600, 002700, 002800, 002900, 003000, 003100, 003200, 003300, 003400, 003500, 003601, 003602, 003603, 003604, 003701, 003703, 003705, 003706, 003707, 003801, 003803, 003804, 003901, 003902, 004001, 004002, 004003, 004100, 004200, 004300],
'203' : [030198, 030200, 030300, 030400, 030501, 030502, 030601, 030602, 030700]]]]></entry>
        <entry id="census_ky" type="java"><![CDATA[[
    '001' : [970100,970200,970300,970400,970500,970600],
    '003' : [980100,980200,980300,980400,980500,980600],
    '005' : [950100,950200,950300,950400],
    '007' : [950100,950200,950300],
    '009' : [950100,950200,950300,950400,950500,950600,950700,950800,950900,951000],
    '011' : [970100,970200,970300],
    '013' : [960100,960200,960300,960400,960500,960600,960700,960800,960900,961000],
    '015' : [70100,70200,70301,70304,70397,70398,70400,70501,70502,70601,70602],
    '017' : [30100,30200,30300,30400,30500,30600],
    '019' : [30100,30200,30300,30400,30500,30600,30700,30800,30900,31000,31100,31200,31300],
    '021' : [990100,990200,990300,990400,990500,990600,990700],
    '023' : [950100,950200,950300],
    '025' : [980100,980200,980300,980400,980500,980600,980700],
    '027' : [960100,960200,960300,960400,960500],
    '029' : [20100,20200,20300,20400,20500,20600,20700,20800,20900,21100,21200],
    '031' : [990100,990200,990300,990400,990500],
    '033' : [980100,980200,980300],
    '035' : [10100,10200,10300,10400,10500,10600,10700,10800],
    '037' : [50100,50200,50300,50400,50500,50600,51101,51102,51200,51300,51901,51902,52000,52100,52200,52301,52302,52400,52500,52600,52800,52900,53000,53100],
    '039' : [960100,960200,960300],
    '041' : [950100,950200,950300],
    '043' : [960100,960200,960300,960400,960500,960600,960700],
    '045' : [950100,950200,950300,950400,950500],
    '047' : [200100,200200,200300,200400,200500,200600,200700,200800,200900,201000,201100,201200,201300,201400,201500],
    '049' : [20101,20102,20200,20300,20400,20500,20600],
    '051' : [950100,950200,950300,950400,950500,950600],
    '053' : [970100,970200],
    '055' : [990100,990200,990300,990400],
    '057' : [950100,950200],
    '059' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1499,1500,1600,1701,1702,1703,1800],
    '061' : [980100,980200,980300,980400],
    '063' : [980100,980200],
    '065' : [980100,980200,980300,980400],
    '067' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2301,2302,2400,2500,2600,2700,2800,2900,3000,3101,3102,3200,3300,3402,3403,3404,3405,3501,3502,3600,3700,3801,3802,3901,3903,3904,4001,4002,4101,4102,4202,4203,4204],
    '069' : [980100,980200,980300,980400],
    '071' : [980100,980200,980300,980400,980500,980600,980700,980800,980900,981000],
    '073' : [70100,70200,70300,70400,70500,70600,70700,70800,70900,71000,71100],
    '075' : [980100,980200,980299],
    '077' : [960100],
    '079' : [970100,970200,970300,970400],
    '081' : [980100,980200,980300,980400],
    '083' : [20100,20200,20300,20400,20500,20600,20700,20800,20900],
    '085' : [950100,950200,950300,950400,950500,950600,950700],
    '087' : [990100,990200,990300,990400],
    '089' : [40100,40200,40300,40400,40500,40600,40700],
    '091' : [990100,990200,990300],
    '093' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700],
    '095' : [970100,970200,970300,970400,970500,970600,970700,970800,970900,971000,971100,971200],
    '097' : [950100,950200,950300,950400,950500],
    '099' : [970100,970200,970300,970400,970500],
    '101' : [20100,20200,20300,20400,20500,20601,20602,20701,20702,20800,20900],
    '103' : [90100,90200,90300,90400],
    '105' : [970100,970200],
    '107' : [970100,970200,970300,970400,970500,970600,970700,970800,970900,971000,971100,971200,971300],
    '109' : [960100,960200,960300],
    '111' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,2000,2100,2200,2300,2400,2700,2800,3000,3400,3500,3600,3700,3800,3900,4000,4100,4301,4302,4400,4500,4600,4900,5000,5100,5200,5300,5500,5600,5700,5900,6200,6300,6400,6500,6600,6800,6900,7000,7100,7400,7501,7502,7601,7602,7603,7700,7800,7900,8100,8200,8300,8400,8500,8700,8800,8900,9000,9101,9102,9200,9300,9400,9500,9600,9700,9800,9900,10001,10002,10004,10005,10006,10101,10102,10200,10302,10303,10304,10305,10401,10402,10500,10600,10701,10702,10704,10705,10706,10800,10901,10902,11002,11003,11004,11005,11101,11102,11104,11105,11106,11200,11301,11302,11403,11404,11405,11406,11504,11505,11506,11507,11508,11509,11510,11600,11703,11704,11705,11706,11707,11800,11901,11904,11905,11906,11907,12001,12002,12003,12103,12104,12105,12106,12107,12202,12203,12204,12301,12302,12404,12405,12406,12407,12408,12409,12501,12502,12503,12601,12603,12604,12701,12702,12703,12801,12802,12900,13000,13100,13200],
    '113' : [60101,60102,60200,60300,60400,60501,60502,60600],
    '115' : [960100,960200,960300,960400,960500,960600],
    '117' : [60100,60300,60400,60500,60600,60700,60900,61000,61100,61200,61300,61400,61600,62000,63602,63603,63604,63700,63800,63900,64000,64100,64200,64300,64400,64500,64600,64700,64800,64900,65000,65100,65200,65300,65400,65501,65502,65600,65700,65800,65900,66800],
    '119' : [960100,960200,960300,960400,960500],
    '121' : [990100,990200,990300,990400,990500,990600,990700,990800],
    '123' : [960100,960200,960300],
    '125' : [970100,970200,970300,970400,970500,970600,970700,970800,970900,971000,971100],
    '127' : [990100,990200,990300,990400,990500],
    '129' : [950100,950200,950300],
    '131' : [980100,980200,980300],
    '133' : [950100,950200,950300,950400,950500,950600,960400],
    '135' : [990100,990200,990300,990400,990600],
    '137' : [980100,980200,980300,980400],
    '139' : [40100,40200],
    '141' : [960100,960200,960300,960400,960500,960600],
    '143' : [960100,960200],
    '145' : [30100,30200,30300,30400,30500,30600,30700,30800,30900,31000,31100,31200,31300,31400,31500,31600],
    '147' : [960100,960200,960300,960400],
    '149' : [970100,970200,970300,970400],
    '151' : [10100,10200,10300,10400,10500,10600,10700,10800,10900,11000,11100,11200,11300,11400],
    '153' : [970100,970200,970300,970400],
    '155' : [970100,970200,970300,970400,970500,970600,970700,970800],
    '157' : [950100,950200,950300,950400,950500,950600],
    '159' : [950100,950200,950300],
    '161' : [960100,960200,960300,960400,960500,990600],
    '163' : [970100,970200,970300,970400,970500],
    '165' : [960100,960200],
    '167' : [960100,960200,960300,960400,960500],
    '169' : [960100,960200,960300],
    '171' : [990100,990200,990300,990400],
    '173' : [980100,980200,980300,980400,980500],
    '175' : [950100,950200,950300,950400,950500],
    '177' : [960100,960200,960300,960400,960500,960600,960700,960800,960900],
    '179' : [990100,990200,990300,990400,990500,990600,990700],
    '181' : [960100,960200],
    '183' : [980100,980200,980300,980400,980500,980600,980700],
    '185' : [30100,30200,30300,30400,30501,30502,30601,30602,30700,30801,30802],
    '187' : [970100,970200,970300],
    '189' : [990100,990200,990300],
    '191' : [990100,990200,990300],
    '193' : [970100,970200,970300,970400,970500,970600,970700,970800,970900],
    '195' : [990100,990200,990300,990400,990500,990600,990700,990800,990900,991000,991100,991200,991300,991400,991500,991600,991700,991800,991900],
    '197' : [970100,970200],
    '199' : [990100,990200,990300,990400,990500,990600,990700,990800,990900,991000,991100],
    '201' : [970100],
    '203' : [950100,950200,950298,950300,950400],
    '205' : [950100,950200,950300,950400],
    '207' : [960100,960200,960300,960400],
    '209' : [40100,40200,40300,40400,40500,40600],
    '211' : [40100,40200,40300,40400,40500],
    '213' : [970100,970200,970300,970400],
    '215' : [80100,80200],
    '217' : [980100,980200,980300,980400,980500],
    '219' : [950100,950200,950300,950400],
    '221' : [970100,970200,970300],
    '223' : [100100,100200],
    '225' : [950100,950200,950300],
    '227' : [10100,10200,10300,10400,10500,10600,10700,10800,10900,11000,11100,11200,11300,11400,11500,11600,11700,11800,11900],
    '229' : [980100,980200,980300],
    '231' : [980100,980200,980300,980400,980500,980600],
    '233' : [960100,960200,960300,960400],
    '235' : [980100,980200,980300,980400,980500,980600,980700,980800],
    '237' : [990100,990200,990300],
    '239' : [50100,50200,50300,50400]
 ]]]></entry>
        <entry id="census_la" type="java"><![CDATA[[
    '001' : [960100,960200,960300,960400,960500,960600,960700,960800,960900,961000,961100,961200],
    '003' : [950100,950200,950300,950400,950500],
    '005' : [30100,30201,30202,30398,30399,30401,30402,30500,30600,30800,30900,31000],
    '007' : [50198,50200,50398,50400,50500,50600],
    '009' : [30100,30200,30300,30400,30500,30600,30700,30800,30900],
    '011' : [960100,960200,960300,960400,960500,960600,960700],
    '013' : [970100,970200,970300,970400,970500],
    '015' : [10200,10300,10400,10500,10601,10602,10701,10702,10801,10804,10898,10900,11098,11103,11104,11105,11200,11398,11498],
    '017' : [20100,20200,20400,20500,20600,20700,20800,20900,21000,21100,21200,21300,21400,21500,21600,21700,21800,21900,22000,22100,22200,22300,22400,22500,22600,22700,22800,22998,23000,23100,23200,23300,23400,23500,23600,23700,23800,23901,23902,23903,24000,24102,24103,24104,24106,24107,24108,24109,24200,24301,24302,24400,24501,24502,24600,24700,24800,24900,25000,25198,25297,25298,25398],
    '019' : [100,200,300,400,500,599,600,700,800,900,1000,1100,1201,1202,1300,1400,1500,1600,1700,1800,1899,1901,1902,2000,2100,2201,2202,2300,2400,2500,2600,2700,2800,2900,3000,3101,3102,3200,3299,3300,3400,3500,3600,220200],
    '021' : [990100,990200,990300],
    '023' : [970100,970200],
    '025' : [980100,980200,980300],
    '027' : [950100,950200,950300,950400,950500],
    '029' : [990100,990200,990300,990400,990500],
    '031' : [950100,950200,950300,950400,950500,950600,950700],
    '033' : [100,200,300,400,500,601,602,701,702,800,900,1000,1102,1103,1104,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,2400,2500,2601,2602,2700,2800,3001,3002,3099,3101,3102,3201,3202,3300,3400,3501,3504,3505,3506,3507,3601,3603,3604,3701,3702,3703,3801,3802,3804,3805,3903,3904,3905,3906,4003,4005,4006,4007,4008,4100,4201,4202,4203,4301,4302,4401,4402,4403,4502,4503,4504,4505,4506,4601,4602,4700,4800,4900,5000],
    '035' : [990100,990200,990300],
    '037' : [951300,951400,951500,951600],
    '039' : [950100,950200,950300,950400,950500,950600,950700,950800],
    '041' : [950100,950200,950300,950400,950500,950600],
    '043' : [20100,20200,20300,20400],
    '045' : [30100,30200,30398,30498,30500,30600,30700,30800,30900,31000,31100,31200,31300,31400],
    '047' : [952500,952600,952700,952800,952900,953000,953100],
    '049' : [970100,970200,970300,970400,970500],
    '051' : [20101,20102,20201,20202,20203,20301,20302,20303,20400,20501,20502,20503,20505,20506,20507,20508,20509,20600,20700,20800,20900,21000,21100,21200,21300,21400,21500,21600,21700,21801,21802,21900,22001,22002,22101,22102,22200,22301,22302,22303,22400,22500,22600,22700,22800,22900,23001,23002,23003,23100,23200,23300,23400,23500,23600,23700,23800,23901,23902,23903,23904,24001,24002,24100,24200,24300,24400,24500,24600,24700,24800,24900,25002,25003,25098,25101,25102,25201,25202,25300,25400,25500,25600,25798,25879,25900,26000,26100,26200,26300,26400,26500,26600,26700,26800,26900,27000,27100,27200,27300,27400,27501,27502,27601,27602,27701,27702,27803,27804,27805,27806,27807,27808,27809,27900,27999],
    '053' : [980100,980200,980300,980400,980500,980600,980700],
    '055' : [100,200,300,400,500,601,602,700,800,900,1001,1002,1003,1100,1200,1300,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1500,1600,1700,1800,1901,1902,1903,1904,1905,2001,2002,2101,2102,2103,2104],
    '057' : [20100,20201,20202,20300,20400,20500,20600,20700,20800,20900,21000,21100,21200,21300,21400,21500,21600,21700,21800,21900],
    '059' : [970100,970200,970300],
    '061' : [960100,960200,960300,960400,960500,960600,960700,960800,960900,961000],
    '063' : [40100,40200,40300,40400,40500,40600,40700,40801,40802,40900],
    '065' : [960100,960200,960300,960400,960500],
    '067' : [950100,950200,950300,950400,950500,950600,950700,950800],
    '069' : [990100,990200,990300,990400,990500,990600,990700,990800,990900],
    '071' : [100,200,300,400,601,602,603,604,605,606,607,608,611,612,613,614,699,701,702,799,800,901,902,903,904,1100,1199,1200,1301,1302,1303,1304,1401,1402,1500,1600,1701,1702,1703,1706,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1732,1733,1734,1798,1799,1800,1900,2000,2100,2200,2300,2401,2402,2501,2502,2503,2504,2600,2700,2800,2900,3000,3100,3301,3302,3303,3304,3305,3306,3307,3308,3400,3500,3600,3701,3702,3800,3900,4000,4100,4200,4401,4402,4500,4600,4700,4800,4900,5000,5400,5500,5601,5602,5603,5604,5700,5800,5900,6000,6300,6400,6500,6700,6800,6900,7000,7100,7200,7501,7502,7603,7604,7605,7700,7800,7900,8000,8101,8102,8200,8300,8400,8500,8600,8700,8800,8900,9000,9100,9200,9301,9302,9400,9600,9700,9900,10000,10100,10200,10300,10400,10499,10500,10600,10700,10800,10900,11100,11200,11400,11500,11600,11700,11900,12000,12101,12102,12200,12300,12400,12500,12600,12700,12800,12900,13000,13100,13200,13301,13302,13498,13598,13698],
    '073' : [100,200,300,401,402,500,600,700,800,900,1001,1002,1100,1200,1300,1400,1500,1600,1700,5100,5201,5202,5301,5302,5400,5500,5600,5700,5800,5900,10101,10102,10201,10202,10301,10302,10400,10501,10502,10601,10603,10604],
    '075' : [50100,50200,50300,50400,50500,50599,50600,50700,50800],
    '077' : [951900,952000,952100,952200,952300,952400],
    '079' : [10100,10200,10300,10400,10500,10600,10700,10800,10900,11000,11100,11200,11300,11400,11500,11600,11700,11800,11900,12000,12100,12200,12300,12400,12500,12600,12700,12800,12900,13000,13100,13200,13300,13400,13500,13600],
    '081' : [960100,960200,960300],
    '083' : [970100,970200,970300,970400,970500,970600],
    '085' : [980100,980200,980300,980400,980500,980600,980700],
    '087' : [612,30101,30102,30199,30203,30204,30205,30206,30207,30300,30400,30500,30601,30602,30603,30700,30800],
    '089' : [60100,62100,62199,62200,62300,62400,62499,62500,62600,62700,62800,62900,63000,63100,63200],
    '091' : [951100,951200],
    '093' : [40100,40200,40300,40400,40499,40500,40600,40700,40895,40896,40897,40898],
    '095' : [70100,70200,70300,70400,70500,70600,70700,70799,70800,70900,71000,71100],
    '097' : [960100,960200,960300,960400,960500,960600,960700,960800,960900,961000,961100,961200,961300,961400,961500,961600,961700,961800,961900],
    '099' : [20100,20200,20300,20400,20500,20600,20700,20800,20900,21000],
    '101' : [40100,40200,40300,40399,40400,40500,40600,40700,40800,40900,41000,41100,41200,41300,41400,41500,41600,41798],
    '103' : [40101,40102,40200,40301,40303,40304,40400,40501,40502,40601,40602,40603,40701,40703,40704,40705,40706,40801,40802,40803,40900,41002,41003,41004,41101,41102,41103,41104,41201,41202,41203,41204,41300],
    '105' : [953200,953300,953400,953500,953600,953700,953800,953900,954000,954100,954200,954300,954400,954500,954600,954700,954800],
    '107' : [980100,980200,980300],
    '109' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1222,1300,1400,1598,1600,1700],
    '111' : [960100,960200,960300,960400,960500,960600],
    '113' : [950100,950200,950300,950400,950500,950600,950700,950800,950900,951000,951100,951298,951398],
    '115' : [950100,950200,950300,950400,950500,950600,950700,950800,950900],
    '117' : [950100,950200,950300,950400,950500,950600,950700,950800,950900,951000],
    '119' : [31100,31200,31300,31400,31500,31600,31700,31800,31900,32000,32100],
    '121' : [20100,20199,20200,20300,20400],
    '123' : [980100,980200,980300],
    '125' : [951700,951800],
    '127' : [960100,960200,960300,960400]
 ]]]></entry>
        <entry id="census_ma" type="java"><![CDATA[[
    '001' : [010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 012000, 012100, 012200, 012300, 012400, 012500, 012600, 012700, 012800, 012900, 013000, 013100, 013200, 013300, 013400, 013500, 013600, 013700, 013800, 013900, 014000, 014100, 014300, 014400, 014500, 014600, 014700, 014800, 014900, 014999, 015000, 015100, 015200],
    '003' : [900100, 900200, 900300, 900400, 900500, 900600, 900700, 900800, 900900, 901000, 901100, 901200, 911100, 912100, 913100, 914100, 920100, 921100, 921200, 921300, 921400, 921500, 922100, 922200, 922300, 923100, 924100, 925100, 926100, 931100, 932100, 933100, 934100, 935100],
    '005' : [600100, 600201, 600202, 610100, 610200, 611100, 611200, 612100, 612200, 613100, 613200, 613300, 613400, 613500, 613600, 613700, 613800, 613900, 614000, 614100, 615100, 616100, 617100, 630100, 630200, 631100, 631200, 631300, 631400, 631500, 631600, 631700, 631800, 632100, 632200, 633100, 633200, 640100, 640200, 640300, 640400, 640500, 640600, 640700, 640800, 640900, 641000, 641100, 641200, 641300, 641400, 641500, 641600, 641700, 641800, 641900, 642000, 642100, 642200, 642300, 642400, 642500, 644100, 644200, 644299, 645100, 646100, 650101, 650102, 650201, 650202, 650300, 650400, 650500, 650600, 650700, 650800, 650900, 651001, 651002, 651100, 651200, 651300, 651400, 651500, 651600, 651700, 651800, 651899, 651900, 652000, 652100, 652200, 652300, 652400, 652500, 652600, 652700, 652800, 653100, 653200, 653300, 654100, 654200, 655100, 655200, 655300, 655400],
    '007' : [200100, 200200, 200300, 200400],
    '009' : [201100, 202100, 202200, 203100, 203200, 203300, 204100, 204200, 204300, 204400, 204500, 204600, 204701, 204702, 205100, 205200, 205300, 205400, 205500, 205600, 205700, 205800, 205900, 206000, 206100, 206200, 206300, 206400, 206500, 206600, 206700, 206800, 206900, 207000, 207100, 207200, 208101, 208102, 208200, 208300, 208400, 209100, 209200, 210100, 210200, 210300, 210400, 210500, 210600, 210700, 210800, 210900, 211100, 211200, 211300, 211400, 211500, 212100, 213100, 214100, 215100, 216100, 217100, 217200, 217300, 217400, 217500, 217600, 218100, 220100, 221100, 221200, 221300, 221400, 221500, 221599, 221600, 221700, 221800, 221900, 222100, 223100, 223200, 223300, 250100, 250200, 250300, 250400, 250500, 250600, 250700, 250800, 250900, 251000, 251100, 251200, 251300, 251400, 251500, 251600, 251700, 251800, 252101, 252102, 252200, 252300, 252400, 252501, 252502, 252601, 252602, 253100, 253201, 253202, 253203, 253204, 254100, 254200, 254301, 254302, 254401, 254402, 260100, 260200, 260300, 260400, 260500, 260600, 260700, 260800, 260900, 261000, 261100, 262100, 263100, 264100, 265100, 266100, 266200, 266300, 266400, 267100, 268100, 268200, 268300, 268400, 269100, 270100, 270297, 270298],
    '011' : [040100, 040200, 040300, 040400, 040500, 040600, 040700, 040800, 040900, 041000, 041100, 041200, 041300, 041400, 041500],
    '013' : [800100, 800201, 800202, 800300, 800400, 800500, 800600, 800700, 800800, 800900, 801000, 801101, 801102, 801200, 801300, 801401, 801402, 801501, 801502, 801503, 801601, 801602, 801603, 801604, 801605, 801700, 801800, 801900, 802000, 802100, 802200, 802300, 802400, 802500, 802601, 802602, 810100, 810200, 810300, 810402, 810411, 810412, 810500, 810601, 810602, 810700, 810800, 810901, 810902, 811000, 811101, 811102, 811200, 811301, 811302, 811400, 811500, 811600, 811700, 811800, 811900, 812000, 812101, 812102, 812200, 812300, 812401, 812402, 812500, 812600, 812701, 812702, 812800, 812911, 812912, 813000, 813100, 813201, 813202, 813203, 813301, 813302, 813401, 813402, 813500, 813601, 813602, 813700, 813800],
    '015' : [820100, 820201, 820202, 820300, 820400, 820500, 820600, 820700, 820801, 820802, 820900, 821000, 821100, 821200, 821300, 821400, 821500, 821601, 821602, 821700, 821800, 821900, 821901, 821902, 822000, 822100, 822200, 822300, 822401, 822402, 822500, 822600, 822700],
    '017' : [300100, 301100, 302100, 302200, 310100, 310200, 310300, 310400, 310500, 310600, 310700, 310800, 311000, 311100, 311200, 311300, 311400, 311500, 311600, 311700, 311800, 311900, 312000, 312100, 312200, 312300, 312400, 312500, 313100, 314100, 314200, 314398, 315100, 315200, 315300, 315400, 315500, 316100, 316200, 316300, 316400, 316500, 317100, 317200, 317300, 318100, 318200, 318300, 318400, 320100, 321100, 321200, 321300, 321400, 321500, 321600, 322100, 322200, 322300, 322400, 323100, 324100, 325100, 326100, 327100, 328100, 330100, 330200, 331101, 331102, 331200, 331300, 332100, 332200, 332300, 332400, 333100, 333200, 333300, 333400, 333500, 333600, 334100, 334200, 334300, 334400, 335100, 335200, 335300, 335400, 336100, 336200, 336300, 336400, 337100, 337200, 337300, 338100, 338200, 338300, 338400, 338500, 339100, 339200, 339300, 339400, 339500, 339600, 339700, 339800, 339900, 340000, 340100, 341100, 341200, 341300, 341400, 341500, 341600, 341700, 341800, 341900, 342100, 342200, 342300, 342400, 342500, 342600, 342700, 350100, 350200, 350300, 350400, 350500, 350600, 350700, 350800, 350900, 351000, 351100, 351200, 351300, 351400, 351500, 352100, 352200, 352300, 352400, 352500, 352600, 352700, 352800, 352900, 353000, 353100, 353200, 353300, 353400, 353500, 353600, 353700, 353800, 353900, 354000, 354100, 354200, 354300, 354400, 354500, 354600, 354700, 354800, 354900, 355000, 356100, 356200, 356300, 356400, 356500, 356600, 356700, 357100, 357200, 357300, 357400, 357500, 357600, 357700, 357800, 358100, 358200, 358300, 358400, 358500, 358600, 358700, 359100, 359200, 359300, 360100, 360200, 361100, 361200, 361300, 362100, 363101, 363102, 363201, 363202, 364100, 365100, 365201, 365202, 366100, 366200, 367100, 367200, 368101, 368102, 368200, 368300, 368400, 368500, 368600, 368700, 368800, 368901, 368902, 369000, 369100, 370101, 370102, 370200, 370300, 370400, 373100, 373200, 373300, 373400, 373500, 373600, 373700, 373800, 373900, 374000, 374100, 374200, 374300, 374400, 374500, 374600, 374700, 374800, 382100, 382200, 382300, 382400, 382500, 382600, 383100, 383200, 383300, 383400, 383500, 383600, 383700, 383800, 383901, 383902, 384000, 385100, 385200, 386100, 387100, 387201, 387202, 388100, 388298],
    '019' : [950100, 950200, 950300, 950400],
    '021' : [400100, 400200, 400300, 400400, 400500, 400600, 400700, 400800, 400900, 401000, 401100, 401200, 402100, 402200, 402300, 402400, 402500, 403100, 403200, 403300, 403400, 403500, 404100, 404201, 404202, 404300, 404400, 405100, 406101, 406102, 407100, 408101, 408102, 409100, 410100, 410200, 410300, 410400, 411100, 411200, 411300, 412100, 412200, 412300, 413100, 413200, 413300, 413400, 413500, 414100, 414200, 414300, 415101, 415102, 415200, 415300, 416100, 416200, 416300, 416400, 417100, 417200, 417300, 417400, 417501, 417502, 417600, 417700, 417801, 417802, 417901, 417902, 418001, 418002, 418100, 418200, 419100, 419200, 419300, 419400, 419500, 419600, 419700, 419800, 420100, 420200, 420301, 420302, 421100, 421200, 422100, 422200, 422301, 422302, 422400, 422501, 422502, 422600, 422700, 422800, 423100, 440100, 441100, 441200, 442101, 442102, 442103, 442200, 443101, 443198, 456101, 456102, 456200, 456300, 456401, 456402, 457100, 457298, 762195],
    '023' : [500101, 500102, 501101, 501102, 501201, 501202, 502101, 502102, 502200, 503101, 503102, 504101, 504102, 505101, 505102, 505200, 506101, 506102, 506201, 506202, 506203, 506204, 507101, 507102, 508101, 508102, 508200, 509100, 510100, 510200, 510300, 510400, 510501, 510502, 510503, 510600, 510700, 510800, 510900, 511000, 511100, 511200, 511301, 511302, 511400, 511500, 511600, 511701, 511702, 520100, 520201, 520202, 521101, 521102, 521201, 521202, 522101, 522102, 523100, 523201, 523202, 524101, 524102, 525101, 525102, 525200, 525300, 526100, 530100, 530200, 530300, 530400, 530500, 530600, 530700, 530800, 530900, 540100, 541100, 542100, 542200, 542300, 543100, 544100, 544200, 545100, 545200, 545300, 545400, 560100, 561100],
    '025' : [000100, 000201, 000202, 000300, 000401, 000402, 000501, 000502, 000601, 000602, 000701, 000702, 000801, 000802, 010101, 010102, 010200, 010300, 010401, 010402, 010500, 010600, 010700, 010800, 020100, 020200, 020300, 030100, 030200, 030300, 030400, 030500, 030599, 040100, 040200, 040300, 040400, 040500, 040600, 040700, 040800, 040899, 050100, 050200, 050300, 050400, 050500, 050600, 050700, 050800, 050900, 051000, 051100, 051200, 060100, 060200, 060300, 060400, 060500, 060599, 060600, 060699, 060700, 060800, 060900, 061000, 061100, 061200, 061300, 061400, 070100, 070200, 070300, 070400, 070500, 070600, 070700, 070800, 070900, 071000, 071100, 071200, 080100, 080200, 080300, 080400, 080500, 080600, 080700, 080800, 080900, 081000, 081100, 081200, 081300, 081400, 081500, 081600, 081700, 081800, 081900, 082000, 082100, 090100, 090200, 090300, 090400, 090500, 090600, 090700, 090800, 090900, 091000, 091100, 091200, 091300, 091400, 091500, 091600, 091700, 091800, 091900, 092000, 092100, 092200, 092300, 092400, 100100, 100200, 100300, 100400, 100500, 100601, 100602, 100700, 100800, 100900, 101001, 101002, 101101, 101102, 110101, 110102, 110200, 110300, 110401, 110402, 110501, 110502, 110601, 110602, 120100, 120200, 120300, 120400, 120500, 120600, 120700, 130100, 130200, 130300, 130401, 130402, 140101, 140102, 140200, 140300, 140400, 150100, 160100, 160200, 160300, 160400, 160500, 160600, 160700, 170100, 170200, 170300, 170400, 170500, 170600, 170700, 170800, 180100, 180200, 180300, 180400, 180500],
    '027' : [700100, 701100, 702200, 703100, 703200, 703300, 704200, 705100, 706100, 707100, 707200, 707300, 707400, 707500, 708100, 709100, 709201, 709202, 709300, 709400, 709500, 709600, 709700, 710100, 710200, 710300, 710400, 710500, 710600, 710700, 710800, 710900, 711000, 711100, 712100, 713100, 714100, 714200, 715100, 716100, 716200, 716300, 717100, 718100, 719100, 720100, 721100, 722100, 723100, 724100, 725100, 726100, 726200, 727100, 728100, 728200, 728300, 728400, 729100, 729200, 730100, 730200, 730300, 730401, 730402, 730500, 730600, 730700, 730801, 730802, 730901, 730902, 731000, 731101, 731102, 731201, 731202, 731300, 731400, 731500, 731600, 731700, 731800, 731900, 732001, 732002, 732100, 732201, 732202, 732203, 732300, 732400, 732500, 732600, 732700, 732800, 732901, 732902, 733000, 733101, 733102, 735100, 735200, 736100, 736200, 736300, 736400, 736500, 737100, 737200, 737300, 738100, 738200, 738300, 738400, 739100, 739200, 739300, 739400, 739500, 740100, 740200, 741198, 742100, 742200, 742300, 742400, 743100, 744100, 744200, 744300, 744400, 745100, 746100, 747198, 748100, 749100, 749200, 750100, 750200, 750300, 751100, 752100, 753100, 753200, 754100, 754200, 754300, 754400, 755100, 755200, 756100, 757100, 757200, 757300, 757400, 757500, 758100, 759100, 760100, 761100, 762194, 762195, 762196, 762197, 762198]
 ]]]></entry>
        <entry id="census_mi" type="java"><![CDATA[[
    '099' : [206700,210000,211000,212000,213000,215000,215100,216000,217000,218000,220000,221000,221100,221200,221300,221400,223000,223100,223200,223300,223400,225000,225100,225200,225300,225400,225500,225600,225700,225800,225900,226000,228000,228100,230000,230100,230200,230300,230400,230500,230600,230700,230800,230900,231000,231100,231200,231300,231400,231500,231600,231700,231800,231900,232000,232100,232200,232300,232400,240000,240100,240200,240300,240400,240500,240600,240700,240800,240900,241000,241100,241200,241300,241400,241500,241600,241700,241800,245000,245100,245200,245300,245400,247000,247100,247200,247300,247400,247500,247600,250000,250100,250200,250300,250400,250500,250600,250700,250800,250900,251000,251100,251200,251300,251400,251500,251600,251700,251800,251900,252000,252100,252200,253500,254000,254100,254200,254300,254400,255000,255100,255200,255300,255400,255500,255600,255700,255800,255900,256000,256100,256200,256300,256400,256500,256600,256700,256800,258000,258100,258200,258300,258400,258500,258600,258700,258800,258900,260000,260100,260200,260300,260400,260500,260600,260700,260800,260900,261000,261100,261200,261300,261400,261500,261600,261700,261800,261900,262000,262100,262200,262300,262400,262500,262600,262700,262800,262900,263000,263100,263200,263300,263400,263500,263600,263700,263800,263900,264000,264100,264200,267600,268000,268100],
    '125' : [120000,121000,121100,121500,122000,122100,123000,124000,124500,125000,126000,126100,127000,127100,127200,127300,127400,128000,128100,128200,128300,128400,129000,130000,130100,130200,130300,130400,131000,131100,131200,131300,132000,132500,133000,133100,134000,134100,134200,134300,134400,134500,134600,134700,136000,136100,136200,136300,136400,136500,136600,137800,138000,138100,139000,140000,140100,140200,141000,141100,141200,141300,141400,141500,141600,141700,141800,141900,142000,142100,142200,142300,142400,142500,142600,142700,143000,144000,144100,144200,144300,144400,144500,144600,144700,144800,144900,145000,145100,145200,145300,145400,150000,150100,150200,150300,150400,150500,150600,150700,150800,150900,151000,152000,152500,152600,152700,152800,152900,154000,154200,154500,156000,156100,156200,156300,156400,156500,156600,156700,156800,156900,157000,157100,158000,158100,158200,159000,160000,160500,160600,160700,160800,160900,161000,161100,161200,161300,161400,161500,161600,161700,161800,161900,162000,162100,162200,162300,162400,162500,165000,165100,165200,166000,166100,166200,166300,166400,166500,166600,166700,166800,166900,167000,167100,167200,167300,167400,167500,170000,170100,170200,170300,170400,171000,171100,171200,171300,171400,171500,171600,172400,172500,173000,173100,173200,173300,173400,173500,173600,175000,175100,175200,175300,180000,180100,180200,180300,181000,181100,181200,181300,181400,181500,181600,183000,183100,183200,183300,183400,183500,183600,183700,183800,183900,184000,184100,184200,184300,184400,184500,184600,184700,187000,188000,188100,190000,190100,191000,191100,192000,192200,192400,192600,192800,193000,193100,193200,193400,193800,194000,194200,194400,194600,196000,196100,196200,196300,196400,196500,196600,196700,196800,196900,197000,197100,197200,197300,197400,197500,197600,197700],
    '163' : [500100,500200,500300,500400,500500,500600,500700,500800,500900,501000,501100,501200,501300,501400,501500,501600,501700,501800,501900,502000,503100,503200,503300,503400,503500,503600,503700,503900,504000,504100,504200,504300,504400,504500,504600,504700,504800,504900,505000,505100,505200,505300,506100,506200,506300,506400,506500,506600,506700,506800,506900,507000,507100,507200,507300,507400,507500,507600,507700,507800,507900,508000,510200,510300,510400,510500,510600,510700,510800,510900,511100,511200,511300,511400,511500,511600,511700,512100,512200,512300,512400,512600,512900,513200,513300,513400,513500,513600,513900,514000,514100,514200,514300,514500,514600,514700,514800,514900,515000,515100,515200,515300,515400,515500,515600,515700,516100,516200,516300,516400,516500,516599,516600,516700,516800,516900,517000,517100,517200,517300,517400,517500,517600,517700,517800,517900,518000,518100,518300,518400,518500,518600,518700,518800,520100,520200,520300,520400,520500,520600,520700,520800,520900,521100,521200,521300,521400,521500,521800,521900,522000,522100,522200,522300,522400,523100,523200,523300,523400,523500,523600,523700,523800,524000,524100,524200,524300,524500,524599,524700,524800,525100,525200,525300,525400,525500,525600,525700,525800,526000,526100,526200,526300,526400,526500,530100,530200,530300,530400,530500,530700,530800,531000,531100,531200,531300,531400,531500,531600,531700,531800,531900,532200,532300,532400,532500,532600,532700,533000,533100,533200,533300,533400,533500,533600,533700,534100,534200,534300,534400,534500,534600,534700,535000,535100,535200,535300,535400,535500,535600,535700,536100,536200,536300,536400,536500,536600,536700,536800,536900,537000,537100,537200,537300,537500,537600,537700,537800,538100,538200,538300,538400,538500,538600,538700,538800,538900,539000,539100,539200,539300,539400,539500,539600,539700,540100,540200,540300,540400,540500,540600,540700,540800,540900,541000,541100,541200,541300,541400,541500,541700,541800,542100,542200,542300,542400,542500,542600,542700,542800,542900,543000,543100,543200,543400,543500,543600,543700,543800,543900,544000,544100,544200,544300,545100,545200,545300,545400,545500,545600,545700,545800,545900,546000,546100,546200,546300,546400,546500,546600,546700,546800,546900,550100,550200,550300,550400,550500,550600,550700,550800,550900,551000,551100,551200,551300,551400,551500,551600,552000,552100,552200,552300,552400,552500,552600,552700,553000,553100,553200,553300,553400,553500,553600,553700,554100,554200,554300,554400,554500,554600,554700,554800,554900,555000,555100,555200,555300,555400,555500,555600,556000,556100,556200,556300,556400,556500,556600,556700,556800,556900,557000,557100,557200,557300,557400,557500,557600,557700,557900,558000,558100,558200,558300,558400,558500,558600,558700,558800,558900,559000,559100,559200,560100,560200,560300,560400,560500,560700,560800,561600,561700,561800,561900,562000,562100,562200,562500,562600,562700,563200,563300,563400,563500,563600,563700,563800,563900,564000,564100,564200,564300,564400,564500,564600,564700,564800,564900,565000,566400,566500,566600,566700,566800,566900,567100,567200,567300,567400,567500,567600,567700,567800,567900,568000,568100,568200,568300,568400,568500,568600,568700,568800,568900,569000,569100,569200,569300,569400,569500,569600,569700,569800,569900,570100,570200,570300,570400,570500,570600,570700,570800,570900,571000,571500,571600,571700,571800,571900,572000,572100,572200,572300,572400,572500,572600,572700,572800,572900,573500,573600,573700,573800,573900,574000,574100,574200,574299,574300,574400,574500,574600,574700,574800,574900,575000,575100,575200,575300,575400,575500,575600,576000,576100,576200,576300,576400,576500,576600,576700,577000,577100,577200,577300,577400,577500,577600,577700,577800,577900,578000,578500,578600,579000,579100,579200,579300,579500,579599,579600,579700,579800,580100,580200,580300,580400,580500,580600,580700,580799,580800,580900,581500,581600,581700,581800,581900,582000,582100,583000,583100,583200,583300,583400,583500,583600,583700,583800,583900,584000,584100,584200,584300,584400,584500,584600,584700,584800,585500,585600,585700,585800,585900,586000,586100,586200,586300,587000,587900,588000,588100,588200,588300,588400,589000,589100,589200,590300,590400,591500,591600,591700,591800,591900,592000,593000,593100,594000,594100,594200,594300,594400,594500,595000,595100,595200,596000,596100,597000,598000,599000,599100]
 ]]]></entry>
        <entry id="census_nj" type="java"><![CDATA[[
    '001' : [100,200,300,400,500,800,1100,1200,1300,1400,1500,1600,1700,1800,1900,2200,2300,2400,2500,10101,10102,10103,10200,10300,10401,10402,10403,10501,10503,10504,10600,10700,10800,10900,11000,11100,11201,11202,11300,11401,11402,11500,11600,11701,11702,11801,11802,11803,11804,11805,11900,12000,12100,12200,12301,12302,12401,12402,12501,12502,12601,12602,12701,12702,12801,12802,12900,13000,13100,13200,13300],
    '003' : [1000,2100,2200,2397,2398,3195,3196,3197,3297,3298,3397,3398,3401,3495,3496,3497,3498,3500,3598,4000,5000,6100,6200,6300,7000,8000,9100,9200,10197,10198,10200,10396,10397,10398,11100,11200,11300,11400,12000,13097,13098,14096,14097,14098,15100,15297,15298,15300,15400,15597,15598,16000,17100,17200,17300,17400,17597,17598,18100,18200,19102,19197,19198,19297,19298,19301,19302,20197,20198,20200,21100,21200,21300,21400,21500,21600,22100,22200,23100,23200,23300,23401,23402,23500,23600,24100,24200,25100,25200,26100,26200,27095,27096,27097,27098,28097,28098,29100,29200,30100,30200,30300,30400,31100,31200,31300,31400,32100,32296,32297,32298,33197,33198,33200,33300,34000,35100,35200,36100,36296,36297,36298,37100,37202,37295,37296,37297,37298,38100,38200,38300,39100,39200,39300,40096,40097,40098,41100,41200,41300,42100,42200,42300,42400,42597,42598,43096,43098,44197,44198,44297,44298,45197,45198,45200,46100,46200,46300,47196,47197,47198,47200,47300,47400,47500,48100,48200,49096,49097,49098,50097,50098,51100,51200,51300,51400,52197,52297,52298,53100,53296,53297,53298,54197,54198,54297,54397,54398,54497,54498,54597,54598,54600,55100,55297,55298,56100,56297,56298,57100,57200,58100,58200,59100,59200,60000,61100,61200,61398,61400],
    '005' : [700102,700103,700104,700200,700301,700303,700304,700305,700306,700307,700401,700402,700403,700405,700406,700501,700502,700503,700504,700505,700602,700603,700604,700605,700701,700702,700703,700800,700900,701001,701002,701102,701103,701104,701105,701201,701203,701204,701205,701301,701302,701303,701400,701501,701502,701600,701700,701800,701900,702000,702101,702102,702103,702104,702105,702203,702204,702205,702206,702207,702208,702300,702400,702500,702601,702602,702603,702604,702700,702801,702802,702803,702804,702805,702806,702807,702808,702809,702810,702811,702903,702904,702905,702906,703000,703101,703102,703201,703202,703203,703300,703400,703500,703600,703700,703801,703802,703803,703804,703900,704003,704004,704005,704006,704007,704008,704009,704010,704100,708400],
    '007' : [600100,600200,600300,600400,600500,600600,600700,600800,600900,601000,601100,601200,601300,601400,601500,601600,601700,601800,601900,602000,602501,602502,602503,602601,602602,602701,602702,602703,602799,602800,602901,602902,603001,603002,603100,603200,603301,603302,603303,603400,603501,603502,603503,603504,603505,603601,603602,603603,603700,603800,603901,603902,604000,604100,604200,604300,604400,604500,604600,604700,604800,604900,605000,605100,605200,605300,605400,605500,605601,605602,605700,605800,605900,606000,606100,606200,606300,606400,606500,606600,606700,606800,606901,606902,607000,607100,607200,607300,607401,607402,607500,607600,607700,607800,607900,608001,608002,608100,608201,608202,608204,608298,608301,608302,608400,608500,608600,608700,608800,608901,608903,608904,609000,609101,609102,609200,610100,610200,610300,610400],
    '009' : [20100,20200,20300,20400,20500,20600,20700,20800,20900,21000,21100,21200,21300,21400,21500,21600,21700,21799,21801,21802,21900,22000,22099],
    '011' : [10100,10200,10300,10400,10500,10600,10700,10800,20100,20200,20300,20400,20500,20600,30100,30200,30300,30400,30500,40100,40200,40300,40400,40500,40600,40700,40898,40998,41000],
    '013' : [100,200,300,400,500,600,700,800,900,1000,1100,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,2400,2500,2600,2700,2800,2900,3000,3100,3200,3400,3500,3700,3800,3900,4000,4100,4200,4300,4400,4500,4600,4700,4801,4802,4900,5000,5100,5200,5300,5400,5500,5600,5700,5800,5900,6000,6200,6300,6400,6500,6600,6700,6800,6900,7000,7100,7200,7300,7400,7499,7501,7502,7600,7700,7800,7900,8000,8100,8200,8300,8400,8500,8600,8700,8800,8900,9000,9100,9200,9300,9400,9500,9600,9700,9800,9900,10000,10100,10200,10300,10400,10500,10600,10700,10800,10900,11000,11100,11200,11300,11400,11500,11600,11700,11800,11900,12000,12100,12200,12300,12400,12500,12600,12700,12800,12900,13000,13100,13200,13300,13498,13500,13698,13700,13800,13900,14000,14100,14200,14300,14400,14500,14600,14700,14800,14900,15000,15100,15200,15300,15400,15500,15600,15700,15800,15900,16000,16100,16200,16300,16400,16500,16600,16700,16800,16900,17000,17100,17200,17300,17400,17500,17600,17700,17800,17900,18000,18100,18200,18300,18400,18500,18600,18700,18800,18900,19000,19100,19200,19300,19400,19500,19600,19700,19800,19900,20000,20100,20200,20300,20400,20500,20600,20700,20800,20901,20902,21000,21100,21200,21300,21400,21500,21601,21602,21700,21800,21900,22000,22100,22200,22300,38300],
    '015' : [500100,500201,500202,500203,500204,500205,500300,500400,500500,500600,500701,500702,500703,500800,500900,501001,501002,501003,501101,501102,501103,501104,501105,501106,501107,501201,501202,501203,501204,501205,501206,501207,501208,501298,501301,501302,501303,501401,501402,501403,501404,501500,501603,501604,501605,501606,501607,501701,501702,501703,501704,501800,501900,502000,502100,502200,502300,502400,502499,502500],
    '017' : [100,200,300,400,500,600,700,800,901,902,1000,1100,1201,1202,1300,1400,1500,1601,1602,1700,1800,1900,2000,2100,2200,2300,2400,2500,2600,2700,2800,2900,3000,3100,3200,3300,3400,3500,3600,3700,3800,3900,4000,4101,4102,4200,4300,4400,4500,4600,4700,4800,4900,5000,5100,5200,5300,5400,5500,5600,5801,5802,5900,6000,6100,6200,6300,9600,10100,10200,10300,10400,10499,10500,10600,10700,10800,10899,10900,11000,11100,11200,11300,11400,11500,11600,12300,12400,12500,12600,12700,12800,12900,13000,13100,13200,13300,13400,13500,13600,13700,13800,13900,14000,14100,14200,14300,14400,14500,14600,14700,14800,14900,15000,15100,15200,15300,15400,15500,15600,15700,15800,15900,16000,16100,16200,16300,16400,16500,16600,16700,16800,16900,17000,17100,17200,17300,17400,17500,17600,17700,17800,17900,18000,18100,18200,18300,18400,18500,18600,18700,18800,18900,19000,19100,19200,19300,19400,19500,19600,19700],
    '019' : [10198,10298,10300,10400,10500,10600,10701,10702,10800,10900,11000,11100,11200,11300,11400,11500,11600,11700,11800,11900,12000,12100],
    '021' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,2400,2500,2600,2700,2800,2901,2902,3001,3002,3003,3004,3006,3007,3008,3009,3100,3200,3300,3400,3500,3601,3602,3701,3702,3800,3901,3902,3903,4000,4100,4201,4202,4301,4304,4305,4398,4401,4403,4404,4405],
    '023' : [100,200,300,401,403,404,501,502,603,604,605,606,700,801,802,901,902,1001,1002,1100,1200,1300,1405,1406,1407,1408,1409,1410,1411,1412,1413,1502,1503,1504,1600,1701,1702,1803,1804,1805,1806,1901,1902,1903,2000,2101,2102,2200,2301,2302,2401,2402,2500,2601,2602,2603,2701,2703,2704,2801,2802,2803,2901,2902,3000,3101,3102,3201,3203,3204,3300,3401,3499,3500,3600,3699,3700,3800,3900,4000,4100,4200,4300,4400,4500,4600,4700,4800,4900,5000,5100,5200,5300,5400,5500,5600,5700,5800,5900,6000,6101,6103,6104,6203,6204,6205,6206,6207,6300,6402,6403,6404,6500,6601,6604,6605,6606,6607,6608,6701,6702,6800,6900,7000,7101,7102,7103,7201,7202,7203,7301,7303,7304,7401,7402,7500,7600,7702,7703,7704,7801,7804,7805,7806,7902,7905,7906,7907,7908,7909,7910,8001,8098,8101,8102,8103,8202,8204,8205,8206,8207,8208,8209,8300,8403,8404,8405,8406,8501,8502,8503,8504,8601,8602,8603,8604,8700],
    '025' : [800100,800200,800300,800399,800400,800499,800500,800601,800602,800701,800702,800800,800900,801000,801100,801200,801300,801400,801500,801600,801700,801800,801900,802000,802100,802200,802300,802400,802500,802600,802700,802800,802900,803000,803100,803200,803300,803400,803500,803600,803700,803800,803900,804000,804100,804200,804300,804400,804500,804600,804797,804798,804800,804900,805001,805002,805100,805200,805300,805400,805500,805600,805700,805801,805802,805900,806000,806100,806200,806300,806400,806501,806502,806503,806504,806600,806700,806800,806900,807002,807003,807004,807100,807297,807298,807300,807400,807500,807600,807700,807800,807900,808001,808002,808100,808200,808300,808401,808402,808500,808600,808700,808800,808900,809000,809100,809200,809300,809400,809500,809600,809701,809702,809800,809901,809902,809903,810001,810002,810003,810004,810100,810200,810300,810401,810402,810501,810502,810503,810600,810700,810800,810900,811000,811100,811200,811301,811302,811400,811500,811600,811700,811800,811900,812000,812100,812200],
    '027' : [40101,40102,40200,40300,40400,40500,40600,40701,40702,40801,40802,40803,40900,41000,41100,41200,41300,41400,41500,41601,41602,41603,41604,41701,41702,41703,41704,41801,41802,41803,41901,41902,42000,42100,42200,42301,42302,42500,42600,42700,42800,42900,43000,43100,43200,43301,43302,43303,43401,43402,43500,43600,43700,43800,43900,44000,44101,44102,44200,44300,44401,44402,44501,44502,44600,44700,44800,44900,45000,45100,45200,45300,45400,45401,45402,45500,45600,45601,45602,45700,45801,45802,45901,45902,46000,46101,46102,46297,46298],
    '029' : [710100,710199,711100,711200,711300,711400,712000,713000,713100,713200,713300,713400,713500,713600,713700,713800,713900,714000,714100,714200,714300,714400,715000,715100,715200,715300,715400,715500,715600,715700,715800,715900,716000,717000,717100,717200,717300,717400,717500,718000,719000,720000,720100,720200,721000,722000,722100,722200,722300,722400,722500,722600,722700,722800,722900,723000,723100,723200,723300,723400,723500,723600,724000,725000,725100,726000,727000,728000,729000,730000,731000,731100,731200,732000,732100,733000,734000,735000,735100,736001,736002,736100,737000,738001,738002,738100,739000],
    '031' : [31200,116500,124200,124311,124312,124321,124323,124398,124401,124402,124500,124601,124602,124700,124800,124900,125000,125197,125198,133700,143200,143300,143400,154098,163598,175200,175300,175400,175500,175600,175700,175800,175900,180100,180200,180300,180400,180500,180600,180700,180800,180900,181000,181100,181200,181300,181400,181500,181601,181602,181701,181702,181800,181900,182000,182100,182200,182300,182400,182500,182600,182700,182800,182900,183000,183100,196400,203600,216700,223800,223900,236697,236698,246001,246002,246098,246101,246102,246103,246104,246201,246202,246203,246300,256801,256802,256803,256804,256805,264100,264200,264300,264500],
    '033' : [20100,20200,20300,20400,20500,20600,20700,20800,20900,21000,21100,21201,21202,21300,21400,21500,21600,21700,21900,22000,22100,22201,22202],
    '035' : [50100,50200,50300,50400,50500,50600,50700,50801,50802,50901,50902,50903,51000,51100,51200,51300,51400,51500,51600,51798,51800,51900,52002,52098,52100,52201,52202,52300,52400,52500,52601,52602,52700,52800,52901,52902,53000,53102,53103,53104,53105,53200,53300,53400,53501,53502,53601,53602,53701,53703,53704,53801,53803,53804,53805,53901,53902,53903,54000],
    '037' : [371000,371100,371200,371300,371400,371500,371600,371700,371800,371900,372000,372100,372200,372300,372400,372500,372600,372700,372800,372900,373000,373100,373200,373300,373400,373500,373600,373700,373800,373900,374000,374100,374200,374300,374400,374500,374600,374700,374800,374900,375000],
    '039' : [30100,30199,30200,30300,30400,30500,30600,30700,30801,30802,30900,31000,31100,31200,31300,31400,31500,31600,31700,31800,31901,31902,32000,32100,32298,32398,32400,32500,32600,32700,32800,32900,33000,33100,33200,33300,33400,33500,33600,33700,33800,33900,34000,34100,34200,34300,34400,34500,34600,34700,34800,34900,35000,35100,35200,35300,35400,35499,35500,35600,35700,35800,35900,36000,36100,36200,36300,36400,36500,36600,36700,36800,36900,37000,37100,37200,37300,37400,37500,37600,37700,37800,37900,38000,38101,38102,38200,38300,38400,38500,38600,38700,38800,38900,39000,39100,39200,39300,39400,39500,39600,39700,39800,39900],
    '041' : [30600,30700,30800,30900,31101,31102,31200,31301,31302,31401,31402,31500,31601,31602,31700,31800,31900,32000,32101,32102,32200,32300,32400]
 ]]]></entry>
        <entry id="census_nm" type="java"><![CDATA[[
    '001' : [107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,203,204,205,206,207,208,300,400,500,601,602,703,704,707,708,709,710,800,901,903,904,1001,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,2401,2402,2500,2600,2700,2800,2900,3001,3002,3100,3201,3202,3400,3501,3502,3600,3701,3703,3705,3707,3710,3711,3712,3714,3715,3716,3717,3718,3719,3795,3797,3798,3801,3802,3900,4001,4300,4401,4402,4501,4502,4602,4603,4604,4705,4706,4707,4708,4709,4710,4711,4800],
    '003' : [976100,976200],
    '005' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400],
    '006' : [974100,974200,974300,974400,974500,974600,974700,974800],
    '007' : [950500,950600,950700,950800],
    '009' : [100,201,202,301,302,400,500,600,700,800,900],
    '011' : [960100,960200],
    '013' : [101,102,200,300,401,402,500,600,700,800,900,1000,1101,1102,1201,1202,1300,1400,1500,1600,1700,1800,1900],
    '015' : [100,200,300,400,500,600,700,800,900,1000,1100,1200],
    '017' : [984100,984200,984300,984400,984500,984600,984700,984800,984900],
    '019' : [961600,961700,961800,961900],
    '021' : [956100],
    '023' : [988100,988200,988300],
    '025' : [100,200,300,400,500,600,700,800,900,1001,1002,1003,1100],
    '027' : [980100,980200,980300,980400,980500,980600,980700,980800,980900],
    '028' : [100,200,300,400,500],
    '029' : [986100,986200,986300,986400,986500,986600,986700,986800],
    '031' : [972100,972200,972300,972400,972500,972600,972700,972800,972900,973000,973100,973200,973300],
    '033' : [955100,955200],
    '035' : [100,200,301,302,401,402,500,601,602,603,700,800,900],
    '037' : [958500,958600,958700,958800],
    '039' : [953500,953600,953700,953800,953900,954000,954100,954200,954300,954400,963600,973800],
    '041' : [959000,959100,959200,959300,959400],
    '043' : [10100,10200,10300,10400,10501,10502,10600,10701,10702,10703,10704,10705,10706,10707,10708,10709],
    '045' : [100,201,202,203,301,302,401,402,500,601,602,701,702,800,900,1001,1002],
    '047' : [957000,957100,957200,957300,957400,957500,957600,957700],
    '049' : [101,200,300,400,500,600,700,800,900,1001,1002,1102,1103,1104,1105,1200,10101,10102,10200,10302,10303,10304,10305,10306,10400,10500],
    '051' : [982100,982200,982300,982400],
    '053' : [978000,978100,978200,978300,978400],
    '055' : [952100,952200,952300,952400,952500,952600,952700,952800,952898,952900],
    '057' : [963100,963200,963300],
    '059' : [950100,950200],
    '061' : [970100,970200,970300,970400,970500,970600,970700,970800,970900,971000,971100,971200]
 ]]]></entry>
        <entry id="census_ny" type="java"><![CDATA[[
    '001' : [000100, 000200, 000300, 000401, 000402, 000501, 000502, 000600, 000700, 000800, 001100, 001400, 001500, 001600, 001700, 001801, 001802, 001901, 001902, 002000, 002100, 002200, 002300, 002500, 002600, 012700, 012800, 012900, 013000, 013100, 013200, 013300, 013400, 013502, 013503, 013504, 013601, 013602, 013703, 013704, 013705, 013801, 013802, 013900, 014000, 014100, 014201, 014202, 014203, 014301, 014302, 014401, 014402, 014501, 014502, 014503, 014606, 014607, 014608, 014609, 014610, 014611, 014612, 014613, 014700, 014801, 014802, 014803],
    '003' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000, 951100, 951200, 951300],
    '005' : [000100, 000200, 000400, 000500, 001100, 001500, 001600, 001700, 002000, 002300, 002400, 002500, 002701, 002702, 002800, 003100, 003300, 003500, 003600, 003700, 003800, 003900, 004001, 004002, 004100, 004300, 004400, 004600, 004700, 004800, 004900, 005000, 005200, 005301, 005302, 005400, 005600, 005700, 005800, 005901, 005902, 006000, 006100, 006200, 006400, 006500, 006600, 006700, 006800, 006900, 007000, 007100, 007200, 007300, 007400, 007500, 007700, 007800, 007900, 008100, 008300, 008400, 008500, 008600, 008700, 008800, 008900, 009100, 009200, 009400, 009700, 009800, 009900, 010200, 010500, 011000, 011501, 011502, 011800, 011900, 012101, 012102, 012300, 012500, 012701, 012702, 012901, 012902, 013000, 013100, 013200, 013300, 013500, 013700, 013800, 013900, 014100, 014300, 014400, 014500, 014700, 014900, 015100, 015300, 015400, 015500, 015600, 015700, 015800, 016000, 016100, 016200, 016300, 016400, 016500, 016600, 016700, 016900, 017100, 017300, 017500, 017700, 017900, 018100, 018300, 018400, 018700, 018900, 019300, 019400, 019500, 019600, 019700, 019800, 019900, 020100, 020200, 020400, 020500, 020601, 020602, 020800, 021000, 021100, 021200, 021301, 021302, 021400, 021501, 021502, 021601, 021602, 021701, 021702, 021800, 021900, 022000, 022100, 022300, 022401, 022402, 022500, 022701, 022702, 022703, 022800, 022901, 022902, 023000, 023100, 023200, 023301, 023302, 023400, 023501, 023502, 023600, 023701, 023702, 023900, 024000, 024100, 024200, 024300, 024400, 024500, 024600, 024700, 024800, 024900, 025000, 025100, 025200, 025300, 025400, 025500, 025600, 025700, 025800, 026100, 026300, 026400, 026500, 026601, 026602, 026700, 026900, 027101, 027102, 027300, 027400, 027600, 027700, 027900, 028100, 028300, 028400, 028500, 028600, 028700, 028800, 028900, 029300, 029500, 029600, 029700, 030000, 030100, 030200, 030700, 031000, 031200, 031400, 031600, 031700, 031800, 031900, 032000, 032200, 032300, 032400, 032800, 032900, 033000, 033200, 033300, 033400, 033600, 033800, 033900, 034000, 034100, 034200, 034300, 034400, 034500, 034600, 035000, 035100, 035200, 035400, 035600, 035800, 035900, 036100, 036300, 036400, 036501, 036502, 036600, 036700, 036800, 036901, 036902, 037000, 037100, 037200, 037300, 037400, 037501, 037502, 037503, 037600, 037700, 037800, 037900, 038000, 038100, 038200, 038300, 038500, 038600, 038700, 038800, 038900, 039000, 039100, 039200, 039300, 039400, 039600, 039700, 039800, 039901, 039902, 040100, 040301, 040302, 040400, 040500, 040600, 040701, 040702, 040800, 040900, 041000, 041100, 041300, 041400, 041500, 041800, 041900, 042000, 042100, 042200, 042300, 042400, 042500, 042600, 042800, 042901, 042902, 043000, 043100, 043200, 043500, 043600, 043800, 044000, 044200, 044600, 044800, 044901, 044902, 045101, 045102, 045400, 045800, 046000, 046201, 046202, 048400, 050200, 050400, 051600],
    '007' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 010298, 011901, 011902, 011903, 012001, 012101, 012102, 012103, 012201, 012202, 012300, 012400, 012500, 012600, 012701, 012702, 012800, 012900, 013000, 013100, 013201, 013202, 013301, 013303, 013304, 013400, 013500, 013600, 013700, 013800, 013900, 014000, 014100, 014200, 014300, 014400, 014500, 014600, 014798],
    '009' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100, 961200, 961300, 961400, 961500, 961600, 961700, 961800, 961900, 962000, 962100, 962200],
    '011' : [040100, 040200, 040300, 040400, 040500, 040600, 040700, 040800, 040900, 041000, 041100, 041200, 041300, 041400, 041500, 041600, 041700, 041800, 041900, 042000],
    '013' : [030100, 030200, 030300, 030400, 030500, 030600, 030700, 030800, 035100, 035200, 035300, 035400, 035500, 035600, 035700, 035800, 035901, 035902, 036000, 036100, 036300, 036400, 036500, 036600, 036700, 036800, 036900, 037000, 037100, 037200, 037300, 037400, 037500],
    '015' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011100, 011200],
    '017' : [990100, 990200, 990300, 990400, 990500, 990600, 990700, 990800, 990900, 991000],
    '019' : [100100, 100200, 100300, 100400, 100500, 100600, 100700, 100800, 100900, 101000, 101100, 101200, 101300, 101400, 101500, 101600, 101700, 101800, 101900, 102000],
    '021' : [990100, 990200, 990300, 990400, 990500, 990600, 990700, 990800, 990900, 991000, 991100, 991200, 991300, 991400, 991500, 991600, 991700, 991800, 991900, 992000],
    '023' : [990100, 990200, 990300, 990400, 990500, 990600, 990700, 990800, 990900, 991000, 991100, 991200],
    '025' : [990100, 990200, 990300, 990400, 990500, 990600, 990700, 990800, 990900, 991000, 991100, 991200, 991300, 991400],
    '027' : [010000, 020001, 020002, 030000, 040001, 040002, 050101, 050102, 050201, 050202, 060100, 060200, 060300, 070101, 070102, 070200, 070300, 070400, 080101, 080102, 080200, 090000, 100000, 110001, 110002, 120000, 130001, 130002, 140100, 140200, 140300, 140400, 140500, 140600, 140700, 140800, 150001, 150002, 160001, 160002, 170000, 180000, 190100, 190201, 190202, 190300, 190400, 200000, 210100, 210200, 210300, 220100, 220200, 220300, 220400, 220500, 220600, 220700, 220800, 220900, 221000, 300000, 410000, 610000, 620000, 630000, 640000, 650000],
    '029' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001301, 001302, 001401, 001402, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002300, 002400, 002501, 002502, 002600, 002701, 002702, 002800, 002900, 003000, 003100, 003201, 003202, 003301, 003302, 003400, 003500, 003600, 003700, 003800, 003901, 003902, 004001, 004002, 004100, 004200, 004300, 004401, 004402, 004500, 004601, 004602, 004700, 004800, 004900, 005000, 005100, 005201, 005202, 005300, 005400, 005500, 005600, 005700, 005800, 005900, 006000, 006100, 006201, 006202, 006301, 006302, 006400, 006501, 006502, 006601, 006602, 006701, 006702, 006800, 006900, 007000, 007101, 007102, 007201, 007202, 007302, 007303, 007304, 007400, 007500, 007600, 007700, 007800, 007901, 007902, 007903, 007904, 008001, 008002, 008003, 008101, 008102, 008201, 008202, 008300, 008400, 008500, 008600, 008700, 008800, 008900, 009003, 009004, 009006, 009007, 009008, 009104, 009106, 009107, 009108, 009109, 009110, 009112, 009113, 009114, 009200, 009301, 009302, 009401, 009402, 009501, 009502, 009600, 009701, 009702, 009800, 009900, 010001, 010002, 010101, 010102, 010200, 010300, 010400, 010500, 010600, 010700, 010803, 010804, 010805, 010806, 010807, 010901, 010902, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 011901, 011902, 012001, 012002, 012100, 012200, 012300, 012400, 012501, 012502, 012600, 012700, 012800, 012901, 012902, 013000, 013101, 013102, 013201, 013202, 013300, 013400, 013500, 013600, 013701, 013702, 013800, 013900, 014000, 014101, 014102, 014203, 014204, 014205, 014300, 014400, 014501, 014502, 014601, 014602, 014701, 014702, 014801, 014803, 014804, 014901, 014903, 014904, 015001, 015002, 015003, 015101, 015102, 015201, 015202, 015301, 015302, 015400, 015501, 015502, 015600, 015700, 015800, 015900, 016001, 016002, 016100, 016200],
    '031' : [960100, 960200, 960300, 960498, 960598, 960600, 960700, 960800, 960900, 961000, 961100, 961200, 961300, 961400],
    '033' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000, 951100, 951200, 991300, 991498],
    '035' : [990100, 990200, 990300, 990400, 990500, 990600, 990700, 990800, 990900, 991000, 991100, 991200, 991300, 991400, 991500],
    '037' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000, 951100, 951200, 951300, 951400, 951500],
    '039' : [080100, 080200, 080300, 080400, 080500, 080600, 080700, 080800, 080900, 081000, 081100],
    '041' : [950100, 950200, 950300, 950400, 950500, 950600],
    '043' : [010100, 010201, 010202, 010300, 010400, 010501, 010502, 010600, 010700, 010800, 010900, 011001, 011002, 011100, 011200, 011301, 011302, 011400, 011500],
    '045' : [060100, 060200, 060300, 060400, 060500, 060600, 060700, 060800, 060900, 061000, 061100, 061200, 061300, 061400, 061500, 061600, 061700, 061800, 061900, 062000, 062100, 062200, 062400, 062500],
    '047' : [000100, 000200, 000301, 000302, 000500, 000700, 000900, 001100, 001300, 001800, 002000, 002100, 002200, 002300, 002500, 002700, 002901, 002902, 003000, 003100, 003200, 003300, 003400, 003500, 003600, 003700, 003800, 003900, 004000, 004100, 004200, 004300, 004500, 004600, 004700, 004800, 004900, 005000, 005100, 005201, 005202, 005400, 005500, 005601, 005602, 005700, 005800, 005900, 006000, 006200, 006300, 006400, 006500, 006600, 006700, 006800, 006900, 007000, 007100, 007200, 007400, 007500, 007600, 007700, 007800, 008000, 008200, 008400, 008500, 008600, 008800, 009000, 009200, 009400, 009600, 009800, 010000, 010100, 010200, 010400, 010600, 010800, 011000, 011200, 011400, 011600, 011700, 011800, 012000, 012100, 012200, 012300, 012400, 012500, 012700, 012801, 012802, 012901, 012902, 013000, 013100, 013200, 013300, 013400, 013500, 013600, 013700, 013800, 013900, 014000, 014100, 014200, 014300, 014400, 014500, 014600, 014700, 014800, 014900, 015000, 015100, 015300, 015400, 015500, 015600, 015700, 015800, 015900, 016000, 016100, 016200, 016300, 016400, 016500, 016700, 016800, 016900, 017000, 017100, 017200, 017300, 017400, 017500, 017600, 017700, 017800, 017900, 018000, 018100, 018200, 018300, 018400, 018501, 018502, 018600, 018700, 018800, 018900, 019000, 019100, 019200, 019300, 019400, 019500, 019600, 019700, 019800, 019900, 020000, 020100, 020200, 020300, 020400, 020500, 020600, 020700, 020800, 021000, 021200, 021300, 021400, 021500, 021600, 021700, 021800, 021900, 022000, 022100, 022200, 022300, 022400, 022500, 022600, 022700, 022800, 022900, 023000, 023100, 023200, 023300, 023400, 023500, 023600, 023700, 023800, 023900, 024000, 024100, 024200, 024300, 024400, 024500, 024600, 024700, 024800, 024900, 025000, 025100, 025200, 025300, 025400, 025500, 025600, 025700, 025800, 025901, 025902, 026000, 026100, 026200, 026300, 026400, 026500, 026600, 026700, 026800, 026900, 027000, 027101, 027102, 027200, 027300, 027400, 027500, 027600, 027700, 027800, 027900, 028000, 028100, 028200, 028300, 028400, 028501, 028502, 028600, 028700, 028800, 028900, 029000, 029100, 029200, 029300, 029400, 029500, 029600, 029700, 029800, 029900, 030000, 030100, 030200, 030300, 030400, 030600, 030700, 030800, 030900, 031100, 031300, 031400, 031500, 031701, 031702, 031900, 032000, 032100, 032300, 032500, 032600, 032700, 032800, 032900, 033000, 033100, 033300, 033500, 033600, 033700, 033900, 034000, 034100, 034200, 034300, 034500, 034700, 034801, 034802, 034900, 035000, 035100, 035200, 035300, 035400, 035500, 035600, 035700, 035900, 036001, 036002, 036100, 036200, 036300, 036400, 036501, 036502, 036600, 036700, 036900, 037000, 037100, 037300, 037400, 037500, 037700, 037900, 038100, 038200, 038300, 038500, 038600, 038700, 038800, 038900, 039000, 039100, 039200, 039300, 039400, 039500, 039600, 039700, 039800, 039900, 040000, 040100, 040200, 040300, 040400, 040500, 040600, 040700, 040800, 040900, 041000, 041100, 041200, 041300, 041401, 041402, 041500, 041600, 041700, 041800, 041900, 042000, 042100, 042200, 042300, 042400, 042500, 042600, 042700, 042800, 042900, 043000, 043100, 043200, 043300, 043400, 043500, 043600, 043700, 043800, 043900, 044000, 044100, 044200, 044300, 044400, 044500, 044600, 044700, 044800, 045000, 045200, 045300, 045400, 045597, 045598, 045600, 045800, 046001, 046002, 046201, 046202, 046400, 046500, 046800, 047000, 047200, 047300, 047400, 047600, 047700, 047800, 048000, 048100, 048200, 048300, 048400, 048600, 048700, 048800, 048900, 049000, 049100, 049200, 049300, 049400, 049500, 049600, 049700, 049800, 049900, 050000, 050100, 050201, 050202, 050300, 050400, 050500, 050600, 050700, 050800, 050900, 051000, 051100, 051200, 051300, 051400, 051500, 051600, 051700, 051800, 051900, 052000, 052200, 052300, 052400, 052500, 052600, 052700, 052800, 052900, 053000, 053100, 053200, 053300, 053400, 053500, 053600, 053700, 053800, 053900, 054000, 054200, 054300, 054400, 054500, 054698, 054700, 054800, 054900, 055000, 055100, 055200, 055300, 055400, 055500, 055600, 055700, 055800, 055900, 056000, 056200, 056300, 056400, 056500, 056600, 056700, 056800, 056900, 057000, 057100, 057200, 057300, 057400, 057500, 057600, 057700, 057800, 057900, 058000, 058200, 058400, 058600, 058800, 058900, 059000, 059100, 059200, 059300, 059401, 059402, 059600, 059800, 060097, 060098, 060697, 060800, 061001, 061097, 061200, 061400, 061697, 061698, 061800, 062200, 062600, 062898, 063200, 063600, 063800, 064000, 064200, 064400, 064600, 064800, 065000, 065200, 065400, 065600, 065800, 066000, 066200, 066698, 067000, 067200, 067400, 067600, 067800, 068000, 068200, 068600, 068800, 069000, 069200, 069600, 069800, 070000, 070201, 070202, 070203, 070600, 072000, 072200, 072400, 072600, 072800, 073000, 073200, 073400, 073600, 073800, 074000, 074200, 074400, 074600, 074800, 075000, 075200, 075400, 075600, 075898, 076000, 076200, 076400, 076600, 077000, 077200, 077400, 077600, 077800, 078000, 078200, 078400, 078600, 078800, 079000, 079200, 079400, 079600, 079800, 080000, 080200, 080400, 080600, 081000, 081200, 081400, 081600, 081800, 082000, 082200, 082400, 082600, 082800, 083000, 083200, 083400, 083600, 083800, 084000, 084200, 084400, 084600, 084800, 085000, 085200, 085400, 085600, 085800, 086000, 086200, 086400, 086600, 086800, 087000, 087200, 087401, 087402, 087600, 087800, 088000, 088200, 088400, 088600, 088800, 089000, 089200, 089400, 089600, 089800, 090000, 090200, 090400, 090600, 090800, 091000, 091200, 091400, 091600, 091800, 092000, 092200, 092800, 093000, 093400, 093600, 093800, 094000, 094200, 094401, 094402, 095000, 095400, 095600, 095800, 096000, 096200, 096400, 096600, 096800, 097000, 097400, 098200, 098400, 098600, 098800, 099000, 099200, 099400, 099600, 099800, 100400, 100600, 100800, 101000, 101200, 101400, 101600, 101800, 102000, 102200, 102400, 102600, 102800, 103400, 105800, 107000, 107800, 109800, 110000, 110200, 110600, 111000, 111200, 111400, 111800, 112000, 112200, 112400, 112600, 112800, 113000, 113200, 113400, 113600, 113800, 114000, 114201, 114202, 114600, 114800, 115000, 115200, 115400, 115600, 115800, 116000, 116200, 116400, 116600, 116800, 117000, 117201, 117202, 117400, 117601, 117602, 117800, 118000, 118201, 118202, 118400, 118600, 118800, 119097, 119200, 119400, 119600, 120000, 120297, 120298, 120800, 121000, 121400, 122000],
    '049' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
    '051' : [030100, 030200, 030300, 030400, 030500, 030600, 030700, 030800, 030900, 031000, 031100, 031200, 031300, 031400],
    '053' : [030101, 030102, 030103, 030200, 030300, 030401, 030402, 030403, 030501, 030502, 030600, 030700, 030800, 030900, 031000, 031100],
    '055' : [000200, 000700, 001000, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002300, 002400, 002700, 002900, 003000, 003100, 003200, 003300, 003400, 003500, 003600, 003700, 003801, 003802, 003803, 003804, 003900, 004000, 004100, 004300, 004601, 004602, 004701, 004702, 004800, 004900, 005000, 005100, 005200, 005300, 005400, 005500, 005600, 005700, 005800, 005900, 006000, 006100, 006200, 006300, 006400, 006500, 006600, 006700, 006800, 006900, 007000, 007100, 007500, 007600, 007700, 007801, 007802, 007900, 008000, 008100, 008200, 008300, 008400, 008500, 008600, 008701, 008702, 008800, 008900, 009000, 009100, 009200, 009301, 009302, 009401, 009402, 009403, 009500, 009601, 009602, 009603, 009604, 010100, 010200, 010300, 010400, 010500, 010601, 010602, 010700, 010800, 010901, 010902, 011000, 011100, 011201, 011203, 011205, 011206, 011300, 011400, 011501, 011503, 011504, 011505, 011601, 011603, 011604, 011605, 011701, 011703, 011704, 011800, 011901, 011902, 012000, 012100, 012201, 012202, 012301, 012302, 012400, 012500, 012600, 012700, 012800, 012900, 013001, 013002, 013101, 013103, 013104, 013202, 013203, 013204, 013300, 013400, 013501, 013502, 013601, 013602, 013701, 013702, 013800, 013901, 013902, 014001, 014003, 014004, 014102, 014103, 014104, 014202, 014203, 014204, 014301, 014302, 014400, 014502, 014503, 014504, 014600, 014700, 014802, 014803, 014804, 014901, 014903, 014904, 015000, 015100, 015200, 015301, 015302, 015400],
    '057' : [070100, 070200, 070300, 070400, 070500, 070600, 070700, 070800, 070900, 072100, 072200, 072300, 072400, 072500, 072600, 072700, 072800],
    '059' : [300100, 300200, 300300, 300400, 300500, 300600, 300700, 300800, 300900, 301000, 301101, 301102, 301200, 301300, 301400, 301500, 301600, 301700, 301800, 301900, 302000, 302101, 302102, 302200, 302300, 302400, 302501, 302502, 302600, 302700, 302800, 302900, 303000, 303101, 303102, 303201, 303202, 303301, 303302, 303400, 303500, 303600, 303700, 303800, 303900, 304001, 304002, 304100, 304201, 304202, 404300, 404400, 404500, 404600, 404700, 404800, 404900, 405000, 405100, 405200, 405301, 405302, 405400, 405500, 405600, 405700, 405800, 405900, 406001, 406002, 406100, 406201, 406202, 406300, 406400, 406501, 406502, 406600, 406700, 406800, 406900, 407000, 407101, 407102, 407200, 407301, 407302, 407401, 407402, 407501, 407502, 407600, 407700, 407801, 407802, 407900, 408000, 408100, 408200, 408300, 408400, 408500, 408600, 408700, 408800, 408900, 409000, 409100, 409200, 409300, 409400, 409500, 409600, 409700, 409800, 409900, 410000, 410100, 410200, 410300, 410400, 410500, 410600, 410700, 410800, 410900, 411000, 411100, 411200, 411301, 411302, 411400, 411500, 411600, 411700, 411800, 411901, 411902, 412000, 412100, 412200, 412301, 412302, 412400, 412500, 412600, 412700, 412800, 412900, 413001, 413002, 413100, 413200, 413300, 413400, 413500, 413600, 413700, 413801, 413802, 413900, 414001, 414002, 414100, 414201, 414202, 414301, 414302, 414400, 414501, 414502, 414600, 414700, 414800, 414900, 415000, 415101, 415102, 415201, 415202, 415300, 415401, 415402, 415500, 415600, 415700, 415800, 415900, 416000, 416100, 416201, 416202, 416300, 416400, 416500, 416600, 416701, 416702, 416800, 416900, 517000, 517101, 517102, 517200, 517301, 517302, 517400, 517500, 517600, 517701, 517704, 517705, 517706, 517801, 517802, 517900, 518000, 518100, 518201, 518203, 518204, 518300, 518400, 518501, 518502, 518600, 518700, 518800, 518900, 519000, 519100, 519200, 519300, 519400, 519500, 519601, 519602, 519702, 519703, 519704, 519801, 519802, 519900, 520001, 520002, 520100, 520200, 520300, 520401, 520402, 520501, 520502, 520600, 520700, 520800, 520900, 521000, 521100, 521200, 521301, 521302, 521400, 521500, 521601, 521602, 521700, 521801, 521802, 521900, 522000],
    '061' : [000100, 000201, 000202, 000500, 000599, 000600, 000700, 000800, 000900, 001001, 001002, 001200, 001300, 001401, 001402, 001501, 001502, 001600, 001800, 002000, 002100, 002201, 002202, 002400, 002500, 002601, 002602, 002700, 002800, 002900, 003001, 003002, 003100, 003200, 003300, 003400, 003601, 003602, 003800, 003900, 004000, 004100, 004200, 004300, 004401, 004402, 004500, 004700, 004897, 004900, 005000, 005100, 005200, 005300, 005400, 005501, 005502, 005600, 005700, 005800, 005900, 006000, 006100, 006200, 006300, 006497, 006498, 006500, 006600, 006700, 006800, 006900, 007000, 007100, 007200, 007300, 007400, 007500, 007600, 007700, 007800, 007900, 008000, 008100, 008200, 008300, 008400, 008600, 008700, 008800, 008900, 009000, 009100, 009200, 009300, 009400, 009500, 009600, 009700, 009800, 009900, 010000, 010100, 010200, 010300, 010400, 010601, 010602, 010800, 010900, 011000, 011100, 011201, 011202, 011203, 011300, 011401, 011402, 011500, 011600, 011700, 011800, 011900, 012000, 012100, 012200, 012400, 012500, 012600, 012700, 012800, 012900, 013000, 013100, 013200, 013300, 013400, 013500, 013600, 013700, 013800, 013900, 014000, 014200, 014300, 014401, 014402, 014500, 014601, 014602, 014700, 014801, 014802, 014900, 015001, 015002, 015100, 015200, 015300, 015400, 015500, 015601, 015602, 015700, 015801, 015802, 015900, 016001, 016002, 016100, 016200, 016300, 016400, 016500, 016600, 016700, 016800, 016900, 017000, 017100, 017201, 017202, 017300, 017401, 017402, 017500, 017700, 017800, 017900, 018000, 018100, 018200, 018300, 018400, 018500, 018600, 018700, 018800, 018900, 019000, 019100, 019200, 019300, 019400, 019500, 019600, 019701, 019702, 019800, 019900, 020000, 020101, 020102, 020200, 020300, 020400, 020500, 020600, 020701, 020702, 020800, 020901, 020902, 021000, 021100, 021200, 021301, 021302, 021400, 021600, 021701, 021702, 021800, 021997, 022000, 022101, 022102, 022200, 022397, 022398, 022400, 022500, 022600, 022701, 022702, 022800, 022900, 023000, 023101, 023102, 023200, 023300, 023400, 023501, 023502, 023600, 023700, 023800, 023900, 024000, 024100, 024301, 024302, 024500, 024700, 024900, 025100, 025300, 025500, 026100, 026300, 026500, 026700, 026900, 027100, 027300, 027500, 027700, 027900, 028100, 028300, 028500, 028700, 028900, 029100, 029300, 029500, 029700, 030100, 030300, 030700, 030900, 031100, 031300, 031500, 031701, 031702, 031900],
    '063' : [020100, 020200, 020300, 020400, 020500, 020600, 020700, 020900, 021000, 021100, 021200, 021300, 021400, 021500, 021700, 022000, 022100, 022200, 022300, 022401, 022500, 022601, 022602, 022702, 022711, 022712, 022801, 022802, 022900, 023000, 023100, 023200, 023300, 023401, 023402, 023500, 023600, 023700, 023800, 023900, 024001, 024002, 024101, 024102, 024201, 024202, 024301, 024302, 024303, 024401, 024402, 024403, 024501, 024502],
    '065' : [020100, 020201, 020202, 020300, 020400, 020500, 020600, 020701, 020702, 020801, 020802, 020803, 020900, 021000, 021101, 021102, 021103, 021201, 021202, 021301, 021302, 021303, 021401, 021402, 021403, 021404, 021500, 021601, 021602, 021701, 021702, 021800, 021900, 022000, 022100, 022200, 022300, 022400, 022500, 022600, 022701, 022702, 022800, 022900, 023000, 023100, 023200, 023202, 023300, 023400, 023501, 023502, 023600, 023701, 023702, 023800, 023901, 023902, 024000, 024100, 024200, 024301, 024302, 024303, 024400, 024500, 024600, 024700, 024800, 024900, 025001, 025002, 025003, 025100, 025200, 025300, 025400, 025500, 025600, 025700, 025800, 034301],
    '067' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001300, 001400, 001500, 001600, 001701, 001702, 001800, 001900, 002000, 002100, 002200, 002300, 002400, 002700, 002800, 002900, 003000, 003100, 003200, 003300, 003400, 003500, 003601, 003602, 003700, 003800, 003900, 004000, 004100, 004200, 004300, 004400, 004500, 004600, 004800, 004900, 005000, 005100, 005200, 005300, 005400, 005500, 005601, 005602, 005700, 005800, 005900, 006000, 006101, 006102, 006103, 010100, 010200, 010301, 010302, 010400, 010500, 010600, 010700, 010800, 010900, 011001, 011002, 011101, 011102, 011201, 011202, 011203, 011204, 011300, 011401, 011402, 011500, 011600, 011700, 011800, 011900, 012000, 012100, 012200, 012300, 012400, 012500, 012600, 012700, 012800, 012900, 013000, 013100, 013200, 013300, 013400, 013500, 013600, 013700, 013800, 013900, 014000, 014100, 014200, 014300, 014400, 014500, 014600, 014700, 014800, 014900, 015000, 015100, 015201, 015202, 015203, 015300, 015400, 015500, 015600, 015700, 015800, 015900, 016001, 016002, 016100, 016200, 016300, 016400, 016501, 016502, 016600, 016700, 016801, 016802, 016901, 016902],
    '069' : [050100, 050201, 050202, 050300, 050400, 050500, 050600, 050700, 050800, 050900, 051000, 051100, 051200, 051300, 051400, 051500, 051600, 051700, 051800, 051900, 052000, 052100, 052200],
    '071' : [000100, 000200, 000300, 000400, 000500, 000600, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 002100, 002200, 002300, 010100, 010200, 010299, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 011900, 012100, 012200, 012300, 012400, 012500, 012600, 012700, 012800, 012900, 013000, 013100, 013200, 013300, 013400, 013500, 013600, 013700, 013800, 013900, 014100, 014201, 014202, 014301, 014302, 014400, 014500, 014600, 014700, 014800, 014900, 015000],
    '073' : [040100, 040200, 040300, 040400, 040500, 040600, 040700, 040800],
    '075' : [020100, 020200, 020301, 020302, 020400, 020500, 020600, 020701, 020702, 020703, 020800, 020901, 020902, 021000, 021101, 021102, 021103, 021104, 021200, 021300, 021401, 021402, 021501, 021502, 021601, 021602, 021603, 021604, 021605],
    '077' : [990100, 990200, 990300, 990400, 990500, 990600, 990700, 990800, 990900, 991000, 991100, 991200, 991300, 991400, 991500, 991600],
    '079' : [010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 011900],
    '081' : [000100, 000200, 000400, 000600, 000700, 000800, 001000, 001200, 001400, 001600, 001800, 001900, 002000, 002200, 002400, 002500, 002600, 002700, 002800, 002900, 003000, 003100, 003200, 003400, 003500, 003600, 003700, 003800, 003900, 004001, 004002, 004100, 004200, 004300, 004401, 004402, 004500, 004700, 004900, 005000, 005100, 005200, 005300, 005400, 005500, 005700, 005800, 005900, 006100, 006200, 006300, 006500, 006700, 006900, 007100, 007300, 007500, 007700, 007900, 008100, 008300, 008600, 008700, 008800, 009100, 009400, 009500, 009600, 009700, 009800, 009900, 010000, 010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 011900, 012000, 012100, 012200, 012300, 012400, 012601, 012602, 012800, 013000, 013200, 013400, 013500, 013600, 013700, 013800, 014000, 014100, 014201, 014202, 014300, 014400, 014500, 014700, 014800, 014900, 015000, 015100, 015200, 015300, 015400, 015500, 015600, 015700, 015800, 015900, 016100, 016300, 016400, 016600, 016800, 016900, 017000, 017100, 017200, 017400, 017600, 017800, 017900, 018000, 018100, 018200, 018300, 018401, 018402, 018500, 018600, 018700, 018800, 018900, 019000, 019100, 019200, 019401, 019402, 019600, 019700, 019800, 020200, 020400, 020501, 020502, 020600, 020800, 021200, 021400, 021600, 021900, 022001, 022002, 022900, 023000, 023200, 023500, 023600, 023800, 024000, 024300, 024400, 024500, 024600, 024700, 024800, 024900, 025000, 025100, 025200, 025300, 025500, 025700, 025800, 025900, 026000, 026100, 026200, 026300, 026400, 026500, 026600, 026700, 026900, 027000, 027100, 027200, 027300, 027400, 027500, 027600, 027700, 027800, 027900, 028000, 028100, 028200, 028300, 028400, 028500, 028700, 028800, 028900, 029100, 029200, 029300, 029500, 029700, 029900, 030400, 030901, 030902, 031700, 032000, 032700, 032800, 032900, 033000, 033100, 033401, 033402, 033700, 033900, 034700, 035100, 035200, 035300, 035500, 035800, 036100, 036300, 036500, 036600, 036700, 036800, 036900, 037100, 037300, 037500, 037600, 037700, 037900, 038100, 038300, 038400, 039400, 039800, 039900, 040000, 040100, 040200, 040300, 040400, 040500, 040700, 040900, 041000, 041100, 041300, 041400, 041500, 042000, 042200, 042400, 042600, 042700, 043200, 043400, 043700, 043900, 044000, 044200, 044300, 044601, 044602, 044800, 045000, 045200, 045400, 045500, 045698, 045700, 045800, 045900, 046000, 046100, 046200, 046300, 046400, 046500, 046600, 046700, 046800, 046900, 047000, 047100, 047200, 047300, 047500, 047600, 047800, 047900, 048000, 048100, 048200, 048300, 048400, 048500, 048900, 049200, 049301, 049302, 049500, 049600, 049700, 049900, 050000, 050201, 050202, 050400, 050500, 050600, 050700, 050800, 051000, 051100, 051200, 051300, 051500, 051600, 051700, 051800, 052000, 052100, 052200, 052400, 052500, 052600, 052700, 052800, 052900, 053000, 053200, 053400, 053500, 053600, 053800, 053900, 054000, 054200, 054500, 054700, 054800, 054900, 055100, 055200, 055300, 055400, 055500, 055600, 055700, 055800, 055900, 056000, 056100, 056200, 056400, 056500, 056600, 056700, 056800, 057700, 057800, 057900, 058000, 058100, 058300, 058500, 058700, 058800, 058900, 059000, 059100, 059200, 059300, 059400, 059500, 059600, 059800, 059900, 060000, 060100, 060200, 060300, 060400, 060600, 060700, 060800, 061000, 061200, 061300, 061400, 061601, 061602, 061800, 061900, 062000, 062101, 062102, 062300, 062400, 062500, 062600, 062700, 062900, 063000, 063200, 063301, 063302, 063500, 063700, 063800, 063900, 064101, 064102, 064500, 064600, 065000, 065400, 065500, 065600, 065701, 065702, 065900, 066000, 066100, 066300, 066498, 066500, 066700, 066900, 067101, 067102, 067700, 067900, 068000, 068200, 068300, 068700, 069000, 069300, 069400, 069500, 069701, 069702, 070300, 070700, 070900, 071100, 071301, 071302, 071698, 071700, 071900, 072100, 072500, 072700, 072900, 073100, 073300, 073500, 073700, 073900, 074100, 074300, 074500, 074700, 075700, 076600, 076800, 076902, 076997, 076998, 077100, 077397, 077398, 077500, 077901, 077902, 077903, 077904, 077905, 078800, 079000, 079200, 079300, 079700, 079900, 080301, 080302, 080900, 081400, 081800, 083700, 083800, 084000, 084500, 084601, 084602, 085100, 085300, 085500, 085700, 085900, 086100, 086300, 086400, 086500, 086700, 087100, 087500, 087800, 088400, 088900, 089200, 090700, 091601, 091602, 091699, 091800, 091900, 092200, 092500, 092800, 092900, 093400, 093800, 093900, 094201, 094202, 094203, 094500, 094700, 095200, 096200, 096400, 097200, 097300, 098100, 098700, 099100, 099200, 099701, 099702, 099800, 099900, 100800, 101000, 101700, 102900, 103200, 103300, 103900, 104700, 105900, 107201, 107202, 108101, 108102, 108300, 109100, 109700, 109900, 111300, 112300, 112900, 113300, 113900, 114100, 114700, 115100, 115500, 115700, 115900, 116100, 116300, 116700, 117100, 117500, 118100, 118500, 118700, 118900, 119100, 119300, 119500, 119900, 120100, 120300, 120500, 120700, 121100, 121500, 122300, 122701, 122702, 124100, 124700, 125700, 126500, 126798, 127300, 127500, 128300, 129101, 129102, 130100, 131900, 133300, 133900, 134100, 134700, 136700, 137700, 138501, 138502, 139900, 140300, 140901, 140902, 141701, 141702, 142900, 143500, 144100, 144700, 145101, 145102, 145900, 146300, 146700, 147100, 147900, 148300, 150701, 150702, 152901, 152902, 155100, 156700, 157101, 157102, 157901, 157902, 157903, 161700, 162100],
    '083' : [040100, 040200, 040300, 040400, 040500, 040600, 040700, 040800, 040900, 041000, 041100, 041200, 041300, 041401, 041402, 051500, 051600, 051701, 051702, 051800, 051901, 051902, 052002, 052003, 052004, 052101, 052102, 052103, 052201, 052202, 052301, 052302, 052402, 052403, 052404, 052501, 052502, 052503, 052601, 052602, 052603],
    '085' : [000300, 000600, 000700, 000800, 000900, 001100, 001500, 001700, 001800, 002001, 002002, 002100, 002700, 002900, 003300, 003600, 003900, 004000, 004700, 005000, 005900, 006400, 006500, 007000, 007400, 007500, 007700, 008100, 008900, 009100, 009601, 009602, 009700, 010500, 011201, 011202, 011401, 011402, 012100, 012200, 012500, 012803, 012804, 013201, 013202, 013301, 013302, 013400, 013800, 014100, 014601, 014602, 014700, 015100, 015400, 015601, 015602, 015603, 016901, 016902, 017002, 017003, 017004, 017300, 017600, 017700, 017900, 018500, 018701, 018702, 018901, 018902, 019600, 019700, 020100, 020700, 020801, 020802, 021300, 021900, 022300, 022600, 023100, 023600, 023900, 024400, 024700, 024800, 025100, 027301, 027302, 027701, 027702, 027900, 029101, 029102, 030300, 031901, 031902, 032300, 032399],
    '087' : [010100, 010200, 010300, 010400, 010501, 010502, 010503, 010600, 010700, 010801, 010802, 010803, 010900, 011000, 011100, 011200, 011300, 011401, 011402, 011501, 011502, 011503, 011504, 011600, 011700, 011800, 011900, 012000, 012100, 012200, 012300, 012400, 012500, 012600, 012700, 012800, 012900, 013000, 013100, 013200, 013300, 013400],
    '089' : [990100, 990200, 990300, 990400, 990500, 990600, 990700, 990800, 990900, 991000, 991100, 991200, 991300, 991400, 991500, 991600, 991700, 991800, 991900, 992000, 992100, 992200, 992300, 992400, 992500, 992600, 992700, 992800, 992900],
    '091' : [060101, 060102, 060200, 060300, 060400, 060500, 060600, 060701, 060702, 060800, 060901, 060902, 061000, 061100, 061200, 061301, 061302, 061303, 061401, 061402, 061500, 061600, 061701, 061702, 061800, 061901, 061903, 062000, 062100, 062200, 062300, 062401, 062402, 062403, 062501, 062502, 062503, 062504, 062601, 062602, 062700, 062800, 062998],
    '093' : [020100, 020200, 020300, 020400, 020500, 020600, 020700, 020800, 020900, 021001, 021002, 021101, 021102, 021103, 021200, 021300, 021400, 021500, 021600, 021700, 021800, 031900, 032000, 032100, 032200, 032300, 032401, 032402, 032501, 032502, 032600, 032700, 032800, 032901, 032902, 033001, 033002, 033101, 033102],
    '095' : [990100, 990200, 990300, 990400, 990500, 990600, 990700, 990800],
    '097' : [950100, 950200, 950300, 950400, 950500],
    '099' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950797, 950798, 950800, 950900, 951000],
    '101' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100, 961200, 961300, 961400, 961500, 961600, 961700, 961800, 961900, 962000, 962100, 962200, 962300, 962400, 962500, 962600, 962700, 962800, 962900, 963000],
    '103' : [110101, 110102, 110200, 110300, 110401, 110402, 110501, 110502, 110600, 110699, 110700, 110801, 110802, 110901, 110902, 111001, 111002, 111100, 111201, 111202, 111300, 111401, 111402, 111503, 111504, 111505, 111506, 111601, 111602, 111701, 111703, 111704, 111801, 111802, 111803, 111804, 111900, 112001, 112002, 112102, 112103, 112104, 112204, 112206, 112207, 112208, 112210, 112211, 112212, 112213, 122301, 122302, 122403, 122404, 122405, 122406, 122501, 122502, 122601, 122602, 122603, 122704, 122705, 122706, 122707, 122801, 122802, 122901, 122902, 123001, 123002, 123101, 123102, 123201, 123202, 123301, 123302, 123401, 123402, 123500, 123600, 123701, 123702, 123801, 123802, 123900, 124001, 124002, 124101, 124102, 124200, 124300, 124401, 124402, 124500, 124601, 124602, 134702, 134703, 134704, 134800, 134902, 134903, 134904, 134905, 134906, 135002, 135003, 135004, 135005, 135101, 135102, 135103, 135104, 135201, 135202, 135204, 135205, 135206, 135301, 135303, 135304, 135401, 135402, 135403, 145500, 145601, 145602, 145603, 145604, 145605, 145701, 145702, 145703, 145704, 145803, 145804, 145805, 145806, 145901, 145902, 145903, 146001, 146002, 146003, 146102, 146103, 146104, 146105, 146201, 146202, 146203, 146204, 146205, 146206, 146300, 146402, 146403, 146404, 146500, 146604, 146605, 146606, 146607, 146608, 146611, 146612, 146613, 146614, 146615, 146703, 146704, 146705, 146706, 146800, 146901, 146902, 147001, 147002, 147099, 147100, 147200, 147300, 147401, 147402, 147501, 147502, 147503, 147601, 147602, 147701, 147702, 147802, 147803, 147804, 147901, 147902, 158001, 158002, 158005, 158006, 158007, 158009, 158102, 158103, 158104, 158107, 158108, 158110, 158111, 158112, 158114, 158115, 158197, 158198, 158202, 158203, 158204, 158205, 158304, 158305, 158306, 158308, 158309, 158310, 158311, 158313, 158315, 158316, 158401, 158402, 158403, 158405, 158406, 158502, 158505, 158506, 158507, 158508, 158509, 158510, 158511, 158512, 158601, 158604, 158605, 158606, 158607, 158704, 158705, 158707, 158708, 158709, 158710, 158711, 158712, 158802, 158803, 158804, 158900, 159000, 159102, 159103, 159105, 159106, 159107, 159108, 159201, 159203, 159204, 159300, 159404, 159406, 159407, 159408, 159409, 159410, 159504, 159505, 159506, 159507, 159508, 159601, 159602, 169701, 169702, 169800, 169900, 170001, 170002, 170101, 170201, 170202, 180300, 190401, 190402, 190403, 190501, 190502, 190601, 190602, 190704, 190705, 190706, 190707, 190708, 190800, 200900, 201001, 201003, 201004, 201099],
    '105' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000, 951100, 951200, 951300, 951400, 951500, 951600, 951700, 951800, 951900, 952000, 952100, 952200, 952300, 952400, 952500],
    '107' : [020198, 020200, 020300, 020400, 020500, 020600, 020701, 020702, 020703, 020897, 020898],
    '109' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002300],
    '111' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000, 951100, 951200, 951300, 951400, 951500, 951600, 951700, 951800, 951900, 952000, 952100, 952200, 952300, 952400, 952500, 952600, 952700, 952800, 952900, 953000, 953100, 953200, 953300, 953400, 953500, 953600, 953700, 953800, 953900, 954000, 954100, 954200, 954300, 954400, 954500, 954600, 954700, 954800],
    '113' : [070100, 070200, 070300, 070400, 070500, 070600, 070700, 070800, 070900, 071000, 072000, 073000, 073598, 074000, 075000, 076000, 077000, 078000],
    '115' : [080100, 080200, 080300, 081000, 081500, 082000, 084000, 085000, 086000, 087000, 088000, 089000, 090000, 091000, 092000, 093000, 094000],
    '117' : [020100, 020200, 020300, 020401, 020402, 020500, 020600, 020700, 020800, 020900, 021000, 021100, 021200, 021300, 021400, 021501, 021502, 021600, 021700, 021800],
    '119' : [000101, 000103, 000104, 000201, 000202, 000203, 000300, 000401, 000402, 000500, 000600, 000701, 000702, 000801, 000802, 000803, 000900, 001000, 001101, 001102, 001200, 001301, 001302, 001303, 001401, 001402, 001403, 001502, 001503, 001504, 001505, 001600, 001700, 001800, 001900, 002000, 002101, 002103, 002104, 002105, 002106, 002201, 002202, 002203, 002204, 002300, 002401, 002402, 002403, 002404, 002405, 002600, 002700, 002800, 002900, 003000, 003100, 003200, 003300, 003400, 003500, 003600, 003700, 003800, 003900, 004000, 004100, 004200, 004300, 004400, 004500, 004600, 004700, 004800, 004900, 005001, 005002, 005100, 005200, 005300, 005400, 005500, 005600, 005701, 005702, 005800, 005901, 005902, 006000, 006100, 006200, 006300, 006400, 006500, 006600, 006700, 006801, 006802, 006900, 007000, 007100, 007200, 007300, 007401, 007402, 007500, 007600, 007700, 007800, 007900, 008000, 008100, 008200, 008301, 008302, 008401, 008403, 008404, 008500, 008601, 008602, 008700, 008800, 008901, 008902, 009000, 009100, 009200, 009300, 009400, 009500, 009600, 009701, 009702, 009703, 009800, 009900, 010000, 010100, 010200, 010300, 010400, 010500, 010600, 010701, 010702, 010801, 010803, 010804, 010901, 010902, 010903, 011000, 011101, 011102, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 011901, 011902, 012000, 012101, 012102, 012200, 012301, 012303, 012304, 012400, 012501, 012502, 012503, 012600, 012700, 012800, 012900, 013000, 013102, 013103, 013104, 013201, 013202, 013301, 013303, 013304, 013400, 013500, 013600, 013700, 013800, 013900, 014000, 014100, 014200, 014300, 014400, 014500, 014603, 014604, 014605, 014606, 014607, 014701, 014703, 014704, 014804, 014805, 014806, 014807, 014808, 014809, 014902, 014905, 014906, 014907, 014908, 015000],
    '121' : [990100, 990200, 990300, 990400, 990500, 990600, 990700, 990800, 990900, 991000, 991100],
    '123' : [990100, 990200, 990300, 990400, 990500]
 ]]]></entry>
        <entry id="census_tx" type="java"><![CDATA[['001' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000],
'003' : [950100, 950200, 950300, 950400],
'005' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200],
'007' : [950100, 950200, 950300, 950400, 950500],
'009' : [020100, 020200, 020300],
'011' : [950100, 950200],
'013' : [960100, 960200, 960300, 960400, 960500, 960600],
'015' : [160100, 160200, 160300, 160400, 160500],
'017' : [950100, 950200],
'019' : [980100, 980200, 980300, 980400],
'021' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
'023' : [950100, 950200],
'025' : [950100, 950200, 950300, 950400, 950500, 950600],
'027' : [020100, 020200, 020300, 020400, 020500, 020600, 020701, 020702, 020800, 020900, 021000, 021100, 021201, 021202, 021203, 021301, 021302, 021400, 021500, 021601, 021602, 021700, 021800, 021901, 021902, 022000, 022101, 022102, 022200, 022300, 022400, 022500, 022600, 022700, 022801, 022802, 022900, 023000, 023101, 023102, 023200, 023300, 023400],
'029' : [110100, 110200, 110300, 110400, 110500, 110600, 110700, 110800, 110900, 111000, 120185, 120285, 120300, 120400, 120501, 120502, 120600, 120700, 120800, 120901, 120902, 121000, 121103, 121104, 121105, 121106, 121107, 121108, 121201, 121202, 121300, 121401, 121402, 121501, 121502, 121503, 121504, 121601, 121603, 121604, 121700, 121801, 121802, 121803, 121804, 121805, 121901, 121902, 130100, 130200, 130300, 130400, 130500, 130600, 130785, 130800, 130884, 130900, 131000, 131100, 131200, 131300, 131400, 131501, 131502, 131601, 131603, 131604, 131700, 131800, 140100, 140200, 140300, 140400, 140500, 140600, 140700, 140800, 140900, 141000, 141100, 141200, 141300, 141400, 141500, 141600, 141700, 141800, 141900, 150100, 150200, 150300, 150400, 150500, 150600, 150700, 150800, 150900, 151000, 151100, 151200, 151300, 151400, 151500, 151600, 151700, 151800, 151900, 152000, 152100, 152200, 160100, 160200, 160300, 160400, 160500, 160600, 160785, 160800, 160900, 161085, 161100, 161200, 161300, 161401, 161485, 161501, 161502, 161600, 161700, 161800, 161900, 162000, 170100, 170200, 170300, 170400, 170500, 170600, 170700, 170800, 170900, 171000, 171100, 171200, 171300, 171400, 171500, 171600, 171700, 171800, 171901, 171902, 171903, 171904, 171905, 171906, 172000, 180100, 180200, 180300, 180400, 180501, 180502, 180600, 180701, 180702, 180800, 180901, 180902, 181001, 181003, 181004, 181005, 181100, 181200, 181300, 181401, 181402, 181501, 181502, 181600, 181701, 181703, 181704, 181705, 181706, 181707, 181708, 181709, 181710, 181801, 181802, 181803, 181804, 181805, 181900, 182000, 182100, 190100, 190200, 190300, 190400, 190500, 190600, 190700, 190800, 190900, 191001, 191002, 191101, 191102, 191200, 191300, 191401, 191402, 191403, 191404, 191405, 191501, 191502, 191600, 191700, 191801, 191802, 191803],
'031' : [950100, 950200],
'033' : [950100],
'035' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 951100],
'037' : [010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010901, 010902, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700],
'039' : [060110, 060120, 060211, 060212, 060221, 060222, 060232, 060310, 060320, 060410, 060420, 060430, 060510, 060520, 060600, 060700, 060800, 060910, 060920, 061000, 061100, 061200, 061300, 061400, 061500, 061600, 061700, 061800, 061998, 062001, 062012, 062022, 062100, 062200, 062300, 062400, 062499, 062502, 062511, 062513, 062521, 062523, 062601, 062612, 062622, 062700, 062800, 062900, 062999, 063000, 063099, 063100, 063200, 063398, 130898],
'041' : [000100, 000201, 000202, 000300, 000400, 000500, 000601, 000603, 000604, 000700, 000800, 000900, 001000, 001100, 001300, 001400, 001500, 001601, 001602, 001700, 001800, 001900, 002000, 200500],
'043' : [950100, 950200, 950300, 950400],
'045' : [950100, 950200],
'047' : [950100, 950200],
'049' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000, 951100],
'051' : [970100, 970200, 970300, 970400, 970500],
'053' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800],
'055' : [960100, 960200, 960300, 960400, 960500, 960600, 960700],
'057' : [990100, 990200, 990300, 990400, 990500, 990698],
'059' : [030100, 030200],
'061' : [010100, 010201, 010202, 010300, 010401, 010402, 010500, 010601, 010602, 010700, 010800, 010900, 011000, 011100, 011200, 011301, 011302, 011400, 011500, 011600, 011700, 011801, 011802, 011900, 012000, 012100, 012200, 012301, 012302, 012399, 012400, 012501, 012503, 012504, 012601, 012602, 012603, 012700, 012799, 012800, 012900, 013001, 013002, 013102, 013103, 013104, 013105, 013201, 013202, 013301, 013302, 013401, 013402, 013500, 013600, 013700, 013801, 013802, 013901, 013902, 013903, 014001, 014002, 014100],
'063' : [950100, 950200],
'065' : [950100, 950200],
'067' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
'069' : [950100, 950200, 950300],
'071' : [110101, 110102, 110200, 110300, 110400, 110500],
'073' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000, 951100],
'075' : [950100, 950200],
'077' : [030100, 030200, 030301, 030302],
'079' : [950100, 950200],
'081' : [950100, 950200],
'083' : [950100, 950200, 950300, 950400, 950500],
'085' : [030100, 030200, 030300, 030400, 030500, 030600, 030700, 030800, 030900, 031000, 031100, 031200, 031302, 031303, 031304, 031401, 031402, 031501, 031502, 031601, 031603, 031605, 031608, 031609, 031610, 031611, 031612, 031613, 031614, 031615, 031616, 031617, 031618, 031619, 031620, 031621, 031702, 031798, 031802, 031803, 031898, 031900, 032003, 032004, 032005, 032007, 032008, 032098],
'087' : [950100, 950200],
'089' : [150100, 150200, 150300, 150400, 150500],
'091' : [310100, 310200, 310300, 310401, 310402, 310500, 310601, 310602, 310700, 310800, 310900],
'093' : [950100, 950200, 950300, 950400, 950498],
'095' : [950100, 950200],
'097' : [990100, 990200, 990300, 990400, 990500, 990600, 990700, 990800, 990900],
'099' : [010100, 010200, 010300, 010400, 010500, 010601, 010602, 010701, 010702, 010801, 010802],
'101' : [950100],
'103' : [950100],
'105' : [950100],
'107' : [950100, 950200, 950300],
'109' : [950100, 950200],
'111' : [950100, 950200, 950300],
'113' : [000100, 000201, 000202, 000300, 000401, 000403, 000404, 000405, 000500, 000601, 000603, 000604, 000701, 000702, 000800, 000900, 001001, 001002, 001101, 001102, 001201, 001202, 001301, 001302, 001400, 001502, 001503, 001504, 001600, 001701, 001702, 001800, 001900, 002000, 002100, 002201, 002202, 002400, 002500, 002701, 002702, 002800, 002900, 003101, 003102, 003201, 003300, 003400, 003500, 003600, 003700, 003800, 003901, 003902, 004000, 004100, 004200, 004300, 004400, 004500, 004600, 004700, 004800, 004900, 005000, 005100, 005200, 005300, 005400, 005500, 005600, 005700, 005901, 005902, 006001, 006002, 006100, 006200, 006301, 006302, 006400, 006501, 006502, 006700, 006800, 006900, 007101, 007102, 007201, 007202, 007301, 007302, 007400, 007501, 007502, 007601, 007602, 007603, 007604, 007700, 007801, 007804, 007805, 007806, 007809, 007810, 007811, 007812, 007813, 007814, 007815, 007816, 007817, 007902, 007903, 007905, 007906, 007907, 007908, 008000, 008100, 008200, 008300, 008400, 008500, 008601, 008602, 008701, 008703, 008704, 008705, 008801, 008802, 008900, 009001, 009002, 009101, 009102, 009201, 009202, 009301, 009303, 009304, 009401, 009402, 009500, 009603, 009604, 009605, 009606, 009607, 009608, 009609, 009701, 009702, 009801, 009802, 009900, 010000, 010101, 010102, 010200, 010300, 010400, 010500, 010600, 010701, 010702, 010801, 010802, 010803, 010900, 011001, 011002, 011101, 011103, 011104, 011105, 011200, 011300, 011401, 011402, 011500, 011601, 011602, 011700, 011800, 011900, 012000, 012100, 012202, 012203, 012204, 012205, 012300, 012400, 012500, 012601, 012602, 012700, 012800, 012900, 013004, 013005, 013006, 013007, 013008, 013009, 013101, 013102, 013103, 013200, 013300, 013401, 013402, 013500, 013605, 013606, 013607, 013608, 013609, 013610, 013611, 013612, 013613, 013614, 013615, 013616, 013617, 013618, 013619, 013701, 013702, 013704, 013705, 013707, 013708, 013709, 013710, 013801, 013802, 013900, 014001, 014002, 014101, 014103, 014105, 014107, 014108, 014109, 014110, 014111, 014112, 014113, 014114, 014115, 014116, 014197, 014198, 014201, 014202, 014302, 014303, 014304, 014305, 014306, 014402, 014403, 014404, 014500, 014600, 014700, 014801, 014802, 014900, 015000, 015100, 015202, 015203, 015204, 015301, 015302, 015401, 015402, 015500, 015600, 015700, 015800, 015900, 016000, 016100, 016200, 016300, 016401, 016402, 016403, 016404, 016405, 016501, 016502, 016505, 016508, 016509, 016510, 016511, 016512, 016513, 016604, 016605, 016606, 016607, 016608, 016609, 016610, 016611, 016612, 016613, 016701, 016702, 016801, 016802, 016901, 016902, 016903, 016904, 017001, 017002, 017100, 017201, 017202, 017301, 017302, 017400, 017500, 017601, 017602, 017701, 017702, 017804, 017805, 017806, 017807, 017808, 017809, 017810, 017900, 018000, 018104, 018105, 018106, 018107, 018108, 018110, 018111, 018112, 018113, 018115, 018116, 018117, 018118, 018119, 018201, 018202, 018300, 018401, 018402, 018403, 018501, 018503, 018504, 018600, 018700, 018801, 018802, 018900, 019004, 019007, 019008, 019009, 019010, 019012, 019013, 019014, 019015, 019016, 019017, 019018, 019019, 019020, 019021, 019022, 019023, 019024, 019100, 019202, 019203, 019204, 019205, 019206, 019208, 019209, 019210, 019211, 019301, 019302, 019400, 019501, 019502, 019600, 019700, 019800, 019900, 020198, 020298, 020398],
'115' : [950100, 950200, 950400, 950500, 950600, 950700],
'117' : [950100, 950200, 950300, 950400, 950500],
'119' : [950100, 950200],
'121' : [020101, 020102, 020200, 020301, 020302, 020401, 020402, 020403, 020501, 020502, 020601, 020602, 020700, 020800, 020900, 021000, 021100, 021200, 021301, 021302, 021401, 021402, 021403, 021502, 021504, 021505, 021506, 021507, 021601, 021603, 021604, 021605, 021606, 021607, 021608, 021609, 021610, 021611, 021703, 021705, 021706, 021707, 021708, 021709, 021710, 021711, 021712, 021713],
'123' : [970100, 970200, 970300, 970400, 970500],
'125' : [950100, 950200],
'127' : [950100, 950200, 950300],
'129' : [950100, 950200, 950300],
'131' : [950100, 950200, 950300, 950400],
'133' : [950100, 950200, 950300, 950400, 950500],
'135' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002200, 002300, 002400, 002501, 002502, 002503, 002700, 002800, 002900, 003000],
'137' : [950100, 950200],
'139' : [060100, 060201, 060202, 060203, 060300, 060400, 060500, 060600, 060700, 060800, 060900, 061000, 061100, 061200, 061300, 061400, 061500, 061600, 061700],
'141' : [000101, 000102, 000104, 000106, 000107, 000108, 000201, 000203, 000204, 000301, 000302, 000401, 000402, 000500, 000600, 000700, 000800, 000900, 001000, 001104, 001105, 001106, 001107, 001108, 001109, 001200, 001301, 001398, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002300, 002400, 002500, 002600, 002700, 002800, 002900, 003000, 003100, 003200, 003300, 003401, 003403, 003404, 003500, 003600, 003701, 003702, 003801, 003802, 003901, 003902, 003903, 004001, 004002, 004103, 004104, 004105, 004106, 004107, 004201, 004202, 004303, 004305, 004306, 004307, 004308, 004309, 004310, 004311, 010100, 010202, 010203, 010204, 010205, 010303, 010304, 010305, 010306, 010307, 010308, 010309, 010310, 010401, 010402, 010403, 010404, 010500],
'143' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
'145' : [990100, 990200, 990300, 990400, 990500, 990600, 990700],
'147' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
'149' : [970100, 970200, 970300, 970400, 970500, 970600, 970700],
'151' : [950100, 950200, 950300],
'153' : [950100, 950200, 950300, 950400],
'155' : [950100],
'157' : [070101, 070107, 070112, 070113, 070114, 070115, 070116, 070122, 070123, 070124, 070125, 070126, 070133, 070201, 070204, 070212, 070213, 070222, 070223, 070233, 070243, 070311, 070312, 070313, 070321, 070322, 070323, 070331, 070332, 070341, 070351, 070400, 070500, 070600, 070702, 070703, 070711, 070721, 070800, 070901, 070903, 070912, 070922, 071001, 071002, 071100, 071200, 071300, 071400],
'159' : [950100, 950200, 950300],
'161' : [980100, 980200, 980300, 980400, 980600, 980700, 980900],
'163' : [950100, 950200, 950300],
'165' : [950100, 950200, 950300],
'167' : [120101, 120102, 120200, 120300, 120400, 120500, 120610, 120620, 120700, 120800, 120900, 121000, 121100, 121201, 121202, 121300, 121400, 121500, 121610, 121620, 121700, 121800, 121902, 121911, 121921, 122000, 122100, 122200, 122300, 122400, 122500, 122600, 122700, 122801, 122802, 122901, 122912, 122922, 123000, 123099, 123100, 123200, 123300, 123400, 123499, 123500, 123600, 123700, 123800, 124000, 124100, 124200, 124300, 124400, 124500, 124600, 124700, 124800, 124900, 124999, 125001, 125002, 125010, 125100, 125200, 125300, 125400],
'169' : [950100],
'171' : [950100, 950200, 950300, 950400, 950500],
'173' : [950100],
'175' : [960100, 960200],
'177' : [990100, 990200, 990300, 990400, 990500, 990600],
'179' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900],
'181' : [000100, 000200, 000301, 000302, 000400, 000501, 000502, 000600, 000700, 000800, 000901, 000902, 001100, 001200, 001300, 001400, 001500, 001601, 001602, 001700, 001800, 001900],
'183' : [000100, 000200, 000300, 000400, 000501, 000502, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 010100, 010200, 010300, 010400, 010500, 010600, 010700, 010898, 010998, 011098, 011198, 011298, 011398, 011498, 011598, 011698],
'185' : [180100, 180200, 180300],
'187' : [210100, 210200, 210300, 210400, 210501, 210502, 210601, 210602, 210701, 210703, 210704, 210800, 210900],
'189' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900],
'191' : [950200, 950300, 950400, 950500],
'193' : [950100, 950200, 950300],
'195' : [950100, 950300],
'197' : [950100, 950200],
'199' : [030100, 030200, 030300, 030400, 030500, 030600, 030700, 030800, 030900, 031000],
'201' : [012100, 020101, 020102, 020210, 020220, 020301, 020302, 020303, 020400, 020501, 020503, 020598, 020601, 020698, 020701, 020702, 020703, 020704, 020801, 020802, 020803, 020900, 021001, 021002, 021100, 021199, 021200, 021301, 021302, 021401, 021402, 021501, 021502, 021503, 021601, 021602, 021701, 021702, 021801, 021802, 021803, 021804, 021900, 022001, 022002, 022100, 022201, 022202, 022301, 022302, 022303, 022401, 022402, 022403, 022404, 022501, 022502, 022503, 022504, 022601, 022602, 022700, 022801, 022802, 022900, 023001, 023002, 023003, 023004, 023100, 023200, 023299, 023300, 023399, 023400, 023500, 023600, 023700, 023800, 023910, 023920, 024001, 024002, 024003, 024101, 024102, 024103, 024200, 024300, 024401, 024412, 024422, 024512, 024522, 024600, 024710, 024720, 024800, 024901, 024903, 024912, 024922, 024932, 025000, 025100, 025200, 025300, 025400, 025500, 025600, 025700, 025800, 025901, 025902, 026000, 026100, 026200, 026300, 026400, 026499, 026500, 026600, 026701, 026702, 026703, 026800, 026901, 026902, 027000, 027100, 027200, 027300, 027400, 027500, 030022, 030023, 030024, 030101, 030102, 030200, 030300, 030401, 030402, 030501, 030502, 030600, 030701, 030702, 030810, 030820, 030901, 030902, 030903, 031000, 031100, 031199, 031200, 031301, 031302, 031401, 031402, 031500, 031601, 031602, 031701, 031702, 031703, 031704, 031801, 031802, 031803, 031804, 031901, 031902, 032001, 032002, 032003, 032004, 032101, 032102, 032103, 032201, 032202, 032203, 032204, 032301, 032302, 032401, 032402, 032403, 032404, 032501, 032502, 032610, 032620, 032701, 032702, 032801, 032802, 032803, 032901, 032902, 032903, 033001, 033002, 033110, 033120, 033200, 033300, 033400, 033503, 033597, 033598, 033600, 033700, 033800, 033901, 033902, 033903, 034000, 034100, 034200, 034301, 034302, 034400, 034501, 034502, 034600, 034701, 034702, 034703, 034704, 034801, 034802, 034901, 034902, 035001, 035002, 035003, 035004, 035100, 035200, 035301, 035302, 035400, 035499, 035501, 035502, 035601, 035602, 035603, 035604, 035701, 035702, 035703, 035801, 035802, 035911, 035912, 035921, 035922, 035932, 036001, 036002, 036003, 036004, 036100, 036200, 036300, 036400, 036501, 036502, 036503, 036602, 036611, 036621, 036631, 036641, 036700, 036801, 036802, 036900, 037010, 037020, 037102, 037111, 037121, 037200, 037302, 037303, 037304, 037311, 037321, 037400, 037500, 040025, 040026, 040101, 040102, 040201, 040202, 040300, 040401, 040402, 040501, 040502, 040610, 040620, 040630, 040701, 040702, 040800, 040900, 041000, 041100, 041201, 041202, 041301, 041302, 041303, 041401, 041402, 041501, 041502, 041503, 041504, 041601, 041602, 041603, 041604, 041605, 041701, 041702, 041801, 041802, 041901, 041902, 041903, 041904, 041905, 041906, 042001, 042002, 042003, 042100, 042201, 042202, 042203, 042204, 042301, 042302, 042303, 042304, 042305, 042306, 042307, 042401, 042402, 042403, 042404, 042501, 042502, 042503, 042504, 042601, 042602, 042701, 042798, 042801, 042802, 042900, 043001, 043002, 043100, 043298, 043310, 043320, 043330, 043401, 043402, 043501, 043502, 043601, 043602, 043613, 043623, 043633, 043711, 043712, 043721, 043722, 043732, 043804, 043806, 043811, 043812, 043813, 043815, 043821, 043822, 043823, 043825, 043831, 043832, 043842, 043901, 043997, 043998, 044001, 044002, 044003, 044004, 044005, 044006, 044101, 044102, 044201, 044202, 044203, 044204, 044301, 044302, 044303, 044304, 044305, 044306, 044401, 044402, 044403, 044404, 044501, 044502, 044601, 044603, 044612, 044622, 044701, 044702, 044703, 044800, 044910, 044920, 045000, 045101, 045112, 045122, 045132, 045201, 045212, 045222, 045232, 050100, 050200, 050301, 050302, 050400, 050501, 050502, 050601, 050602, 050701, 050702, 050800, 050901, 050902, 050903, 051000, 051100, 051200, 051300, 051401, 051402, 051501, 051502, 051601, 051602, 051701, 051702, 051703, 051704, 051705, 051801, 051802, 051803, 051901, 051902, 051903, 052001, 052002, 052003, 052101, 052102, 052103, 052201, 052202, 052301, 052302, 052303, 052400, 052501, 052502, 052503, 052504, 052601, 052602, 052603, 052604, 052701, 052702, 052703, 052800, 052901, 052912, 052922, 053001, 053002, 053003, 053101, 053102, 053103, 053201, 053202, 053301, 053302, 053303, 053401, 053402, 053510, 053520, 053602, 053611, 053621, 053701, 053712, 053722, 053732, 053811, 053812, 053821, 053822, 053831, 053900, 054001, 054012, 054022, 054110, 054120, 054130, 054202, 054211, 054297, 054298, 054300, 054400, 054501, 054512, 054522, 054532, 054600, 054798, 054898, 054900, 055000, 055101, 055112, 055122, 055200, 055300, 055400, 055501, 055512, 055522, 055532, 055601, 055612, 055622, 055700, 055801, 055812, 055822, 055901, 055902],
'203' : [020101, 020102, 020298, 020300, 020401, 020402, 020500, 020697, 020698],
'205' : [950100, 950200],
'207' : [950100, 950200, 950300],
'209' : [010100, 010200, 010301, 010302, 010400, 010500, 010600, 010700, 010801, 010802, 010901, 010902, 010903, 010904],
'211' : [950100, 950200],
'213' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000, 951100, 951200, 951300, 951400, 951598],
'215' : [020100, 020200, 020300, 020401, 020402, 020501, 020502, 020503, 020600, 020701, 020702, 020703, 020801, 020802, 020901, 020902, 021000, 021100, 021201, 021202, 021301, 021302, 021303, 021401, 021402, 021500, 021600, 021700, 021801, 021802, 021900, 022001, 022002, 022101, 022102, 022200, 022300, 022400, 022500, 022600, 022701, 022702, 022800, 022900, 023000, 023101, 023102, 023501, 023502, 023600, 023700, 023800, 023901, 023902, 024000, 024100, 024201, 024202, 024301, 024302, 024400, 024500, 024600],
'217' : [960100, 960200, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100, 961200, 961300],
'219' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
'221' : [160100, 160201, 160202, 160203, 160300],
'223' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
'225' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
'227' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900],
'229' : [950100, 950200],
'231' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100, 961200, 961300, 961400, 961500, 961600, 961700],
'233' : [950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000],
'235' : [950100],
'237' : [950100, 950200, 950300, 950400],
'239' : [950198, 950200, 950300],
'241' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
'243' : [950100],
'245' : [000101, 000102, 000103, 000200, 000301, 000302, 000304, 000305, 000306, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001301, 001302, 001303, 001400, 001500, 001600, 001700, 001800, 001899, 001900, 002000, 002100, 002200, 002300, 002400, 002500, 002600, 005100, 005200, 005300, 005400, 005500, 005600, 005700, 005800, 005900, 006000, 006100, 006200, 006300, 006400, 006500, 006600, 006699, 006700, 006800, 006900, 007001, 007002, 007100, 010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010899, 010900, 011001, 011002, 011101, 011102, 011200, 011299, 011300, 011400, 011500, 011600, 011699],
'247' : [950100, 950200, 950300],
'249' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
'251' : [130100, 130201, 130202, 130203, 130300, 130401, 130403, 130404, 130500, 130600, 130700, 130800, 130900, 131000, 131100],
'253' : [020100, 020200, 020300, 020400, 020500],
'255' : [970100, 970200, 970300, 970400],
'257' : [050200, 050300, 050400, 050500, 050600, 050700, 050800, 050900, 051000, 051100, 051200, 051398],
'259' : [970100, 970300, 970400, 970500],
'261' : [950100],
'263' : [950100],
'265' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800],
'267' : [950100, 950200],
'269' : [950100],
'271' : [950100],
'273' : [020100, 020200, 020300, 020400, 020500],
'275' : [950100, 950200],
'277' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000],
'279' : [950100, 950200, 950300, 950400, 950500, 950600],
'281' : [950100, 950200, 950300, 950400],
'283' : [950100, 950200],
'285' : [980100, 980200, 980300, 980400, 980500, 980600],
'287' : [980100, 980200, 980300, 980400],
'289' : [950100, 950200, 950300],
'291' : [100100, 100201, 100202, 100300, 100400, 100500, 100600, 100700, 100800, 100900, 101000, 101100, 101200],
'293' : [970100, 970200, 970300, 970400, 970500, 970600, 970700, 970800, 970900, 971000],
'295' : [950100, 950200, 950300],
'297' : [950100, 950200, 950300, 950400],
'299' : [970100, 970200, 970300, 970400, 970500, 970600],
'301' : [950100],
'303' : [000100, 000201, 000202, 000301, 000302, 000402, 000403, 000404, 000405, 000406, 000500, 000603, 000604, 000605, 000606, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001601, 001602, 001702, 001703, 001705, 001706, 001797, 001798, 001801, 001803, 001804, 001901, 001903, 001904, 002000, 002101, 002102, 002201, 002202, 002300, 002400, 002500, 010101, 010102, 010200, 010301, 010302, 010401, 010402, 010403, 010404, 010502, 010504, 010505, 010506, 010507, 010508, 010600, 010700],
'305' : [950100, 950200, 950300],
'307' : [950100, 950200, 950300, 950400],
'309' : [000100, 000200, 000300, 000400, 000598, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002301, 002302, 002498, 002501, 002503, 002504, 002600, 002700, 002800, 002900, 003000, 003100, 003200, 003300, 003401, 003402, 003500, 003601, 003602, 003701, 003703, 003705, 003706, 003801, 003802, 003900, 004000, 004101, 004102, 004201, 004202],
'311' : [950100],
'313' : [980100, 980200, 980300, 980400],
'315' : [950100, 950200, 950300, 950400],
'317' : [950100, 950200],
'319' : [950100, 950200],
'321' : [130100, 130298, 130300, 130400, 130500, 130600, 130700, 130898],
'323' : [950100, 950200, 950300, 950400, 950500, 950600],
'325' : [990100, 990200, 990300, 990400, 990500, 990600, 990700],
'327' : [950100, 950200],
'329' : [000100, 000200, 000302, 000303, 000304, 000305, 000401, 000402, 000500, 000600, 000900, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 010104, 010105, 010106, 010107, 010108, 010109, 010110, 010111],
'331' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
'333' : [950100, 950200, 950300],
'335' : [950100, 950200, 950300],
'337' : [950100, 950200, 950300, 950400, 950500, 950600],
'339' : [090101, 090103, 090112, 090122, 090201, 090202, 090204, 090205, 090206, 090213, 090217, 090223, 090227, 090237, 090247, 090302, 090311, 090321, 090400, 090500, 090602, 090611, 090613, 090621, 090623, 090631, 090701, 090702, 090703, 090801, 090802, 090803, 090900, 091010, 091020, 091101, 091102, 091201, 091202],
'341' : [950100, 950200, 950300, 950400],
'343' : [950100, 950200, 950300],
'345' : [950100, 950200],
'347' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000, 951100],
'349' : [970100, 970200, 970300, 970400, 970500, 970600, 970700, 970800, 970900, 971000, 971100],
'351' : [950100, 950200, 950300, 950400],
'353' : [950100, 950200, 950300, 950400, 950500],
'355' : [000100, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001601, 001602, 001700, 001801, 001802, 001901, 001902, 002000, 002100, 002200, 002301, 002302, 002400, 002500, 002600, 002701, 002702, 002900, 003000, 003100, 003201, 003202, 003301, 003302, 003401, 003402, 003500, 003601, 003602, 003603, 003700, 005000, 005099, 005101, 005102, 005103, 005199, 005401, 005402, 005403, 005404, 005405, 005406, 005601, 005602, 005801, 005802, 005900, 006000, 006100],
'357' : [950100, 950200, 950300, 950400],
'359' : [950100, 950200],
'361' : [020200, 020300, 020399, 020500, 020600, 020700, 020800, 020900, 021000, 021100, 021200, 021300, 021400, 021500, 021600, 021700, 021800, 021900, 022000, 022200, 022300, 022400],
'363' : [980100, 980200, 980300, 980400, 980500, 980600, 980700, 980800, 980900],
'365' : [950100, 950200, 950300, 950400, 950500, 950600],
'367' : [140100, 140200, 140300, 140401, 140402, 140500, 140600, 140700],
'369' : [950200, 950300],
'371' : [950100, 950200, 950300, 950400, 950500],
'373' : [210100, 210200, 210300, 210400, 210500],
'375' : [010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 011900, 012000, 012100, 012200, 012300, 012500, 012600, 012700, 012897, 012898, 012900, 013000, 013100, 013200, 013300, 013400, 013500, 013600, 013700, 013800, 013900, 014000, 014100, 014300, 014400],
'377' : [950100, 950200],
'379' : [950100, 950200],
'381' : [020100, 020200, 020300, 020400, 020500, 020600, 020800, 020900, 021000, 021100, 021200, 021300, 021500, 021602, 021603, 021604, 021605, 021606, 021607, 021700, 021801, 021802, 021900, 022097, 022098],
'383' : [950100],
'385' : [950100],
'387' : [950100, 950200, 950300, 950400, 950500, 950600],
'389' : [950100, 950200, 950300, 950400, 950500],
'391' : [950100, 950200, 950300],
'393' : [950100],
'395' : [960100, 960200, 960300, 960400, 960500],
'397' : [040100, 040200, 040301, 040302, 040400, 040500],
'399' : [950100, 950200, 950300, 950400, 950500],
'401' : [950198, 950298, 950398, 950400, 950500, 950600, 950700, 950800, 950900, 951000, 951100, 951200],
'403' : [950100, 950200, 950300, 950400],
'405' : [950100, 950200, 950300],
'407' : [200100, 200200, 200300],
'409' : [010200, 010300, 010400, 010500, 010600, 010601, 010603, 010604, 010700, 010800, 010900, 011000, 011100, 011200, 011300],
'411' : [950100, 950200],
'413' : [950100, 950200],
'415' : [950100, 950200, 950300, 950400, 950500],
'417' : [950100, 950200],
'419' : [950100, 950200, 950300, 950400, 950500, 950600],
'421' : [950100, 950200],
'423' : [000100, 000201, 000202, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001101, 001102, 001200, 001300, 001401, 001402, 001598, 001601, 001602, 001700, 001802, 001803, 001898, 001901, 001903, 001904, 002003, 002004, 002005, 002006, 002007, 002008, 002009, 002100],
'425' : [990100, 990200],
'427' : [950100, 950200, 950400, 950500, 950600, 950700],
'429' : [950100, 950200, 950300, 950400],
'431' : [950100],
'433' : [950100, 950200],
'435' : [950100, 950200],
'437' : [950100, 950200, 950300, 950400],
'439' : [100101, 100102, 100201, 100202, 100300, 100400, 100501, 100502, 100601, 100602, 100700, 100800, 100900, 101000, 101100, 101201, 101202, 101301, 101302, 101401, 101402, 101403, 101500, 101600, 101700, 101800, 101900, 102000, 102100, 102201, 102202, 102301, 102302, 102401, 102402, 102500, 102600, 102700, 102800, 102900, 103000, 103100, 103200, 103300, 103400, 103500, 103601, 103602, 103701, 103702, 103800, 103900, 104000, 104100, 104201, 104202, 104300, 104400, 104501, 104502, 104503, 104601, 104602, 104603, 104604, 104605, 104700, 104801, 104802, 104900, 105001, 105005, 105006, 105100, 105201, 105202, 105203, 105300, 105403, 105404, 105405, 105406, 105502, 105503, 105505, 105506, 105507, 105508, 105509, 105510, 105600, 105701, 105703, 105704, 105800, 105900, 106001, 106002, 106004, 106005, 106101, 106102, 106201, 106202, 106300, 106400, 106502, 106503, 106506, 106507, 106508, 106509, 106510, 106511, 106512, 106513, 106514, 106600, 106700, 110101, 110102, 110201, 110202, 110300, 110401, 110402, 110500, 110601, 110602, 110701, 110702, 110801, 110804, 110901, 110903, 110904, 110905, 110906, 110907, 111003, 111005, 111006, 111007, 111008, 111009, 111010, 111101, 111102, 111201, 111202, 111301, 111303, 111304, 111305, 111306, 111401, 111402, 111403, 111505, 111506, 111511, 111512, 111513, 111514, 111515, 111516, 111517, 111518, 111519, 111521, 111522, 111523, 111524, 111525, 111526, 111527, 111528, 111529, 111530, 111531, 111532, 111533, 111534, 111535, 113001, 113002, 113101, 113102, 113103, 113104, 113105, 113106, 113107, 113108, 113205, 113206, 113207, 113208, 113209, 113210, 113211, 113301, 113302, 113403, 113404, 113405, 113407, 113408, 113504, 113505, 113506, 113507, 113508, 113607, 113609, 113610, 113611, 113612, 113613, 113614, 113615, 113616, 113617, 113618, 113619, 113702, 113703, 113704, 113801, 113803, 113804, 113805, 113901, 113902, 113903, 113904, 113905, 114001, 114003, 114004, 114101, 114102, 114202, 114203, 114204, 114205, 121601, 121604, 121605, 121606, 121608, 121609, 121610, 121611, 121701, 121702, 121800, 121901, 121902, 122000, 122100, 122200, 122300, 122400, 122500, 122600, 122700, 122800, 122900],
'441' : [010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 011900, 012000, 012100, 012200, 012300, 012400, 012500, 012600, 012700, 012800, 012900, 013000, 013100, 013200, 013300, 013400, 013500, 013600],
'443' : [950100],
'445' : [950100, 950200, 950300, 950400],
'447' : [950100, 950200],
'449' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
'451' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001101, 001102, 001200, 001301, 001303, 001304, 001400, 001500, 001600, 001701, 001702, 001703, 170300],
'453' : [000101, 000102, 000201, 000202, 000203, 000204, 000301, 000302, 000303, 000401, 000402, 000500, 000601, 000603, 000604, 000700, 000801, 000802, 000803, 000804, 000901, 000902, 001000, 001100, 001200, 001303, 001304, 001305, 001307, 001308, 001400, 001501, 001503, 001504, 001505, 001602, 001603, 001604, 001605, 001606, 001704, 001705, 001706, 001707, 001710, 001712, 001713, 001718, 001719, 001720, 001721, 001722, 001723, 001724, 001725, 001726, 001727, 001728, 001729, 001730, 001731, 001732, 001733, 001734, 001735, 001736, 001804, 001805, 001806, 001811, 001812, 001813, 001817, 001818, 001819, 001820, 001821, 001822, 001823, 001824, 001825, 001826, 001827, 001828, 001829, 001830, 001831, 001832, 001833, 001834, 001835, 001836, 001838, 001898, 001901, 001902, 001904, 001905, 001906, 001907, 002001, 002002, 002003, 002104, 002105, 002106, 002107, 002108, 002109, 002110, 002111, 002112, 002113, 002201, 002202, 002204, 002205, 002206, 002303, 002304, 002305, 002306, 002307, 002308, 002310, 002311, 002312, 002402, 002403, 002405, 002407, 002409, 002410, 002411, 002412, 002413, 002414, 002415, 002416, 002417, 002418, 002594, 002595, 002596, 002597, 002598],
'455' : [950100, 950200, 950300, 950400, 950500],
'457' : [950100, 950200, 950300, 950400, 950500],
'459' : [950100, 950200, 950300, 950400, 950500, 950600, 950798],
'461' : [950100, 950200],
'463' : [950100, 950200, 950300, 950400, 950500],
'465' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
'467' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000],
'469' : [000100, 000201, 000202, 000301, 000302, 000400, 000501, 000502, 000601, 000602, 000700, 000800, 000900, 001000, 001300, 001400, 001501, 001502, 001601, 001602, 001603],
'471' : [190100, 190200, 190310, 190320, 190400, 190500, 190600, 190700],
'473' : [080100, 080200, 080310, 080320, 080400, 080596, 080597, 080598],
'475' : [950100, 950200, 950300, 950400, 950500],
'477' : [170100, 170200, 170300, 170400, 170500, 170600],
'479' : [000101, 000103, 000104, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001702, 001703, 001704, 001705, 001801, 001802],
'481' : [140100, 140200, 140300, 140400, 140500, 140600, 140700, 140800, 140900, 141000, 141100],
'483' : [950100, 950300],
'485' : [010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 011900, 012000, 012100, 012200, 012300, 012400, 012500, 012600, 012700, 012800, 012900, 013000, 013100, 013200, 013300, 013400, 013500, 013600, 013700, 013800],
'487' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
'489' : [950100, 950200, 950300, 950400, 950500, 950600],
'491' : [020101, 020102, 020103, 020104, 020200, 020301, 020302, 020303, 020304, 020305, 020306, 020307, 020308, 020309, 020310, 020401, 020402, 020403, 020404, 020405, 020501, 020502, 020503, 020504, 020601, 020602, 020701, 020702, 020703, 020898, 020900, 021000, 021100, 021201, 021202, 021203, 021300, 021401, 021402, 021403, 021501, 021502, 021503, 021600, 021779, 021780, 021781, 021782, 021783, 021784, 021785, 021786, 021787, 021788, 021789, 021790, 021791, 021792, 021793, 021794, 021795, 021796, 021797, 021798],
'493' : [980100, 980200, 980300, 980400, 980500, 980600],
'495' : [950100, 950200, 950300, 950400],
'497' : [150100, 150200, 150300, 150400, 150500, 150600],
'499' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
'501' : [950100, 950200],
'503' : [950100, 950200, 950300, 950400, 950500, 950600],
'505' : [950100, 950200, 950300],
'507' : [950100, 950200, 950300]]]]></entry>
        <entry id="census_ut" type="java"><![CDATA[[
    '001' : [981100,981200],
    '003' : [960100,960200,960300,960400,960500,960600,960700,960800],
    '005' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1796,1797,1798],
    '007' : [971100,971200,971300,971400,971500,971600],
    '009' : [990100],
    '011' : [125101,125102,125200,125301,125302,125401,125402,125500,125600,125700,125801,125802,125804,125903,125904,126000,126101,126102,126103,126104,126201,126202,126300,126301,126302,126401,126402,126500,126600,126700,126801,126802,126901,126902,127001,127002],
    '013' : [991100,991200,991300,991400,991598],
    '015' : [976100,976200,976300,976400],
    '017' : [983100,983200,983300],
    '019' : [969100,969200],
    '021' : [982100,982200,982300,982400,982500],
    '023' : [973100,973200],
    '025' : [984100,984200],
    '027' : [974100,974200,974300],
    '029' : [970100,970200],
    '031' : [980100],
    '033' : [950100,950298],
    '035' : [100100,100200,100302,100303,100304,100400,100500,100600,100700,100800,100900,101000,101100,101200,101300,101400,101500,101600,101700,101800,101900,102000,102100,102200,102300,102400,102500,102600,102700,102800,102900,103000,103100,103200,103300,103400,103500,103600,103700,103800,103900,104000,104100,104200,104300,104400,104500,104600,104700,104800,104900,110102,110103,110104,110200,110300,110400,110500,110600,110700,110800,110900,111001,111002,111101,111102,111103,111200,111302,111303,111304,111400,111500,111600,111700,111800,111901,111902,112000,112100,112201,112202,112301,112302,112401,112402,112501,112502,112503,112602,112604,112605,112606,112607,112608,112609,112610,112611,112612,112700,112801,112802,112804,112805,112806,112904,112905,112906,112907,112908,112909,112910,112911,113003,113004,113005,113006,113100,113304,113305,113306,113307,113308,113402,113403,113405,113406,113407,113408,113409,113505,113509,113510,113511,113512,113513,113514,113515,113516,113517,113518,113519,113520,113521,113522,113523,113524,113600,113700,113801,113802,113803,113901,113903,113904,113905],
    '037' : [978100,978200,978300,978400],
    '039' : [972100,972200,972300,972400,972500],
    '041' : [975100,975200,975300,975400,975500],
    '043' : [994100,994200,994300,994400],
    '045' : [130600,130700,130800,130900,131000,131100,131200],
    '047' : [988100,988200,988300,988400,988598],
    '049' : [100,200,300,400,500,600,701,702,800,901,902,1000,1101,1102,1200,1300,1400,1501,1502,1600,1700,1800,1900,2000,2100,2200,2300,2400,2500,2600,2700,2800,2900,3000,3100,3200,3300,3400,10100,10201,10298,10301,10302,10400,10500,10600,10793,10794,10795,10796,10797],
    '051' : [992100,992200,992398,992400,992500,992693,992694,992695,992696,992697,992698],
    '053' : [985100,985200,985300,985400,985500,985600,985700,985800,985900,986000],
    '055' : [979100],
    '057' : [200100,200200,200300,200400,200500,200600,200700,200800,200900,201100,201200,201300,201400,201500,201600,201700,201800,201900,202000,210100,210201,210202,210301,210302,210400,210501,210503,210504,210505,210600,210701,210702,210800,210900,211000,211100,211201,211202]
 ]]]></entry>
        <entry id="census_wa" type="java"><![CDATA[[
    '009' : [980100,980200,980300,980400,980500,980600,980700,980799,980800,980900,981000,981100,981200,981300,981400,981500,981600,981700,981800,981900,982000,982100,982200,982300],
    '027' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1798],
    '029' : [970100,970200,970300,970400,970500,970600,970700,970800,970900,971000,971100,971200,971300,971400,971500,971600,971700,971800,971900,972000,972100],
    '031' : [950100,950200,950300,950400,950500,950600,950699],
    '033' : [100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2398,2400,2500,2600,2700,2800,2900,3000,3100,3200,3299,3300,3400,3500,3600,3700,3800,3900,4098,4100,4200,4300,4400,4500,4600,4700,4799,4800,4900,5000,5100,5200,5301,5302,5400,5499,5500,5600,5700,5799,5801,5802,5899,5900,5999,6000,6100,6200,6300,6400,6500,6600,6699,6798,6898,6900,7000,7100,7200,7300,7400,7500,7600,7700,7800,7900,8000,8099,8100,8200,8300,8400,8500,8600,8700,8800,8900,9000,9100,9200,9300,9399,9400,9500,9600,9700,9800,9900,9999,10000,10100,10200,10300,10400,10500,10600,10700,10800,10900,10999,11000,11100,11200,11300,11400,11500,11600,11700,11800,11900,12000,12100,20100,20200,20300,20400,20500,20600,20700,20800,20900,21000,21100,21200,21300,21400,21500,21600,21700,21801,21802,21901,21903,21904,22001,22003,22004,22100,22201,22202,22298,22398,22400,22500,22601,22602,22700,22801,22802,22803,22900,23000,23100,23200,23300,23401,23402,23500,23601,23602,23700,23801,23802,23900,24000,24100,24200,24300,24400,24500,24600,24701,24798,24800,24901,24902,24903,25002,25098,25100,25200,25300,25400,25500,25600,25700,25801,25802,25900,26001,26002,26100,26200,26300,26400,26500,26600,26700,26800,26900,27000,27100,27200,27300,27400,27500,27600,27701,27702,27800,27900,28000,28100,28200,28300,28401,28402,28403,28500,28600,28700,28801,28802,28900,29001,29002,29100,29201,29202,29301,29302,29402,29403,29404,29501,29502,29600,29700,29801,29802,29900,30001,30002,30100,30201,30202,30302,30303,30304,30305,30306,30307,30401,30402,30501,30502,30600,30700,30800,30900,31000,31100,31202,31203,31204,31300,31400,31500,31600,31701,31702,31800,31903,31904,31905,31906,32002,32003,32004,32005,32006,32101,32102,32203,32204,32205,32206,32302,32304,32305,32306,32307,32308,32309,32310,32400,32500,32600,32701,32702,32800,32900,33000,33100],
    '035' : [80101,80102,80200,80300,80400,80500,80600,80700,80898,80998,81000,81100,81200,81300,81400,81499,90101,90102,90200,90300,90399,90400,90500,90601,90602,90700,90800,90900,91000,91100,91201,91202,91300,91400,91500,91600,91700,91800,91900,92000,92100,92200,92300,92400,92500,92600,92700,92800,92900],
    '045' : [960198,960200,960300,960400,960500,960600,960700,960800,960900,961000,961100,961200,961300,961400],
    '053' : [60101,60102,60200,60299,60300,60400,60500,60600,60700,60800,60901,60902,61000,61100,61200,61300,61400,61500,61601,61602,61700,61800,61900,62000,62100,62200,62300,62400,62500,62600,62700,62801,62802,62900,63000,63100,63200,63300,63400,63500,70100,70201,70202,70301,70303,70304,70305,70400,70500,70600,70701,70702,70800,70900,71000,71100,71202,71203,71204,71302,71303,71304,71401,71403,71404,71405,71501,71503,71504,71600,71701,71702,71802,71803,71804,71901,71902,72000,72105,72106,72107,72108,72109,72110,72303,72305,72306,72307,72308,72402,72403,72404,72501,72502,72600,72700,72800,72803,72901,72902,73001,73002,73103,73104,73105,73106,73200,73300,73401,73403,73404,73500],
    '055' : [960100,960200,960300,960400,960500,960600],
    '057' : [950100,950199,950200,950300,950400,950500,950600,950699,950700,950800,950900,951000,951100,951200,951300,951400,951500,951600,951700,951800,951900,952000,952100,952200,952300,952400,952500,952600,952700],
    '061' : [40198,40200,40300,40400,40500,40600,40700,40800,40900,41000,41100,41200,41300,41400,41500,41601,41603,41604,41700,41801,41803,41804,41901,41902,42001,42002,42003,42004,50100,50200,50300,50401,50402,50500,50600,50700,50800,50900,51000,51100,51200,51300,51400,51500,51600,51700,51801,51802,51905,51906,51907,51908,51909,51910,51911,51912,52001,52002,52003,52104,52105,52106,52107,52108,52109,52201,52202,52301,52302,52400,52501,52502,52601,52602,52701,52702,52703,52802,52803,52804,52901,52902,53098,53100,53200,53300,53400,53501,53502,53600,53700,53800],
    '067' : [10100,10200,10300,10400,10500,10600,10700,10800,10900,11000,11100,11200,11300,11400,11500,11610,11620,11700,11800,11900,12000,12100,12210,12220,12300,12400,12402,12500,12600,12700],
    '073' : [100,200,300,400,500,600,699,700,800,801,802,900,1000,1100,1200,10100,10200,10300,10401,10402,10500,10599,10600,10700,10800,10900,11000]
 ]]]></entry>
        <entry id="census_wi" type="java"><![CDATA[[
    '001' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
    '003' : [950100, 950200, 950300, 950400, 950500, 950600, 950700],
    '005' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100],
    '007' : [950400, 960100, 960200, 960300, 960500, 960600, 960700],
    '009' : [000100, 000200, 000301, 000302, 000303, 000401, 000402, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001501, 001502, 001600, 001700, 001801, 001802, 002001, 002002, 002003, 010100, 010201, 010202, 010300, 020198, 020200, 020300, 020400, 020501, 020502, 020600, 020701, 020702, 020800, 020900, 021000, 021100, 021200, 021301, 021302, 021303, 021400, 021500],
    '011' : [960100, 960200, 960300, 960400, 960500],
    '013' : [970100, 970200, 970300, 970400, 970500, 970600, 970700, 970800, 970900, 971000],
    '015' : [020100, 020200, 020301, 020302, 020400, 020500, 020600, 020798, 020898, 020998],
    '017' : [010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011100, 011200],
    '019' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800],
    '021' : [970100, 970200, 970300, 970400, 970500, 970600, 970700, 970800, 970900, 971000, 971100, 971200],
    '023' : [980100, 980200, 980300, 980400, 980500, 980600],
    '025' : [000100, 000201, 000202, 000204, 000205, 000300, 000401, 000402, 000498, 000503, 000504, 000597, 000598, 000600, 000797, 000798, 000800, 000900, 001097, 001098, 001100, 001298, 001398, 001401, 001498, 001501, 001502, 001601, 001602, 001700, 001800, 001900, 002000, 002100, 002200, 002301, 002302, 002494, 002495, 002496, 002497, 002498, 002597, 002598, 002601, 002602, 002700, 002800, 002900, 003001, 003002, 003100, 003200, 010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011101, 011102, 011298, 011300, 011400, 011501, 011502, 011600, 011700, 011800, 011900, 012000, 012100, 012200, 012300, 012400, 012500, 012600, 012700, 012800, 012900, 013000, 013100, 013200, 013300, 019900],
    '027' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100, 961200, 961300, 961400, 961500, 961600, 961700, 961800, 961900, 962000],
    '029' : [980100, 980200, 980300, 980498, 980598, 980600, 980700, 980799, 980800, 980899, 980900, 981000],
    '031' : [020100, 020199, 020200, 020300, 020400, 020500, 020600, 020700, 020800, 020900, 021000, 021099, 030100, 030200, 030300],
    '033' : [970100, 970200, 970300, 970400, 970500, 970600, 970700, 970800],
    '035' : [000100, 000200, 000301, 000302, 000400, 000501, 000502, 000600, 000700, 000800, 000801, 000802, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600],
    '037' : [990100, 990200],
    '039' : [040100, 040200, 040300, 040400, 040500, 040600, 040700, 040800, 040900, 041000, 041100, 041200, 041300, 041400, 041500, 041600, 041700, 041800, 041900, 042000, 042100, 042200],
    '041' : [950100, 950200, 950300, 950400],
    '043' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100, 961200],
    '045' : [980100, 980200, 980300, 980400, 980500, 980600, 980700, 980800],
    '047' : [980100, 980200, 980300, 980400, 980500, 980600],
    '049' : [950100, 950200, 950300, 950400, 950500, 950600],
    '051' : [980100, 980200, 980300, 980400],
    '053' : [960100, 960200, 960300, 960400, 960500],
    '055' : [990100, 990200, 990300, 990400, 990500, 990600, 990700, 990800, 990900, 991000, 991100, 991200, 991300, 991400, 991500, 991600, 991700],
    '057' : [990100, 990200, 990300, 990400, 990500, 990600, 990700],
    '059' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002300, 002400, 002500, 002600, 002700, 002800, 002901, 002902, 003000],
    '061' : [960100, 960200, 960300, 960400, 960500, 960600, 960798],
    '063' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001101, 001102, 001200, 010101, 010102, 010201, 010202, 010203, 010300, 010400, 010401, 010402, 010500, 010600, 010700, 010800],
    '065' : [970100, 970200, 970300, 970400, 970500],
    '067' : [960100, 960200, 960300, 960400, 960500, 960600, 960700],
    '069' : [980100, 980200, 980300, 980400, 980500, 980600, 980700, 980800, 980900, 981000],
    '071' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 005100, 005200, 005300, 005400, 010100, 010200, 010300, 010400, 010500, 010600, 010700],
    '073' : [000100, 000200, 000300, 000400, 000500, 000601, 000602, 000700, 000800, 000900, 001000, 001102, 001103, 001104, 001201, 001202, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002300],
    '075' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100, 961200, 961300, 961400, 961597, 961598, 961698],
    '077' : [990100, 990200, 990300, 990400, 990500],
    '078' : [970100],
    '079' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002300, 002400, 002500, 002600, 002700, 002800, 002900, 003000, 003100, 003200, 003300, 003400, 003500, 003600, 003700, 003800, 003900, 004000, 004100, 004200, 004300, 004400, 004500, 004600, 004700, 004800, 004900, 005000, 005100, 005200, 005300, 005400, 005500, 005600, 005700, 005800, 005900, 006000, 006100, 006200, 006300, 006400, 006500, 006600, 006700, 006800, 006900, 007000, 007100, 007200, 007300, 007400, 007500, 007600, 007700, 007800, 007900, 008000, 008100, 008200, 008300, 008400, 008500, 008600, 008700, 008800, 008900, 009000, 009100, 009200, 009300, 009400, 009500, 009600, 009700, 009800, 009900, 010000, 010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700, 011800, 011900, 012000, 012100, 012200, 012300, 012400, 012500, 012600, 012700, 012800, 012900, 013000, 013100, 013200, 013300, 013400, 013500, 013600, 013700, 013800, 013900, 014000, 014100, 014200, 014300, 014400, 014500, 014600, 014700, 014800, 014900, 015000, 015100, 015200, 015300, 015400, 015499, 015500, 015600, 015700, 015800, 015900, 016000, 016100, 016200, 016300, 016400, 016500, 016600, 016700, 016800, 016900, 017000, 017100, 017200, 017300, 017400, 017500, 017600, 017700, 017898, 017900, 018097, 018098, 018100, 018200, 018300, 018400, 018500, 018600, 018700, 018800, 018900, 019000, 019100, 019200, 019300, 019400, 019500, 019600, 019700, 019800, 019900, 020000, 020100, 020200, 020300, 020400, 020500, 020600, 020700, 020800, 020900, 021000, 021100, 021200, 021300, 021400, 021500, 021600, 021700, 021800, 030100, 035100, 035200, 040100, 050100, 060100, 060200, 070100, 070200, 070300, 080100, 080200, 080300, 080400, 090100, 090200, 090300, 090400, 090500, 090600, 090700, 090800, 090900, 091000, 091100, 091200, 091300, 091400, 100100, 100200, 100300, 100400, 100500, 100600, 100700, 100800, 100900, 101000, 101100, 101200, 101300, 101400, 101500, 101600, 101700, 101800, 110100, 120100, 120200, 120300, 120400, 120500, 130100, 130200, 140100, 140200, 150100, 150200, 150300, 150400, 160100, 160201, 160202, 160300, 170100, 170200, 170300, 170400, 170500, 170600, 170700, 180100, 180200, 180300, 180400, 180500, 185100, 185200],
    '081' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 990200],
    '083' : [990100, 990200, 990300, 990400, 990500, 990600, 990700, 990800, 990900, 991000, 991100, 991200, 991300],
    '085' : [970100, 970200, 970300, 970400, 970500, 970600, 970700, 970800, 970900, 971000, 971100, 971200, 971300, 971400, 971500],
    '087' : [010100, 010200, 010300, 010400, 010500, 010601, 010602, 010700, 010800, 010900, 011000, 011101, 011102, 011200, 011300, 011400, 011501, 011502, 011600, 011700, 011800, 011900, 012000, 012100, 012200, 012300, 012400, 012500, 012600, 012700, 012800, 012900, 013000, 013100, 013200],
    '089' : [610100, 620100, 630100, 630200, 640100, 640200, 650100, 650200, 650300, 660100, 660200, 660301, 660302],
    '091' : [950100, 950200],
    '093' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800],
    '095' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100],
    '097' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800, 960900, 961000, 961100, 961200, 961300],
    '099' : [970100, 970200, 970300, 970400, 970500, 970600, 970700],
    '101' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000901, 000903, 000904, 001001, 001002, 001003, 001100, 001201, 001202, 001301, 001302, 001400, 001501, 001502, 001503, 001601, 001602, 001702, 001703, 001704, 001800, 001900, 002000, 002100, 002200, 002401, 002402, 002600, 002700, 002800],
    '103' : [970100, 970200, 970300, 970400, 970500],
    '105' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002300, 002400, 002500, 002601, 002602, 002700, 002800, 002900, 003000, 003100, 003200, 003300],
    '107' : [960100, 960200, 960300, 960400, 960500],
    '109' : [120100, 120200, 120300, 120400, 120500, 120600, 120700, 120800, 120900, 121000],
    '111' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000, 951100],
    '113' : [980100, 980200, 980300, 980400, 980500, 980600, 980700, 980800],
    '115' : [980100, 980200, 980300, 980400, 980500, 980600, 980700, 980800, 980900, 981000, 981100],
    '117' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011100, 011200, 011300],
    '119' : [980100, 980200, 980300, 980400, 980500, 980600],
    '121' : [990100, 990200, 990300, 990400, 990500, 990600, 990700, 990800],
    '123' : [960100, 960200, 960300, 960400, 960500, 960600, 960700],
    '125' : [950100, 950200, 950300, 950400, 950500, 950600, 950700, 950800, 950900, 951000, 951100, 951200, 951300, 951400, 951500],
    '127' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001500, 001601, 001602, 001700],
    '129' : [950100, 950200, 950300, 950400, 950500, 950600],
    '131' : [400101, 400102, 410100, 420101, 420102, 420200, 420300, 420400, 430100, 440101, 440102, 440200, 450101, 450102, 460101, 460102, 470100, 470200],
    '133' : [200101, 200102, 200103, 200200, 200300, 200400, 200500, 200600, 200700, 200801, 200802, 200901, 200902, 201000, 201100, 201101, 201102, 201200, 201300, 201401, 201402, 201501, 201502, 201600, 201701, 201702, 201800, 201900, 202001, 202002, 202100, 202200, 202301, 202302, 202400, 202500, 202600, 202700, 202800, 202900, 203000, 203101, 203102, 203103, 203200, 203301, 203302, 203401, 203402, 203500, 203600, 203700, 203801, 203802, 203900, 204000, 204001, 204002, 204100, 204200, 204300, 204400, 204500],
    '135' : [990100, 990200, 990300, 990400, 990500, 990600, 990700, 990800, 990900, 991000, 991100, 991200],
    '137' : [960100, 960200, 960300, 960400, 960500, 960600, 960700, 960800],
    '139' : [000100, 000200, 000300, 000400, 000500, 000600, 000700, 000800, 000900, 001000, 001100, 001200, 001300, 001400, 001500, 001600, 001700, 001800, 001900, 002000, 002100, 002200, 002300, 002400, 002500, 002601, 002602, 002700, 002898, 002900, 003098, 003198, 003200, 003300, 003400, 003500, 003600, 003701, 003702],
    '141' : [010100, 010200, 010300, 010400, 010500, 010600, 010700, 010800, 010900, 011000, 011100, 011200, 011300, 011400, 011500, 011600, 011700]
 ]]]></entry>
        <entry id="Certain_Sites" type="java"><![CDATA[[420..429,700..701,709..725,728..729,760..765,767..768,770..779,809]]]></entry>
        <entry id="ColoRectal" type="java"><![CDATA[[180..189,199,209]]]></entry>
        <entry id="compareDate" type="groovy"><![CDATA[// this closure is used to compare two dates
return { Integer year1, Integer month1, Integer day1, Integer year2, Integer month2, Integer day2 ->
    int y1 = year1 == null ? 9999 : year1
    int m1 = month1 == null ? 99 : month1
    int d1 = day1 == null ? 99 : day1
    int y2 = year2 == null ? 9999 : year2
    int m2 = month2 == null ? 99 : month2
    int d2 = day2 == null ? 99 : day2

    if (y1 == 9999 || y2 == 9999)
        return 0

    if (y1 != y2)
        return y1 - y2

    if (m1 == 99 || m2 == 99)
         return 0

    if (m1 != m2)
         return m1 - m2

    if (d1 == 99 || d2 == 99)
         return 0

    return d1 - d2
}]]></entry>
        <entry id="compareDatesWithinMonths" type="groovy"><![CDATA[// this closure is used to compare two dates and see if the first date is within monthsInterval months of the second date
return { Integer year1, Integer month1, Integer day1, Integer year2, Integer month2, Integer day2, Integer monthsInterval ->
    int interval = monthsInterval == null ? 0 : monthsInterval
    int y1 = year1 == null ? 9999 : year1
    int m1 = month1 == null ? 99 : month1
    int d1 = day1 == null ? 99 : day1
    int y2 = year2 == null ? 9999 : year2
    int m2 = month2 == null ? 99 : month2 + interval
    int d2 = day2 == null ? 99 : day2

    if (m2 > 12 && m2 != 99) {
        y2 = y2 == null ? 9999 : y2 + (m2 / 12)
        m2 = m2 % 12
    }

    if (y1 == 9999 || y2 == 9999)
        return true

    if (y1 != y2)
        return y1 < y2

    if (m1 == 99 || m2 == 99)
         return true

    if (m1 != m2)
         return m1 < m2

    if (d1 == 99 || d2 == 99)
         return true

    return d1 <= d2
}]]></entry>
        <entry id="Country_State" type="java"><![CDATA[[
'ABW' : ['XX' : [245]],
'AFG' : ['XX' : [638]],
'AGO' : ['XX' : [543]],
'AIA' : ['XX' : [245]],
'ALA' : ['XX' : [429]],
'ALB' : ['XX' : [481]],
'AND' : ['XX' : [443]],
'ARE' : ['XX' : [629]],
'ARG' : ['XX' : [365]],
'ARM' : ['XX' : [633]],
'ASM' : ['AS' : [121]],
'ATA' : ['XX' : [750]],
'ATF' : ['XX' : [750]],
'ATG' : ['XX' : [245]],
'AUS' : ['XX' : [711]],
'AUT' : ['XX' : [436]],
'AZE' : ['XX' : [633]],
'BDI' : ['XX' : [579]],
'BEL' : ['XX' : [433]],
'BEN' : ['XX' : [539]],
'BES' : ['XX' : [245]],
'BFA' : ['XX' : [520]],
'BGD' : ['XX' : [645]],
'BGR' : ['XX' : [454]],
'BHR' : ['XX' : [629]],
'BHS' : ['XX' : [247]],
'BIH' : ['XX' : [453]],
'BLM' : ['XX' : [245]],
'BLR' : ['XX' : [457]],
'BLZ' : ['XX' : [252]],
'BMU' : ['XX' : [246]],
'BOL' : ['XX' : [355]],
'BRA' : ['XX' : [341]],
'BRB' : ['XX' : [245]],
'BRN' : ['XX' : [671]],
'BTN' : ['XX' : [643]],
'BVT' : ['XX' : [750]],
'BWA' : ['XX' : [545]],
'CAF' : ['XX' : [539]],
'CAN' : ['AB' : [224], 'BC' : [226], 'CD' : [220, 221, 224, 225], 'MB' : [224], 'MM' : [221], 'NB' : [221], 'NL' : [221], 'NS' : [221], 'NT' : [225], 'NU' : [227], 'ON' : [223], 'PE' : [221], 'PP' : [224], 'QC' : [222], 'SK' : [224], 'YN' : [225], 'YT' : [225]],
'CCK' : ['XX' : [711]],
'CHE' : ['XX' : [435]],
'CHL' : ['XX' : [361]],
'CHN' : ['XX' : [682, 685]],
'CIV' : ['XX' : [539]],
'CMR' : ['XX' : [539]],
'COD' : ['XX' : [541]],
'COG' : ['XX' : [539]],
'COK' : ['XX' : [124]],
'COL' : ['XX' : [311]],
'COM' : ['XX' : [580]],
'CPV' : ['XX' : [445]],
'CRI' : ['XX' : [256]],
'CSK' : ['XX' : [452], 'YY' : [452]],
'CUB' : ['XX' : [241]],
'CUW' : ['XX' : [245]],
'CXR' : ['XX' : [711]],
'CYM' : ['XX' : [245]],
'CYP' : ['XX' : [495]],
'CZE' : ['XX' : [452]],
'DEU' : ['XX' : [431]],
'DJI' : ['XX' : [583]],
'DMA' : ['XX' : [245]],
'DNK' : ['XX' : [425]],
'DOM' : ['XX' : [243]],
'DZA' : ['XX' : [513]],
'ECU' : ['XX' : [345]],
'EGY' : ['XX' : [519]],
'ENG' : ['XX' : [401]],
'ERI' : ['XX' : [585]],
'ESH' : ['XX' : [520]],
'ESP' : ['XX' : [443]],
'EST' : ['XX' : [458]],
'ETH' : ['XX' : [585]],
'FIN' : ['XX' : [429]],
'FJI' : ['XX' : [721]],
'FLK' : ['XX' : [381]],
'FRA' : ['XX' : [441]],
'FRO' : ['XX' : [425]],
'FSM' : ['FM' : [123]],
'GAB' : ['XX' : [539]],
'GBR' : ['XX' : [400]],
'GEO' : ['XX' : [633]],
'GGY' : ['XX' : [401]],
'GHA' : ['XX' : [539]],
'GIB' : ['XX' : [485]],
'GIN' : ['XX' : [539]],
'GLP' : ['XX' : [245]],
'GMB' : ['XX' : [539]],
'GNB' : ['XX' : [539]],
'GNQ' : ['XX' : [539]],
'GRC' : ['XX' : [471]],
'GRD' : ['XX' : [245]],
'GRL' : ['XX' : [210]],
'GTM' : ['XX' : [251]],
'GUF' : ['XX' : [333]],
'GUM' : ['GU' : [126]],
'GUY' : ['XX' : [331]],
'HKG' : ['XX' : [683]],
'HMD' : ['XX' : [750]],
'HND' : ['XX' : [253]],
'HRV' : ['XX' : [453]],
'HTI' : ['XX' : [242]],
'HUN' : ['XX' : [475]],
'IDN' : ['XX' : [673]],
'IMN' : ['XX' : [401]],
'IND' : ['XX' : [641]],
'IOT' : ['XX' : [580]],
'IRL' : ['XX' : [410]],
'IRN' : ['XX' : [637]],
'IRQ' : ['XX' : [627]],
'ISL' : ['XX' : [421]],
'ISR' : ['XX' : [631]],
'ITA' : ['XX' : [447]],
'JAM' : ['XX' : [244]],
'JEY' : ['XX' : [401]],
'JOR' : ['XX' : [625]],
'JPN' : ['XX' : [133, 134, 693]],
'KAZ' : ['XX' : [634]],
'KEN' : ['XX' : [575]],
'KGZ' : ['XX' : [634]],
'KHM' : ['XX' : [663]],
'KIR' : ['XX' : [122]],
'KNA' : ['XX' : [245]],
'KOR' : ['XX' : [695]],
'KWT' : ['XX' : [629]],
'LAO' : ['XX' : [661]],
'LBN' : ['XX' : [623]],
'LBR' : ['XX' : [539]],
'LBY' : ['XX' : [517]],
'LCA' : ['XX' : [245]],
'LIE' : ['XX' : [437]],
'LKA' : ['XX' : [647]],
'LSO' : ['XX' : [545]],
'LTU' : ['XX' : [461]],
'LUX' : ['XX' : [434]],
'LVA' : ['XX' : [459]],
'MAC' : ['XX' : [686]],
'MAF' : ['XX' : [441]],
'MAR' : ['XX' : [511]],
'MCO' : ['XX' : [441]],
'MDA' : ['XX' : [456]],
'MDG' : ['XX' : [555]],
'MDV' : ['XX' : [640]],
'MEX' : ['XX' : [230]],
'MHL' : ['MH' : [131]],
'MKD' : ['XX' : [453]],
'MLI' : ['XX' : [520]],
'MLT' : ['XX' : [491]],
'MMR' : ['XX' : [649]],
'MNE' : ['XX' : [453]],
'MNG' : ['XX' : [691]],
'MNP' : ['MP' : [129]],
'MOZ' : ['XX' : [553]],
'MRT' : ['XX' : [520]],
'MSR' : ['XX' : [245]],
'MTQ' : ['XX' : [245]],
'MUS' : ['XX' : [580]],
'MWI' : ['XX' : [551]],
'MYS' : ['XX' : [671]],
'MYT' : ['XX' : [580]],
'NAM' : ['XX' : [545]],
'NCL' : ['XX' : [721]],
'NER' : ['XX' : [520]],
'NFK' : ['XX' : [725]],
'NGA' : ['XX' : [531]],
'NIC' : ['XX' : [255]],
'NIR' : ['XX' : [404]],
'NIU' : ['XX' : [715]],
'NLD' : ['XX' : [432]],
'NOR' : ['XX' : [423]],
'NPL' : ['XX' : [643]],
'NRU' : ['XX' : [723]],
'NZL' : ['XX' : [715]],
'OMN' : ['XX' : [629]],
'PAK' : ['XX' : [639]],
'PAN' : ['XX' : [110, 257]],
'PCN' : ['XX' : [725]],
'PER' : ['XX' : [351]],
'PHL' : ['XX' : [675]],
'PLW' : ['PW' : [139]],
'PNG' : ['XX' : [711]],
'POL' : ['XX' : [451]],
'PRI' : ['PR' : [101]],
'PRK' : ['XX' : [695]],
'PRT' : ['XX' : [445]],
'PRY' : ['XX' : [371]],
'PSE' : ['XX' : [631]],
'PYF' : ['XX' : [725]],
'QAT' : ['XX' : [629]],
'REU' : ['XX' : [580]],
'ROU' : ['XX' : [449]],
'RUS' : ['XX' : [455]],
'RWA' : ['XX' : [577]],
'SAU' : ['XX' : [629]],
'SCT' : ['XX' : [403]],
'SDN' : ['XX' : [520]],
'SEN' : ['XX' : [539]],
'SGP' : ['XX' : [671]],
'SGS' : ['XX' : [750]],
'SHN' : ['XX' : [580]],
'SJM' : ['XX' : [423]],
'SLB' : ['XX' : [721]],
'SLE' : ['XX' : [539]],
'SLV' : ['XX' : [254]],
'SMR' : ['XX' : [447]],
'SOM' : ['XX' : [581]],
'SPM' : ['XX' : [249]],
'SRB' : ['XX' : [453]],
'SSD' : ['XX' : [520]],
'STP' : ['XX' : [543]],
'SUR' : ['XX' : [332]],
'SVK' : ['XX' : [452]],
'SVN' : ['XX' : [453]],
'SWE' : ['XX' : [427]],
'SWZ' : ['XX' : [545]],
'SXM' : ['XX' : [245]],
'SYC' : ['XX' : [580]],
'SYR' : ['XX' : [621]],
'TCA' : ['XX' : [245]],
'TCD' : ['XX' : [520]],
'TGO' : ['XX' : [539]],
'THA' : ['XX' : [651]],
'TJK' : ['XX' : [634]],
'TKL' : ['XX' : [136]],
'TKM' : ['XX' : [634]],
'TLS' : ['XX' : [673]],
'TON' : ['XX' : [725]],
'TTO' : ['XX' : [245]],
'TUN' : ['XX' : [515]],
'TUR' : ['XX' : [611]],
'TUV' : ['XX' : [125]],
'TWN' : ['XX' : [684]],
'TZA' : ['XX' : [571]],
'UGA' : ['XX' : [573]],
'UKR' : ['XX' : [456]],
'UMI' : ['UM' : [127, 132, 135, 137]],
'URY' : ['XX' : [375]],
'USA' : ['AA' : [099], 'AE' : [099], 'AK' : [091], 'AL' : [037], 'AP' : [099], 'AR' : [071], 'AZ' : [087], 'CA' : [097], 'CO' : [083], 'CT' : [007], 'DC' : [022], 'DE' : [017], 'FL' : [035], 'GA' : [033], 'HI' : [099], 'IA' : [053], 'ID' : [081], 'IL' : [061], 'IN' : [045], 'KS' : [065], 'KY' : [047], 'LA' : [073], 'MA' : [005], 'MD' : [021], 'ME' : [002], 'MI' : [041], 'MN' : [052], 'MO' : [063], 'MS' : [039], 'MT' : [056], 'NC' : [025], 'ND' : [054], 'NE' : [067], 'NH' : [003], 'NJ' : [008], 'NM' : [086], 'NN' : [001], 'NV' : [085], 'NY' : [011], 'OH' : [043], 'OK' : [075], 'OR' : [095], 'PA' : [014], 'RI' : [006], 'SC' : [026], 'SD' : [055], 'TN' : [031], 'TX' : [077], 'US' : [000, 010, 020, 030, 040, 050, 060, 070, 080, 090], 'UT' : [084], 'VA' : [023], 'VT' : [004], 'WA' : [093], 'WI' : [051], 'WV' : [024], 'WY' : [082]],
'UZB' : ['XX' : [634]],
'VAT' : ['XX' : [447]],
'VCT' : ['XX' : [245]],
'VEN' : ['XX' : [321]],
'VGB' : ['XX' : [245]],
'VIR' : ['VI' : [102]],
'VNM' : ['XX' : [665]],
'VUT' : ['XX' : [721]],
'WLF' : ['XX' : [721]],
'WLS' : ['XX' : [402]],
'WSM' : ['XX' : [725]],
'XAP' : ['YY' : [629]],
'XCB' : ['YY' : [245]],
'XCH' : ['YY' : [681]],
'XCR' : ['YY' : [633]],
'XEF' : ['YY' : [570]],
'XEN' : ['XX' : [401]],
'XET' : ['YY' : [585]],
'XGR' : ['YY' : [430]],
'XIF' : ['YY' : [580]],
'XIS' : ['YY' : [631]],
'XMC' : ['YY' : [723]],
'XML' : ['YY' : [721]],
'XMS' : ['YY' : [671]],
'XNF' : ['YY' : [510]],
'XNI' : ['YY' : [240]],
'XOR' : ['YY' : [634]],
'XPL' : ['YY' : [725]],
'XSC' : ['YY' : [420]],
'XSD' : ['YY' : [520]],
'XSE' : ['YY' : [650, 660]],
'XSF' : ['YY' : [540, 545]],
'XSL' : ['YY' : [450]],
'XUM' : ['YY' : [456]],
'XWF' : ['YY' : [530, 539]],
'YEM' : ['XX' : [629]],
'YUG' : ['XX' : [453], 'YY' : [453]],
'ZAF' : ['XX' : [545]],
'ZMB' : ['XX' : [549]],
'ZWE' : ['XX' : [547]],
'ZZA' : ['YY' : [600, 610, 620, 680]],
'ZZC' : ['YY' : [250]],
'ZZE' : ['YY' : [440, 463, 470, 490, 499]],
'ZZF' : ['YY' : [500]],
'ZZN' : ['YY' : [100, 109, 260]],
'ZZP' : ['YY' : [120, 141, 720]],
'ZZS' : ['YY' : [300, 380]],
'ZZU' : ['YY' : [265], 'ZZ' : [999]],
'ZZX' : ['YY' : [998]]
]]]></entry>
        <entry id="CS_SSF" type="java"><![CDATA[[
'adnexa_uterine_other' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'adrenal_gland' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'ampulla_vater' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'anus' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'appendix' : ['R','R','N',' ',' ',' ',' ',' ',' ',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'bile_ducts_distal' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','R'],
'bile_ducts_intrahepat' : ['R','N',' ',' ',' ',' ',' ',' ',' ','R','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'bile_ducts_perihilar' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','R'],
'biliary_other' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'bladder' : ['R','R','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'bone' : [' ',' ','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'brain' : ['R',' ',' ','N','N','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'breast' : ['R','R','R','R','R','R','R','R','R','N','R','N','R','R','R',' ',' ',' ',' ',' ','N','R','R',' ',' '],
'buccal_mucosa' : ['R',' ','R','R','R','R',' ',' ','R',' ','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'carcinoid_appendix' : [' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'cervix' : ['N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'cns_other' : ['R',' ',' ','N','N','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'colon' : ['R','R','N','R',' ','R',' ','R','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'conjunctiva' : ['R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'corpus_adenosarcoma' : ['N','R','R','R','R','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'corpus_carcinoma' : ['N','R','R','R','R','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'corpus_sarcoma' : ['N','R','R','R','R','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'cystic_duct' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','R'],
'digestive_other' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'endocrine_other' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'epiglottis_anterior' : ['R',' ','R','R','R','R',' ',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'esophagus' : ['R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'esophagus_gejunction' : ['R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','R'],
'eye_other' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'fallopian_tube' : ['N',' ',' ','R','R','R','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'floor_mouth' : ['R',' ','R','R','R','R',' ',' ','R',' ','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'gallbladder' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'genital_female_other' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'genital_male_other' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'gist_appendix' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','R','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'gist_colon' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','R','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'gist_esophagus' : [' ',' ',' ',' ',' ','R','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'gist_peritoneum' : [' ',' ',' ',' ','R','N',' ',' ',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'gist_rectum' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','R','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'gist_small_intestine' : [' ',' ',' ',' ',' ','R','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'gist_stomach' : [' ',' ',' ',' ',' ','R','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'gum_lower' : ['R',' ','R','R','R','R',' ',' ','R',' ','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'gum_other' : ['R',' ','R','R','R','R',' ',' ','R',' ','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'gum_upper' : ['R',' ','R','R','R','R',' ',' ','R',' ','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'heart_mediastinum' : ['R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'heme_retic' : ['R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'hypopharynx' : ['R',' ','R','R','R','R',' ',' ','R','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'ill_defined_other' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'intracranial_gland' : ['R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'kaposi_sarcoma' : ['R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'kidney_parenchyma' : ['R','R','R','R',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'kidney_renal_pelvis' : ['R','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'lacrimal_gland' : [' ',' ',' ','R',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','R'],
'lacrimal_sac' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','R'],
'larynx_glottic' : ['R',' ','R','R','R','R',' ',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'larynx_other' : ['R',' ','R','R','R','R',' ',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'larynx_subglottic' : ['R',' ','R','R','R','R',' ',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'larynx_supraglottic' : ['R',' ','R','R','R','R',' ',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'lip_lower' : ['R',' ','R','R','R','R',' ',' ','R',' ','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'lip_other' : ['R',' ','R','R','R','R',' ',' ','R',' ','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'lip_upper' : ['R',' ','R','R','R','R',' ',' ','R',' ','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'liver' : ['R','N','N','N','N','N','N','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'lung' : ['R','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'lymphoma' : ['R','R','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'lymphoma_ocular_adnexa' : ['R','R','N',' ',' ','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_buccal_mucosa' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_choroid' : [' ','R','R','R','N','N','N',' ','N','N','N','N','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_ciliary_body' : [' ','R','R','R','N','N','N',' ','N','N','N','N','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','R'],
'melanoma_conjunctiva' : ['R','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_epiglottis_anterior' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_eye_other' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_floor_mouth' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_gum_lower' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_gum_other' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_gum_upper' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_hypopharynx' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_iris' : [' ',' ','R','R','N','N','N',' ','N','N','N','N','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','R'],
'melanoma_larynx_glottic' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_larynx_other' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_larynx_subglottic' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_larynx_supraglottic' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_lip_lower' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_lip_other' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_lip_upper' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_mouth_other' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_nasal_cavity' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_nasopharynx' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_oropharynx' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_palate_hard' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_palate_soft' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_pharynx_other' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_sinus_ethmoid' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_sinus_maxillary' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_sinus_other' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_skin' : ['R','R','R','R','N','N','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_tongue_anterior' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'melanoma_tongue_base' : ['R',' ','R','R','R','R',' ',' ','R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'merkel_cell_penis' : ['N',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','R','R','R',' ',' ',' ','R',' ',' ',' '],
'merkel_cell_scrotum' : ['N',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','R','R','R',' ',' ',' ','R',' ',' ',' '],
'merkel_cell_skin' : ['N',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','R','R','R',' ',' ',' ','R',' ',' ',' '],
'merkel_cell_vulva' : ['N',' ','R',' ',' ',' ',' ',' ',' ',' ','R',' ',' ',' ',' ','R','R','R',' ',' ',' ','R',' ',' ',' '],
'middle_ear' : ['R',' ','R','R','R','R',' ',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'mouth_other' : ['R',' ','R','R','R','R',' ',' ','R',' ','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'mycosis_fungoides' : ['R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'nasal_cavity' : ['R',' ','R','R','R','R',' ',' ','R',' ','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'nasopharynx' : ['R',' ','R','R','R','R',' ',' ','R','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','R'],
'net_ampulla' : [' ',' ',' ',' ','N','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'net_colon' : [' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','R','R',' ',' ',' ',' ',' ',' ',' ',' '],
'net_rectum' : [' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','R','R',' ',' ',' ',' ',' ',' ',' ',' '],
'net_small_intestine' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','N','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'net_stomach' : ['R',' ',' ',' ',' ',' ',' ',' ',' ',' ','N','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'orbit' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'oropharynx' : ['R',' ','R','R','R','R',' ',' ','R','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'ovary' : ['R','N','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'palate_hard' : ['R',' ','R','R','R','R',' ',' ','R',' ','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'palate_soft' : ['R',' ','R','R','R','R',' ',' ','R','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'pancreas_body_tail' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'pancreas_head' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'pancreas_other' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'parotid_gland' : ['R',' ','R','R','R','R',' ',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'penis' : [' ',' ',' ',' ',' ',' ',' ',' ',' ','R',' ',' ',' ',' ',' ',' ','R',' ',' ',' ',' ',' ',' ',' ',' '],
'peritoneum' : ['R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','R'],
'peritoneum_female_gen' : ['R','N','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','R'],
'pharyngeal_tonsil' : ['R',' ','R','R','R','R',' ',' ','R','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','R'],
'pharynx_other' : ['R',' ','R','R','R','R',' ',' ','R','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'placenta' : ['R','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'pleura' : ['R','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'prostate' : ['R','R','R',' ',' ',' ','R','R','R','R','N','R','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'rectum' : ['R','R','N','R',' ','R',' ','R','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'respiratory_other' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'retinoblastoma' : ['R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'retroperitoneum' : ['R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'salivary_gland_other' : ['R',' ','R','R','R','R',' ',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'scrotum' : ['N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','R',' ',' ',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'sinus_ethmoid' : ['R',' ','R','R','R','R',' ',' ','R',' ','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'sinus_maxillary' : ['R',' ','R','R','R','R',' ',' ','R',' ','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'sinus_other' : ['R',' ','R','R','R','R',' ',' ','R',' ','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'skin' : ['N',' ',' ',' ',' ',' ',' ',' ',' ',' ','N','R',' ',' ',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'skin_eyelid' : [' ',' ','R',' ',' ','R',' ','N',' ','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'small_intestine' : ['R','R','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'soft_tissue' : ['R',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'stomach' : ['R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','R'],
'submandibular_gland' : ['R',' ','R','R','R','R',' ',' ','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'testis' : [' ',' ',' ','R','R','N','R','N','R','R',' ',' ','R',' ','R','R',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'thyroid' : ['R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'tongue_anterior' : ['R',' ','R','R','R','R',' ',' ','R',' ','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'tongue_base' : ['R',' ','R','R','R','R',' ',' ','R','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'trachea' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'urethra' : ['R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'urinary_other' : [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'vagina' : ['N','N','N','N','N','N','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'vulva' : [' ',' ',' ',' ',' ',' ',' ',' ',' ','N','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '],
'myeloma_plasma_cell_disorder' : [' ','R','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ']]]]></entry>
        <entry id="Derived_EOD_2018_M_Table" type="java"><![CDATA[['M0','M0(i+)','M1','M1a','M1a(0)','M1a(1)','M1b','M1b(0)','M1b(1)','M1c','M1c(0)','M1c(1)','M1d','M1d(0)','M1d(1)','88']]]></entry>
        <entry id="Derived_EOD_2018_N_Table" type="java"><![CDATA[['N0','N0(i+)','N0(mol+)','N0a','N0b','N1','N1a','N1a(sn)','N1b','N1c','N1mi','N2','N2a','N2b','N2c','N2mi','N3','N3a','N3b','N3c','NX','88']]]></entry>
        <entry id="Derived_EOD_2018_Stage_Group_Table" type="java"><![CDATA[['OC','0','0a','0is','1','1A','1A1','1A2','1A3','1B','1B1','1B2','1B3','1C','1E','1S','1:0','1:1','1:2','1:3','1:4','1:5','1:6','1:7','1:8','1:9','1:10','1:11','1:12','1:13','1:14','1:15','1:16','1:17','1:18','1:19','1:20','1:21','1:22','1:23','1:24','1:25','2','2A','2A1','2A2','2B','2C','2E','2 bulky','2:0','2:1','2:2','2:3','2:4','2:5','2:6','2:7','2:8','2:9','2:10','2:11','2:12','2:13','2:14','2:15','2:16','2:17','2:18','2:19','2:20','2:21','2:22','2:23','2:24','2:25','3','3A','3A1','3A2','3B','3C','3C1','3C2','3D','3:0','3:1','3:2','3:3','3:4','3:5','3:6','3:7','3:8','3:9','3:10','3:11','3:12','3:13','3:14','3:15','3:16','3:17','3:18','3:19','3:20','3:21','3:22','3:23','3:24','3:25','4','4A','4A1','4A2','4B','4C','4:0','4:1','4:2','4:3','4:4','4:5','4:6','4:7','4:8','4:9','4:10','4:11','4:12','4:13','4:14','4:15','4:16','4:17','4:18','4:19','4:20','4:21','4:22','4:23','4:24','4:25','88','99']]]></entry>
        <entry id="Derived_EOD_2018_T_Table" type="java"><![CDATA[['TX','T0','Ta','Tis','Tis(DCIS)','Tis(LAMN)','Tis(Paget)','T1','T1a','T1a1','T1a2','T1b','T1b1','T1b2','T1b3','T1c','T1c1','T1c2','T1c3','T1d','T1mi','T2','T2a','T2a1','T2a2','T2b','T2c','T2d','T3','T3a','T3b','T3c','T3d','T3e','T4','T4a','T4b','T4c','T4d','T4e','88']]]></entry>
        <entry id="Derived_Stage_Group_Table" type="java"><![CDATA[['0','0A','0IS','1','1A','1A1','1A2','1B','1B1','1B2','1C','1S','2','2A','2A1','2A2','2B','2C','3','3A','3B','3C','3C1','3C2','4','4A','4A1','4A2','4B','4C','88','99','OC']]]></entry>
        <entry id="Diagnosis_State" type="java"><![CDATA[['AA':78,'AB':1,'AE':79,'AK':2,'AL':3,'AP':80,'AR':4,'AS':5,'AZ':6,'BC':7,'CA':8,'CD':81,'CO':9,'CT':10,'DC':11,'DE':12,'FL':13,'FM':14,'GA':15,'GU':16,'HI':17,'IA':18,'ID':19,'IL':20,'IN':21,'KS':22,'KY':23,'LA':24,'MA':25,'MB':26,'MD':27,'ME':28,'MH':29,'MI':30,'MN':31,'MO':32,'MP':33,'MS':34,'MT':35,'NB':36,'NC':37,'ND':38,'NE':39,'NH':41,'NJ':42,'NL':40,'NM':43,'NS':44,'NU':77,'NT':45,'NV':46,'NY':47,'OH':48,'OK':49,'ON':50,'OR':51,'PA':52,'PE':53,'PR':55,'PW':56,'QC':54,'RI':57,'SC':58,'SD':59,'SK':60,'TN':61,'TT':62,'TX':63,'UM':76,'US':82,'UT':64,'VA':65,'VI':66,'VT':67,'WA':68,'WI':69,'WV':70,'WY':71,'XX':72,'YT':73,'YY':74,'ZZ':75]]]></entry>
        <entry id="Eod_2Digit_Table_01" type="java"><![CDATA[['99','91','90','89','87','86','85','84','82','81','80','79','77','76','75','74','72','71','70','69','68','67','66','65','64','63','62','61','60','59','58','57','56','55','54','53','52','51','50','49','48','47','46','45','44','43','42','41','40','4-','39','38','37','36','35','34','33','32','31','30','28','27','26','25','24','23','22','21','20','19','18','17','16','15','14','13','12','11','10','0-','-9','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_02" type="java"><![CDATA[['99','91','90','89','87','86','85','84','82','81','80','79','77','76','75','74','72','71','70','69','68','67','66','65','64','63','62','61','60','59','58','57','56','55','54','53','52','51','50','49','48','47','46','45','44','43','42','41','40','4-','39','38','37','36','35','34','33','32','31','30','28','27','26','25','24','23','22','21','20','19','18','17','16','15','14','13','12','11','10','0-','-9','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_03" type="java"><![CDATA[['99','92','91','90','89','87','86','85','84','82','81','80','79','77','76','75','74','72','71','70','69','68','67','66','65','64','63','62','61','60','59','58','57','56','55','54','53','52','51','50','49','48','47','46','45','44','43','42','41','40','4-','39','38','37','36','35','34','33','32','31','30','28','27','26','25','24','23','22','21','20','19','18','17','16','15','14','13','12','11','10','0-','-9','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_04" type="java"><![CDATA[['99','95','93','92','91','90','89','86','85','84','83','82','81','80','79','76','75','74','73','72','71','70','69','65','59','55','54','50','49','45','4-','39','35','34','30','25','19','15','14','10','0-','-9','-5','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_05" type="java"><![CDATA[['99','98','96','95','93','92','91','90','89','86','85','84','81','80','79','76','75','74','71','70','69','66','65','64','61','60','59','56','55','54','51','50','49','46','45','44','41','40','4-','39','36','35','34','31','30','26','25','24','21','20','19','16','15','14','11','10','0-','-9','-8','-6','-5','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_06" type="java"><![CDATA[['99','95','93','92','91','90','89','86','85','83','82','81','80','79','76','75','73','72','71','70','69','67','66','65','64','62','61','60','59','57','56','55','54','52','51','50','49','47','46','45','44','42','41','40','4-','39','37','36','35','34','32','31','30','27','26','25','24','22','21','20','19','17','16','15','14','12','11','10','0-','-9','-5','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_07" type="java"><![CDATA[['99','92','91','90','89','85','82','81','80','79','75','72','71','70','69','67','66','65','64','62','61','60','59','57','56','55','54','52','51','50','49','47','46','45','44','42','41','40','4-','39','37','36','35','34','32','31','30','27','26','25','24','22','21','20','19','17','16','15','14','12','11','10','0-','-9','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_08" type="java"><![CDATA[['99','93','92','91','90','89','83','82','81','80','79','73','72','71','70','69','67','66','65','59','57','56','55','54','52','51','50','49','47','46','45','4-','39','37','36','35','34','32','31','30','27','26','25','19','17','16','15','14','12','11','10','0-','-9','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_09" type="java"><![CDATA[['99','91','90','89','85','83','82','81','80','79','75','73','72','71','70','69','67','66','65','59','57','56','55','54','52','51','50','49','47','46','45','4-','39','37','36','35','34','32','31','30','27','26','25','19','17','16','15','14','12','11','10','0-','-9','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_10" type="java"><![CDATA[['99','96','95','94','92','91','90','9&','89','85','83','82','81','80','8&','79','75','73','72','71','70','7&','69','67','66','65','6&','59','57','56','55','54','52','51','50','5&','49','47','46','45','4-','4&','39','37','36','35','34','32','31','30','3&','27','26','25','2&','19','17','16','15','14','12','11','10','1&','0-','-9','-6','-5','-4','-2','-1','-0','--','-&','&8','&7','&6','&3','&2','&1','&&']]]></entry>
        <entry id="Eod_2Digit_Table_11" type="java"><![CDATA[['99','95','93','92','91','90','89','83','82','81','80','79','73','72','71','70','69','65','59','55','54','50','49','45','4-','39','35','34','30','25','19','15','14','10','0-','-9','-5','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_12" type="java"><![CDATA[['99','92','91','90','89','85','84','83','82','81','80','79','75','74','73','72','71','70','69','65','59','55','54','50','49','45','4-','39','35','34','30','25','19','15','14','10','0-','-9','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_13" type="java"><![CDATA[['99','96','95','93','92','91','90','9&','89','85','84','83','82','81','80','8&','79','75','74','73','72','71','70','7&','69','66','65','6&','59','56','55','54','51','50','5&','49','46','45','4-','4&','39','36','35','34','31','30','3&','26','25','2&','19','16','15','14','11','10','1&','0-','-9','-6','-5','-3','-2','-1','-0','--','-&','&8','&7','&6','&3','&2','&1','&&']]]></entry>
        <entry id="Eod_2Digit_Table_14" type="java"><![CDATA[['99','98','97','96','95','94','93','92','91','90','89','85','82','80','79','75','72','70','59','55','52','50','4-','39','35','32','30','15','12','10','0-','-9','-8','-7','-6','-5','-4','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_15" type="java"><![CDATA[['99','98','97','96','95','94','93','92','91','90','85','84','80','75','74','70','59','54','50','4-','39','34','30','14','10','0-','-9','-8','-7','-6','-5','-4','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_16" type="java"><![CDATA[['99','98','97','96','95','93','92','91','90','89','87','86','85','83','81','80','79','77','76','75','73','71','70','59','56','53','50','4-','39','36','33','30','16','13','10','0-','-9','-8','-7','-6','-5','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_17" type="java"><![CDATA[['99','95','93','92','91','90','89','82','81','80','79','72','71','70','59','52','51','50','4-','39','32','31','30','12','11','10','0-','-9','-5','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_18" type="java"><![CDATA[['90','89','83','82','81','80','79','73','72','71','70','59','52','51','50','4-','39','32','31','30','12','11','10','0-','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_19" type="java"><![CDATA[['99','95','92','91','90','89','85','83','82','81','80','79','75','73','72','71','70','59','52','51','50','4-','39','32','31','30','12','11','10','0-','-9','-5','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_20" type="java"><![CDATA[['99','98','97','96','95','94','93','92','91','90','89','85','84','81','80','79','75','74','71','70','69','68','67','66','65','64','63','62','61','60','59','58','57','56','55','54','53','52','51','50','49','48','47','46','45','44','43','42','41','40','4-','39','38','37','36','35','34','33','32','31','30','28','27','26','25','24','23','22','21','20','19','18','17','16','15','14','13','12','11','10','0-','-9','-8','-7','-6','-5','-4','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_21" type="java"><![CDATA[['99','95','93','92','91','90','89','85','83','82','81','80','79','75','73','72','71','70','69','68','67','66','65','59','58','57','56','55','54','53','52','51','50','49','48','47','46','45','4-','39','38','37','36','35','34','33','32','31','30','28','27','26','25','19','18','17','16','15','14','13','12','11','10','0-','-9','-5','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_22" type="java"><![CDATA[['99','96','95','93','92','91','90','89','83','82','81','80','79','73','72','71','70','69','68','67','66','65','59','58','57','56','55','54','53','52','51','50','49','48','47','46','45','4-','39','38','37','36','35','34','33','32','31','30','28','27','26','25','19','18','17','16','15','14','13','12','11','10','02','01','0-','-9','-6','-5','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_23" type="java"><![CDATA[['99','96','95','93','92','91','90','89','85','84','82','81','80','79','75','74','72','71','70','69','68','67','66','65','59','58','57','56','55','54','53','52','51','50','49','48','47','46','45','4-','39','38','37','36','35','34','33','32','31','30','28','27','26','25','19','18','17','16','15','14','13','12','11','10','02','01','0-','-9','-6','-5','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_24" type="java"><![CDATA[['99','93','92','91','90','89','85','84','81','80','79','75','74','71','70','69','68','67','66','65','59','58','57','56','55','54','53','52','51','50','49','48','47','46','45','4-','39','38','37','36','35','34','33','32','31','30','28','27','26','25','19','18','17','16','15','14','13','12','11','10','02','01','0-','-9','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_25" type="java"><![CDATA[['99','95','93','92','91','90','89','85','84','82','81','80','79','75','74','72','71','70','69','68','67','66','65','59','58','57','56','55','54','53','52','51','50','49','48','47','46','45','4-','39','38','37','36','35','34','33','32','31','30','28','27','26','25','19','18','17','16','15','14','13','12','11','10','02','01','0-','-9','-5','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_26" type="java"><![CDATA[['99','95','93','92','91','90','89','81','80','79','71','70','69','68','67','66','65','59','58','57','56','55','54','53','52','51','50','49','48','47','46','45','4-','39','38','37','36','35','34','33','32','31','30','28','27','26','25','19','18','17','16','15','14','13','12','11','10','02','01','0-','-9','-5','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_27" type="java"><![CDATA[['99','98','97','96','95','93','92','91','90','89','81','80','79','71','70','69','68','67','66','65','59','58','57','56','55','54','53','52','51','50','49','48','47','46','45','4-','39','38','37','36','35','34','33','32','31','30','28','27','26','25','19','18','17','16','15','14','13','12','11','10','02','01','0-','-9','-8','-7','-6','-5','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_28" type="java"><![CDATA[['99','96','95','93','92','91','90','89','83','82','81','80','79','73','72','71','70','69','65','59','55','54','51','49','45','4-','39','35','34','31','25','19','15','14','11','10','0-','-9','-6','-5','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_29" type="java"><![CDATA[['99','93','92','91','90','89','85','81','80','79','75','71','70','59','55','50','4-','39','35','30','15','10','0-','-9','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_30" type="java"><![CDATA[['99','95','93','92','91','90','89','85','84','81','80','79','75','74','71','70','59','52','51','50','4-','39','32','31','30','12','11','10','0-','-9','-5','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_31" type="java"><![CDATA[['90','89','83','82','81','80','79','73','72','71','70','59','50','4-','39','30','10','0-','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_32" type="java"><![CDATA[['99','95','93','92','91','90','89','82','81','80','79','72','71','70','59','52','51','50','4-','39','32','31','30','12','11','10','0-','-9','-5','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_33" type="java"><![CDATA[['99','95','93','92','91','90','89','83','82','81','80','79','73','72','71','70','59','51','50','4-','39','31','30','11','10','0-','-9','-5','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_34" type="java"><![CDATA[['99','92','91','90','89','86','85','84','83','82','81','80','79','76','75','74','73','72','71','70','59','51','50','4-','39','31','30','11','10','0-','-9','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_35" type="java"><![CDATA[['99','95','93','92','91','90','89','85','84','81','80','79','75','74','71','70','59','56','55','53','52','51','50','4-','39','36','35','33','32','31','30','16','15','13','12','11','10','0-','-9','-5','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_36" type="java"><![CDATA[['99','92','91','90','89','81','80','79','71','70','59','50','4-','39','30','10','0-','-9','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_37" type="java"><![CDATA[['99','98','97','96','95','93','92','91','90','89','87','86','85','83','82','81','80','79','77','76','75','73','72','71','70','59','53','52','51','50','4-','39','33','32','31','30','13','12','11','10','0-','-9','-8','-7','-6','-5','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_38" type="java"><![CDATA[['99','91','90','89','80','79','70','59','51','50','4-','39','31','30','11','10','0-','-9','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_39" type="java"><![CDATA[['90','9&','89','86','85','84','81','80','79','76','75','74','71','70','69','68','67','66','65','64','63','62','61','60','6&','59','58','57','56','55','54','53','52','51','50','49','48','47','46','44','43','42','41','4-','4&','39','38','37','36','34','33','32','31','28','27','26','25','24','23','22','21','20','19','18','17','16','15','14','13','12','11','10','0-','-0','--','&8','&7','&6','&3','&2','&1','&&']]]></entry>
        <entry id="Eod_2Digit_Table_40" type="java"><![CDATA[['99','94','91','90','80','70','69','65','64','60','59','55','54','50','49','45','44','40','4-','39','35','34','30','25','24','20','19','15','14','10','0-','-9','-4','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_41" type="java"><![CDATA[['99','97','94','92','91','90','89','88','87','86','85','84','83','82','81','80','79','78','77','76','75','74','73','72','71','70','69','68','67','66','65','64','63','62','61','60','59','58','57','56','55','54','53','52','51','50','39','38','37','36','35','34','33','32','31','30','29','28','27','26','25','24','23','22','21','20','12','11','10','0-','-9','-7','-4','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_42" type="java"><![CDATA[['99','97','96','95','93','92','91','90','9&','89','88','87','85','84','81','80','79','78','77','75','74','71','70','7&','59','52','50','5&','4-','4&','39','32','30','12','10','0-','-9','-7','-6','-5','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1','&&']]]></entry>
        <entry id="Eod_2Digit_Table_43" type="java"><![CDATA[['99','96','95','93','92','91','90','89','81','80','79','71','70','69','68','67','66','65','64','63','62','61','60','59','58','57','56','55','54','53','52','51','50','49','48','47','46','45','44','43','42','41','40','4-','39','38','37','36','35','34','33','32','31','30','28','27','26','25','24','23','22','21','20','19','18','17','16','15','14','13','12','11','10','0-','-9','-6','-5','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_44" type="java"><![CDATA[['99','89','82','81','80','79','72','71','70','59','50','4-','39','30','10','0-','-9','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_45" type="java"><![CDATA[['99','89','81','80','79','71','70','59','50','4-','39','30','10','0-','-9','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_46" type="java"><![CDATA[['99','92','91','90','89','87','84','82','81','80','79','77','74','72','71','70','59','51','50','4-','39','31','30','11','10','0-','-9','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_47" type="java"><![CDATA[['99','92','91','90','89','82','81','80','79','72','71','70','59','51','50','4-','39','31','30','11','10','0-','-9','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_48" type="java"><![CDATA[['99','94','93','92','91','90','89','83','82','81','80','8-','79','73','72','71','70','59','52','51','50','4-','39','32','31','30','12','11','10','0-','-9','-4','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_49" type="java"><![CDATA[['99','92','91','90','89','82','81','80','79','72','71','70','69','67','66','65','59','57','56','55','54','52','51','50','49','47','46','45','4-','39','37','36','35','34','32','31','30','27','26','25','19','17','16','15','14','12','11','10','0-','-9','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_50" type="java"><![CDATA[['99','92','91','90','89','87','84','81','80','79','77','74','71','70','59','51','50','4-','39','31','30','11','10','0-','-9','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_51" type="java"><![CDATA[['99','97','96','95','94','93','92','91','90','89','88','87','86','85','84','83','82','81','80','8&','79','78','77','76','75','74','73','72','71','70','7&','69','67','66','65','64','62','61','60','59','57','56','55','54','52','51','50','49','47','44','42','4-','39','37','34','32','27','26','25','24','22','21','20','19','17','16','15','14','12','11','10','0-','-9','-7','-6','-5','-4','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_52" type="java"><![CDATA[['99','97','96','95','93','92','91','90','89','87','83','82','81','80','79','77','73','72','71','70','59','55','53','52','51','50','4-','39','35','33','32','31','30','15','13','12','11','10','0-','-9','-7','-6','-5','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_53" type="java"><![CDATA[['99','95','93','92','91','90','89','88','87','86','85','83','82','81','80','79','78','77','76','75','73','72','71','70','69','67','66','65','64','62','61','60','59','57','56','55','54','52','51','50','49','47','44','42','4-','39','37','34','32','27','26','25','24','22','21','20','19','17','16','15','14','12','11','10','0-','-9','-5','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_54" type="java"><![CDATA[['99','97','96','95','93','92','91','90','89','83','82','81','80','79','73','72','71','70','59','57','56','55','53','52','51','50','4-','39','37','36','35','33','32','31','30','17','16','15','13','12','11','10','0-','-9','-7','-6','-5','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="Eod_2Digit_Table_55" type="java"><![CDATA[['99','98','97','96','95','94','93','92','91','90','89','88','87','86','85','84','83','82','81','80','79','78','77','76','75','74','73','72','71','70','60','59','58','57','56','55','54','53','52','51','50','49','48','47','46','45','44','43','42','41','40','39','38','37','36','35','34','33','32','31','30','29','28','27','26','25','24','23','22','21','20','19','18','17','16','15','14','13','12','11','10','0-','-0','--','&9','&8','&7','&6','&5','&4','&3','&2','&1','&0']]]></entry>
        <entry id="Eod_2Digit_Table_56" type="java"><![CDATA[['99','98','97','96','95','94','93','92','91','90','85','84','80','8&','75','74','70','7&','59','54','50','4-','39','34','30','14','10','0-','-9','-8','-7','-6','-5','-4','-3','-2','-1','-0','--','&8','&7','&6','&3','&2','&1']]]></entry>
        <entry id="EOD_Primary_Tumor_Table" type="java"><![CDATA[['000','050','070','100','110','120','125','130','150','170','175','200','210','220','225','250','275','300','325','350','370','375','400','425','450','475','500','525','550','575','600','650','675','700','720','750','800','888','980','999']]]></entry>
        <entry id="EOD_SchemaId_List_1" type="java"><![CDATA[['00190','09190','00570','00610','00620','00631','00633','00750']]]></entry>
        <entry id="EOD_SchemaId_List_10" type="java"><![CDATA[['00790','00795','00821','00830','99999']]]></entry>
        <entry id="EOD_SchemaId_List_2" type="java"><![CDATA[['00071','00072','00073','00074','00075','00076','00077','00080','00090','00100','00111','00112','00118','00119','00121','00122','00128','00130','00131','00132','00133','00140','00150','00161','00169','00170','00180','00200','00210','09210','00220','00230','00241','00242','00250','00260','00270','00278','00280','00288','00290','09290','00301','09301','00302','09302','00310','09310','00320','09320','00330','09330','00340','09340','00350','00358','00360','00370','00378','00430','00460','00470','00478','00558','00559','00560','00590','00598','00600','00638','00640','00650','00660','00671','00672','00690','00698','00700','00718','00760','00778','00770']]]></entry>
        <entry id="EOD_SchemaId_List_3" type="java"><![CDATA[['00500','09500','00510','00520','00552','09520']]]></entry>
        <entry id="EOD_SchemaId_List_4" type="java"><![CDATA[['00730','00740']]]></entry>
        <entry id="EOD_SchemaId_List_5" type="java"><![CDATA[['00381','00382','00383','00400','00410','00421','00422','00440','00450','00459','00680','00710','00811','00812']]]></entry>
        <entry id="EOD_SchemaId_List_6" type="java"><![CDATA[['00528','00541','00542']]]></entry>
        <entry id="EOD_SchemaId_List_7" type="java"><![CDATA[['00458','00822']]]></entry>
        <entry id="EOD_SchemaId_List_8" type="java"><![CDATA[['00721','09721','00722','09722','09724']]]></entry>
        <entry id="EOD_SchemaId_List_9" type="java"><![CDATA[['00060']]]></entry>
        <entry id="ExceptionHistologies" type="java"><![CDATA[[9750,9760..9764,9800..9820,9826,9831..9920,9931..9964,9980..9989]]]></entry>
        <entry id="ExceptionHistologies2010" type="java"><![CDATA[[9727,9733,9741..9742,9764..9809,9832,9840..9931,9945..9946,9950..9967,9975..9992]]]></entry>
        <entry id="ExceptionSites" type="java"><![CDATA[[420..421,423..424,700..729,751..753,760..768,809]]]></entry>
        <entry id="FigoStageList" type="java"><![CDATA[['1','1A','1A1','1A2','1B','1B1','1B2','1B3','1C','1C1','1C2','1C3','2','2A','2A1','2A2','2B','3','3A','3A1','3A11','3A12','3A2','3B','3C','3C1','3C2','4','4A','4B','97','98','99']]]></entry>
        <entry id="FIPS_CODES" type="java"><![CDATA[['01','02','04','05','06','08','09','10','11','12','13','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','44','45','46','47','48','49','50','51','53','54','55','56','60','66','69','72','74','78']]]></entry>
        <entry id="Group_VIb" type="java"><![CDATA[[8010..8041,8050..8075,8082,8120..8122,8130..8141,8143,8155,8190..8201,8210..8211,8221..8231,8240..8241,8244..8246,8260..8263,8290,8310,8320,8323,8401,8430,8440,8480..8490,8504,8510,8550,8560..8573]]]></entry>
        <entry id="Group_VIIb" type="java"><![CDATA[[8010..8041,8050..8075,8082,8120..8122,8140..8141,8143,8155,8190..8201,8210..8211,8230..8231,8240..8241,8244..8246,8260..8263,8310,8320,8323,8401,8430,8440,8480..8490,8504,8510,8550,8560..8573]]]></entry>
        <entry id="Group_Xb_Site" type="java"><![CDATA[[0..559,570..619,630..699,739..750,754..809]]]></entry>
        <entry id="Group_Xd_1" type="java"><![CDATA[[8010..8041,8050..8075,8082,8120..8122,8130..8141,8143,8155,8190..8201,8210..8211,8221..8241,8244..8246,8260..8263,8290,8310,8320,8323,8430,8440,8480..8490,8504,8510,8550,8560..8573]]]></entry>
        <entry id="Group_Xd_2" type="java"><![CDATA[[8380..8381,8441..8473]]]></entry>
        <entry id="Group_Xd_Site_1" type="java"><![CDATA[[569,620..629]]]></entry>
        <entry id="Group_XIb" type="java"><![CDATA[[8010..8041,8050..8075,8082,8120..8122,8130..8141,8155,8190,8200..8201,8211,8230..8231,8244..8246,8260..8263,8290,8310,8320,8323,8430,8440,8480..8481,8500..8573]]]></entry>
        <entry id="Group_XIc" type="java"><![CDATA[[8010..8041,8050..8075,8082,8120..8122,8130..8141,8155,8190,8200..8201,8211,8230..8231,8244..8246,8260..8263,8290,8310,8320,8323,8430,8440,8480..8481,8504,8510,8550,8560..8573]]]></entry>
        <entry id="Group_XIe" type="java"><![CDATA[[8010..8041,8050..8075,8082,8090..8110,8140,8143,8147,8190,8200,8240,8246..8247,8260,8310,8320,8323,8390..8420,8430,8480,8542,8560,8570..8573,8940]]]></entry>
        <entry id="Group_XIf" type="java"><![CDATA[[8010..8082,8120..8155,8190..8263,8290,8310,8314..8323,8430..8440,8480..8580,8940..8941]]]></entry>
        <entry id="Group_XIf_Site" type="java"><![CDATA[[0..109,129..218,239..399,480..488,500..559,570..619,630..639,659..729,750..809]]]></entry>
        <entry id="HEAD_AND_NECK_Schemas" type="java"><![CDATA[['buccal_mucosa','epiglottis_anterior','floor_mouth','gum_lower','gum_other','gum_upper','hypopharynx','larynx_glottic','larynx_other',
        'larynx_subglottic','larynx_supraglottic','lip_lower','lip_other','lip_upper','middle_ear','mouth_other','nasal_cavity','nasopharynx','oropharynx','palate_hard','palate_soft','parotid_gland','pharyngeal_tonsil','pharynx_other','salivary_gland_other','sinus_ethmoid','sinus_maxillary','sinus_other','submandibular_gland','tongue_anterior','tongue_base','melanoma_buccal_mucosa','melanoma_epiglottis_anterior','melanoma_floor_mouth','melanoma_gum_lower','melanoma_gum_other','melanoma_gum_upper','melanoma_hypopharynx','melanoma_larynx_glottic','melanoma_larynx_other','melanoma_larynx_subglottic','melanoma_larynx_supraglottic','melanoma_lip_upper','melanoma_lip_lower','melanoma_lip_other','melanoma_mouth_other','melanoma_nasal_cavity','melanoma_nasopharynx','melanoma_oropharynx','melanoma_palate_hard','melanoma_palate_soft','melanoma_pharynx_other','melanoma_sinus_ethmoid','melanoma_sinus_maxillary','melanoma_sinus_other','melanoma_tongue_anterior','melanoma_tongue_base']]]></entry>
        <entry id="Head_Neck_Schemas" type="java"><![CDATA[['buccal_mucosa','epiglottis_anterior','floor_mouth','gum_lower','gum_other','gum_upper','hypopharynx','larynx_glottic','larynx_other','larynx_supraglottic','larynx_subglottic','lip_lower','lip_other','lip_upper','melanoma_lip_upper','melanoma_lip_lower','melanoma_lip_other','melanoma_tongue_anterior','melanoma_gum_upper','melanoma_gum_lower','melanoma_gum_other','melanoma_floor_mouth','melanoma_palate_hard','melanoma_mouth_other','melanoma_buccal_mucosa','melanoma_tongue_base','melanoma_palate_soft','melanoma_oropharynx','melanoma_nasopharynx','melanoma_hypopharynx','melanoma_pharynx_other','melanoma_epiglottis_anterior','melanoma_larynx_glottic','melanoma_larynx_supraglottic','melanoma_larynx_subglottic','melanoma_larynx_other','melanoma_nasal_cavity','melanoma_sinus_maxillary','melanoma_sinus_ethmoid','melanoma_sinus_other','middle_ear','mouth_other','nasal_cavity','nasopharynx','oropharynx','palate_hard','palate_soft','parotid_gland','pharyngeal_tonsil','pharynx_other','salivary_gland_other','sinus_ethmoid','sinus_maxillary','sinus_other','submandibular_gland','tongue_anterior','tongue_base']]]></entry>
        <entry id="Hematopoietic" type="java"><![CDATA[[9731..9734,9740..9758,9760..9989]]]></entry>
        <entry id="Histologic_Type_ICD_O_3_Table" type="java"><![CDATA[[
    8000..8005,8010..8015,8020..8023,8030..8035,8040..8046,8050..8054,8060,8070..8078,8080..8086,8090..8098,8100..8104,8110,8120..8124,8130..8131,8140..8158,8160..8163,
    8170..8175,8180,8190..8191,8200..8202,8204,8210..8215,8220..8221,8230..8231,8240..8257,8260..8265,8270..8273,8280..8281,8290,8300,8310..8325,8330..8337,8339..8350,
    8360..8361,8370..8375,8380..8384,8390..8392,8400..8410,8413,8420,8430,8440..8444,8450..8455,8460..8463,8470..8474,8480..8484,8490,8500..8510,8512..8514,
    8519..8525,8530,8540..8543,8550..8552,8560..8563,8570..8576,8580..8594,8600..8602,8610,8620..8623,8630..8634,8640..8643,8650,8660,8670..8671,8680..8683,8690..8693,
    8700,8710..8714,8720..8723,8725..8728,8730,8740..8746,8750,8760..8762,8770..8774,8780,8790,8800..8806,8810..8818,8820..8828,8830..8836,8840..8842,8850..8862,
    8870,8880..8881,8890..8898,8900..8905,8910,8912,8920..8921,8930..8936,8940..8941,8950..8951,8959..8960,8963..8967,8970..8976,8980..8983,8990..8992,9000,9010..9016,9020,
    9030,9040..9045,9050..9055,9060..9065,9070..9073,9080..9086,9090..9091,9100..9105,9110..9111,9120..9126,9130..9133,9135..9138,9140..9142,9150,9160..9161,9170..9175,9180..9187,
    9191..9195,9200,9210..9213,9220..9222,9230..9231,9240..9243,9250..9252,9260..9262,9270..9275,9280..9282,9290,9300..9302,9310..9312,9320..9322,9330,9340..9342,9350..9352,
    9360..9368,9370..9373,9380..9385,9390..9396,9400..9401,9410..9413,9420..9421,9423..9425,9430..9432,9440..9442,9444..9445,9450..9451,9460,9470..9478,9480,9490..9493,9500..9514,9520..9523,9530..9535,9537..9542,9550,9560..9563,9570..9571,9580..9582,9590..9591,9596,9597,9650..9655,9659,9661..9665,9667,9670..9671,9673,9675,9678..9680,9684,
    9687..9691,9695,9698..9702,9705,9708..9709,9712,9714..9719,9724..9729,9731..9735,9737,9738,9740..9742,9749..9759,9760..9762,9764..9769,9800..9801,9805..9820,9823,9826..9827,
    9831..9837,9840,9860..9861,9863,9865..9867,9869..9879,9891,9895..9898,9910..9912,9920,9930..9931,9940,9945..9946,9948,9950,9960..9968,9970,9971,9975,9980,9982..9987,9989,9991..9993
]]]></entry>
        <entry id="HistTable_001" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8081, 8140, 8201, 8261, 8263, 8720]]]></entry>
        <entry id="HistTable_002" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8140, 8141, 8143, 8147, 8200, 8201, 8255, 8260, 8261, 8262, 8263, 8430, 8480, 8481, 8720, 8721, 8722, 8723, 8730, 8743, 8745, 8746, 8770, 8771, 8772, 8940, 8941, 9140, 9699, 9823]]]></entry>
        <entry id="HistTable_003" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8081, 8140, 8201, 8720]]]></entry>
        <entry id="HistTable_004" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8085, 8086, 8140, 8141, 8143, 8147, 8200, 8201, 8255, 8430, 8480, 8481, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8720, 8721, 8722, 8723, 8825, 8900, 8901, 8902, 8910, 8912, 8940, 8941, 9140, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_005" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8081, 8140, 8201, 8720]]]></entry>
        <entry id="HistTable_006" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8140, 8141, 8143, 8147, 8200, 8201, 8255, 8430, 8480, 8481, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8720, 8721, 8722, 8723, 8825, 8900, 8901, 8902, 8910, 8912, 8940, 8941, 9140, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_007" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8081, 8140, 8201, 8261, 8263, 8720]]]></entry>
        <entry id="HistTable_008" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8140, 8141, 8143, 8147, 8200, 8201, 8255, 8260, 8261, 8262, 8263, 8310, 8430, 8440, 8480, 8481, 8550, 8551, 8720, 8721, 8722, 8723, 8730, 8743, 8745, 8746, 8770, 8771, 8772, 8810, 8811, 8813, 8814, 8815, 8825, 8900, 8901, 8902, 8910, 8912, 8940, 8941, 8980, 8981, 8982, 9140, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_009" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8140, 8201, 8230, 8261, 8263]]]></entry>
        <entry id="HistTable_010" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8050, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8140, 8141, 8143, 8147, 8190, 8200, 8201, 8230, 8231, 8255, 8260, 8261, 8262, 8263, 8290, 8310, 8430, 8440, 8480, 8481, 8500, 8502, 8525, 8550, 8551, 8560, 8561, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8840, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8940, 8941, 8980, 8981, 8982, 8990, 8991, 9140, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_011" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8081, 8120, 8140, 8201, 8261, 8263, 8720]]]></entry>
        <entry id="HistTable_012" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8085, 8086, 8120, 8121, 8122, 8123, 8124, 8140, 8141, 8143, 8147, 8200, 8201, 8255, 8260, 8261, 8262, 8263, 8430, 8480, 8481, 8720, 8721, 8722, 8723, 8730, 8743, 8745, 8746, 8761, 8770, 8771, 8772, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8900, 8901, 8902, 8910, 8912, 8940, 8941, 8980, 8981, 8982, 9140, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_013" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8081, 8120, 8140, 8201, 8261, 8263, 8720]]]></entry>
        <entry id="HistTable_014" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8043, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8120, 8121, 8122, 8123, 8124, 8140, 8141, 8143, 8147, 8200, 8201, 8255, 8260, 8261, 8262, 8263, 8310, 8430, 8480, 8481, 8720, 8721, 8722, 8723, 8730, 8743, 8745, 8746, 8770, 8771, 8772, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8900, 8901, 8902, 8910, 8912, 8940, 8941, 8980, 8981, 8982, 9070, 9071, 9072, 9140, 9370, 9371, 9372, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_015" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8081, 8120, 8140, 8201, 8261, 8263, 8720]]]></entry>
        <entry id="HistTable_016" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8043, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8085, 8086, 8120, 8121, 8122, 8123, 8124, 8140, 8141, 8143, 8147, 8200, 8201, 8255, 8260, 8261, 8262, 8263, 8310, 8430, 8480, 8481, 8720, 8721, 8722, 8723, 8730, 8743, 8745, 8746, 8770, 8771, 8772, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8900, 8901, 8902, 8910, 8912, 8940, 8941, 8980, 8981, 8982, 9070, 9071, 9072, 9140, 9370, 9371, 9372, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9714, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_017" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8081, 8120, 8140, 8201, 8261, 8263, 8720]]]></entry>
        <entry id="HistTable_018" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8043, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8120, 8121, 8122, 8123, 8124, 8140, 8141, 8143, 8147, 8200, 8201, 8255, 8260, 8261, 8262, 8263, 8310, 8430, 8480, 8481, 8720, 8721, 8722, 8723, 8730, 8743, 8745, 8746, 8770, 8771, 8772, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8900, 8901, 8902, 8910, 8912, 8940, 8941, 8980, 8981, 8982, 9070, 9071, 9072, 9140, 9370, 9371, 9372, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_019" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8081, 8120, 8140, 8201]]]></entry>
        <entry id="HistTable_020" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8120, 8121, 8122, 8123, 8124, 8140, 8141, 8143, 8147, 8200, 8201, 8255, 8430, 8810, 8811, 8813, 8814, 8815, 8825, 8940, 8941, 8980, 8981, 8982, 9140, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_021" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8081, 8140, 8201]]]></entry>
        <entry id="HistTable_022" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8140, 8141, 8143, 8147, 8200, 8201, 8255, 8430, 8890, 8891, 8894, 8895, 8896, 8940, 8941, 8980, 8981, 8982, 9370, 9371, 9372, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_023" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8140, 8201, 8261, 8263, 8720]]]></entry>
        <entry id="HistTable_024" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8043, 8045, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8140, 8141, 8143, 8145, 8147, 8154, 8200, 8201, 8240, 8244, 8246, 8249, 8255, 8260, 8261, 8262, 8263, 8430, 8480, 8481, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8720, 8721, 8722, 8723, 8730, 8743, 8745, 8746, 8770, 8771, 8772, 8890, 8891, 8894, 8895, 8896, 8980, 8981, 8982, 9680, 9688, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_025" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8140, 8144, 8210, 8213, 8220, 8221, 8230, 8261, 8263]]]></entry>
        <entry id="HistTable_026" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8043, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8140, 8141, 8142, 8143, 8144, 8145, 8147, 8153, 8154, 8156, 8210, 8211, 8214, 8220, 8221, 8230, 8231, 8240, 8241, 8242, 8243, 8244, 8245, 8246, 8249, 8255, 8260, 8261, 8262, 8263, 8310, 8430, 8480, 8481, 8490, 8510, 8512, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8890, 8891, 8894, 8895, 8896, 8934, 8935, 8936, 8976, 8980, 8981, 8982, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9732, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_027" type="java"><![CDATA[[8010, 8050, 8052, 8140, 8144, 8213, 8261, 8263]]]></entry>
        <entry id="HistTable_028" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8041, 8043, 8050, 8051, 8052, 8140, 8141, 8143, 8144, 8145, 8147, 8152, 8153, 8154, 8156, 8157, 8163, 8211, 8240, 8241, 8242, 8243, 8244, 8245, 8246, 8249, 8255, 8260, 8261, 8262, 8263, 8480, 8481, 8490, 8510, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8693, 8710, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8890, 8891, 8894, 8895, 8896, 8934, 8935, 8936, 8990, 8991, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9714, 9715, 9717, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9764, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_029" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8140, 8210, 8220, 8221, 8230, 8261, 8263]]]></entry>
        <entry id="HistTable_030" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8043, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8140, 8141, 8143, 8145, 8147, 8152, 8154, 8210, 8211, 8213, 8220, 8221, 8230, 8231, 8240, 8241, 8242, 8243, 8244, 8245, 8246, 8249, 8255, 8260, 8261, 8262, 8263, 8265, 8430, 8440, 8480, 8481, 8490, 8510, 8550, 8551, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8890, 8891, 8894, 8895, 8896, 8934, 8935, 8936, 8980, 8981, 8982, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9717, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_031" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8140, 8210, 8220, 8221, 8230, 8261, 8263, 8470, 8480]]]></entry>
        <entry id="HistTable_032" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8043, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8140, 8141, 8143, 8145, 8147, 8154, 8210, 8211, 8220, 8221, 8230, 8231, 8240, 8241, 8242, 8243, 8244, 8245, 8246, 8249, 8255, 8260, 8261, 8262, 8263, 8430, 8440, 8470, 8471, 8480, 8481, 8490, 8510, 8550, 8551, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8890, 8891, 8894, 8895, 8896, 8934, 8935, 8936, 8980, 8981, 8982, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9717, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_033" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8140, 8210, 8220, 8221, 8230, 8261, 8263]]]></entry>
        <entry id="HistTable_034" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8043, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8140, 8141, 8143, 8145, 8147, 8152, 8154, 8210, 8211, 8213, 8220, 8221, 8230, 8231, 8240, 8241, 8242, 8243, 8244, 8245, 8246, 8249, 8255, 8260, 8261, 8262, 8263, 8265, 8430, 8440, 8480, 8481, 8490, 8510, 8550, 8551, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8890, 8891, 8894, 8895, 8896, 8934, 8935, 8936, 8980, 8981, 8982, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9717, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_035" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8120, 8140, 8210, 8220, 8221, 8230, 8261, 8263, 8720]]]></entry>
        <entry id="HistTable_036" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8043, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8120, 8121, 8122, 8123, 8124, 8140, 8141, 8143, 8145, 8147, 8210, 8211, 8213, 8220, 8221, 8230, 8231, 8240, 8241, 8242, 8243, 8244, 8245, 8246, 8249, 8255, 8260, 8261, 8262, 8263, 8265, 8430, 8440, 8480, 8481, 8490, 8510, 8550, 8551, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8720, 8721, 8722, 8723, 8730, 8743, 8745, 8746, 8761, 8770, 8771, 8772, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8890, 8891, 8894, 8895, 8896, 8934, 8935, 8936, 8980, 8981, 8982, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9717, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_037" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8077, 8120, 8140, 8210, 8261, 8263, 8500, 8503, 8504, 8720]]]></entry>
        <entry id="HistTable_038" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8041, 8043, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8120, 8121, 8122, 8123, 8124, 8140, 8141, 8143, 8145, 8147, 8154, 8210, 8215, 8240, 8241, 8242, 8243, 8244, 8245, 8246, 8249, 8255, 8260, 8261, 8262, 8263, 8430, 8480, 8481, 8500, 8503, 8504, 8542, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8720, 8721, 8722, 8723, 8730, 8743, 8745, 8746, 8770, 8771, 8772, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8890, 8891, 8894, 8895, 8896, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9717, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_039" type="java"><![CDATA[[8010, 8140, 8470, 8500, 8501, 8503, 8504, 8507]]]></entry>
        <entry id="HistTable_040" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8140, 8141, 8143, 8147, 8154, 8160, 8161, 8170, 8171, 8172, 8173, 8174, 8175, 8180, 8190, 8240, 8246, 8249, 8255, 8310, 8470, 8480, 8481, 8500, 8501, 8503, 8504, 8508, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8890, 8891, 8894, 8895, 8896, 8970, 8980, 8981, 8982, 8991, 9120, 9124, 9130, 9133, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9716, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_041" type="java"><![CDATA[[8010, 8140, 8500, 8501, 8503, 8504, 8507]]]></entry>
        <entry id="HistTable_042" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8140, 8141, 8143, 8147, 8160, 8161, 8162, 8170, 8171, 8172, 8173, 8174, 8175, 8180, 8190, 8255, 8310, 8480, 8481, 8500, 8501, 8503, 8504, 8508, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8890, 8891, 8894, 8895, 8896, 8980, 8981, 8982, 9120, 9130, 9133, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9716, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_043" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8140, 8144, 8261, 8263, 8500, 8501, 8503, 8504, 8507]]]></entry>
        <entry id="HistTable_044" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8041, 8043, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8140, 8141, 8143, 8144, 8147, 8154, 8160, 8161, 8162, 8163, 8240, 8246, 8249, 8255, 8260, 8261, 8262, 8263, 8310, 8470, 8480, 8481, 8490, 8500, 8501, 8503, 8504, 8508, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8980, 8981, 8982, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9716, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_045" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8140, 8148, 8210, 8230, 8261, 8263, 8453, 8455, 8470, 8500, 8501, 8503, 8504, 8507]]]></entry>
        <entry id="HistTable_046" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8043, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8140, 8141, 8143, 8147, 8150, 8151, 8152, 8153, 8154, 8155, 8156, 8157, 8158, 8210, 8211, 8230, 8231, 8240, 8241, 8242, 8243, 8244, 8245, 8246, 8249, 8255, 8260, 8261, 8262, 8263, 8310, 8323, 8430, 8440, 8441, 8450, 8452, 8453, 8455, 8470, 8471, 8480, 8481, 8490, 8500, 8501, 8503, 8504, 8508, 8500, 8510, 8514, 8521, 8550, 8551, 8552, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8890, 8891, 8894, 8895, 8896, 8971, 8980, 8981, 8982, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_047" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140, 8201, 8210, 8230, 8261, 8263, 8503, 8504, 8720]]]></entry>
        <entry id="HistTable_048" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8043, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8120, 8121, 8122, 8123, 8124, 8130, 8131, 8140, 8141, 8143, 8147, 8152, 8153, 8156, 8157, 8190, 8200, 8201, 8210, 8211, 8230, 8231, 8240, 8241, 8242, 8243, 8244, 8245, 8246, 8249, 8251, 8255, 8260, 8261, 8262, 8263, 8290, 8310, 8320, 8323, 8380, 8401, 8430, 8440, 8480, 8481, 8490, 8503, 8504, 8510, 8521, 8542, 8550, 8551, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8693, 8720, 8721, 8722, 8723, 8730, 8743, 8745, 8746, 8770, 8771, 8772, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8840, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8920, 8921, 8935, 8936, 8940, 8941, 8950, 8951, 8980, 8981, 8982, 8990, 8991, 9040, 9041, 9042, 9043, 9044, 9060, 9064, 9065, 9070, 9071, 9072, 9080, 9081, 9082, 9083, 9084, 9085, 9100, 9101, 9105, 9110, 9120, 9130, 9133, 9140, 9150, 9170, 9251, 9252, 9370, 9371, 9372, 9490, 9500, 9501, 9502, 9503, 9504, 9505, 9540, 9560, 9561, 9571, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9716, 9717, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_049" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140, 8201, 8261, 8263, 8720]]]></entry>
        <entry id="HistTable_050" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8023, 8030, 8031, 8032, 8033, 8034, 8035, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8120, 8121, 8122, 8123, 8124, 8130, 8131, 8140, 8141, 8143, 8147, 8200, 8201, 8255, 8260, 8261, 8262, 8263, 8430, 8480, 8481, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8720, 8721, 8722, 8723, 8730, 8743, 8745, 8746, 8770, 8771, 8772, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8920, 8921, 8940, 8941, 9045, 9220, 9221, 9370, 9371, 9372, 9500, 9501, 9502, 9503, 9504, 9505, 9520, 9521, 9522, 9523, 9540, 9560, 9561, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_051" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140, 8201, 8261, 8263, 8720]]]></entry>
        <entry id="HistTable_052" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8120, 8121, 8122, 8123, 8124, 8130, 8131, 8140, 8141, 8143, 8147, 8200, 8201, 8255, 8260, 8261, 8262, 8263, 8430, 8480, 8481, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8720, 8721, 8722, 8723, 8730, 8743, 8745, 8746, 8770, 8771, 8772, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8920, 8921, 8940, 8941, 9370, 9371, 9372, 9500, 9501, 9502, 9503, 9504, 9505, 9520, 9521, 9522, 9523, 9540, 9560, 9561, 9571, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_053" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140, 8201, 8261, 8263, 8720]]]></entry>
        <entry id="HistTable_054" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8085, 8086, 8120, 8121, 8122, 8123, 8124, 8130, 8131, 8140, 8141, 8143, 8147, 8200, 8201, 8255, 8260, 8261, 8262, 8263, 8430, 8480, 8481, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8720, 8721, 8722, 8723, 8730, 8743, 8745, 8746, 8770, 8771, 8772, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8920, 8921, 8940, 8941, 9045, 9370, 9371, 9372, 9500, 9501, 9502, 9503, 9504, 9505, 9520, 9521, 9522, 9523, 9540, 9560, 9561, 9571, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_055" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140, 8201, 8261, 8263, 8720]]]></entry>
        <entry id="HistTable_056" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8023, 8030, 8031, 8032, 8033, 8034, 8035, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8085, 8086, 8120, 8121, 8122, 8123, 8124, 8130, 8131, 8140, 8141, 8143, 8147, 8200, 8201, 8255, 8260, 8261, 8262, 8263, 8430, 8480, 8481, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8720, 8721, 8722, 8723, 8730, 8743, 8745, 8746, 8770, 8771, 8772, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8920, 8921, 8940, 8941, 9045, 9370, 9371, 9372, 9500, 9501, 9502, 9503, 9504, 9505, 9520, 9521, 9522, 9523, 9540, 9560, 9561, 9571, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_057" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8120, 8140, 8201, 8261, 8263]]]></entry>
        <entry id="HistTable_058" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8043, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8120, 8121, 8122, 8123, 8124, 8140, 8141, 8143, 8147, 8200, 8201, 8255, 8260, 8261, 8262, 8263, 8430, 8480, 8481, 8560, 8562, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8980, 8981, 8982, 9220, 9221, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_059" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8140, 8201, 8261, 8263]]]></entry>
        <entry id="HistTable_060" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8042, 8043, 8044, 8045, 8046, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8140, 8141, 8143, 8147, 8200, 8201, 8250, 8252, 8253, 8254, 8255, 8260, 8261, 8262, 8263, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8972, 8973, 9220, 9221, 9699, 9823]]]></entry>
        <entry id="HistTable_061" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8120, 8140, 8201, 8230, 8250, 8253, 9050]]]></entry>
        <entry id="HistTable_062" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8023, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8042, 8043, 8044, 8045, 8046, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8083, 8120, 8121, 8122, 8123, 8124, 8140, 8141, 8143, 8147, 8200, 8201, 8230, 8231, 8240, 8241, 8242, 8243, 8244, 8245, 8246, 8249, 8250, 8251, 8252, 8253, 8254, 8255, 8256, 8257, 8260, 8265, 8310, 8320, 8323, 8333, 8430, 8480, 8481, 8490, 8510, 8550, 8551, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8714, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8842, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8972, 8973, 8980, 8981, 8982, 8990, 8991, 9050, 9051, 9052, 9053, 9120, 9133, 9137, 9140, 9174, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9678, 9679, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_063" type="java"><![CDATA[[8010]]]></entry>
        <entry id="HistTable_064" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8023, 8070, 8240, 8241, 8242, 8243, 8244, 8245, 8246, 8249, 8580, 8581, 8582, 8583, 8584, 8585, 8586, 8588, 8589, 9086, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9679, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_065" type="java"><![CDATA[[9120, 9137, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9678, 9679, 9680, 9684, 9687, 9688, 9689, 9690, 9691, 9695, 9698, 9699, 9700, 9701, 9702, 9705, 9708, 9709, 9712, 9714, 9715, 9716, 9717, 9718, 9719, 9724, 9727, 9728, 9729, 9735, 9737, 9738, 9749, 9751, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_066" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8680, 8693, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8859, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8990, 8991, 9060, 9061, 9062, 9063, 9064, 9065, 9070, 9071, 9072, 9080, 9081, 9082, 9083, 9084, 9085, 9100, 9101, 9105, 9490, 9500, 9501, 9502, 9503, 9504, 9505, 9540, 9560, 9561, 9571, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9678, 9679, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_067" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8973, 9050, 9051, 9052, 9053, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9678, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_068" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8680, 8693, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8859, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8990, 8991, 9060, 9061, 9062, 9063, 9064, 9065, 9070, 9071, 9072, 9080, 9081, 9082, 9083, 9084, 9085, 9100, 9101, 9105, 9490, 9500, 9501, 9502, 9503, 9504, 9505, 9540, 9560, 9561, 9571, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9678, 9679, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_069" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8120, 8140, 8201, 8230, 8261, 8263]]]></entry>
        <entry id="HistTable_070" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8043, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8120, 8121, 8122, 8123, 8124, 8140, 8141, 8143, 8147, 8200, 8201, 8230, 8231, 8240, 8241, 8242, 8243, 8244, 8245, 8246, 8249, 8250, 8251, 8252, 8253, 8254, 8255, 8260, 8261, 8262, 8263, 8310, 8320, 8323, 8430, 8480, 8481, 8490, 8510, 8550, 8551, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8980, 8981, 8982, 8990, 8991, 9080, 9081, 9082, 9083, 9084, 9085, 9120, 9364, 9365, 9823]]]></entry>
        <entry id="HistTable_071" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8812, 8813, 8814, 8815, 8825, 8830, 8840, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 9040, 9041, 9042, 9043, 9120, 9130, 9133, 9180, 9181, 9182, 9183, 9184, 9185, 9186, 9187, 9192, 9193, 9194, 9195, 9220, 9221, 9230, 9231, 9240, 9242, 9243, 9250, 9251, 9260, 9261, 9270, 9290, 9310, 9330, 9342, 9364, 9365, 9370, 9371, 9372, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9716, 9719, 9724, 9727, 9728, 9729, 9731, 9732, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_072" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8812, 8813, 8814, 8815, 8825, 8830, 8840, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 9040, 9041, 9042, 9043, 9120, 9130, 9133, 9180, 9181, 9182, 9183, 9184, 9185, 9186, 9187, 9192, 9193, 9194, 9195, 9220, 9221, 9230, 9231, 9240, 9242, 9243, 9250, 9251, 9260, 9261, 9270, 9290, 9302, 9310, 9330, 9341, 9342, 9364, 9365, 9370, 9371, 9372, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9716, 9719, 9724, 9727, 9728, 9729, 9731, 9732, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_073" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8812, 8813, 8814, 8815, 8825, 8830, 8840, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 9040, 9041, 9042, 9043, 9120, 9130, 9133, 9180, 9181, 9182, 9183, 9184, 9185, 9186, 9187, 9192, 9193, 9194, 9195, 9220, 9221, 9230, 9231, 9240, 9242, 9243, 9250, 9251, 9260, 9261, 9270, 9290, 9310, 9330, 9342, 9364, 9365, 9370, 9371, 9372, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9716, 9719, 9724, 9727, 9728, 9729, 9731, 9732, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_074" type="java"><![CDATA[[9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9678, 9679, 9680, 9684, 9687, 9688, 9689, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9719, 9724, 9727, 9728, 9729, 9731, 9732, 9733, 9734, 9735, 9737, 9738, 9740, 9741, 9742, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9760, 9761, 9762, 9800, 9801, 9805, 9806, 9807, 9808, 9809, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9820, 9823, 9826, 9827, 9828, 9831, 9832, 9833, 9834, 9835, 9836, 9837, 9840, 9860, 9861, 9863, 9865, 9866, 9867, 9869, 9870, 9871, 9872, 9873, 9874, 9875, 9876, 9877, 9878, 9879, 9891, 9895, 9896, 9897, 9898, 9910, 9911, 9912, 9920, 9930, 9931, 9940, 9945, 9946, 9948, 9950, 9960, 9961, 9962, 9963, 9964, 9965, 9966, 9967, 9968, 9971, 9975, 9980, 9982, 9983, 9984, 9985, 9986, 9987, 9989, 9991, 9992, 9993]]]></entry>
        <entry id="HistTable_075" type="java"><![CDATA[[9120, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9678, 9679, 9680, 9684, 9687, 9688, 9689, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9716, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_076" type="java"><![CDATA[[9590, 9699, 9740, 9741, 9750, 9754, 9755, 9756, 9757, 9758, 9823]]]></entry>
        <entry id="HistTable_077" type="java"><![CDATA[[9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9678, 9679, 9680, 9684, 9687, 9688, 9689, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9719, 9724, 9727, 9728, 9729, 9731, 9732, 9733, 9734, 9735, 9737, 9738, 9740, 9741, 9742, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9760, 9761, 9762, 9800, 9801, 9805, 9806, 9807, 9808, 9809, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9820, 9823, 9826, 9827, 9828, 9831, 9832, 9833, 9834, 9835, 9836, 9837, 9840, 9860, 9861, 9863, 9865, 9866, 9867, 9869, 9870, 9871, 9872, 9873, 9874, 9875, 9876, 9877, 9878, 9879, 9891, 9895, 9896, 9897, 9898, 9910, 9911, 9912, 9920, 9930, 9931, 9940, 9945, 9946, 9948, 9950, 9960, 9961, 9962, 9963, 9964, 9965, 9966, 9967, 9968, 9971, 9975, 9980, 9982, 9983, 9984, 9985, 9986, 9987, 9989, 9991, 9992, 9993]]]></entry>
        <entry id="HistTable_078" type="java"><![CDATA[[8140, 8201, 8230, 8261, 8263, 8720, 8741, 8742, 8743]]]></entry>
        <entry id="HistTable_079" type="java"><![CDATA[[8102, 8110, 8140, 8141, 8143, 8147, 8190, 8200, 8201, 8230, 8231, 8247, 8255, 8260, 8261, 8262, 8263, 8310, 8390, 8400, 8401, 8402, 8403, 8407, 8408, 8409, 8410, 8413, 8420, 8430, 8440, 8480, 8481, 8542, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8720, 8721, 8722, 8723, 8730, 8740, 8741, 8742, 8743, 8744, 8745, 8746, 8761, 8770, 8771, 8772, 8780, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8832, 8833, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8890, 8891, 8894, 8895, 8896, 8910, 8912, 8940, 8941, 8980, 8981, 8982, 9120, 9130, 9133, 9140, 9150, 9560, 9561, 9590, 9591, 9596, 9597, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9690, 9691, 9695, 9698, 9699, 9700, 9701, 9702, 9705, 9708, 9709, 9718, 9725, 9726, 9727, 9728, 9729, 9751, 9823, 9837]]]></entry>
        <entry id="HistTable_080" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8680, 8693, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8832, 8833, 8840, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8920, 8921, 8950, 8951, 8990, 8991, 9040, 9041, 9042, 9043, 9044, 9080, 9081, 9082, 9083, 9084, 9085, 9120, 9130, 9133, 9140, 9150, 9170, 9240, 9242, 9243, 9251, 9252, 9364, 9365, 9370, 9371, 9372, 9490, 9500, 9501, 9502, 9503, 9504, 9505, 9540, 9542, 9560, 9561, 9571, 9580, 9581, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9708, 9712, 9714, 9715, 9719, 9724, 9726, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9930, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_081" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8460, 8461, 8680, 8693, 8714, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8840, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8920, 8921, 8930, 8931, 8936, 8950, 8951, 8990, 8991, 9050, 9051, 9052, 9053, 9060, 9064, 9065, 9070, 9071, 9072, 9080, 9081, 9082, 9083, 9084, 9085, 9110, 9120, 9130, 9133, 9150, 9490, 9500, 9501, 9502, 9503, 9504, 9505, 9540, 9560, 9561, 9571, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9930, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_082" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8680, 8693, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8832, 8833, 8840, 8842, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8859, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8920, 8921, 8950, 8951, 8982, 8990, 8991, 9040, 9041, 9042, 9043, 9044, 9080, 9081, 9082, 9083, 9084, 9085, 9120, 9130, 9133, 9137, 9140, 9150, 9170, 9240, 9242, 9243, 9251, 9252, 9364, 9365, 9366, 9367, 9368, 9370, 9371, 9372, 9490, 9500, 9501, 9502, 9503, 9504, 9505, 9540, 9560, 9561, 9571, 9580, 9581, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9708, 9712, 9714, 9715, 9719, 9724, 9726, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9930, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_083" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8140, 8201, 8230, 8261, 8500, 8501, 8503, 8504, 8507, 8509, 8519, 8520, 8522, 8523]]]></entry>
        <entry id="HistTable_084" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8043, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8140, 8141, 8143, 8147, 8190, 8200, 8201, 8211, 8230, 8231, 8240, 8246, 8249, 8251, 8255, 8260, 8261, 8290, 8310, 8314, 8315, 8320, 8323, 8401, 8410, 8430, 8440, 8470, 8480, 8481, 8490, 8500, 8501, 8502, 8503, 8504, 8507, 8508, 8509, 8510, 8512, 8513, 8514, 8520, 8521, 8522, 8523, 8524, 8525, 8530, 8540, 8541, 8543, 8550, 8551, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8890, 8891, 8894, 8895, 8896, 8935, 8980, 8981, 8982, 8983, 8990, 8991, 9020, 9120, 9130, 9133, 9580, 9581, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_085" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8071, 8076, 8077, 8081, 8120, 8130, 8140, 8201, 8261, 8263, 8720, 8741, 8742]]]></entry>
        <entry id="HistTable_086" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8085, 8086, 8090, 8091, 8092, 8093, 8094, 8095, 8097, 8098, 8102, 8110, 8120, 8121, 8122, 8123, 8124, 8130, 8131, 8140, 8141, 8143, 8147, 8200, 8201, 8255, 8260, 8261, 8262, 8263, 8310, 8323, 8380, 8401, 8480, 8481, 8482, 8483, 8542, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8720, 8721, 8722, 8723, 8730, 8740, 8741, 8742, 8743, 8745, 8746, 8761, 8770, 8771, 8772, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8832, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8933, 8950, 8951, 8980, 8981, 8982, 9064, 9071, 9110, 9540, 9590, 9591, 9596, 9597, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9700, 9701, 9702, 9705, 9708, 9709, 9712, 9714, 9715, 9718, 9719, 9724, 9725, 9726, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_087" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8071, 8076, 8077, 8081, 8120, 8130, 8140, 8201, 8261, 8263, 8720, 8741, 8742]]]></entry>
        <entry id="HistTable_088" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8041, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8085, 8086, 8090, 8091, 8092, 8093, 8094, 8095, 8097, 8098, 8102, 8110, 8120, 8121, 8122, 8123, 8124, 8130, 8131, 8140, 8141, 8143, 8147, 8200, 8201, 8247, 8255, 8260, 8261, 8262, 8263, 8310, 8323, 8380, 8390, 8400, 8401, 8410, 8413, 8420, 8480, 8481, 8482, 8483, 8542, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8720, 8721, 8722, 8723, 8730, 8740, 8741, 8742, 8743, 8745, 8746, 8761, 8770, 8771, 8772, 8780, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8832, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8933, 8950, 8951, 8980, 8981, 8982, 9064, 9071, 9092, 9110, 9540, 9590, 9591, 9596, 9597, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9700, 9701, 9702, 9705, 9708, 9709, 9712, 9714, 9715, 9718, 9719, 9724, 9725, 9726, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_089" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8071, 8076, 8077, 8081, 8120, 8130, 8140, 8201, 8261, 8263, 8720, 8741, 8742]]]></entry>
        <entry id="HistTable_090" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8085, 8086, 8090, 8091, 8092, 8093, 8094, 8095, 8097, 8098, 8102, 8110, 8120, 8121, 8122, 8123, 8124, 8130, 8131, 8140, 8141, 8143, 8147, 8200, 8201, 8255, 8260, 8261, 8262, 8263, 8310, 8323, 8380, 8401, 8480, 8481, 8482, 8483, 8542, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8720, 8721, 8722, 8723, 8730, 8740, 8741, 8742, 8743, 8745, 8746, 8761, 8770, 8771, 8772, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8832, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8933, 8950, 8951, 8980, 8981, 8982, 9064, 9071, 9110, 9540, 9590, 9591, 9596, 9597, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9700, 9701, 9702, 9705, 9708, 9709, 9712, 9714, 9715, 9718, 9719, 9724, 9725, 9726, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_091" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8071, 8072, 8076, 8077, 8081, 8120, 8140, 8201, 8261, 8263]]]></entry>
        <entry id="HistTable_092" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8043, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8085, 8086, 8098, 8120, 8121, 8122, 8123, 8124, 8140, 8141, 8143, 8147, 8200, 8201, 8255, 8260, 8261, 8262, 8263, 8310, 8323, 8380, 8384, 8430, 8480, 8481, 8482, 8483, 8484, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8933, 8950, 8951, 8980, 8981, 8982, 8990, 8991, 9064, 9071, 9100, 9110, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_093" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140, 8210, 8230, 8261, 8263, 8380, 8441]]]></entry>
        <entry id="HistTable_094" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8043, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8120, 8121, 8122, 8123, 8124, 8130, 8131, 8140, 8141, 8143, 8144, 8147, 8210, 8211, 8230, 8231, 8255, 8260, 8261, 8262, 8263, 8310, 8320, 8323, 8380, 8381, 8382, 8383, 8440, 8441, 8460, 8461, 8480, 8481, 8482, 8510, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8714, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8930, 8931, 8933, 8934, 8950, 8951, 8980, 8981, 8982, 8990, 8991, 9064, 9071, 9080, 9110, 9111, 9473, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_095" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140, 8201, 8210, 8230, 8261, 8263, 8441]]]></entry>
        <entry id="HistTable_096" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8043, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8120, 8121, 8122, 8123, 8124, 8130, 8131, 8140, 8141, 8143, 8147, 8200, 8201, 8210, 8211, 8230, 8231, 8255, 8260, 8261, 8262, 8263, 8310, 8320, 8323, 8430, 8440, 8441, 8460, 8480, 8481, 8482, 8510, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8930, 8931, 8934, 8935, 8950, 8951, 8980, 8981, 8982, 8990, 8991, 9110, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_097" type="java"><![CDATA[[8442, 8451, 8462, 8472, 8473]]]></entry>
        <entry id="HistTable_098" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8140, 8230, 8261, 8263, 8441, 8460, 8470]]]></entry>
        <entry id="HistTable_099" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8044, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8140, 8141, 8143, 8147, 8230, 8231, 8240, 8241, 8242, 8243, 8244, 8245, 8246, 8249, 8255, 8260, 8261, 8262, 8263, 8310, 8313, 8320, 8323, 8380, 8381, 8382, 8383, 8440, 8441, 8450, 8460, 8461, 8470, 8471, 8474, 8480, 8481, 8482, 8490, 8510, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8590, 8600, 8620, 8621, 8630, 8631, 8632, 8634, 8670, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8840, 8890, 8891, 8894, 8895, 8896, 8930, 8931, 8933, 8950, 8951, 8980, 8981, 8982, 9000, 9014, 9015, 9060, 9064, 9065, 9070, 9071, 9072, 9080, 9081, 9082, 9083, 9084, 9085, 9090, 9100, 9101, 9105, 9110, 9111, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_100" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8081, 8140, 8261, 8263, 8441]]]></entry>
        <entry id="HistTable_101" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8140, 8141, 8143, 8147, 8255, 8260, 8261, 8262, 8263, 8310, 8323, 8380, 8382, 8383, 8440, 8441, 8460, 8461, 8480, 8481, 8482, 8570, 8571, 8572, 8573, 8574, 8575, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8890, 8891, 8894, 8895, 8896, 8933, 8950, 8951, 8980, 8981, 8982, 9080, 9110, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_102" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8081, 8140, 8261, 8263]]]></entry>
        <entry id="HistTable_103" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8140, 8141, 8143, 8147, 8255, 8260, 8261, 8262, 8263, 8310, 8323, 8380, 8382, 8383, 8440, 8480, 8481, 8482, 8570, 8571, 8572, 8573, 8574, 8575, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8890, 8891, 8894, 8895, 8896, 8950, 8951, 8980, 8981, 8982, 9110, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_104" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 9100, 9101, 9104, 9105, 9699, 9823]]]></entry>
        <entry id="HistTable_105" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8071, 8076, 8080, 8081, 8120, 8140, 8261, 8263, 8720, 8741, 8742]]]></entry>
        <entry id="HistTable_106" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8050, 8051, 8052, 8054, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8085, 8086, 8090, 8091, 8092, 8093, 8094, 8095, 8097, 8098, 8102, 8110, 8120, 8121, 8122, 8123, 8124, 8140, 8141, 8143, 8147, 8255, 8260, 8261, 8262, 8263, 8390, 8400, 8401, 8410, 8413, 8542, 8570, 8571, 8572, 8573, 8574, 8575, 8720, 8721, 8722, 8723, 8730, 8740, 8741, 8742, 8743, 8745, 8746, 8761, 8770, 8771, 8772, 8780, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8920, 8921, 8950, 8951, 8980, 8981, 8982, 8990, 8991, 9140, 9597, 9699, 9700, 9701, 9708, 9709, 9718, 9725, 9726, 9823]]]></entry>
        <entry id="HistTable_107" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140, 8148, 8201, 8261, 8263, 8500, 8503, 8504, 8507]]]></entry>
        <entry id="HistTable_108" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8043, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8120, 8121, 8122, 8123, 8124, 8130, 8131, 8140, 8141, 8143, 8147, 8200, 8201, 8211, 8251, 8255, 8260, 8261, 8262, 8263, 8310, 8480, 8481, 8500, 8503, 8504, 8510, 8514, 8550, 8551, 8552, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8920, 8921, 8980, 8981, 8982, 9688, 9699, 9712, 9715, 9724, 9735, 9737, 9738, 9749, 9751, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_109" type="java"><![CDATA[[8010, 8140, 8261, 8263, 9061, 9064, 9070, 9071, 9080]]]></entry>
        <entry id="HistTable_110" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8140, 8141, 8143, 8147, 8255, 8260, 8261, 8262, 8263, 8630, 8631, 8634, 8640, 8650, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8900, 8901, 8902, 8910, 8912, 9060, 9061, 9062, 9063, 9064, 9065, 9070, 9071, 9072, 9080, 9081, 9082, 9083, 9084, 9085, 9100, 9101, 9102, 9104, 9105, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_111" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8120, 8140, 8261, 8263]]]></entry>
        <entry id="HistTable_112" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8120, 8121, 8122, 8123, 8124, 8140, 8141, 8143, 8147, 8255, 8260, 8261, 8262, 8263, 8401, 8542, 8570, 8571, 8572, 8573, 8574, 8575, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8920, 8921, 8950, 8951, 8980, 8981, 8982, 8990, 8991, 9140, 9699, 9823]]]></entry>
        <entry id="HistTable_113" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8080, 8081, 8120, 8140, 8261, 8263, 8720, 8741, 8742]]]></entry>
        <entry id="HistTable_114" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8085, 8086, 8090, 8091, 8092, 8093, 8094, 8095, 8097, 8098, 8102, 8110, 8120, 8121, 8122, 8123, 8124, 8140, 8141, 8143, 8147, 8255, 8260, 8261, 8262, 8263, 8390, 8400, 8401, 8410, 8413, 8542, 8570, 8571, 8572, 8573, 8574, 8575, 8720, 8721, 8722, 8723, 8730, 8740, 8741, 8742, 8743, 8745, 8746, 8761, 8770, 8771, 8772, 8780, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8920, 8921, 8950, 8951, 8980, 8981, 8982, 8990, 8991, 9140, 9597, 9699, 9700, 9701, 9708, 9709, 9718, 9725, 9726, 9823]]]></entry>
        <entry id="HistTable_115" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8120, 8140, 8261, 8263]]]></entry>
        <entry id="HistTable_116" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8120, 8121, 8122, 8123, 8124, 8140, 8141, 8143, 8147, 8255, 8260, 8261, 8262, 8263, 8401, 8542, 8570, 8571, 8572, 8573, 8574, 8575, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8920, 8921, 8950, 8951, 8980, 8981, 8982, 8990, 8991, 9140, 9699, 9823]]]></entry>
        <entry id="HistTable_117" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140, 8230, 8261]]]></entry>
        <entry id="HistTable_118" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8043, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8120, 8121, 8122, 8123, 8124, 8130, 8131, 8140, 8141, 8143, 8147, 8190, 8211, 8230, 8231, 8240, 8255, 8260, 8310, 8311, 8312, 8316, 8317, 8318, 8319, 8320, 8323, 8440, 8480, 8481, 8560, 8562, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8950, 8951, 8959, 8960, 8963, 8964, 8980, 8981, 8982, 8990, 8991, 9500, 9501, 9502, 9503, 9504, 9505, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_119" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140, 8230, 8261]]]></entry>
        <entry id="HistTable_120" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8043, 8044, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8120, 8121, 8122, 8123, 8124, 8130, 8131, 8140, 8141, 8143, 8147, 8190, 8211, 8230, 8231, 8255, 8260, 8310, 8320, 8323, 8440, 8480, 8481, 8560, 8562, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8950, 8951, 8959, 8964, 8980, 8981, 8982, 8990, 8991, 9500, 9501, 9502, 9503, 9504, 9505, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_121" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140, 8230, 8261]]]></entry>
        <entry id="HistTable_122" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8043, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8120, 8121, 8122, 8123, 8124, 8130, 8131, 8140, 8141, 8143, 8147, 8230, 8231, 8255, 8260, 8261, 8310, 8320, 8323, 8480, 8481, 8490, 8510, 8576, 8680, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8920, 8921, 8950, 8951, 8980, 8981, 8982, 8990, 8991, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_123" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140, 8230, 8261, 8263, 8720]]]></entry>
        <entry id="HistTable_124" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8043, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8120, 8121, 8122, 8123, 8124, 8130, 8131, 8140, 8141, 8143, 8147, 8190, 8230, 8231, 8255, 8260, 8261, 8262, 8263, 8310, 8320, 8323, 8380, 8440, 8480, 8481, 8560, 8562, 8720, 8721, 8722, 8723, 8730, 8743, 8745, 8746, 8770, 8771, 8772, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8950, 8951, 8964, 8980, 8981, 8982, 8990, 8991, 9070, 9071, 9072, 9080, 9081, 9082, 9083, 9084, 9085, 9110, 9500, 9501, 9502, 9503, 9504, 9505, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_125" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8081, 8120, 8130, 8140, 8201, 8720]]]></entry>
        <entry id="HistTable_126" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8120, 8121, 8122, 8123, 8124, 8130, 8131, 8140, 8141, 8143, 8147, 8200, 8201, 8255, 8290, 8430, 8720, 8721, 8722, 8723, 8730, 8743, 8745, 8746, 8770, 8771, 8772, 8773, 8774, 8810, 8811, 8813, 8814, 8815, 8825, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8920, 8921, 8940, 8941, 8990, 8991, 9150, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_127" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8081, 8120, 8130, 8140, 8201, 8720]]]></entry>
        <entry id="HistTable_128" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8120, 8121, 8122, 8123, 8124, 8130, 8131, 8140, 8141, 8143, 8147, 8200, 8201, 8255, 8290, 8430, 8720, 8721, 8722, 8723, 8730, 8743, 8745, 8746, 8770, 8771, 8772, 8810, 8811, 8813, 8814, 8815, 8825, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8920, 8921, 8940, 8941, 8990, 8991, 9150, 9510, 9511, 9512, 9513, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_129" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8081, 8120, 8130, 8140, 8201, 8720]]]></entry>
        <entry id="HistTable_130" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8120, 8121, 8122, 8123, 8124, 8130, 8131, 8140, 8141, 8143, 8147, 8200, 8201, 8255, 8290, 8430, 8720, 8721, 8722, 8723, 8730, 8743, 8745, 8746, 8770, 8771, 8772, 8773, 8774, 8810, 8811, 8813, 8814, 8815, 8825, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8920, 8921, 8940, 8941, 8990, 8991, 9150, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_131" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140, 8201, 8720]]]></entry>
        <entry id="HistTable_132" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8120, 8121, 8122, 8123, 8124, 8130, 8131, 8140, 8141, 8143, 8147, 8200, 8201, 8255, 8290, 8430, 8720, 8721, 8722, 8723, 8730, 8743, 8745, 8746, 8770, 8771, 8772, 8810, 8811, 8813, 8814, 8815, 8825, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8920, 8921, 8940, 8941, 8990, 8991, 9150, 9510, 9511, 9512, 9513, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_133" type="java"><![CDATA[[8000, 8001, 8728, 8800, 8810, 8815, 8850, 8851, 8861, 9080, 9084, 9120, 9121, 9150, 9530, 9531, 9532, 9533, 9534, 9537]]]></entry>
        <entry id="HistTable_134" type="java"><![CDATA[[8000, 8001, 8728, 9080, 9150, 9161, 9530, 9538, 9539]]]></entry>
        <entry id="HistTable_135" type="java"><![CDATA[[8000, 8001, 8005, 8720, 8728, 8800, 8801, 8805, 8806, 8810, 8825, 8890, 8910, 9080, 9084, 9150, 9240, 9530, 9538, 9539, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_136" type="java"><![CDATA[[8000, 8001, 8800, 8850, 8851, 9080, 9120, 9121, 9122, 9131, 9413, 9490, 9492, 9505, 9540, 9541, 9550, 9560, 9562, 9570, 9571]]]></entry>
        <entry id="HistTable_137" type="java"><![CDATA[[8000, 8001, 8680, 8815, 9080, 9150, 9161, 9383, 9384, 9391, 9394, 9412, 9421, 9431, 9442, 9444, 9505, 9509, 9540, 9560]]]></entry>
        <entry id="HistTable_138" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8720, 8800, 8801, 8805, 8806, 8815, 8851, 9060, 9064, 9070, 9071, 9080, 9081, 9085, 9100, 9370, 9371, 9372, 9380, 9381, 9382, 9385, 9391, 9392, 9393, 9396, 9400, 9401, 9410, 9411, 9420, 9421, 9423, 9424, 9425, 9430, 9440, 9441, 9442, 9445, 9450, 9451, 9460, 9473, 9475, 9476, 9477, 9478, 9490, 9500, 9501, 9502, 9503, 9505, 9508, 9540, 9560, 9561, 9571, 9590, 9591, 9596, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9930, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_139" type="java"><![CDATA[[8000, 8001, 9390, 9490, 9492]]]></entry>
        <entry id="HistTable_140" type="java"><![CDATA[[8000, 8001, 9383, 9384, 9390, 9421, 9431, 9444, 9505, 9506, 9509, 9749]]]></entry>
        <entry id="HistTable_141" type="java"><![CDATA[[8000, 8001, 8005, 9085, 9370, 9371, 9372, 9380, 9381, 9382, 9385, 9390, 9391, 9392, 9393, 9396, 9400, 9401, 9410, 9411, 9420, 9421, 9423, 9424, 9425, 9430, 9440, 9441, 9442, 9445, 9450, 9451, 9473, 9475, 9476, 9477, 9478, 9490, 9500, 9501, 9502, 9503, 9505, 9508, 9590, 9591, 9596, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_142" type="java"><![CDATA[[8000, 8001, 8800, 8815, 8850, 9080, 9084, 9120, 9131, 9490, 9492, 9493, 9509]]]></entry>
        <entry id="HistTable_143" type="java"><![CDATA[[8000, 8001, 9080, 9150, 9161, 9383, 9421, 9431, 9505, 9506, 9509]]]></entry>
        <entry id="HistTable_144" type="java"><![CDATA[[8000, 8001, 8005, 8800, 8805, 8806, 8810, 8825, 9080, 9370, 9371, 9372, 9380, 9381, 9382, 9385, 9391, 9392, 9393, 9396, 9400, 9401, 9410, 9411, 9420, 9421, 9424, 9425, 9430, 9440, 9441, 9442, 9445, 9450, 9451, 9470, 9471, 9472, 9473, 9474, 9475, 9476, 9477, 9478, 9480, 9490, 9500, 9501, 9502, 9503, 9508, 9509, 9590, 9591, 9596, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_145" type="java"><![CDATA[[8000, 8001, 8800, 8850, 8851, 9080, 9120, 9121, 9122, 9131, 9413, 9490, 9492, 9505, 9540, 9541, 9550, 9560, 9562, 9570, 9571]]]></entry>
        <entry id="HistTable_146" type="java"><![CDATA[[8000, 8001, 8680, 8815, 9080, 9150, 9161, 9383, 9384, 9391, 9394, 9412, 9421, 9431, 9442, 9444, 9505, 9509, 9540, 9560]]]></entry>
        <entry id="HistTable_147" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8720, 8800, 8801, 8805, 8806, 8815, 8851, 9060, 9064, 9070, 9071, 9080, 9081, 9085, 9100, 9370, 9371, 9372, 9380, 9381, 9382, 9385, 9391, 9392, 9393, 9396, 9400, 9401, 9410, 9411, 9420, 9421, 9423, 9424, 9425, 9430, 9440, 9441, 9442, 9445, 9450, 9451, 9460, 9473, 9475, 9476, 9477, 9478, 9490, 9500, 9501, 9502, 9503, 9505, 9508, 9540, 9560, 9561, 9571, 9590, 9591, 9596, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9930, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_148" type="java"><![CDATA[[8000, 8001, 8800, 8850, 8861, 8890, 8900, 9084, 9120, 9121, 9130, 9150, 9540, 9541, 9550, 9560, 9562, 9570, 9571]]]></entry>
        <entry id="HistTable_149" type="java"><![CDATA[[8000, 8001, 8850, 8890, 8897, 9080, 9130, 9150, 9161, 9540]]]></entry>
        <entry id="HistTable_150" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8850, 8890, 8900, 8910, 8920, 9064, 9080, 9082, 9084, 9120, 9130, 9140, 9150, 9260, 9370, 9371, 9372, 9500, 9501, 9502, 9503, 9508, 9540, 9560, 9561, 9571, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9827, 9831, 9837, 9861, 9930, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_151" type="java"><![CDATA[[8010, 8050, 8070, 8076, 8140, 8230, 8261, 8263, 8343]]]></entry>
        <entry id="HistTable_152" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8043, 8050, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8140, 8141, 8143, 8147, 8190, 8230, 8231, 8251, 8255, 8260, 8261, 8262, 8263, 8290, 8310, 8330, 8331, 8332, 8333, 8335, 8337, 8339, 8340, 8341, 8342, 8343, 8344, 8345, 8346, 8347, 8350, 8450, 8510, 8550, 8551, 8830, 8980, 8981, 8982, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9680, 9684, 9687, 9688, 9690, 9691, 9695, 9698, 9699, 9701, 9702, 9705, 9712, 9714, 9715, 9719, 9724, 9727, 9728, 9729, 9731, 9734, 9735, 9737, 9738, 9740, 9741, 9749, 9750, 9751, 9754, 9755, 9756, 9757, 9758, 9759, 9766, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_153" type="java"><![CDATA[[8010, 8140]]]></entry>
        <entry id="HistTable_154" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8140, 8141, 8143, 8147, 8255, 8290, 8310, 8320, 8323, 8370, 8680, 8693, 8700, 9060, 9064, 9065, 9070, 9071, 9072, 9080, 9081, 9082, 9083, 9084, 9085, 9370, 9371, 9372, 9490, 9500, 9501, 9502, 9503, 9504, 9505, 9699, 9823]]]></entry>
        <entry id="HistTable_155" type="java"><![CDATA[[8010, 8140]]]></entry>
        <entry id="HistTable_156" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8140, 8141, 8143, 8147, 8255, 8290, 8310, 8320, 8322, 8323, 8680, 8693, 9060, 9064, 9065, 9070, 9071, 9072, 9080, 9081, 9082, 9083, 9084, 9085, 9370, 9371, 9372, 9490, 9500, 9501, 9502, 9503, 9504, 9505, 9699, 9823]]]></entry>
        <entry id="HistTable_157" type="java"><![CDATA[[8000, 8001, 8005, 8010, 8140, 8146, 8260, 8270, 8271, 8272, 8280, 8281, 8290, 8300, 8310, 8323, 8800, 8850, 9080, 9580, 9582]]]></entry>
        <entry id="HistTable_158" type="java"><![CDATA[[8000, 8001, 9080, 9350, 9351, 9352, 9432]]]></entry>
        <entry id="HistTable_159" type="java"><![CDATA[[8010, 8140]]]></entry>
        <entry id="HistTable_160" type="java"><![CDATA[[8000, 8001, 8005, 8010, 8140, 8270, 8272, 8273, 8280, 8281, 8290, 8300, 8320, 8323, 8800, 9060, 9064, 9065, 9070, 9071, 9072, 9080, 9081, 9082, 9083, 9084, 9085, 9370, 9371, 9372, 9500, 9501, 9502, 9503, 9505, 9699, 9823]]]></entry>
        <entry id="HistTable_161" type="java"><![CDATA[[8000, 8001, 8005, 8010, 8140, 8146, 8260, 8270, 8271, 8272, 8280, 8281, 8290, 8300, 8310, 8323, 8800, 8850, 9080, 9580]]]></entry>
        <entry id="HistTable_162" type="java"><![CDATA[[8000, 8001, 9080, 9350, 9351, 9352]]]></entry>
        <entry id="HistTable_163" type="java"><![CDATA[[8010, 8140]]]></entry>
        <entry id="HistTable_164" type="java"><![CDATA[[8000, 8001, 8005, 8010, 8140, 8270, 8272, 8280, 8281, 8290, 8300, 8320, 8323, 8800, 9060, 9064, 9065, 9070, 9071, 9072, 9080, 9081, 9082, 9083, 9084, 9085, 9370, 9371, 9372, 9500, 9501, 9502, 9503, 9505, 9699, 9823]]]></entry>
        <entry id="HistTable_165" type="java"><![CDATA[[8000, 8001, 8010, 9080, 9084, 9492]]]></entry>
        <entry id="HistTable_166" type="java"><![CDATA[[8000, 8001, 9360, 9361, 9505]]]></entry>
        <entry id="HistTable_167" type="java"><![CDATA[[8000, 8001, 9060, 9064, 9065, 9070, 9071, 9072, 9080, 9081, 9082, 9083, 9084, 9085, 9362, 9370, 9371, 9372, 9395, 9473, 9490, 9500, 9501, 9502, 9503, 9505, 9680, 9699, 9823]]]></entry>
        <entry id="HistTable_168" type="java"><![CDATA[[8010, 8140]]]></entry>
        <entry id="HistTable_169" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8140, 8141, 8143, 8147, 8255, 8290, 8310, 8320, 8323, 8680, 8681, 8682, 8690, 8691, 8692, 8693, 9060, 9064, 9065, 9070, 9071, 9072, 9080, 9081, 9082, 9083, 9084, 9085, 9370, 9371, 9372, 9490, 9500, 9501, 9502, 9503, 9504, 9505, 9699, 9823]]]></entry>
        <entry id="HistTable_170" type="java"><![CDATA[[8140]]]></entry>
        <entry id="HistTable_171" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8020, 8021, 8022, 8046, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8082, 8083, 8084, 8121, 8140, 8141, 8143, 8147, 8200, 8255, 8310, 8430, 8450, 8480, 8481, 8525, 8550, 8562, 8941, 9500, 9699, 9823]]]></entry>
        <entry id="HistTable_172" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9678, 9679, 9680, 9684, 9687, 9688, 9689, 9690, 9691, 9695, 9698, 9699, 9702, 9705, 9708, 9712, 9714, 9715, 9716, 9717, 9719, 9724, 9727, 9728, 9729, 9735, 9737, 9738, 9751, 9755, 9759, 9761, 9762, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9823, 9831, 9837, 9965, 9967, 9971, 9975]]]></entry>
        <entry id="HistTable_173" type="java"><![CDATA[[8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140, 8201, 8210, 8230, 8261, 8263]]]></entry>
        <entry id="HistTable_174" type="java"><![CDATA[[8000, 8001, 8002, 8003, 8004, 8005, 8010, 8011, 8012, 8013, 8014, 8015, 8020, 8021, 8022, 8030, 8031, 8032, 8033, 8034, 8035, 8041, 8043, 8050, 8051, 8052, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8078, 8082, 8083, 8084, 8120, 8121, 8122, 8123, 8124, 8130, 8131, 8140, 8141, 8143, 8147, 8152, 8153, 8156, 8157, 8190, 8200, 8201, 8210, 8211, 8230, 8231, 8240, 8241, 8242, 8243, 8244, 8245, 8246, 8249, 8251, 8255, 8260, 8261, 8262, 8263, 8290, 8310, 8320, 8323, 8380, 8401, 8430, 8440, 8480, 8481, 8490, 8510, 8521, 8542, 8550, 8551, 8560, 8562, 8570, 8571, 8572, 8573, 8574, 8575, 8630, 8650, 8680, 8693, 8710, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8810, 8811, 8813, 8814, 8815, 8825, 8830, 8840, 8850, 8851, 8852, 8853, 8854, 8855, 8857, 8858, 8890, 8891, 8894, 8895, 8896, 8900, 8901, 8902, 8910, 8912, 8920, 8921, 8934, 8935, 8940, 8941, 8950, 8951, 8980, 8981, 8982, 8990, 8991, 9040, 9041, 9042, 9043, 9044, 9060, 9064, 9065, 9070, 9071, 9072, 9080, 9081, 9082, 9083, 9084, 9085, 9100, 9101, 9102, 9105, 9110, 9120, 9130, 9133, 9140, 9150, 9170, 9310, 9370, 9371, 9372, 9490, 9500, 9501, 9502, 9503, 9504, 9505, 9520, 9540, 9560, 9561, 9571, 9580, 9581, 9590, 9591, 9596, 9650, 9651, 9652, 9653, 9654, 9655, 9659, 9661, 9662, 9663, 9664, 9665, 9667, 9670, 9671, 9673, 9675, 9678, 9679, 9680, 9684, 9687, 9689, 9690, 9691, 9695, 9698, 9699, 9702, 9705, 9708, 9714, 9716, 9717, 9719, 9727, 9728, 9729, 9731, 9732, 9734, 9823]]]></entry>
        <entry id="ICD10_Table_2" type="java"><![CDATA[[
     'A' : [9,33,34,35,38,46,55,57,58,64,65,70,78,86,89,90,91,94,99],
     'B' : [3,4,7,9,24,49,54,59,64,72,73,75,79,80,86,89,91,92,99],
     'C' : [1,7,12,19,20,23,33,37,52,55,56,58,61,64,65,66,73,80,97],
     'D' : [24,27,34,45,62,65,66,67,70,71],
     'E' : [2,15,40,41,42,43,45,46,52,54,58,59,60,65,68,86],
     'F' : [3,4,9,21,24,28,29,39,54,55,59,61,69,70,71,72,73,78,79,82,83,88,89,99],
     'G' : [8,9,10,14,20,35,64,92,98],
     'H' : [46,55,71],
     'I' : [0,10,38,48,64,81,99],
     'J' : [0,9,13,14,22,36,40,42,46,47,60,61,64,65,80,81,82,90],
     'K' : [20,30,36,37,85],
     'L' : [0,22,26,42,52,80,82,83,84,88,89,97],
     'M' : [45],
     'N' : [10,12,19,23,26,40,44,46,47,61,62,63,72,86,96],
     'O' : [11,13,16,25,40,48,60,85,95,96,97],
     'P' : [38,53,60,77,90,93],
     'Q' : [2],
     'R' : [2,5,11,12,13,14,15,17,18,21,31,32,33,34,35,36,42,51,53,54,55,58,64,71,72,75,80,81,91,92,95,98,99],
     'U' : [2,4],
     'V' : [98,99],
     'W' : [0..46,49..60,64..70,73..81,83..94,99],
     'X' : [0..6,8..54,57..99],
     'Y' : [0..5,8..34,66,69,86]
]]]></entry>
        <entry id="ICD10_Table_3" type="java"><![CDATA[[
     'A' : [0..1,9..14,20..22,28..33,38..54,58..73,78..85,90,99,162..165,167..171,178..188,190..192,198..203,207..213,217..222,227..233,238..244,250..251,259..260,267..270,278..282,288..289,300..305,308..311,318..321,327..329,339,349,359..363,368..371,378..379,389..395,398..403,408..415,418..422,427..431,438..441,448..449,469,480..484,488,490..493,498..507,509..515,519..523,527..530,539..546,548..549,559..564,568,579,589..590,598..601,609,630,638,649,659..673,679..681,689..692,698..699,709..711,719,740,748..753,759,770..773,778..779,789..791,798..804,809..812,818..821,829..836,838..841,848..852,858,869..872,878..881,888,899,909,919..924,928..932,938,949..951,959..962,968..969,980..985,988,999],
     'B' : [0..5,7..12,18..23,27..29,39,49..54,58..60,68..69,79..85,88,99,150,159..162,169..172,178..182,188..190,199..213,217..222,227,230..232,238,249..252,258..263,268..271,278..279,300..303,308..309,330..334,338,340..344,348..356,358..363,368..384,387..395,399..403,407..410,417..421,427..432,438..442,447..453,457..465,468..471,479..484,487..488,499..500,508..510,518..520,528..531,538,549..552,559..561,569..575,580..583,588..589,599..602,608,649..653,658..665,668..681,689..691,698..701,710..711,718..719,729,739..744,748..749,759..761,768..770,778..781,787,789,799,809..814,818,820,829..834,838..839,850..854,869..874,878..883,888..889,899..902,908..909,919,929,940..942,948..949,999],
     'C' : [0..6,8..9,19..24,28..31,39..41,48..52,58..62,68..69,79..81,88..91,98..104,108..113,118..119,129..132,138..140,142,148,150..155,158..166,168..173,178..189,199,209..212,218,220..224,227,229,239..241,248..254,257..261,268..269,300..301,310..313,318..323,328..329,339..343,348..349,379..384,388,390,398..403,408..414,418..419,430..452,457,459..463,467..476,478..482,488,490..496,498..506,508..512,518..519,529..531,538..543,548..549,559,569..574,577..579,589,600..602,608..609,619..621,629..632,637..639,649,659,669..681,688..696,698..701,709..725,728..729,739..741,749..755,758..765,767..768,770..775,778..788,790..798,809..813,817,819..822,827,829..845,850..851,857,859,880..883,887,889,900..902,910..915,917,919..925,927,929..932,937,939..945,947,950..952,957,959..963,967,969,979],
     'D' : [0..2,10..15,17,19..24,30..51,57,59..61,67,69..76,90..93,97,99..107,109..110,117,119..137,139..144,150..152,157,159..177,179..181,190..191,197,199..201,210..216,219..227,229..237,239,249..252,259..261,267,269,279..282,287,289..294,297,299..304,307,309..316,319..321,329..334,337,339,349..361,367,369..377,379..386,390..392,397,399..401,407,409..414,417,419..421,429..434,437,439..449,459..464,467,469..473,477,479..487,489,500..501,508..513,518..521,528..532,538..539,550..553,558..564,568..573,578,580..582,588..596,598..601,608..613,618..619,629,640..644,648..649,659,669,679..686,688..696,698..699,709,719..721,728..735,738..740,748..752,758..763,800..824,828..832,838..841,848..849,860..863,868..869,890..893,898..899],
     'E' : [0..2,9..12,18,29..35,38..42,48..55,58..65,69..71,78..79,100..149,159..164,168..169,200..201,208..215,220..222,228..233,236..237,240..244,248..250,258..261,268..275,278..283,288..291,298..301,308..311,318..321,328..329,340..345,348..349,409,419,429,439..441,459,469,500..509,511..512,518..519,529..531,538..539,549..550,559..561,568..569,589,599,609..619,630..631,638..643,648..649,659..662,668..673,678,689,700..703,708..713,720..725,728..731,738..744,748..756,760..763,768..771,778..786,788..791,798..807,830..835,838..841,848..854,858..859,869..878,880..883,888..889],
     'F' : [10..13,18..19,39,49..51,58..72,78..79,99..206,208..209,219..220,228..233,238..239,249..252,258..259,289,299..302,308..323,328..334,338..341,348..349,380..381,388,399..402,408..413,418..422,428..432,438..454,458..459,480..481,488..489,500..505,508..515,518..531,538..539,549,559,599..609,619..621,628..633,638..642,648..656,658..662,668..669,680..681,688,699,709,719,729,739,789,799..803,808..813,818..819,829,839..845,848..849,889,899..901,908..913,918..920,928..933,938..942,948..952,958..959,980..986,988..989,999],
     'G' : [0..3,8..9,30..32,38..42,48..49,60..62,89,99,109..114,118..122,128..129,149,209..214,218..219,230..232,238..245,248..256,258..259,300..301,308..312,318..319,359..361,368..375,378..379,400..412,418..419,430..433,438..444,448,450..454,458..459,470..474,478..479,500..501,508..514,518..523,527..529,540..549,560..564,568..576,578..580,587..589,600..603,608..611,618..622,628..629,649,700..702,708..713,718..724,728..729,800..804,808..811,819..825,830..834,838..839,900..904,908..913,918..919,929..939,950..952,958..961,968..969,989],
     'H' : [0..1,10..11,18..29,40..46,48..55,58..59,100..105,108..114,118..119,150..151,158..164,168..171,178..189,200..202,208..215,218..219,250..252,258..264,268..271,278..279,300..302,308..314,318..319,330..335,340..342,348..359,400..406,408..409,430..433,438..449,469..477,490..494,498..506,508..512,518..527,530..536,538..547,549,559,570..571,578..579,600..605,608..613,618..619,650..654,659..664,669,680..681,690,698..702,708..709,719..722,728..731,738..744,748..749,800..802,808..814,818..819,830..833,838..839,900..908,910..913,918..922,930..933,938..939],
     'I' : [9..12,18..20,29,50..52,58..62,68..72,78..83,88..92,98..99,109..110,119..120,129..132,139,150,159,200..201,208..214,219..221,228..229,241,248..256,258..260,269..272,278..281,288..289,300..301,308..313,318..319,330,339..342,348..352,358..362,368..372,378..379,389,400..401,408..409,420..429,440..447,450..456,458..461,469..472,479,489..495,498..501,509..519,600..616,618..621,629..636,638..639,649,670..679,690..694,698,700..702,708..716,718..725,728..731,738..745,748..749,770..776,778..781,788..789,800..803,808..809,819..823,828..832,839..850,859..864,868,870..872,878..881,888..891,898..899,950..952,958..959,999],
     'J' : [9..14,18..20,28..30,38..42,50..51,60,68..69,99..101,108,110..111,118,120..123,128..129,139,149..160,168,180..182,188..189,200..211,218..219,229,300..304,310..312,320..324,328..331,338..343,348,350..353,358..359,369..371,380..387,390..393,398..399,409..411,418,429..432,438..441,448..451,458..459,469,479,609,619..620,628,630..635,638,649,659..662,668,670..684,688..691,698,700..704,708..709,809,819,829,840..841,848..853,860,869,909,920,929..931,938..942,948..949,960..961,969,980..986,988..989],
     'K' : [0..11,20..24,28..56,60..62,68..76,78..83,88..92,98..103,108..123,130..137,140..146,148..149,209..210,219..229,250..257,259..267,269..277,279..287,289..299,309..319,350..353,358,359,369,379..383,388..389,400..404,409..414,419..421,429..431,439..441,449..451,458,460..461,469,500..501,508..515,518..523,528..529,550..552,558..567,570..575,578..580,589..594,598..605,610..614,620..635,638..639,650,658..661,668..669,700..704,709..721,729..732,738..746,750..754,758..769,800..805,808,810..811,818..824,828..835,838..839,850..853,858..863,868..869,900..904,908..909,920..922,928..929],
     'L' : [9..11,20..24,28..33,38..43,48..50,59,80..81,88..89,100..105,108..111,118..123,128..131,138..139,200,208..211,218..219,229..255,258..259,269..272,278..282,290..293,298..305,308..309,400..405,408..415,418..419,429..433,438..444,448..449,500..506,508..512,518..519,529..533,538..539,550..552,558..564,568..575,578..581,589..590,598..605,608..609,630..632,638..640,648..652,658..664,668..671,678..683,688..689,700..705,708..711,718..722,728..732,738..744,748..752,758..759,809..819,829,839,849..853,858..859,870..872,878..879,890..893,889,899..906,908..910,918..923,928..932,940..946,948..951,958..959,979..986,988..989],
     'M' : [0..2,8..9,20..23,28..29,50..53,58..64,68..69,80..84,88..89,100..104,109..112,118..125,128,130..131,138..139,150..154,158..167,169..175,179..185,189..192,198..206,210..224,228..236,238..259,300..303,308,310..321,328..332,339..342,348..359,400..405,410..415,418..421,429..436,438..439,459..465,468..472,478..485,488..489,500..503,508..514,518..519,530..533,538..546,548..549,600..602,608..615,619..626,628..629,650..654,658..665,670..674,678..679,700..715,718..726,728..729,750..755,758..775,778..779,790..805,808..816,818..819,830..835,838..844,848..856,858..866,868..873,878..880,888..896,898..899,910..913,918..932,938..943,948..955,958..959,990..999],
     'N' : [0..79,109..111,118..119,129..144,150..151,158..159,170..172,178..185,188..189,199..202,209..211,218..219,239,250..251,258..259,269..271,279..281,288..289,300..304,308..312,318..324,328..329,340..343,350..351,358..363,368..369,390..394,398..399,409..413,418..423,428..434,449..450,459,469,479..486,488..492,498..501,508..509,600..604,608..609,619,629,639..645,648..649,700..701,709..711,719,729..736,738..739,750..751,758..766,768,800..806,808..816,818..825,828..843,848..859,869..872,879..884,888..915,920..926,930,938..946,948..953,958..959,969..974,978..983,988..989],
     'O' : [0..2,8..11,19..21,28..79,100..104,109,119..122,139..142,149..152,159,169,200,208..212,218..225,228..235,239..244,249,259..269,280..285,288..296,298..302,308..312,318,320..326,328..369,409..411,418..422,429..432,438..441,450,458..460,468..471,479,489,609..611,618..624,628..632,639..645,648..655,658..665,668..670,678..683,688..695,698..703,709..723,730..731,740..759,859..864,868,870..873,878..883,888,890..896,898..905,908..912,920..927,959..961,969..971,979..998],
     'P' : [0..36,38..46,48..52,59,70..73,80..82,100..104,108..115,119..124,128..134,138..143,148..156,158..159,200..201,209..211,219..221,228..236,238..243,248..253,258,260..261,268..271,278..285,288..294,298..299,350..353,358..365,368..375,378..379,389..394,398..399,500..505,508..510,518..526,528..529,539..546,548..551,558..560,569..570,578..585,588..593,598..599,609..616,618..619,700..704,708..714,718..722,728..729,740..745,748..749,760..762,768..769,779..783,788..789,800,808..810,818..819,830..836,838..839,909..916,918..925,928..929,939..942,948..949,960..965,968..969],
     'Q' : [0..2,10..12,18..19,29..31,38..46,48..64,68..70,78..79,100..107,110..113,120..124,128..135,138..143,148..150,158..165,169..175,178..189,200..206,208..214,218..226,228..234,238..246,248..266,268..274,278..283,288..289,300..303,308..315,318..324,330..336,338..341,348..349,351,353,355..357,359..361,369..375,378..388,390..396,398..403,408..412,418..423,428..447,450..453,458..459,500..506,510..532,539..544,548..556,558..564,600..606,610..615,618..628,630..633,638..656,658..678,680..685,688,690..692,699..704,709..716,718..731,738,740..743,748..755,758..786,788..796,798..804,808..812,818..825,828..833,838..846,848..851,858..862,868,870..875,878,890..894,897..902,909..917,920..939,950..955,958..964,968..973,978..992,998..999],
     'R' : [0..2,8,10..12,29..31,40..42,48..49,59..68,70..74,90..93,98,100..104,119,129,139,149,159..162,179,189..196,198,200..203,208,219..224,227,229..234,238,250..253,258,260..263,268,270,278,290..294,296,298,300..301,309,319,329,339,349,359,369,390..392,398,400..402,410..413,418,429..432,438,440..443,448,450..458,460..468,470..471,478,480..482,488,490..492,498,500..502,508..509,519..522,529,539,549,559..560,568,570..571,578..579,589..591,599..601,609..611,619..620,628..636,638,649,680..683,688,700..701,719,729..730,739..740,748..749,759..762,768..772,778..790,798..799,809,819..879,890..900,908,919,929..938,940..948,959..961,989,999],
     'U' : [10..19,29..30,39,49,70..72],
     'V' : [10..11,19..21,29..31,39..41,49..51,59..61,69,90..93,99..105,109..115,119..125,129..135,139..145,149..155,159..165,169..175,179..185,189..196,198..205,209..215,219..225,229..235,239..245,249..255,259..265,269..275,279..285,289..296,298..307,309..317,319..327,329..337,339..347,349..357,359..367,369..377,379..387,389..396,398..407,409..417,419..427,429..437,439..447,449..457,459..467,469..477,479..487,489..496,498..507,509..517,519..527,529..537,539..547,549..557,559..567,569..577,579..587,589..596,598..607,609..617,619..627,629..637,639..647,649..657,659..667,669..677,679..687,689..696,698..707,709..717,719..727,729..737,739..747,749..757,759..767,769..777,779..787,789..796,798..837,839..847,849..857,859..867,869..893,899..954,958..962,968..973,978,989,999],
     'W' : [9,19,29,39,49,59,69,79,89,99,109,119,129,139,149,159,169,179,189,199,209,219,229,239,249,259,269,279,289,299,309,319,329,339,349,359,369,379,389,399,409,419,429,439,449,459,469,499,509,519,529,539,549,559,569,579,589,599,609,649,659,669,679,689,699,709,739,749,759,769,779,789,799,809,819,839,849,859,869,879,889,899,909,919,929,939,949,999],
     'X' : [9,19,29,39,49,59,69,89,99,109,119,129,139,149,159,169,179,189,199,209,219,229,239,249,259,269,279,289,299,309,319,329,339,340,341,348,349,359,369,379,389,399,409,419,429,439,449,459,469,479,489,499,509,519,529,539,549,579,589..590,599,609,619,629,639,649,659,669,679,689,699,709,719,729,739,749,759,769,779,789,799,809,819,829,839,849,859,869,879,889,899,909,919,929,939,949,959,969,979,989,999],
     'Y' : [9,19,29,39,49,59..62,68..73,78..79,89,99,109,119,129,139,149,159,169,179,189,199,209,219,229,239,249,259,269,279,289,299,309,319,329,339,349..357,360..369,400..415,418..436,438..447,449..455,458..468,470..475,478..485,490..502,508..557,560..586,588..593,598..626,628..636,638..641,648..655,658,669,699..703,708,710..713,718,720..723,728,730..733,738,740..743,748,750..753,758,760..763,768,770..773,778,780..783,788,790..793,798,800..803,808,810..813,818,820..823,828,830..836,838..850,859,869..872,880..883,890..891,899]
]]]></entry>
        <entry id="ICD7_Table" type="java"><![CDATA[[
    19,29..31,39,49,59,69,79,89,109,119..123,129..133,139..143,149,159,169,179..182,189..192,199..202,209..214,219,229,239,249,
    259,269,279..282,289,299,309,319,329,339,349,359,369,379,389,399,409,419..421,429,439,449..454,459..461,469,479,489..492,
    499,509,519,529..534,539,549,559..561,569..573,579..582,589,599..603,609,619,629,639..644,649,709..712,719..721,729,739..741,
    749,800..803,809,819..823,829..833,839,849..851,859,869,879,889,899,909,919,929,939,949,959..969,1009,1019,1029,1039,1049,
    1059,1069,1079,1089,1109,1119,1129,1139,1149,1159,1169,1179,1200..1203,1209..1212,1219..1222,1229..1233,1239..1242,1249,1259,
    1269,1279,1289,1299..1303,1309,1319,1329,1339..1345,1349,1359,1369,1379..1381,1389,1400..1401,1408..1410,1417..1420,1427..1429,
    1439,1449..1450,1457..1459,1469,1479,1489,1509,1519..1520,1527..1533,1537..1539,1549..1551,1558..1559,1569,1579,1589,1599..1602,
    1607..1609,1619..1622,1628..1629,1639,1649,1659,1709,1719,1729,1739,1749..1751,1758..1761,1767..1769,1779,1789..1791,1797..1799,
    1809..1810,1817..1819,1900..1919,1929..1934,1938..1939,1949..1954,1957..1973,1978..1984,1987..1989,1999..2002,2009,2019..2021,2029,
    2039..2044,2049,2059..2065,2068..2071,2079,2109,2119,2129,2139,2149,2159,2169,2179,2189,2199,2209,2219,2229,2239,2249,2259,
    2269,2279,2289,2299,2309,2319,2329,2339,2349,2359,2369,2379,2389,2399,2409,2419,2429,2439,2449,2459,2509,2519..2521,2529,
    2539,2549,2609,2709..2712,2719,2729,2739,2749,2759,2769,2779,2809,2819,2822,2829,2839,2849,2859..2867,2869,2879,2889..2892,
    2899..2902,2909,2919..2921,2923..2927,2929,2939,2949,2959,2969,2979..2981,2989,2999..3007,3009..3012,3019,3029,3039,3049,3059,
    3069,3079..3082,3089,3099,3109,3119,3129,3139,3149..3152,3159..3163,3169..3175,3179..3185,3189,3200..3207,3209..3215,3219..3222,
    3229,3239,3249..3255,3259..3264,3269,3309,3319,3329,3339,3349,3400..3403,3409,3419,3429,3439,3449,3459,3509,3519,3529..3533,
    3539,3549,3559..3563,3569,3579,3609,3619,3629,3639,3649,3659,3669,3679,3689,3699,3709,3719,3729,3739,3749,3759,3769,3779,
    3789,3799,3809,3819,3829,3839,3849,3859,3869,3879,3889..3893,3899,3909..3912,3919..3922,3929..3932,3939,3949,3959,3969,
    3979..3983,3989,4009..4013,4019..4021,4029,4109,4119,4129,4139,4149,4159,4169,4200..4202,4209..4214,4219..4222,4229,4300..4301,
    4309,4319,4329..4332,4339..4344,4349,4409,4419,4429,4439,4449,4459,4469,4479,4500..4501,4509,4519,4529..4533,4539,4549,4559,
    4569,4609,4619..4622,4629,4639,4649,4659,4669..4672,4679..4683,4689,4709,4719..4721,4729,4739,4749,4759,4809,4819,4829,4839,
    4909,4919,4929,4939,5009,5019..5021,5029,5100..5101,5109,5119..5121,5129,5139,5149,5159,5169,5179,5189..5192,5199,5209,5219,
    5229..5233,5239,5249,5259,5269..5272,5279,5300..5303,5309..5312,5319..5323,5329..5337,5339,5349,5359,5369,5379,5389..5391,5399..5401,
    5409..5411,5419..5421,5429,5439..5442,5449,5459,5500..5501,5509,5519,5529,5539,5600..5605,5609..5615,5619,5700..5705,5709..5711,
    5719..5723,5729..5733,5739,5749,5759,5769,5779,5789,5809..5811,5819,5829,5839,5849,5859,5869..5872,5879,5909,5919,5929,5939,
    5949,6000..6002,6009,6019,6029,6039,6049,6059,6069,6079,6089,6099,6109,6119,6129,6139,6149,6159,6169,6179,6209..6212,6219,
    6229,6239,6249,6259,6269,6300..6302,6309,6319,6329,6339,6349,6359,6369..6371,6379,6409,6419..6425,6429,6439,6449..6451,6459,
    6469,6479..6483,6489,6499..6503,6509..6513,6519..6523,6529,6600..6607,6609,6700..6707,6709..6717,6719..6727,6729..6737,6739..6747,
    6749..6757,6759..6767,6769..6777,6779..6787,6789,6809,6819,6829,6839,6849,6859,6869,6879..6883,6889,6899..6909,6919..6926,
    6929..6936,6939,6949,6959,6969,6979,6989,7009,7019..7026,7029..7037,7039..7041,7049..7055,7059..7064,7069,7079..7085,7089,
    7099..7105,7109,7119,7129,7139..7142,7149,7159,7169,7209,7219..7222,7229..7232,7239,7249,7259..7263,7269,7279,7300..7303,
    7309,7319,7329,7339,7349,7359,7369..7379,7389,7409,7419,7429,7439..7442,7449,7459,7469,7479,7489,7499,7509,7519,7529..7531,
    7539..7547,7549,7559..7562,7569..7573,7579..7586,7589..7593,7599..7600,7605,7609..7610,7615,7619..7620,7625,7629..7630,7635,
    7639..7640,7645,7649..7650,7655,7659..7660,7665,7669..7670,7675,7679..7680,7685,7689..7702,7705..7707,7709..7710,7715,7719..7720,
    7725,7729..7730,7735,7739,7749,7759,7769,7800..7837,7839..7867,7869..7877,7879..7902,7909,7919,7929..7933,7939,7949..7955,7959,
    8009,8019,8029,8100..8259,8300..8359,8409,8419,8429,8439,8449,8459,8509,8519,8529,8539,8549,8559,8569,8579,8589,8609,8619,
    8629,8639,8649,8659,8669,8700..8889,8900..8959,9000..9049,9100..9369,9409,9419,9429,9439,9449,9459,9469,9509,9519,9529,9539,
    9549,9559,9569,9579,9589,9599,9609,9619,9629,9639,9649,9659,9709,9719,9729,9739,9749,9759,9769,9779,9789,9799,9809,9819,
    9829,9839,9849,9859,9909,9919,9929,9939,9949,9959,9969,9979,9989,9999
]]]></entry>
        <entry id="ICD8_Table" type="java"><![CDATA[[
    0..1,9,19..22,29..30,39..44,48..52,58..60,69..72,79..83,88..92,99,109..115,119..123,129..130,139,149..152,158..162,169..173,179..181,
    189..196,199..201,209,219,229..232,239,249,259,269..271,279,300..303,309..310,319,329..331,339..341,359..361,368..369,379..382,
    388..391,399,409,419,429,439,449..451,459,469,500..501,509,519,529..532,539,549,559,569..571,578..579,600..601,609,619..624,
    629..632,639,649,659,669..675,679..682,689,709,719,729,739..742,749,759,769,779..782,788..795,798..799,809..812,819..822,829..832,
    838..845,848..852,859..860,868..871,878..881,889,899..907,909..913,918..920,929..930,939..941,949,959,969..971,979..983,988..992,
    999..1000,1008..1009,1019..1033,1039..1040,1049,1100..1101,1109..1112,1118..1119,1129,1139,1149,1159..1162,1169..1174,1178..1179,
    1200..1203,1208..1214,1219..1221,1228..1236,1239,1249..1255,1258..1261,1268..1275,1279..1280,1288..1289,1299..1302,1309,1319,
    1329..1330,1339..1343,1349,1359,1369,1400..1402,1409..1413,1419..1420,1428..1431,1439,1449..1451,1458..1460,1468..1469,1479..1481,
    1488..1489,1499,1509..1511,1518..1522,1529..1533,1538..1542,1550..1551,1560..1562,1569..1570,1578..1580,1589,1599..1602,1608..1610,
    1618..1621,1630..1631,1639,1700..1713,1719..1739,1749,1809,1819..1820,1829..1831,1839..1841,1848..1849,1859,1869..1870,1878..1879,
    1889..1892,1899,1909,1919..1925,1929,1939..1944,1948..1951,1959..1964,1967..1985,1989..1991,2000..2001,2019..2022,2029,2039..2041,
    2049..2051,2059..2061,2069..2072,2079,2089,2099..2117,2119..2125,2129..2132,2139..2141,2149,2159..2162,2168..2169,2179,2189..2191,
    2199..2202,2209..2212,2218..2221,2228..2233,2238..2239,2249..2256,2259..2264,2268..2272,2289,2300..2307,2309..2315,2319..2322,
    2339..2341,2349,2359..2362,2368..2376,2379..2387,2389..2391,2399..2401,2409..2411,2419..2422,2439,2449..2451,2459,2469,2500,2509,
    2519..2521,2529..2532,2539,2549..2552,2559..2561,2569..2571,2579..2581,2589,2600..2601,2608..2609,2619,2629..2631,2638..2639,
    2649..2652,2659..2660,2668..2669,2679,2689..2691,2699..2706,2708..2713,2718..2722,2729..2736,2738..2739,2749..2755,2759,2769,
    2779..2782,2789,2799,2809..2814,2819..2825,2829..2830,2839,2849..2850,2858..2865,2869..2873,2879,2889..2895,2899..2901,2910..2913,
    2919..2923,2929..2935,2939..2944,2948..2963,2968..2971,2979..2983,2989,2999..3032,3039..3069,3079,3089..3159,3200..3201,3208..3209,
    3219,3229,3239,3249,3300..3304,3309..3312,3319..3321,3329..3331,3339,3409,3419,3429..3432,3439..3443,3449..3455,3459,3469..3471,
    3479..3482,3489..3496,3499,3509,3519,3529,3539,3549..3551,3559,3569..3573,3579..3581,3589,3609,3619,3629..3630,3639,3649,3659,
    3669,3679,3689..3690,3699..3703,3709..3710,3719,3729..3732,3739..3742,3749..3752,3759,3769..3776,3779..3793,3809..3811,3819..3822,
    3829..3831,3839..3840,3849,3859,3869..3872,3879,3889..3892,3899,3909..3912,3919..3920,3929,3939..3940,3949..3950,3959..3960,
    3969..3970,3979,3989,4000..4003,4009,4019,4029,4039,4049,4100..4101,4109..4110,4119..4124,4129..4130,4139..4140,4149,4209..4210,
    4219,4229,4239..4241,4249,4259,4269..4276,4279,4289..4290,4299..4300,4309..4310,4319..4320,4329..4330,4339..4340,4349..4350,
    4359..4360,4369..4370,4379..4380,4389,4400..4403,4409..4412,4419,4429..4432,4438..4444,4449..4450,4459..4466,4469,4479,4489,
    4509..4510,4519,4529,4539..4541,4549,4559..4561,4569,4579..4581,4589,4609..4611,4619,4629,4639,4649,4659,4669,4709,4719,4729,
    4739,4749,4809,4819..4823,4829,4839,4849,4859,4869,4909,4919,4929,4939,5009,5019..5021,5030..5031,5039,5049,5059,5069,
    5079..5084,5089,5109..5112,5129,5139,5149..5152,5159..5162,5179,5189..5193,5199..5207,5209..5236,5239..5245,5249..5251,5259..5265,
    5269..5297,5299..5304,5309..5312,5319..5322,5329..5330,5339..5342,5349,5359..5361,5369..5370,5379,5400,5409,5419,5429,5439,5449,
    5509..5513,5518..5519,5529..5533,5538..5539,5600..5604,5609,5619..5621,5630..5631,5639..5641,5649..5651,5669..5670,5679,5689..5694,
    5699,5709..5710,5718..5719,5729..5730,5739..5741,5749,5759..5761,5769..5771,5779,5809,5819,5829,5839,5849,5900..5902,5909,5919,
    5929..5935,5949,5959..5963,5969,5979,5989..5992,5999,6009,6019,6029,6039,6049,6059,6069..6079,6109..6112,6119,6129,6139,6149..6152,
    6159..6162,6169,6200,6209..6216,6219..6221,6230..6234,6239..6241,6249..6253,6259..6267,6269,6279,6289..6299,6309..6316,6319..6324,
    6329..6331,6339..6351,6359,6369..6371,6379..6380,6389..6390,6399..6402,6409..6412,6419..6423,6429..6432,6439..6442,6449..6452,6459,
    6509..6511,6519,6529,6539..6543,6549,6559..6564,6568..6572,65796582,6589,6599..6601,6609..6613,6618..6619,6629,6709..6710,6719,
    6729..6731,6739,6749,6759,6769..6772,6779,6789,6800..6806,6808..6809,6819..6825,6829,6839,6849,6859..6862,6869,6909,6919..6929,
    6939,6949..6954,6959..6965,6969..6970,6972,6979..6984,6989,7009..7013,7019,7029..7030,7039,7049..7051,7059..7063,7069..7071,7079..7080,
    7089..7091,7099..7103,7109,7119..7125,7130..7132,7140,7149,7159..7161,7170..7172,7179,7189,7200..7203,7219..7225,7229..7237,7239..7245,
    7249..7251,7258..7259,7269..7299,7309..7319,7329..7336,7339..7341,7349..7352,7359,7369..7371,7380..7389,7409..7410,7419,7429..7434,
    7438..7455,7458..7476,7478..7486,7488..7492,7500..7503,7508..7536,7538..7542,7548..7574,7579..7583,7588..7596,7598..7605,7610..7617,
    7619..7625,7629..7631,7639..7644,7649..7654,7659..7664,7669..7674,7679..7684,7689..7692,7694..7695,7699..7702,7708..7711,7719..7722,
    7729,7739..7742,7749..7752,7759..7764,7769,7779..7783,7789..7790,7799..7808,7810..7818,7820..7837,7840..7847,7850..7858,7860..7867,
    7870..7876,7880..7886,7889..7896,7899..7902,7919,7929..7931,7938..7939,7949..7952,7959..7963,7969,8000..8003,8008..8013,8018..8023,
    8028..8033,8038..8043,8048..8053,8058..8063,8068..8073,8078..8079,8100..8239,8250..8252,8258..8261,8268..8270,8278..8279,8300..8303,
    8308..8313,8318..8323,8328..8333,8338..8343,8348..8353,8358..8363,8368..8373,8378..8383,8388..8389,8400..8405,8408..8415,8418..8425,
    8428..8435,8438..8445,8448..8455,8458..8459,8500..8535,8539..8543,8548..8556,8559..8564,8568..8576,8579..8586,8589..8599,8609,8619,
    8629,8639,8649,8659,8669,8679,8689,8699,8709,8719,8729,8739,8749,8759,8769,8779,8809,8819,8829,8839,8849,8859,8869,8879,
    8909,8919,8929,8939,8949,8959,8969,8979,8989,8999,9009,9019,9029,9039,9049,9059,9069,9079,9089,9099..9100,9109,9119,
    9129..9130,9139,9149,9159,9169,9179,9189,9199..9202,9208..9211,9218,9220,9229..9232,9238..9239,9249..9251,9258..9261,9279,
    9289,9299..9302,9309..9313,9318..9323,9328..9336,9338..9347,9349..9353,9359..9361,9369,9409,9419,9429,9439,9449,9459,9469,
    9479,9489,9499..9509,9519..9521,9529,9539,9549,9559,9569,9579,9589,9599,9609,9619,9629,9639,9649,9659,9669,9679,9689,9699,
    9709,9719,9729,9739,9749,9759,9769,9779,9789,9800..9809,9819,9829,9839,9849,9859,9869,9879,9889,9899,9909,9919,9929,9939,
    9949,9959,9969,9979,9989,9999
]]]></entry>
        <entry id="ICD9_Table" type="java"><![CDATA[[
    10..11,19..23,29..32,38..43,48..54,58..66,68..73,78..86,88,90,92,100..101,108..123,128,130..131,138..139,149..152,157..164,169..178,180,
    188..189,200..205,208..209,219..223,228..233,238..239,249,259..261,269..272,278..279,300..303,308..311,318..323,328..331,338..341,359..364,
    368..369,379..384,388..394,398..403,408,410..422,429..433,439..440,449..452,459..463,468..471,478..479,489..491,498..502,509..512,519,529..532,
    537..552,557..560,567..570,578..579,600..601,609,619..625,628..632,638..639,649..654,658..663,668..669,700..706,709,719..723,727..729,739..743,
    748,759..761,769..774,778..788,790..793,798..799,809..812,819..823,828..832,838..855,859..865,869..871,879..880,888..889,900..907,909..920,
    929..932,938..943,948..949,959,969..971,979..988,990..994,998..1000,1008..1009,1019..1033,1039..1040,1048..1049,1100..1106,1108..1113,
    1118..1125,1128..1129,1149..1151,1159..1162,1170..1179,1189,1200..1203,1208..1216,1218..1236,1238..1239,1249..1257,1259..1263,1268..1281,
    1288..1289,1299,1309..1310,1318..1323,1329..1330,1338..1342,1348..1349,1359..1365,1368..1374,1389..1391,1398,1400..1401,1403..1406,
    1408..1416,1418..1422,1428..1431,1438..1441,1448..1456,1458..1473,1478..1483,1488..1491,1498..1505,1508..1516,1518..1523,1528..1543,
    1548,1550..1552,1560..1562,1568..1574,1578..1580,1588..1591,1598..1605,1608..1613,1618..1620,1622..1625,1628..1631,1638..1643,1648..1650,
    1658..1659,1700..1710,1712..1746,1748..1749,1759,1799..1801,1808..1809,1819..1821,1828,1830,1832..1835,1838..1844,1848..1849,1859..1860,
    1869,1871..1894,1898..1923,1928..1929,1939..1941,1943..1946,1948..1955,1958,1960..1963,1965..1966,1968..1978,1980..1988,1990..1991,
    2000..2002,2008,2010..2012,2014..2017,2019..2026,2028..2031,2038,2040..2042,2048..2053,2058..2062,2068..2072,2078,2080..2082,2088..2089,
    2100..2139,2149..2150,2152..2169,2179,2189..2191,2198..2199,2209..2212,2218..2224,2228..2233,2238..2254,2258..2259,2269..2271,2273..2276,
    2278..2281,2290,2298..2312,2318..2337,2339..2340,2348..2367,2369..2377,2379..2400,2409..2411,2419..2424,2428..2429,2439..2443,2448..2454,
    2458..2463,2468..2469,2500..2507,2509..2515,2518..2521,2528..2541,2548..2556,2558..2564,2568..2572,2578..2581,2588..2594,2598..2599,2609,
    2619,2629..2632,2638..2652,2660..2662,2669,2679..2682,2689..2693,2698..2714,2718..2733,2738..2741,2748..2754,2758..2776,2778..2784,2788,
    2790..2794,2798..2799,2809..2814,2818..2832,2839..2840,2848..2851,2858..2867,2869..2875,2878..2883,2888..2904,2908..2915,2918..2922,
    2928..2931,2938..2940,2948..2966,2968..2973,2978..2984,2988..2991,2998..3029,3039..3084,3089..3094,3098..3102,3108..3109,3119..3123,
    3128..3133,3138..3142,3148..3155,3158..3159,3169,3179..3182,3199..3203,3208..3209,3220..3222,3229,3235,3238..3241,3249,3259,3269,
    3300..3301,3308..3314,3318..3321,3330..3343,3348..3352,3358..3361,3368..3370,3379,3409..3411,3418..3421,3429..3434,3438..3446,3448..3462,
    3468..3469,3479..3485,3488..3492,3498..3499,3501..3502,3508..3511,3518..3526,3529..3536,3538..3545,3548..3564,3568..3570,3575..3580,3582,
    3588..3594,3598..3606,3608..3613,3618..3619,3621..3656,3658..3665,3668..3675,3678..3686,3688..3693,3696..3700,3702..3706,3708..3733,
    3738..3745,3748..3756,3758..3761,3763..3766,3768..3777,3779..3795,3798..3805,3808..3824,3829..3833,3838..3842,3848..3853,3858..3865,
    3868..3872,3878..3892,3897..3899,3909..3912,3918..3920,3929,3939..3942,3949..3952,3959,3969..3971,3979..3980,3989,4010..4011,4019..4021,
    4029..4031,4039..4041,4049,4109,4119,4129,4139..4141,4148..4151,4160..4161,4168..4171,4178..4179,4209..4210,4219,4229..4232,4238..4243,
    4249..4255,4259..4276,4278..4281,4289..4296,4298..4299,4309,4319..4321,4329..4333,4338..4341,4349,4359,4369..4376,4378..4379,4389,
    4400..4402,4408..4416,4420..4423,4428..4431,4438..4442,4448..4449,4460..4467,4470..4476,4478..4481,4489,4510..4512,4518..4519,4529..4533,
    4538..4542,4549..4561,4563..4566,4568,4570..4572,4578..4581,4589..4592,4598..4599,4609..4613,4618..4619,4629,4639..4644,4650,4658..4661,
    4709..4711,4718..4722,4730..4733,4738..4742,4748..4749,4759..4761,4770,4778..4789,4800..4802,4808..4809,4819..4824,4828..4829,4839,4859,
    4869..4871,4878,4909..4912,4918..4919,4929..4931,4939,4949..4959,4969,5009,5019,5029,5039,5049,5059..5064,5069..5071,5078,5080..5081,
    5088..5089,5100,5109..5111,5118..5119,5129..5131,5149,5159..5160,5162..5163,5168..5169,5180..5185,5188,5190..5194,5198..5236,5238..5246,
    5248..5253,5258..5265,5268..5296,5298..5317,5319..5327,5329..5337,5339..5347,5349..5356,5360..5362,5368..5376,5378..5379,5400..5401,5409,
    5419,5429,5439,5500..5501,5509..5513,5518..5523,5528..5533,5538..5539,5550..5552,5559,5569..5571,5579,5589,5600..5603,5608..5609,
    5620..5621,5640..5651,5669,5671..5672,5678..5680,5688..5696,5698..5699,5709..5716,5718..5724,5728,5730,5733..5734,5738..5745,5750..5756,
    5758..5765,5768..5772,5778..5781,5789..5794,5798..5800,5804,5808..5813,5818..5822,5824,5828..5832,5834,5836..5839,5845..5849,5859,5869,
    5879..5881,5888..5891,5899..5903,5908..5909,5919..5921,5929..5942,5948..5953,5958..5970,5978,5980..5982,5988..5999,6009..6013,6018..6022,
    6028..6031,6038..6040,6049,6059,6069..6073,6078..6084,6088..6089,6100..6104,6108..6119,6140..6151,6159..6165,6168..6176,6178..6192,
    6198..6246,6248..6256,6258..6274,6278..6280,6282..6284,6288..6291,6298..6299,6309,6319,6329..6332,6338..6396,6398..6399,6409,6419..6427,
    6429,6439,6449,6459..6476,6478..6489,6509,6519,6529,6539,6549,6559,6569,6579,6589,6599,6609,6619,6629,6639,6649,6659,6669,6679,
    6689,6699,6709,6719,6729,6739,6749,6759,6769,6800..6811,6819..6829,6839,6849..6851,6860..6861,6868..6869,6909..6910,6918,6920..6931,
    6938..6946,6948..6954,6958..6965,6968,6970..6971,6978..6984,6988..6989,7009..7015,7018..7019,7029..7030,7038..7043,7048..7051,7058..7063,
    7068..7071,7078..7085,7088..7094,7098..7104,7108..7110,7119,7128..7129,7140..7144,7148..7153,7158..7166,7168..7186,7188..7202,7208..7249,
    7259..7276,7278..7296,7298..7303,7309..7310,7312,7320..7339,7349..7355,7358..7373,7378..7402,7410,7419..7425,7428..7436,7438..7445,
    7448..7476,7478..7486,7488..7492,7500..7548,7550..7556,7558..7576,7578..7642,7649..7651,7660..7662,7670..7679,7682..7686,7689,7699..7718,
    7720..7726,7728..7735,7741..7747,7750..7769,7771..7776,7778..7796,7798..7817,7819..7836,7839..7856,7859..7877,7879..7895,7899..7917,
    7919..7924,7929..7958,7960..7964,7969,7979..7982,7989..7994,7998..8003,8008..8013,8018..8023,8028..8033,8038..8043,8048..8053,8058..8063,
    8068..8073,8078..8079,8100..8264,8268..8274,8278..8284,8288..8294,8298..8306,8308..8316,8318..8326,8328..8336,8338..8346,8348..8356,
    8358..8366,8368..8376,8378..8386,8388..8389,8400..8459,8469,8479,8489,8500..8505,8508..8509,8519..8525,8528..8532,8538..8543,8550..8556,
    8558..8559,8569,8579..8589,8600..8604,8608..8616,8619..8624,8629..8644,8650..8655,8658..8669,8679..8683,8688..8693,8698..8726,8728..8736,
    8738..8745,8748..8752,8758..8765,8768..8769,8780..8786,8788..8800,8809..8811,8829..8832,8839..8842,8849,8859..8860,8869,8879,8889,
    8900..8903,8908..8913,8918..8919,8929..8932,8938..8939,8949,8959,8969,8979..8981,8999..9001,9009..9011,9018..9022,9028..9029,9039..9043,
    9049..9064,9068..9069,9079,9089,9099..9104,9108..9109,9119,9129..9133,9138..9139,9149,9159,9169..9172,9179,9189..9204,9208..9211,
    9218..9223,9228..9232,9238..9241,9248..9252,9258..9265,9268..9269,9279..9282,9288..9295,9298..9335,9338..9355,9358..9364,9370..9376,
    9378..9387,9389..9401,9408..9413,9419..9436,9438..9447,9450..9458,9460..9474,9478..9486,9488..9497,9499..9511,9518,9520..9521,9528..9531,
    9538..9539,9549..9555,9559,9569..9572,9579..9589,9599..9601,9619..9622,9629,9639,9649..9659,9669..9671,9679..9684,9688..9689,9699,
    9709,9719,9729,9739,9749,9759,9769,9779,9789,9800..9811,9818,9820..9821,9828..9831,9838..9839,9849..9855,9869..9872,9879..9889,
    9899..9900,9909..9913,9919,9929,9939,9949,9959,9969..9972,9978..9979,9989,9999
]]]></entry>
        <entry id="If108_AllOtherSites" type="java"><![CDATA[[142..148, 170..179, 239, 240..249, 260..269, 300..301, 310..319, 339, 379, 380..388, 390..399, 480..488,
        510..519, 529, 570..579, 589, 600..609, 630..639, 680..689, 690..699, 740..749, 750..759
]]]></entry>
        <entry id="IF108_Hist_List_2010" type="java"><![CDATA[[9727,9733,9741..9742,9764..9809,9832,9840..9931,9945..9946,9950..9967,9975..9992]]]></entry>
        <entry id="IF108_Hist_List_Pre2010" type="java"><![CDATA[[9750,9760..9764,9800..9820,9826,9831..9920,9931..9964,9980..9989]]]></entry>
        <entry id="IF108SiteReferenceTable" type="java"><![CDATA[[
    [0..6,8..9,19..24,28..31,39..41,48..52,58..62,68..69] : [0,10,11,12,13,14,20,21,22,23,24,25,26,27,30,40,41,42,43,90,99],
    [79..81,88..89] : [0,10,11,12,13,14,20,21,22,23,24,25,26,27,30,31,32,33,34,35,36,37,38,40,41,42,50,51,52,53,80,90,99],
    [90..91,98..104,108..113,118..119,129..132,138..140] : [0,10,11,12,13,14,15,20,21,22,23,24,25,26,27,28,30,31,32,40,41,42,43,50,51,52,90,99],
    [150..155,158..159] : [0,10,11,12,13,14,20,21,22,23,24,25,26,27,30,40,50,51,52,53,54,55,80,90,99],
    [160..166,168..169] : [0,10,11,12,13,14,20,21,22,23,24,25,26,27,30,31,32,33,40,41,42,50,51,52,60,61,62,63,80,90,99],
    [180..189] : [0,10,11,12,13,14,20,21,22,23,24,25,26,27,28,29,30,32,40,41,50,51,60,61,70,80,90,99],
    [199] : [0,10,11,12,13,14,20,21,22,23,24,25,26,27,30,31,40,50,51,55,56,57,60,65,66,70,80,90,99],
    [209] : [0,10,11,12,13,14,20,21,22,23,24,25,26,27,28,30,40,50,60,70,80,90,99],
    [210..212,218] : [0,10,11,12,13,14,15,20,21,22,23,24,25,26,27,60,61,62,63,90,99],
    [220..221] : [0,10,11,12,13,14,15,16,17,20,21,22,23,24,25,26,30,36,37,38,50,51,52,59,60,61,65,66,75,90,99],
    [250..254,257..259] : [0,25,30,35,36,37,40,60,70,80,90,99],
    [320..323,328..329] : [0,10,11,12,13,14,15,20,21,22,23,24,25,26,27,28,30,31,32,33,40,41,42,50,80,90,99],
    [340..343,348..349] : [0,12,13,15,19,20,21,22,23,24,25,30,33,45,46,47,48,55,56,65,66,70,80,90,99],
    [400..403,408..414,418..419,470..476,478..479,490..496,498..499] : [0,15,19,25,26,30,40,41,42,50,51,52,53,54,90,99],
    [770..775,778..779] : [0,15,19,25,30,31,32,40,41,42,50,51,52,60,61,62,90,99],
    [440..449] : [0,10,11,12,13,14,20,21,22,23,24,25,26,27,30,31,32,33,34,35,36,45,46,47,60,90,99],
    [500..506,508..509] : [0,19,20,21,22,23,24,30,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,80,90,99],
    [530..531,538..539] : [0,10,11,12,13,14,15,16,17,20,21,22,23,24,25,26,27,28,29,30,40,50,51,52,53,54,60,61,62,70,71,72,73,74,90,99],
    [540..543,548..549,559] : [0,10,11,12,13,14,15,16,19,20,21,22,23,24,25,26,30,31,32,40,50,60,61,62,63,64,65,66,67,75,76,77,78,79,90,99],
    [569] : [0,17,25,26,27,28,35,36,37,50,51,52,55,56,57,60,61,62,63,70,71,72,73,74,80,90,99],
    [619] : [0,10,14,15,16,17,18,19,20,21,22,23,24,25,26,30,50,70,80,90,99],
    [620..621,629] : [0,12,20,30,40,80,90,99],
    [649,659,669] : [0,10,11,12,13,14,15,20,21,22,23,24,25,26,27,30,40,50,70,80,90,99],
    [670..679] : [0,10,11,12,13,14,15,16,20,21,22,23,24,25,26,27,30,50,60,61,62,63,64,70,71,72,73,74,80,90,99],
    [700..701,709..725,728..729] : [0,10,20,21,22,30,40,55,90,99],
    [739] : [0,13,20,21,22,23,25,26,27,30,40,50,80,90,99],
    [142,148,170..173,178..179,239..241,248..249,260,268..269,300..301,310..313,318..319,339,379..384,388,390,398..399,480..482,488,510..512,518..519,529,570..574,577..579,589,600..602,608..609,630..632,637..639,680..681,688..689,740..741,749..755,758..759] : [0,10,11,12,13,14,20,21,22,23,24,25,26,27,30,40,50,60,90,99],
    [420..421,423..424] : [98,99],
    [760..765,767..768,809] : [98,99],
    [422] : [0,19,21,22,80,90,99],
    [690..696,698..699] : [0,10,11,12,13,14,20,21,22,23,24,25,26,27,30,40,41,50,60,90,99]
]]]></entry>
        <entry id="IF122_Stated_As_Codes" type="java"><![CDATA[[
    'adrenal_gland'       :[200,250],
    'anus'               :[310,320,330],
    'bone'               :[310,350],
    'breast'             :[110,130,140,170,180],
    'buccal_mucosa'       :[405,410,415],
    'carcinoid_appendix'  :[320,330,335],
    'floor_mouth'         :[405,410,41],
    'gist_appendix'       :[170,210,250,270],
    'gist_colon'          :[170,210,250,270],
    'gist_esophagus'      :[170,210,250,270],
    'gist_peritoneum'     :[350,360,370,380],
    'gist_rectum'         :[170,210,250,270],
    'gist_small_intestine' :[170,210,250,270],
    'gist_stomach'        :[340,390,395,398],
    'gum_lower'           :[405,410,415],
    'gum_other'           :[405,410,415],
    'gum_upper'           :[405,410,415],
    'heart_mediastinum'   :[350,375],
    'hypopharynx'        :[305],
    'kidney_parenchyma'   :[310,320,330,340,350,360],
    'lacrimal_gland'      :[610,620,630],
    'lip_lower'           :[405,410,415],
    'lip_other'           :[405,410,415],
    'lip_upper'           :[405,410,415],
    'lung'               :[115,120,125],
    'merkel_cell_penis'    :[330,560,570],
    'merkel_cell_scrotum'  :[310,320,330],
    'merkel_cell_skin'     :[600,610,620],
    'merkel_cell_vulva'    :[450,460,470],
    'mouth_other'         :[405,410,415],
    'net_ampulla'         :[310,430],
    'net_colon'           :[170,180,190],
    'net_rectum'          :[170,180,190],
    'net_small_intestine'  :[170],
    'net_stomach'         :[170],
    'orbit'              :[200,300],
    'oropharynx'         :[305,310],
    'palate_hard'         :[405,410,415],
    'palate_soft'         :[405,410],
    'pancreas_body_tail'   :[150,200],
    'pancreas_head'       :[150,200],
    'pancreas_other'      :[150,200],
    'parotid_gland'       :[305,310],
    'peritoneum'         :[350,375],
    'pharyngeal_tonsil'   :[330,350],
    'retroperitoneum'    :[350,375],
    'salivary_gland_other' :[305,310],
    'scrotum'            :[310],
    'skin'               :[510],
    'soft_tissue'         :[302,312,322],
    'submandibular_gland' :[305,310],
    'thyroid'            :[405,410,415,420],
    'tongue_anterior'     :[405,410,415],
    'tongue_base'         :[405,410]
]]]></entry>
        <entry id="IF180CertainSites" type="java"><![CDATA[[420,421,423,424,700..729,760..768,809]]]></entry>
        <entry id="IF180Hist1Bypass" type="java"><![CDATA[[9750,9760..9764,9800..9820,9826,9831..9920,9931..9964]]]></entry>
        <entry id="IF180Hist2" type="java"><![CDATA[[9590..9729]]]></entry>
        <entry id="If25_3_SiteReferenceTable" type="java"><![CDATA[[
[0, 1, 2, 3, 4, 5, 6, 8, 9] : [2 : HistTable_001, 3 : HistTable_002],
[19] : [2 : HistTable_003, 3 : HistTable_004],
[20, 21, 22, 23, 24, 28, 29] : [2 : HistTable_005, 3 : HistTable_006],
[30, 31, 39, 40, 41, 48, 49, 50, 51, 52, 58, 59, 60, 61, 62, 68, 69] : [2 : HistTable_007, 3 : HistTable_008],
[79, 80, 81, 88, 89] : [2 : HistTable_009, 3 : HistTable_010],
[90, 91, 98, 99, 100, 101, 102, 103, 104, 108, 109] : [2 : HistTable_011, 3 : HistTable_012],
[110] : [2 : HistTable_013, 3 : HistTable_014],
[111] : [2 : HistTable_015, 3 : HistTable_016],
[112, 113, 118, 119] : [2 : HistTable_017, 3 : HistTable_018],
[129, 130, 131, 132, 138, 139] : [2 : HistTable_019, 3 : HistTable_020],
[140, 142, 148] : [2 : HistTable_021, 3 : HistTable_022],
[150, 151, 152, 153, 154, 155, 158, 159] : [2 : HistTable_023, 3 : HistTable_024],
[160, 161, 162, 163, 164, 165, 166, 168, 169] : [2 : HistTable_025, 3 : HistTable_026],
[170, 171, 172, 173, 178, 179] : [2 : HistTable_027, 3 : HistTable_028],
[180] : [2 : HistTable_029, 3 : HistTable_030],
[181] : [2 : HistTable_031, 3 : HistTable_032],
[182, 183, 184, 185, 186, 187, 188, 189, 199] : [2 : HistTable_033, 3 : HistTable_034],
[209] : [2 : HistTable_035, 3 : HistTable_036],
[210, 211, 212, 218] : [2 : HistTable_037, 3 : HistTable_038],
[220] : [2 : HistTable_039, 3 : HistTable_040],
[221] : [2 : HistTable_041, 3 : HistTable_042],
[239, 240, 241, 248, 249] : [2 : HistTable_043, 3 : HistTable_044],
[250, 251, 252, 253, 254, 257, 258, 259] : [2 : HistTable_045, 3 : HistTable_046],
[260, 268, 269] : [2 : HistTable_047, 3 : HistTable_048],
[300] : [2 : HistTable_049, 3 : HistTable_050],
[301] : [2 : HistTable_051, 3 : HistTable_052],
[310, 311, 312, 313, 318] : [2 : HistTable_053, 3 : HistTable_054],
[319] : [2 : HistTable_055, 3 : HistTable_056],
[320, 321, 322, 323, 328, 329] : [2 : HistTable_057, 3 : HistTable_058],
[339] : [2 : HistTable_059, 3 : HistTable_060],
[340, 341, 342, 343, 348, 349] : [2 : HistTable_061, 3 : HistTable_062],
[379] : [2 : HistTable_063, 3 : HistTable_064],
[380] : [3 : HistTable_065],
[381, 382, 383] : [3 : HistTable_066],
[384] : [2: [9050], 3 : HistTable_067],
[388] : [3 : HistTable_068],
[390, 398, 399] : [2 : HistTable_069, 3 : HistTable_070],
[400, 401, 402, 403, 408, 409] : [3 : HistTable_071],
[410, 411] : [3 : HistTable_072],
[412, 413, 414, 418, 419] : [3 : HistTable_073],
[420, 421] : [3 : HistTable_074],
[422] : [3 : HistTable_075],
[423] : [3 : HistTable_076],
[424] : [3 : HistTable_077],
[440, 441, 442, 443, 444, 445, 446, 447, 448, 449] : [2 : HistTable_078, 3 : HistTable_079],
[470, 471, 472, 473, 474, 475, 476, 478, 479] : [3 : HistTable_080],
[480, 481, 482, 488] : [2: [9050], 3 : HistTable_081],
[490, 491, 492, 493, 494, 495, 496, 498, 499] : [3 : HistTable_082],
[500, 501, 502, 503, 504, 505, 506, 508, 509] : [2 : HistTable_083, 3 : HistTable_084],
[510, 511, 512, 518] : [2 : HistTable_085, 3 : HistTable_086],
[519] : [2 : HistTable_087, 3 : HistTable_088],
[529] : [2 : HistTable_089, 3 : HistTable_090],
[530, 531, 538, 539] : [2 : HistTable_091, 3 : HistTable_092],
[540, 541, 542, 543, 548, 549] : [2 : HistTable_093, 3 : HistTable_094],
[559] : [2 : HistTable_095, 3 : HistTable_096],
[569] : [1 : HistTable_097, 2 : HistTable_098, 3 : HistTable_099],
[570] : [2 : HistTable_100, 3 : HistTable_101],
[571, 572, 573, 574, 577, 578, 579] : [2 : HistTable_102, 3 : HistTable_103],
[589] : [3 : HistTable_104],
[600, 601, 602, 608, 609] : [2 : HistTable_105, 3 : HistTable_106],
[619] : [2 : HistTable_107, 3 : HistTable_108],
[620, 621, 629] : [2 : HistTable_109, 3 : HistTable_110],
[630, 631] : [2 : HistTable_111, 3 : HistTable_112],
[632] : [2 : HistTable_113, 3 : HistTable_114],
[637, 638, 639] : [2 : HistTable_115, 3 : HistTable_116],
[649] : [2 : HistTable_117, 3 : HistTable_118],
[659, 669] : [2 : HistTable_119, 3 : HistTable_120],
[670, 671, 672, 673, 674, 675, 676, 677, 678, 679] : [2 : HistTable_121, 3 : HistTable_122],
[680, 681, 688, 689] : [2 : HistTable_123, 3 : HistTable_124],
[690, 691] : [2 : HistTable_125, 3 : HistTable_126],
[692] : [2 : HistTable_127, 3 : HistTable_128],
[693, 694, 695, 696, 697, 698] : [2 : HistTable_129, 3 : HistTable_130],
[699] : [2 : HistTable_131, 3 : HistTable_132],
[700, 701, 709] : [0 : HistTable_133, 1 : HistTable_134, 3 : HistTable_135],
[710, 711, 712, 713, 714] : [0 : HistTable_136, 1 : HistTable_137, 3 : HistTable_138],
[715] : [0 : HistTable_139, 1 : HistTable_140, 3 : HistTable_141],
[716] : [0 : HistTable_142, 1 : HistTable_143, 3 : HistTable_144],
[717, 718, 719, 720, 721, 722, 723, 724, 725] : [0 : HistTable_145, 1 : HistTable_146, 3 : HistTable_147],
[728, 729] : [0 : HistTable_148, 1 : HistTable_149, 3 : HistTable_150],
[739] : [2 : HistTable_151, 3 : HistTable_152],
[740, 741, 749] : [2 : HistTable_153, 3 : HistTable_154],
[750] : [2 : HistTable_155, 3 : HistTable_156],
[751] : [0 : HistTable_157, 1 : HistTable_158, 2 : HistTable_159, 3 : HistTable_160],
[752] : [0 : HistTable_161, 1 : HistTable_162, 2 : HistTable_163, 3 : HistTable_164],
[753] : [0 : HistTable_165, 1 : HistTable_166, 3 : HistTable_167],
[754, 755, 758, 759] : [2 : HistTable_168, 3 : HistTable_169],
[760, 761, 762, 763, 764, 765, 766, 767, 768] : [2 : HistTable_170, 3 : HistTable_171],
[770, 771, 772, 773, 774, 775, 778, 779] : [3 : HistTable_172],
[809] : [2 : HistTable_173, 3 : HistTable_174]
]]]></entry>
        <entry id="If2610DG_HIST_INSITU_EXT" type="java"><![CDATA[[
    [9510..9512] : IF26_10DG_INSITU_EXT_Table1,
    [9140] : IF26_10DG_INSITU_EXT_Table5,
    [9590..9595,9650..9698,9702..9717] : IF26_10DG_INSITU_EXT_Table5,
    [9720,9722..9723,9732,9741,9760..9763,9765..9768,9800..9929,9931..9941,9950..9989] : IF26_10DG_INSITU_EXT_Table5,
    [9731,9740,9764,9930] : IF26_10DG_INSITU_EXT_Table5
]]]></entry>
        <entry id="If2610DG_HIST_INSITU_POS_NODES" type="java"><![CDATA[[
    [9510..9512] : IF26_10DG_Nodes_Pos_Table2,
    [9140] : IF26_10DG_Nodes_Pos_Table1,
    [9590..9595,9650..9698,9702..9717] : IF26_10DG_Nodes_Pos_Table1,
    [9720,9722..9723,9732,9741,9760..9763,9765..9768,9800..9929,9931..9941,9950..9989] : IF26_10DG_Nodes_Pos_Table1,
    [9731,9740,9764,9930] : IF26_10DG_Nodes_Pos_Table1
]]]></entry>
        <entry id="If2610DG_HIST_INSITU_REG_EXAM" type="java"><![CDATA[[
    [9510..9512] : IF26_10DG_Reg_Exam_Table2,
    [9140] : IF26_10DG_Reg_Exam_Table1,
    [9590..9595,9650..9698,9702..9717] : IF26_10DG_Reg_Exam_Table1,
    [9720,9722..9723,9732,9741,9760..9763,9765..9768,9800..9929,9931..9941,9950..9989] : IF26_10DG_Reg_Exam_Table1,
    [9731,9740,9764,9930] : IF26_10DG_Reg_Exam_Table1
]]]></entry>
        <entry id="If2610DG_HIST_MALIG_EXT" type="java"><![CDATA[[
    [9510..9512] : IF26_10DG_MALIG_EXT_Table15,
    [9140] : IF26_10DG_MALIG_EXT_Table57,
    [9590..9595,9650..9699,9702..9719,9727] : IF26_10DG_MALIG_EXT_Table11,
    [9720,9722..9723,9732,9733,9741,9742,9750,9751,9754,9755,9760..9763,9765..9768,9800..9929,9931..9945,9950..9989] : IF26_10DG_MALIG_EXT_Table59,
    [9731,9734,9740,9764,9930] : IF26_10DG_MALIG_EXT_Table56
]]]></entry>
        <entry id="If2610DG_HIST_MALIG_POS_NODES" type="java"><![CDATA[[
    [9510..9512] : IF26_10DG_Nodes_Pos_Table3,
    [9140] : IF26_10DG_Nodes_Pos_Table3,
    [9590..9595,9650..9698,9702..9717] : IF26_10DG_Nodes_Pos_Table3,
    [9720,9722..9723,9732,9741,9760..9763,9765..9768,9800..9929,9931..9941,9950..9989] : IF26_10DG_Nodes_Pos_Table4,
    [9731,9740,9764,9930] : IF26_10DG_Nodes_Pos_Table4
]]]></entry>
        <entry id="If2610DG_HIST_MALIG_REG_EXAM" type="java"><![CDATA[[
    [9510..9512] : IF26_10DG_Reg_Exam_Table3,
    [9140] : IF26_10DG_Reg_Exam_Table3,
    [9590..9595,9650..9698,9702..9717] : IF26_10DG_Reg_Exam_Table3,
    [9720,9722..9723,9732,9741,9760..9763,9765..9768,9800..9929,9931..9941,9950..9989] : IF26_10DG_Reg_Exam_Table4,
    [9731,9740,9764,9930] : IF26_10DG_Reg_Exam_Table4
]]]></entry>
        <entry id="If2610DG_HIST_SITE_INSITU_EXT" type="java"><![CDATA[[
    [8720..8790] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DG_INSITU_EXT_Table1,
            [690] : IF26_10DG_INSITU_EXT_Table1,
            [691..694,698..699] : IF26_10DG_INSITU_EXT_Table1],
    [9700..9701] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DG_INSITU_EXT_Table5]
]]]></entry>
        <entry id="If2610DG_HIST_SITE_INSITU_POS_NODES" type="java"><![CDATA[[
    [8720..8790] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DG_Nodes_Pos_Table2,
            [690] : IF26_10DG_Nodes_Pos_Table2,
            [691..694,698..699] : IF26_10DG_Nodes_Pos_Table2],
    [9700..9701] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DG_Nodes_Pos_Table1]
]]]></entry>
        <entry id="If2610DG_HIST_SITE_INSITU_REG_EXAM" type="java"><![CDATA[[
    [8720..8790] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DG_Reg_Exam_Table2,
            [690] : IF26_10DG_Reg_Exam_Table2,
            [691..694,698..699] : IF26_10DG_Reg_Exam_Table2],
    [9700..9701] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DG_Reg_Exam_Table1]
]]]></entry>
        <entry id="If2610DG_HIST_SITE_MALIG_EXT" type="java"><![CDATA[[
    [8720..8790] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DG_MALIG_EXT_Table12,
            [690] : IF26_10DG_MALIG_EXT_Table14,
            [691..694,698..699] : IF26_10DG_MALIG_EXT_Table13],
    [9700..9701] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DG_MALIG_EXT_Table19]
]]]></entry>
        <entry id="If2610DG_HIST_SITE_MALIG_POS_NODES" type="java"><![CDATA[[
    [8720..8790] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DG_Nodes_Pos_Table3,
            [690] : IF26_10DG_Nodes_Pos_Table3,
            [691..694,698..699] : IF26_10DG_Nodes_Pos_Table3],
    [9700..9701] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DG_Nodes_Pos_Table3]
]]]></entry>
        <entry id="If2610DG_HIST_SITE_MALIG_REG_EXAM" type="java"><![CDATA[[
    [8720..8790] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DG_Reg_Exam_Table3,
            [690] : IF26_10DG_Reg_Exam_Table3,
            [691..694,698..699] : IF26_10DG_Reg_Exam_Table3],
    [9700..9701] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DG_Reg_Exam_Table3]
]]]></entry>
        <entry id="If2610DG_HIST_SITE_SIZE" type="java"><![CDATA[[
    [8720..8790] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DG_Size_Table1,
            [690] : IF26_10DG_Size_Table1,
            [691..694,698..699] : IF26_10DG_Size_Table1],
    [9700..9701] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DG_Size_Table4]
]]]></entry>
        <entry id="If2610DG_HIST_SIZE" type="java"><![CDATA[[
    [9510..9512] : IF26_10DG_Size_Table1,
    [9140] : IF26_10DG_Size_Table5,
    [9590..9595,9650..9698,9702..9717] : IF26_10DG_Size_Table5,
    [9720,9722..9723,9732,9741,9760..9763,9765..9768,9800..9929,9931..9941,9950..9989] : IF26_10DG_Size_Table6,
    [9731,9740,9764,9930] : IF26_10DG_Size_Table6
]]]></entry>
        <entry id="If2610DG_SITE_INSITU_EXT" type="java"><![CDATA[[
    [0..6,8..9] : IF26_10DG_INSITU_EXT_Table1,
    [19,24] : IF26_10DG_INSITU_EXT_Table1,
    [20..23,28..29] : IF26_10DG_INSITU_EXT_Table1,
    [79..81,88..89] : IF26_10DG_INSITU_EXT_Table1,
    [30..31,39,62] : IF26_10DG_INSITU_EXT_Table1,
    [40..41,48..49] : IF26_10DG_INSITU_EXT_Table1,
    [60..61] : IF26_10DG_INSITU_EXT_Table1,
    [50] : IF26_10DG_INSITU_EXT_Table1,
    [51..52] : IF26_10DG_INSITU_EXT_Table1,
    [58..59,68..69] : IF26_10DG_INSITU_EXT_Table1,
    [98..99,90..91,100..104,108..109] : IF26_10DG_INSITU_EXT_Table1,
    [110..113,118..119] : IF26_10DG_INSITU_EXT_Table1,
    [129..132,138..139,141] : IF26_10DG_INSITU_EXT_Table1,
    [140,142,148] : IF26_10DG_INSITU_EXT_Table1,
    [150..155,158..159] : IF26_10DG_INSITU_EXT_Table1,
    [160..166,168..169] : IF26_10DG_INSITU_EXT_Table3,
    [170..173,178..179] : IF26_10DG_INSITU_EXT_Table3,
    [180..189] : IF26_10DG_INSITU_EXT_Table3,
    [199,209] : IF26_10DG_INSITU_EXT_Table3,
    [210..212,218] : IF26_10DG_INSITU_EXT_Table1,
    [220..221] : IF26_10DG_INSITU_EXT_Table1,
    [239,248..249] : IF26_10DG_INSITU_EXT_Table1,
    [240] : IF26_10DG_INSITU_EXT_Table1,
    [241] : IF26_10DG_INSITU_EXT_Table1,
    [250..254] : IF26_10DG_INSITU_EXT_Table1,
    [257..259] : IF26_10DG_INSITU_EXT_Table1,
    [480..482,488] : IF26_10DG_INSITU_EXT_Table5,
    [260,268..269] : IF26_10DG_INSITU_EXT_Table1,
    [300,301] : IF26_10DG_INSITU_EXT_Table1,
    [310] : IF26_10DG_INSITU_EXT_Table1,
    [311..313,318..319] : IF26_10DG_INSITU_EXT_Table1,
    [320..323,328..329] : IF26_10DG_INSITU_EXT_Table1,
    [339] : IF26_10DG_INSITU_EXT_Table1,
    [340..343,348..349] : IF26_10DG_INSITU_EXT_Table1,
    [384] : IF26_10DG_INSITU_EXT_Table5,
    [380..383,388] : IF26_10DG_INSITU_EXT_Table5,
    [390,398..399] : IF26_10DG_INSITU_EXT_Table5,
    [400..403,408..409,410..414,418..419] : IF26_10DG_INSITU_EXT_Table5,
    [470..476,478..479,490..496,498..499] : IF26_10DG_INSITU_EXT_Table5,
    [440,442..449] : IF26_10DG_INSITU_EXT_Table1,
    [500..506,508..509] : IF26_10DG_INSITU_EXT_Table3,
    [530..531,538..539] : IF26_10DG_INSITU_EXT_Table2,
    [540..543,548..549,559,589] : IF26_10DG_INSITU_EXT_Table1,
    [569] : IF26_10DG_INSITU_EXT_Table1,
    [570..574] : IF26_10DG_INSITU_EXT_Table1,
    [529] : IF26_10DG_INSITU_EXT_Table1,
    [510..512,518..519] : IF26_10DG_INSITU_EXT_Table1,
    [577..579] : IF26_10DG_INSITU_EXT_Table1,
    [619] : IF26_10DG_INSITU_EXT_Table1,
    [620..621,629] : IF26_10DG_INSITU_EXT_Table1,
    [600..601,608..609] : IF26_10DG_INSITU_EXT_Table3,
    [602,630..632,637..639] : IF26_10DG_INSITU_EXT_Table1,
    [670..679] : IF26_10DG_INSITU_EXT_Table4,
    [649] : IF26_10DG_INSITU_EXT_Table1,
    [659,669,688..689] : IF26_10DG_INSITU_EXT_Table3,
    [680..681] : IF26_10DG_INSITU_EXT_Table3,
    [690] : IF26_10DG_INSITU_EXT_Table1,
    [691..694,698..699] : IF26_10DG_INSITU_EXT_Table1,
    [696] : IF26_10DG_INSITU_EXT_Table1,
    [695] : IF26_10DG_INSITU_EXT_Table1,
    [700,710..719] : IF26_10DG_INSITU_EXT_Table1,
    [701,709,720..725,728..729] : IF26_10DG_INSITU_EXT_Table5,
    [739] : IF26_10DG_INSITU_EXT_Table1,
    [379,740..741,749,750..755,758..759] : IF26_10DG_INSITU_EXT_Table1,
    [809,760..765,767..768,770..775,778..779,420..424] : IF26_10DG_INSITU_EXT_Table5,
    [441] : IF26_10DG_INSITU_EXT_Table1
]]]></entry>
        <entry id="If2610DG_SITE_INSITU_POS_NODES" type="java"><![CDATA[[
    [0..6,8..9] : IF26_10DG_Nodes_Pos_Table2,
    [19,24] : IF26_10DG_Nodes_Pos_Table2,
    [20..23,28..29] : IF26_10DG_Nodes_Pos_Table2,
    [79..81,88..89] : IF26_10DG_Nodes_Pos_Table2,
    [30..31,39,62] : IF26_10DG_Nodes_Pos_Table2,
    [40..41,48..49] : IF26_10DG_Nodes_Pos_Table2,
    [60..61] : IF26_10DG_Nodes_Pos_Table2,
    [50] : IF26_10DG_Nodes_Pos_Table2,
    [51..52] : IF26_10DG_Nodes_Pos_Table2,
    [58..59,68..69] : IF26_10DG_Nodes_Pos_Table2,
    [98..99,90..91,100..104,108..109] : IF26_10DG_Nodes_Pos_Table2,
    [110..113,118..119] : IF26_10DG_Nodes_Pos_Table2,
    [129..132,138..139,141] : IF26_10DG_Nodes_Pos_Table2,
    [140,142,148] : IF26_10DG_Nodes_Pos_Table2,
    [150..155,158..159] : IF26_10DG_Nodes_Pos_Table2,
    [160..166,168..169] : IF26_10DG_Nodes_Pos_Table2,
    [170..173,178..179] : IF26_10DG_Nodes_Pos_Table2,
    [180..189] : IF26_10DG_Nodes_Pos_Table2,
    [199,209] : IF26_10DG_Nodes_Pos_Table2,
    [210..212,218] : IF26_10DG_Nodes_Pos_Table2,
    [220..221] : IF26_10DG_Nodes_Pos_Table2,
    [239,248..249] : IF26_10DG_Nodes_Pos_Table2,
    [240] : IF26_10DG_Nodes_Pos_Table2,
    [241] : IF26_10DG_Nodes_Pos_Table2,
    [250..254] : IF26_10DG_Nodes_Pos_Table2,
    [257..259] : IF26_10DG_Nodes_Pos_Table2,
    [480..482,488] : IF26_10DG_Nodes_Pos_Table1,
    [260,268..269] : IF26_10DG_Nodes_Pos_Table2,
    [300,301] : IF26_10DG_Nodes_Pos_Table2,
    [310] : IF26_10DG_Nodes_Pos_Table2,
    [311..313,318..319] : IF26_10DG_Nodes_Pos_Table2,
    [320..323,328..329] : IF26_10DG_Nodes_Pos_Table2,
    [339] : IF26_10DG_Nodes_Pos_Table2,
    [340..343,348..349] : IF26_10DG_Nodes_Pos_Table2,
    [384] : IF26_10DG_Nodes_Pos_Table1,
    [380..383,388] : IF26_10DG_Nodes_Pos_Table1,
    [390,398..399] : IF26_10DG_Nodes_Pos_Table1,
    [400..403,408..409,410..414,418..419] : IF26_10DG_Nodes_Pos_Table1,
    [470..476,478..479,490..496,498..499] : IF26_10DG_Nodes_Pos_Table1,
    [440,442..449] : IF26_10DG_Nodes_Pos_Table2,
    [500..506,508..509] : IF26_10DG_Nodes_Pos_Table2,
    [530..531,538..539] : IF26_10DG_Nodes_Pos_Table2,
    [540..543,548..549,559,589] : IF26_10DG_Nodes_Pos_Table2,
    [569] : IF26_10DG_Nodes_Pos_Table2,
    [570..574] : IF26_10DG_Nodes_Pos_Table2,
    [529] : IF26_10DG_Nodes_Pos_Table2,
    [510..512,518..519] : IF26_10DG_Nodes_Pos_Table2,
    [577..579] : IF26_10DG_Nodes_Pos_Table2,
    [619] : IF26_10DG_Nodes_Pos_Table2,
    [620..621,629] : IF26_10DG_Nodes_Pos_Table2,
    [600..601,608..609] : IF26_10DG_Nodes_Pos_Table2,
    [602,630..632,637..639] : IF26_10DG_Nodes_Pos_Table2,
    [670..679] : IF26_10DG_Nodes_Pos_Table2,
    [649] : IF26_10DG_Nodes_Pos_Table2,
    [659,669,688..689] : IF26_10DG_Nodes_Pos_Table2,
    [680..681] : IF26_10DG_Nodes_Pos_Table2,
    [690] : IF26_10DG_Nodes_Pos_Table2,
    [691..694,698..699] : IF26_10DG_Nodes_Pos_Table2,
    [696] : IF26_10DG_Nodes_Pos_Table2,
    [695] : IF26_10DG_Nodes_Pos_Table2,
    [700,710..719] : IF26_10DG_Nodes_Pos_Table4,
    [701,709,720..725,728..729] : IF26_10DG_Nodes_Pos_Table1,
    [739] : IF26_10DG_Nodes_Pos_Table2,
    [379,740..741,749,750..755,758..759] : IF26_10DG_Nodes_Pos_Table2,
    [809,760..765,767..768,770..775,778..779,420..424] : IF26_10DG_Nodes_Pos_Table1,
    [441] : IF26_10DG_Nodes_Pos_Table2
]]]></entry>
        <entry id="If2610DG_SITE_INSITU_REG_EXAM" type="java"><![CDATA[[
    [0..6,8..9] : IF26_10DG_Reg_Exam_Table2,
    [19,24] : IF26_10DG_Reg_Exam_Table2,
    [20..23,28..29] : IF26_10DG_Reg_Exam_Table2,
    [79..81,88..89] : IF26_10DG_Reg_Exam_Table2,
    [30..31,39,62] : IF26_10DG_Reg_Exam_Table2,
    [40..41,48..49] : IF26_10DG_Reg_Exam_Table2,
    [60..61] : IF26_10DG_Reg_Exam_Table2,
    [50] : IF26_10DG_Reg_Exam_Table2,
    [51..52] : IF26_10DG_Reg_Exam_Table2,
    [58..59,68..69] : IF26_10DG_Reg_Exam_Table2,
    [98..99,90..91,100..104,108..109] : IF26_10DG_Reg_Exam_Table2,
    [110..113,118..119] : IF26_10DG_Reg_Exam_Table2,
    [129..132,138..139,141] : IF26_10DG_Reg_Exam_Table2,
    [140,142,148] : IF26_10DG_Reg_Exam_Table2,
    [150..155,158..159] : IF26_10DG_Reg_Exam_Table2,
    [160..166,168..169] : IF26_10DG_Reg_Exam_Table2,
    [170..173,178..179] : IF26_10DG_Reg_Exam_Table2,
    [180..189] : IF26_10DG_Reg_Exam_Table2,
    [199,209] : IF26_10DG_Reg_Exam_Table2,
    [210..212,218] : IF26_10DG_Reg_Exam_Table2,
    [220..221] : IF26_10DG_Reg_Exam_Table2,
    [239,248..249] : IF26_10DG_Reg_Exam_Table2,
    [240] : IF26_10DG_Reg_Exam_Table2,
    [241] : IF26_10DG_Reg_Exam_Table2,
    [250..254] : IF26_10DG_Reg_Exam_Table2,
    [257..259] : IF26_10DG_Reg_Exam_Table2,
    [480..482,488] : IF26_10DG_Reg_Exam_Table1,
    [260,268..269] : IF26_10DG_Reg_Exam_Table2,
    [300,301] : IF26_10DG_Reg_Exam_Table2,
    [310] : IF26_10DG_Reg_Exam_Table2,
    [311..313,318..319] : IF26_10DG_Reg_Exam_Table2,
    [320..323,328..329] : IF26_10DG_Reg_Exam_Table2,
    [339] : IF26_10DG_Reg_Exam_Table2,
    [340..343,348..349] : IF26_10DG_Reg_Exam_Table2,
    [384] : IF26_10DG_Reg_Exam_Table1,
    [380..383,388] : IF26_10DG_Reg_Exam_Table1,
    [390,398..399] : IF26_10DG_Reg_Exam_Table1,
    [400..403,408..409,410..414,418..419] : IF26_10DG_Reg_Exam_Table1,
    [470..476,478..479,490..496,498..499] : IF26_10DG_Reg_Exam_Table1,
    [440,442..449] : IF26_10DG_Reg_Exam_Table2,
    [500..506,508..509] : IF26_10DG_Reg_Exam_Table2,
    [530..531,538..539] : IF26_10DG_Reg_Exam_Table2,
    [540..543,548..549,559,589] : IF26_10DG_Reg_Exam_Table2,
    [569] : IF26_10DG_Reg_Exam_Table2,
    [570..574] : IF26_10DG_Reg_Exam_Table2,
    [529] : IF26_10DG_Reg_Exam_Table2,
    [510..512,518..519] : IF26_10DG_Reg_Exam_Table2,
    [577..579] : IF26_10DG_Reg_Exam_Table2,
    [619] : IF26_10DG_Reg_Exam_Table2,
    [620..621,629] : IF26_10DG_Reg_Exam_Table2,
    [600..601,608..609] : IF26_10DG_Reg_Exam_Table2,
    [602,630..632,637..639] : IF26_10DG_Reg_Exam_Table2,
    [670..679] : IF26_10DG_Reg_Exam_Table2,
    [649] : IF26_10DG_Reg_Exam_Table2,
    [659,669,688..689] : IF26_10DG_Reg_Exam_Table2,
    [680..681] : IF26_10DG_Reg_Exam_Table2,
    [690] : IF26_10DG_Reg_Exam_Table2,
    [691..694,698..699] : IF26_10DG_Reg_Exam_Table2,
    [696] : IF26_10DG_Reg_Exam_Table2,
    [695] : IF26_10DG_Reg_Exam_Table2,
    [700,710..719] : IF26_10DG_Reg_Exam_Table4,
    [701,709,720..725,728..729] : IF26_10DG_Reg_Exam_Table1,
    [739] : IF26_10DG_Reg_Exam_Table2,
    [379,740..741,749,750..755,758..759] : IF26_10DG_Reg_Exam_Table2,
    [809,760..765,767..768,770..775,778..779,420..424] : IF26_10DG_Reg_Exam_Table1,
    [441] : IF26_10DG_Reg_Exam_Table2
]]]></entry>
        <entry id="If2610DG_SITE_MALIG_EXT" type="java"><![CDATA[[
    [0..6,8..9] : IF26_10DG_MALIG_EXT_Table37,
    [19,24] : IF26_10DG_MALIG_EXT_Table25,
    [20..23,28..29] : IF26_10DG_MALIG_EXT_Table26,
    [79..81,88..89] : IF26_10DG_MALIG_EXT_Table46,
    [30..31,39,62] : IF26_10DG_MALIG_EXT_Table50,
    [40..41,48..49] : IF26_10DG_MALIG_EXT_Table24,
    [60..61] : IF26_10DG_MALIG_EXT_Table36,
    [50] : IF26_10DG_MALIG_EXT_Table44,
    [51..52] : IF26_10DG_MALIG_EXT_Table29,
    [58..59,68..69] : IF26_10DG_MALIG_EXT_Table38,
    [98..99,90..91,100..104,108..109] : IF26_10DG_MALIG_EXT_Table20,
    [110..113,118..119] : IF26_10DG_MALIG_EXT_Table23,
    [129..132,138..139,141] : IF26_10DG_MALIG_EXT_Table22,
    [140,142,148] : IF26_10DG_MALIG_EXT_Table41,
    [150..155,158..159] : IF26_10DG_MALIG_EXT_Table7,
    [160..166,168..169] : IF26_10DG_MALIG_EXT_Table4,
    [170..173,178..179] : IF26_10DG_MALIG_EXT_Table2,
    [180..189] : IF26_10DG_MALIG_EXT_Table3,
    [199,209] : IF26_10DG_MALIG_EXT_Table4,
    [210..212,218] : IF26_10DG_MALIG_EXT_Table8,
    [220..221] : IF26_10DG_MALIG_EXT_Table28,
    [239,248..249] : IF26_10DG_MALIG_EXT_Table27,
    [240] : IF26_10DG_MALIG_EXT_Table34,
    [241] : IF26_10DG_MALIG_EXT_Table40,
    [250..254] : IF26_10DG_MALIG_EXT_Table39,
    [257..259] : IF26_10DG_MALIG_EXT_Table49,
    [480..482,488] : IF26_10DG_MALIG_EXT_Table49,
    [260,268..269] : IF26_10DG_MALIG_EXT_Table49,
    [300,301] : IF26_10DG_MALIG_EXT_Table49,
    [310] : IF26_10DG_MALIG_EXT_Table47,
    [311..313,318..319] : IF26_10DG_MALIG_EXT_Table43,
    [320..323,328..329] : IF26_10DG_MALIG_EXT_Table10,
    [339] : IF26_10DG_MALIG_EXT_Table48,
    [340..343,348..349] : IF26_10DG_MALIG_EXT_Table17,
    [384] : IF26_10DG_MALIG_EXT_Table31,
    [380..383,388] : IF26_10DG_MALIG_EXT_Table49,
    [390,398..399] : IF26_10DG_MALIG_EXT_Table49,
    [400..403,408..409,410..414,418..419] : IF26_10DG_MALIG_EXT_Table35,
    [470..476,478..479,490..496,498..499] : IF26_10DG_MALIG_EXT_Table49,
    [440,442..449] : IF26_10DG_MALIG_EXT_Table42,
    [500..506,508..509] : IF26_10DG_MALIG_EXT_Table1,
    [530..531,538..539] : IF26_10DG_MALIG_EXT_Table58,
    [540..543,548..549,559,589] : IF26_10DG_MALIG_EXT_Table5,
    [569] : IF26_10DG_MALIG_EXT_Table21,
    [570..574] : IF26_10DG_MALIG_EXT_Table45,
    [529] : IF26_10DG_MALIG_EXT_Table31,
    [510..512,518..519] : IF26_10DG_MALIG_EXT_Table51,
    [577..579] : IF26_10DG_MALIG_EXT_Table49,
    [619] : IF26_10DG_MALIG_EXT_Table9,
    [620..621,629] : IF26_10DG_MALIG_EXT_Table30,
    [600..601,608..609] : IF26_10DG_MALIG_EXT_Table43,
    [602,630..632,637..639] : IF26_10DG_MALIG_EXT_Table49,
    [670..679] : IF26_10DG_MALIG_EXT_Table16,
    [649] : IF26_10DG_MALIG_EXT_Table33,
    [659,669,688..689] : IF26_10DG_MALIG_EXT_Table32,
    [680..681] : IF26_10DG_MALIG_EXT_Table35,
    [690] : IF26_10DG_MALIG_EXT_Table52,
    [691..694,698..699] : IF26_10DG_MALIG_EXT_Table55,
    [696] : IF26_10DG_MALIG_EXT_Table54,
    [695] : IF26_10DG_MALIG_EXT_Table53,
    [700,710..719] : IF26_10DG_MALIG_EXT_Table6,
    [701,709,720..725,728..729] : IF26_10DG_MALIG_EXT_Table43,
    [739] : IF26_10DG_MALIG_EXT_Table31,
    [379,740..741,749,750..755,758..759] : IF26_10DG_MALIG_EXT_Table49,
    [809,760..765,767..768,770..775,778..779,420..424] : IF26_10DG_MALIG_EXT_Table60,
    [441] : IF26_10DG_MALIG_EXT_Table18
]]]></entry>
        <entry id="If2610DG_SITE_MALIG_POS_NODES" type="java"><![CDATA[[
    [0..6,8..9] : IF26_10DG_Nodes_Pos_Table3,
    [19,24] : IF26_10DG_Nodes_Pos_Table3,
    [20..23,28..29] : IF26_10DG_Nodes_Pos_Table3,
    [79..81,88..89] : IF26_10DG_Nodes_Pos_Table3,
    [30..31,39,62] : IF26_10DG_Nodes_Pos_Table3,
    [40..41,48..49] : IF26_10DG_Nodes_Pos_Table3,
    [60..61] : IF26_10DG_Nodes_Pos_Table3,
    [50] : IF26_10DG_Nodes_Pos_Table3,
    [51..52] : IF26_10DG_Nodes_Pos_Table3,
    [58..59,68..69] : IF26_10DG_Nodes_Pos_Table3,
    [98..99,90..91,100..104,108..109] : IF26_10DG_Nodes_Pos_Table3,
    [110..113,118..119] : IF26_10DG_Nodes_Pos_Table3,
    [129..132,138..139,141] : IF26_10DG_Nodes_Pos_Table3,
    [140,142,148] : IF26_10DG_Nodes_Pos_Table3,
    [150..155,158..159] : IF26_10DG_Nodes_Pos_Table3,
    [160..166,168..169] : IF26_10DG_Nodes_Pos_Table3,
    [170..173,178..179] : IF26_10DG_Nodes_Pos_Table3,
    [180..189] : IF26_10DG_Nodes_Pos_Table3,
    [199,209] : IF26_10DG_Nodes_Pos_Table3,
    [210..212,218] : IF26_10DG_Nodes_Pos_Table3,
    [220..221] : IF26_10DG_Nodes_Pos_Table3,
    [239,248..249] : IF26_10DG_Nodes_Pos_Table3,
    [240] : IF26_10DG_Nodes_Pos_Table3,
    [241] : IF26_10DG_Nodes_Pos_Table3,
    [250..254] : IF26_10DG_Nodes_Pos_Table3,
    [257..259] : IF26_10DG_Nodes_Pos_Table3,
    [480..482,488] : IF26_10DG_Nodes_Pos_Table3,
    [260,268..269] : IF26_10DG_Nodes_Pos_Table3,
    [300,301] : IF26_10DG_Nodes_Pos_Table3,
    [310] : IF26_10DG_Nodes_Pos_Table3,
    [311..313,318..319] : IF26_10DG_Nodes_Pos_Table3,
    [320..323,328..329] : IF26_10DG_Nodes_Pos_Table3,
    [339] : IF26_10DG_Nodes_Pos_Table3,
    [340..343,348..349] : IF26_10DG_Nodes_Pos_Table3,
    [384] : IF26_10DG_Nodes_Pos_Table3,
    [380..383,388] : IF26_10DG_Nodes_Pos_Table3,
    [390,398..399] : IF26_10DG_Nodes_Pos_Table3,
    [400..403,408..409,410..414,418..419] : IF26_10DG_Nodes_Pos_Table3,
    [470..476,478..479,490..496,498..499] : IF26_10DG_Nodes_Pos_Table3,
    [440,442..449] : IF26_10DG_Nodes_Pos_Table3,
    [500..506,508..509] : IF26_10DG_Nodes_Pos_Table3,
    [530..531,538..539] : IF26_10DG_Nodes_Pos_Table3,
    [540..543,548..549,559,589] : IF26_10DG_Nodes_Pos_Table3,
    [569] : IF26_10DG_Nodes_Pos_Table3,
    [570..574] : IF26_10DG_Nodes_Pos_Table3,
    [529] : IF26_10DG_Nodes_Pos_Table3,
    [510..512,518..519] : IF26_10DG_Nodes_Pos_Table3,
    [577..579] : IF26_10DG_Nodes_Pos_Table3,
    [619] : IF26_10DG_Nodes_Pos_Table3,
    [620..621,629] : IF26_10DG_Nodes_Pos_Table3,
    [600..601,608..609] : IF26_10DG_Nodes_Pos_Table3,
    [602,630..632,637..639] : IF26_10DG_Nodes_Pos_Table3,
    [670..679] : IF26_10DG_Nodes_Pos_Table3,
    [649] : IF26_10DG_Nodes_Pos_Table3,
    [659,669,688..689] : IF26_10DG_Nodes_Pos_Table3,
    [680..681] : IF26_10DG_Nodes_Pos_Table3,
    [690] : IF26_10DG_Nodes_Pos_Table3,
    [691..694,698..699] : IF26_10DG_Nodes_Pos_Table3,
    [696] : IF26_10DG_Nodes_Pos_Table3,
    [695] : IF26_10DG_Nodes_Pos_Table3,
    [700,710..719] : IF26_10DG_Nodes_Pos_Table4,
    [701,709,720..725,728..729] : IF26_10DG_Nodes_Pos_Table4,
    [739] : IF26_10DG_Nodes_Pos_Table3,
    [379,740..741,749,750..755,758..759] : IF26_10DG_Nodes_Pos_Table3,
    [809,760..765,767..768,770..775,778..779,420..424] : IF26_10DG_Nodes_Pos_Table4,
    [441] : IF26_10DG_Nodes_Pos_Table3
]]]></entry>
        <entry id="If2610DG_SITE_MALIG_REG_EXAM" type="java"><![CDATA[[
    [0..6,8..9] : IF26_10DG_Reg_Exam_Table3,
    [19,24] : IF26_10DG_Reg_Exam_Table3,
    [20..23,28..29] : IF26_10DG_Reg_Exam_Table3,
    [79..81,88..89] : IF26_10DG_Reg_Exam_Table3,
    [30..31,39,62] : IF26_10DG_Reg_Exam_Table3,
    [40..41,48..49] : IF26_10DG_Reg_Exam_Table3,
    [60..61] : IF26_10DG_Reg_Exam_Table3,
    [50] : IF26_10DG_Reg_Exam_Table3,
    [51..52] : IF26_10DG_Reg_Exam_Table3,
    [58..59,68..69] : IF26_10DG_Reg_Exam_Table3,
    [98..99,90..91,100..104,108..109] : IF26_10DG_Reg_Exam_Table3,
    [110..113,118..119] : IF26_10DG_Reg_Exam_Table3,
    [129..132,138..139,141] : IF26_10DG_Reg_Exam_Table3,
    [140,142,148] : IF26_10DG_Reg_Exam_Table3,
    [150..155,158..159] : IF26_10DG_Reg_Exam_Table3,
    [160..166,168..169] : IF26_10DG_Reg_Exam_Table3,
    [170..173,178..179] : IF26_10DG_Reg_Exam_Table3,
    [180..189] : IF26_10DG_Reg_Exam_Table3,
    [199,209] : IF26_10DG_Reg_Exam_Table3,
    [210..212,218] : IF26_10DG_Reg_Exam_Table3,
    [220..221] : IF26_10DG_Reg_Exam_Table3,
    [239,248..249] : IF26_10DG_Reg_Exam_Table3,
    [240] : IF26_10DG_Reg_Exam_Table3,
    [241] : IF26_10DG_Reg_Exam_Table3,
    [250..254] : IF26_10DG_Reg_Exam_Table3,
    [257..259] : IF26_10DG_Reg_Exam_Table3,
    [480..482,488] : IF26_10DG_Reg_Exam_Table3,
    [260,268..269] : IF26_10DG_Reg_Exam_Table3,
    [300,301] : IF26_10DG_Reg_Exam_Table3,
    [310] : IF26_10DG_Reg_Exam_Table3,
    [311..313,318..319] : IF26_10DG_Reg_Exam_Table3,
    [320..323,328..329] : IF26_10DG_Reg_Exam_Table3,
    [339] : IF26_10DG_Reg_Exam_Table3,
    [340..343,348..349] : IF26_10DG_Reg_Exam_Table3,
    [384] : IF26_10DG_Reg_Exam_Table3,
    [380..383,388] : IF26_10DG_Reg_Exam_Table3,
    [390,398..399] : IF26_10DG_Reg_Exam_Table3,
    [400..403,408..409,410..414,418..419] : IF26_10DG_Reg_Exam_Table3,
    [470..476,478..479,490..496,498..499] : IF26_10DG_Reg_Exam_Table3,
    [440,442..449] : IF26_10DG_Reg_Exam_Table3,
    [500..506,508..509] : IF26_10DG_Reg_Exam_Table3,
    [530..531,538..539] : IF26_10DG_Reg_Exam_Table3,
    [540..543,548..549,559,589] : IF26_10DG_Reg_Exam_Table3,
    [569] : IF26_10DG_Reg_Exam_Table3,
    [570..574] : IF26_10DG_Reg_Exam_Table3,
    [529] : IF26_10DG_Reg_Exam_Table3,
    [510..512,518..519] : IF26_10DG_Reg_Exam_Table3,
    [577..579] : IF26_10DG_Reg_Exam_Table3,
    [619] : IF26_10DG_Reg_Exam_Table3,
    [620..621,629] : IF26_10DG_Reg_Exam_Table3,
    [600..601,608..609] : IF26_10DG_Reg_Exam_Table3,
    [602,630..632,637..639] : IF26_10DG_Reg_Exam_Table3,
    [670..679] : IF26_10DG_Reg_Exam_Table3,
    [649] : IF26_10DG_Reg_Exam_Table3,
    [659,669,688..689] : IF26_10DG_Reg_Exam_Table3,
    [680..681] : IF26_10DG_Reg_Exam_Table3,
    [690] : IF26_10DG_Reg_Exam_Table3,
    [691..694,698..699] : IF26_10DG_Reg_Exam_Table3,
    [696] : IF26_10DG_Reg_Exam_Table3,
    [695] : IF26_10DG_Reg_Exam_Table3,
    [700,710..719] : IF26_10DG_Reg_Exam_Table4,
    [701,709,720..725,728..729] : IF26_10DG_Reg_Exam_Table4,
    [739] : IF26_10DG_Reg_Exam_Table3,
    [379,740..741,749,750..755,758..759] : IF26_10DG_Reg_Exam_Table3,
    [809,760..765,767..768,770..775,778..779,420..424] : IF26_10DG_Reg_Exam_Table4,
    [441] : IF26_10DG_Reg_Exam_Table3
]]]></entry>
        <entry id="If2610DG_SITE_SIZE" type="java"><![CDATA[[
    [0..6,8..9] : IF26_10DG_Size_Table1,
    [19,24] : IF26_10DG_Size_Table1,
    [20..23,28..29] : IF26_10DG_Size_Table1,
    [79..81,88..89] : IF26_10DG_Size_Table1,
    [30..31,39,62] : IF26_10DG_Size_Table1,
    [40..41,48..49] : IF26_10DG_Size_Table1,
    [60..61] : IF26_10DG_Size_Table1,
    [50] : IF26_10DG_Size_Table1,
    [51..52] : IF26_10DG_Size_Table1,
    [58..59,68..69] : IF26_10DG_Size_Table1,
    [98..99,90..91,100..104,108..109] : IF26_10DG_Size_Table1,
    [110..113,118..119] : IF26_10DG_Size_Table1,
    [129..132,138..139,141] : IF26_10DG_Size_Table1,
    [140,142,148] : IF26_10DG_Size_Table1,
    [150..155,158..159] : IF26_10DG_Size_Table2,
    [160..166,168..169] : IF26_10DG_Size_Table2,
    [170..173,178..179] : IF26_10DG_Size_Table1,
    [180..189] : IF26_10DG_Size_Table2,
    [199,209] : IF26_10DG_Size_Table2,
    [210..212,218] : IF26_10DG_Size_Table1,
    [220..221] : IF26_10DG_Size_Table1,
    [239,248..249] : IF26_10DG_Size_Table1,
    [240] : IF26_10DG_Size_Table1,
    [241] : IF26_10DG_Size_Table1,
    [250..254] : IF26_10DG_Size_Table1,
    [257..259] : IF26_10DG_Size_Table1,
    [480..482,488] : IF26_10DG_Size_Table1,
    [260,268..269] : IF26_10DG_Size_Table1,
    [300,301] : IF26_10DG_Size_Table1,
    [310] : IF26_10DG_Size_Table1,
    [311..313,318..319] : IF26_10DG_Size_Table1,
    [320..323,328..329] : IF26_10DG_Size_Table1,
    [339] : IF26_10DG_Size_Table1,
    [340..343,348..349] : IF26_10DG_Size_Table2,
    [384] : IF26_10DG_Size_Table1,
    [380..383,388] : IF26_10DG_Size_Table1,
    [390,398..399] : IF26_10DG_Size_Table1,
    [400..403,408..409,410..414,418..419] : IF26_10DG_Size_Table1,
    [470..476,478..479,490..496,498..499] : IF26_10DG_Size_Table1,
    [440,442..449] : IF26_10DG_Size_Table1,
    [500..506,508..509] : IF26_10DG_Size_Table3,
    [530..531,538..539] : IF26_10DG_Size_Table1,
    [540..543,548..549,559,589] : IF26_10DG_Size_Table1,
    [569] : IF26_10DG_Size_Table1,
    [570..574] : IF26_10DG_Size_Table1,
    [529] : IF26_10DG_Size_Table1,
    [510..512,518..519] : IF26_10DG_Size_Table1,
    [577..579] : IF26_10DG_Size_Table1,
    [619] : IF26_10DG_Size_Table1,
    [620..621,629] : IF26_10DG_Size_Table1,
    [600..601,608..609] : IF26_10DG_Size_Table1,
    [602,630..632,637..639] : IF26_10DG_Size_Table1,
    [670..679] : IF26_10DG_Size_Table1,
    [649] : IF26_10DG_Size_Table1,
    [659,669,688..689] : IF26_10DG_Size_Table1,
    [680..681] : IF26_10DG_Size_Table1,
    [690] : IF26_10DG_Size_Table1,
    [691..694,698..699] : IF26_10DG_Size_Table1,
    [696] : IF26_10DG_Size_Table1,
    [695] : IF26_10DG_Size_Table1,
    [700,710..719] : IF26_10DG_Size_Table1,
    [701,709,720..725,728..729] : IF26_10DG_Size_Table1,
    [739] : IF26_10DG_Size_Table1,
    [379,740..741,749,750..755,758..759] : IF26_10DG_Size_Table1,
    [809,760..765,767..768,770..775,778..779,420..424] : IF26_10DG_Size_Table6,
    [441] : IF26_10DG_Size_Table1
]]]></entry>
        <entry id="IF26_10DG_INSITU_EXT_Table1" type="java"><![CDATA[[0]]]></entry>
        <entry id="IF26_10DG_INSITU_EXT_Table2" type="java"><![CDATA[[0,1]]]></entry>
        <entry id="IF26_10DG_INSITU_EXT_Table3" type="java"><![CDATA[[0,5]]]></entry>
        <entry id="IF26_10DG_INSITU_EXT_Table4" type="java"><![CDATA[[0,5,10]]]></entry>
        <entry id="IF26_10DG_INSITU_EXT_Table5" type="java"><![CDATA[[100]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table1" type="java"><![CDATA[[5,10,20,30,40,50,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table10" type="java"><![CDATA[[10,11,12,20,30,35,40,50,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table11" type="java"><![CDATA[[10,11,20,21,30,31,32,33,80,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table12" type="java"><![CDATA[[10,11,20,21,30,31,40,41,50,51,60,62,64,70,80,85,87,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table13" type="java"><![CDATA[[10,12,15,17,20,25,30,40,43,45,50,55,70,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table14" type="java"><![CDATA[[10,12,15,20,30,70,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table15" type="java"><![CDATA[[10,12,15,30,40,45,48,50,55,60,70,72,75,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table16" type="java"><![CDATA[[10,15,20,21,22,23,30,40,50,60,65,70,75,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table17" type="java"><![CDATA[[10,20,25,30,40,50,60,70,71,72,73,75,78,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table18" type="java"><![CDATA[[10,20,25,30,40,50,60,70,75,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table19" type="java"><![CDATA[[10,20,25,30,50,70,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table2" type="java"><![CDATA[[10,11,12,13,14,15,16,20,30,40,45,50,55,60,65,66,67,68,70,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table20" type="java"><![CDATA[[10,20,30,40,41,42,50,55,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table21" type="java"><![CDATA[[10,20,30,40,41,42,50,60,62,65,70,71,72,75,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table22" type="java"><![CDATA[[10,20,30,40,50,51,55,60,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table23" type="java"><![CDATA[[10,20,30,40,50,52,55,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table24" type="java"><![CDATA[[10,20,30,40,50,53,55,60,70,76,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table25" type="java"><![CDATA[[10,20,30,40,50,53,60,70,75,76,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table26" type="java"><![CDATA[[10,20,30,40,50,53,60,70,75,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table27" type="java"><![CDATA[[10,20,30,40,50,55,60,61,62,65,70,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table28" type="java"><![CDATA[[10,20,30,40,50,60,65,70,75,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table29" type="java"><![CDATA[[10,20,30,40,50,60,70,74,75,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table3" type="java"><![CDATA[[10,11,12,13,14,15,16,20,30,40,45,50,55,60,65,66,70,75,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table30" type="java"><![CDATA[[10,20,30,40,50,60,70,75,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table31" type="java"><![CDATA[[10,20,30,40,50,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table32" type="java"><![CDATA[[10,20,30,40,60,65,66,70,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table33" type="java"><![CDATA[[10,20,30,40,60,65,70,75,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table34" type="java"><![CDATA[[10,20,30,40,60,65,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table35" type="java"><![CDATA[[10,20,30,40,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table36" type="java"><![CDATA[[10,20,30,50,51,55,60,70,73,75,76,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table37" type="java"><![CDATA[[10,20,30,50,51,70,75,76,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table38" type="java"><![CDATA[[10,20,30,50,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table39" type="java"><![CDATA[[10,30,40,45,60,65,66,67,70,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table4" type="java"><![CDATA[[10,11,12,13,14,15,16,20,30,40,45,50,55,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table40" type="java"><![CDATA[[10,30,40,50,55,60,65,70,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table41" type="java"><![CDATA[[10,30,40,50,55,60,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table42" type="java"><![CDATA[[10,30,40,50,60,70,75,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table43" type="java"><![CDATA[[10,30,40,50,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table44" type="java"><![CDATA[[10,30,40,50,70,74,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table45" type="java"><![CDATA[[10,30,40,50,70,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table46" type="java"><![CDATA[[10,30,40,50,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table47" type="java"><![CDATA[[10,30,40,60,65,70,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table48" type="java"><![CDATA[[10,30,40,60,65,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table49" type="java"><![CDATA[[10,30,40,60,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table5" type="java"><![CDATA[[10,11,12,13,14,15,20,21,22,23,24,25,30,31,32,33,34,35,40,50,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table50" type="java"><![CDATA[[10,30,50,55,60,70,73,74,76,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table51" type="java"><![CDATA[[10,30,60,70,75,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table52" type="java"><![CDATA[[10,40,50,70,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table53" type="java"><![CDATA[[10,40,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table54" type="java"><![CDATA[[10,40,60,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table55" type="java"><![CDATA[[10,40,70,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table56" type="java"><![CDATA[[10,80,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table57" type="java"><![CDATA[[11,12,13,21,22,23,24,25,26,27,29,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table58" type="java"><![CDATA[[11,12,20,30,31,35,40,50,60,65,70,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table59" type="java"><![CDATA[[80]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table6" type="java"><![CDATA[[10,11,12,15,20,30,40,50,51,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table60" type="java"><![CDATA[[99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table7" type="java"><![CDATA[[10,11,12,16,20,30,40,60,65,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table8" type="java"><![CDATA[[10,11,12,16,20,30,40,60,70,75,80,85,99]]]></entry>
        <entry id="IF26_10DG_MALIG_EXT_Table9" type="java"><![CDATA[[10,11,12,20,25,30,40,50,55,56,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DG_Nodes_Pos_Table1" type="java"><![CDATA[[100]]]></entry>
        <entry id="IF26_10DG_Nodes_Pos_Table2" type="java"><![CDATA[[0,98]]]></entry>
        <entry id="IF26_10DG_Nodes_Pos_Table3" type="java"><![CDATA[[0..99]]]></entry>
        <entry id="IF26_10DG_Nodes_Pos_Table4" type="java"><![CDATA[[99]]]></entry>
        <entry id="IF26_10DG_Reg_Exam_Table1" type="java"><![CDATA[[100]]]></entry>
        <entry id="IF26_10DG_Reg_Exam_Table2" type="java"><![CDATA[[0..98]]]></entry>
        <entry id="IF26_10DG_Reg_Exam_Table3" type="java"><![CDATA[[0..99]]]></entry>
        <entry id="IF26_10DG_Reg_Exam_Table4" type="java"><![CDATA[[99]]]></entry>
        <entry id="IF26_10DG_Size_Table1" type="java"><![CDATA[[0..990,999]]]></entry>
        <entry id="IF26_10DG_Size_Table2" type="java"><![CDATA[[0..990,998..999]]]></entry>
        <entry id="IF26_10DG_Size_Table3" type="java"><![CDATA[[0..990,997..999]]]></entry>
        <entry id="IF26_10DG_Size_Table4" type="java"><![CDATA[[0..3,999]]]></entry>
        <entry id="IF26_10DG_Size_Table5" type="java"><![CDATA[[1..2,999]]]></entry>
        <entry id="IF26_10DG_Size_Table6" type="java"><![CDATA[[999]]]></entry>
        <entry id="IF26_10DGE98_3_INSITU_EXT_Table1" type="java"><![CDATA[[0]]]></entry>
        <entry id="IF26_10DGE98_3_INSITU_EXT_Table2" type="java"><![CDATA[[0,1]]]></entry>
        <entry id="IF26_10DGE98_3_INSITU_EXT_Table3" type="java"><![CDATA[[0,1,3,5,6,10]]]></entry>
        <entry id="IF26_10DGE98_3_INSITU_EXT_Table4" type="java"><![CDATA[[0,5]]]></entry>
        <entry id="IF26_10DGE98_3_INSITU_EXT_Table5" type="java"><![CDATA[[100]]]></entry>
        <entry id="IF26_10DGE98_3_INSITU_LN_Table1" type="java"><![CDATA[[0]]]></entry>
        <entry id="IF26_10DGE98_3_INSITU_LN_Table2" type="java"><![CDATA[[10]]]></entry>
        <entry id="IF26_10DGE98_3_INSITU_LN_Table3" type="java"><![CDATA[[9]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table1" type="java"><![CDATA[[10,20,30,50,51,70,75,76,77,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table10" type="java"><![CDATA[[10,30,40,50,51,70,71,72,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table11" type="java"><![CDATA[[10,20,30,40,41,42,50,55,60,65,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table12" type="java"><![CDATA[[10,20,30,40,50,52,55,57,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table13" type="java"><![CDATA[[10,20,30,40,50,51,55,60,61,62,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table14" type="java"><![CDATA[[10,30,40,50,55,60,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table15" type="java"><![CDATA[[10,11,12,16,20,30,40,60,65,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table16" type="java"><![CDATA[[10,11,12,13,14,15,16,20,30,40,45,50,55,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table17" type="java"><![CDATA[[10,11,12,13,14,15,16,20,30,40,42,45,50,55,60,65,66,67,68,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table18" type="java"><![CDATA[[10,11,12,13,14,15,16,20,30,40,42,45,50,55,60,65,66,70,75,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table19" type="java"><![CDATA[[10,11,12,13,14,15,16,20,30,40,42,45,50,55,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table2" type="java"><![CDATA[[10,20,30,40,50,53,60,70,75,76,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table20" type="java"><![CDATA[[10,11,12,16,20,30,40,60,70,75,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table21" type="java"><![CDATA[[10,20,30,40,50,60,61,62,65,70,75,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table22" type="java"><![CDATA[[10,20,30,40,50,55,60,61,62,65,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table23" type="java"><![CDATA[[10,20,30,40,60,65,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table24" type="java"><![CDATA[[10,30,40,50,55,60,65,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table25" type="java"><![CDATA[[10,30,40,44,48,50,52,54,56,62,64,72,74,76,78,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table26" type="java"><![CDATA[[10,30,40,45,50,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table27" type="java"><![CDATA[[10,30,40,60,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table28" type="java"><![CDATA[[10,30,40,60,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table29" type="java"><![CDATA[[10,30,40,60,65,66,68,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table3" type="java"><![CDATA[[10,20,30,40,50,53,60,70,75,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table30" type="java"><![CDATA[[10,20,30,40,60,65,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table31" type="java"><![CDATA[[10,30,40,50,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table32" type="java"><![CDATA[[10,11,12,30,35,40,50,60,70,71,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table33" type="java"><![CDATA[[10,20,30,35,40,50,60,62,65,66,67,70,72,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table34" type="java"><![CDATA[[10,30,40,50,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table35" type="java"><![CDATA[[10,20,30,35,40,50,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table36" type="java"><![CDATA[[10,30,40,60,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table37" type="java"><![CDATA[[10,20,25,30,40,50,60,65,70,71,72,73,75,77,78,79,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table38" type="java"><![CDATA[[10,30,40,60,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table39" type="java"><![CDATA[[10,20,30,40,42,50,60,70,78,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table4" type="java"><![CDATA[[10,30,50,55,60,65,70,72,73,74,76,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table40" type="java"><![CDATA[[10,30,40,60,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table41" type="java"><![CDATA[[10,20,30,40,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table42" type="java"><![CDATA[[10,30,40,50,60,70,75,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table43" type="java"><![CDATA[[10,11,20,21,30,31,40,41,50,51,60,62,64,70,80,85,87,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table44" type="java"><![CDATA[[10,20,25,30,50,70,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table45" type="java"><![CDATA[[10,11,12,30,31,32,40,41,42,60,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table46" type="java"><![CDATA[[10,30,40,60,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table47" type="java"><![CDATA[[5,10,11,13,14,15,16,17,18,20,21,23,24,25,26,27,28,30,31,33,34,35,36,37,38,40,50,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table48" type="java"><![CDATA[[10,11,12,30,40,41,42,60,70,75,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table49" type="java"><![CDATA[[10,20,30,40,50,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table5" type="java"><![CDATA[[10,20,30,40,50,53,55,60,70,76,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table50" type="java"><![CDATA[[11,12,20,30,31,35,36,37,38,40,50,60,65,68,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table51" type="java"><![CDATA[[10,11,12,13,14,40,50,51,52,60,61,64,65,66,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table52" type="java"><![CDATA[[10,20,30,40,41,42,50,60,62,65,70,71,72,73,75,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table53" type="java"><![CDATA[[10,11,12,13,30,40,50,70,71,75,76,77,78,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table54" type="java"><![CDATA[[10,30,40,50,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table55" type="java"><![CDATA[[10,30,40,60,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table56" type="java"><![CDATA[[10,11,12,13,14,30,31,32,33,34,40,41,42,43,44,60,61,62,63,64,70,71,72,73,74,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table57" type="java"><![CDATA[[10,30,40,50,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table58" type="java"><![CDATA[[10,13,14,15,20,23,24,30,31,33,34,41,42,43,45,49,50,60,70,85,90]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table59" type="java"><![CDATA[[10,15,20,30,40,45,50,60,70,75,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table6" type="java"><![CDATA[[10,30,40,50,70,74,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table60" type="java"><![CDATA[[10,30,40,60,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table61" type="java"><![CDATA[[10,20,30,40,60,62,65,70,75,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table62" type="java"><![CDATA[[10,20,30,40,60,62,63,65,66,67,68,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table63" type="java"><![CDATA[[10,15,20,21,22,23,30,40,41,42,60,65,67,70,75,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table64" type="java"><![CDATA[[10,20,30,40,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table65" type="java"><![CDATA[[10,40,50,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table66" type="java"><![CDATA[[10,12,15,20,30,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table67" type="java"><![CDATA[[10,40,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table68" type="java"><![CDATA[[10,12,15,17,20,25,30,40,43,44,45,50,55,56,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table69" type="java"><![CDATA[[10,40,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table7" type="java"><![CDATA[[10,20,30,40,50,60,65,70,71,74,75,76,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table70" type="java"><![CDATA[[10,40,60,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table71" type="java"><![CDATA[[10,11,12,15,20,30,40,50,51,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table72" type="java"><![CDATA[[10,30,40,50,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table73" type="java"><![CDATA[[10,20,30,40,50,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table74" type="java"><![CDATA[[10,30,40,60,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table75" type="java"><![CDATA[[11,12,13,21,22,23,24,25,26,27,29,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table76" type="java"><![CDATA[[10,12,15,30,40,45,48,50,55,60,70,72,75,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table77" type="java"><![CDATA[[10,11,20,21,30,31,32,33,80,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table78" type="java"><![CDATA[[80]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table79" type="java"><![CDATA[[99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table8" type="java"><![CDATA[[10,20,30,50,60,70,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table80" type="java"><![CDATA[[10,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table81" type="java"><![CDATA[[10,80,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table82" type="java"><![CDATA[[80,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table83" type="java"><![CDATA[[10,20,25,30,40,50,60,70,75,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_EXT_Table9" type="java"><![CDATA[[10,20,30,50,51,55,60,70,73,75,76,77,80,85,99]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_LN_Table1" type="java"><![CDATA[[0,1,2,3,4,5,6,7,8,9]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_LN_Table10" type="java"><![CDATA[[0,1,5,6,7,8,9]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_LN_Table11" type="java"><![CDATA[[0,1,6,7,8,9]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_LN_Table12" type="java"><![CDATA[[0,1,7,8,9]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_LN_Table13" type="java"><![CDATA[[9]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_LN_Table2" type="java"><![CDATA[[0,1,2,3,4,5,7,8,9]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_LN_Table3" type="java"><![CDATA[[0,1,2,3,5,6,7,8,9]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_LN_Table4" type="java"><![CDATA[[0,1,2,3,5,7,8,9]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_LN_Table5" type="java"><![CDATA[[0,1,2,3,6,7,8,9]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_LN_Table6" type="java"><![CDATA[[0,1,2,3,7,8,9]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_LN_Table7" type="java"><![CDATA[[0,1,2,3,9]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_LN_Table8" type="java"><![CDATA[[0,1,2,5,6,7,8,9]]]></entry>
        <entry id="IF26_10DGE98_3_MALIG_LN_Table9" type="java"><![CDATA[[0,1,4,5,7,8,9]]]></entry>
        <entry id="IF26_10DGE98_3_Nodes_Pos_Table1" type="java"><![CDATA[[100]]]></entry>
        <entry id="IF26_10DGE98_3_Nodes_Pos_Table2" type="java"><![CDATA[[0,98]]]></entry>
        <entry id="IF26_10DGE98_3_Nodes_Pos_Table3" type="java"><![CDATA[[0..99]]]></entry>
        <entry id="IF26_10DGE98_3_Nodes_Pos_Table4" type="java"><![CDATA[[99]]]></entry>
        <entry id="IF26_10DGE98_3_Reg_Exam_Table1" type="java"><![CDATA[[100]]]></entry>
        <entry id="IF26_10DGE98_3_Reg_Exam_Table2" type="java"><![CDATA[[0..98]]]></entry>
        <entry id="IF26_10DGE98_3_Reg_Exam_Table3" type="java"><![CDATA[[0..99]]]></entry>
        <entry id="IF26_10DGE98_3_Reg_Exam_Table4" type="java"><![CDATA[[99]]]></entry>
        <entry id="IF26_10DGE98_3_Size_Table1" type="java"><![CDATA[[0..990,999]]]></entry>
        <entry id="IF26_10DGE98_3_Size_Table2" type="java"><![CDATA[[0..990,998..999]]]></entry>
        <entry id="IF26_10DGE98_3_Size_Table3" type="java"><![CDATA[[0..990,997..999]]]></entry>
        <entry id="IF26_10DGE98_3_Size_Table4" type="java"><![CDATA[[0..3,999]]]></entry>
        <entry id="IF26_10DGE98_3_Size_Table5" type="java"><![CDATA[[1..2,999]]]></entry>
        <entry id="IF26_10DGE98_3_Size_Table6" type="java"><![CDATA[[999]]]></entry>
        <entry id="IF26_13_Digit_Site_List" type="java"><![CDATA[[24,98,99,111,142,160..169,180,182..187,199,209,340..343, 346..349,379,422,440..447,500..512,518..519,530..549,600..601,608..609,619,670..676,678,679,770..779]]]></entry>
        <entry id="If26_2Digit" type="java"><![CDATA[[
    0 : Eod_2Digit_Table_01,
    1 : Eod_2Digit_Table_02,
    3 : Eod_2Digit_Table_01,
    4 : Eod_2Digit_Table_02,
    6 : Eod_2Digit_Table_03,
    19 : Eod_2Digit_Table_04,
    20 : Eod_2Digit_Table_05,
    21 : Eod_2Digit_Table_05,
    22 : Eod_2Digit_Table_05,
    23 : Eod_2Digit_Table_05,
    24 : Eod_2Digit_Table_05,
    30 : Eod_2Digit_Table_08,
    31 : Eod_2Digit_Table_09,
    40 : Eod_2Digit_Table_10,
    41 : Eod_2Digit_Table_10,
    48 : Eod_2Digit_Table_10,
    49 : Eod_2Digit_Table_10,
    50 : Eod_2Digit_Table_12,
    51 : Eod_2Digit_Table_13,
    52 : Eod_2Digit_Table_13,
    60 : Eod_2Digit_Table_11,
    61 : Eod_2Digit_Table_11,
    62 : Eod_2Digit_Table_09,
    79 : Eod_2Digit_Table_06,
    80 : Eod_2Digit_Table_07,
    90 : Eod_2Digit_Table_14,
    91 : Eod_2Digit_Table_14,
    98 : Eod_2Digit_Table_14,
    99 : Eod_2Digit_Table_14,
    100 : Eod_2Digit_Table_14,
    101 : Eod_2Digit_Table_14,
    102 : Eod_2Digit_Table_14,
    103 : Eod_2Digit_Table_14,
    104 : Eod_2Digit_Table_14,
    108 : Eod_2Digit_Table_14,
    109 : Eod_2Digit_Table_14,
    110 : Eod_2Digit_Table_15,
    111 : Eod_2Digit_Table_56,
    112 : Eod_2Digit_Table_15,
    113 : Eod_2Digit_Table_15,
    118 : Eod_2Digit_Table_15,
    119 : Eod_2Digit_Table_56,
    129 : Eod_2Digit_Table_16,
    130 : Eod_2Digit_Table_16,
    131 : Eod_2Digit_Table_16,
    132 : Eod_2Digit_Table_16,
    138 : Eod_2Digit_Table_16,
    139 : Eod_2Digit_Table_16,
    141 : Eod_2Digit_Table_16,
    142 : Eod_2Digit_Table_55,
    150 : Eod_2Digit_Table_17,
    151 : Eod_2Digit_Table_19,
    152 : Eod_2Digit_Table_18,
    153 : Eod_2Digit_Table_17,
    154 : Eod_2Digit_Table_19,
    155 : Eod_2Digit_Table_18,
    160 : Eod_2Digit_Table_20,
    161 : Eod_2Digit_Table_20,
    162 : Eod_2Digit_Table_20,
    163 : Eod_2Digit_Table_20,
    164 : Eod_2Digit_Table_20,
    165 : Eod_2Digit_Table_20,
    166 : Eod_2Digit_Table_20,
    168 : Eod_2Digit_Table_20,
    169 : Eod_2Digit_Table_20,
    170 : Eod_2Digit_Table_21,
    171 : Eod_2Digit_Table_22,
    172 : Eod_2Digit_Table_22,
    180 : Eod_2Digit_Table_25,
    182 : Eod_2Digit_Table_25,
    183 : Eod_2Digit_Table_23,
    184 : Eod_2Digit_Table_23,
    185 : Eod_2Digit_Table_23,
    186 : Eod_2Digit_Table_24,
    187 : Eod_2Digit_Table_24,
    199 : Eod_2Digit_Table_26,
    209 : Eod_2Digit_Table_27,
    210 : Eod_2Digit_Table_28,
    211 : Eod_2Digit_Table_28,
    220 : Eod_2Digit_Table_29,
    221 : Eod_2Digit_Table_29,
    239 : Eod_2Digit_Table_30,
    240 : Eod_2Digit_Table_31,
    241 : Eod_2Digit_Table_31,
    250 : Eod_2Digit_Table_32,
    251 : Eod_2Digit_Table_33,
    252 : Eod_2Digit_Table_33,
    320 : Eod_2Digit_Table_34,
    321 : Eod_2Digit_Table_35,
    322 : Eod_2Digit_Table_36,
    340 : Eod_2Digit_Table_37,
    341 : Eod_2Digit_Table_37,
    342 : Eod_2Digit_Table_37,
    343 : Eod_2Digit_Table_37,
    348 : Eod_2Digit_Table_37,
    349 : Eod_2Digit_Table_37,
    379 : Eod_2Digit_Table_55,
    400 : Eod_2Digit_Table_38,
    401 : Eod_2Digit_Table_38,
    402 : Eod_2Digit_Table_38,
    403 : Eod_2Digit_Table_38,
    408 : Eod_2Digit_Table_38,
    409 : Eod_2Digit_Table_38,
    410 : Eod_2Digit_Table_38,
    411 : Eod_2Digit_Table_38,
    412 : Eod_2Digit_Table_38,
    413 : Eod_2Digit_Table_38,
    414 : Eod_2Digit_Table_38,
    418 : Eod_2Digit_Table_38,
    419 : Eod_2Digit_Table_38,
    422 : Eod_2Digit_Table_55,
    440 : Eod_2Digit_Table_40,
    441 : Eod_2Digit_Table_40,
    442 : Eod_2Digit_Table_40,
    443 : Eod_2Digit_Table_40,
    444 : Eod_2Digit_Table_40,
    445 : Eod_2Digit_Table_40,
    446 : Eod_2Digit_Table_40,
    447 : Eod_2Digit_Table_40,
    500 : Eod_2Digit_Table_41,
    501 : Eod_2Digit_Table_41,
    502 : Eod_2Digit_Table_41,
    503 : Eod_2Digit_Table_41,
    504 : Eod_2Digit_Table_41,
    505 : Eod_2Digit_Table_41,
    506 : Eod_2Digit_Table_41,
    508 : Eod_2Digit_Table_41,
    509 : Eod_2Digit_Table_41,
    510 : Eod_2Digit_Table_47,
    511 : Eod_2Digit_Table_47,
    512 : Eod_2Digit_Table_47,
    518 : Eod_2Digit_Table_47,
    519 : Eod_2Digit_Table_47,
    529 : Eod_2Digit_Table_46,
    530 : Eod_2Digit_Table_42,
    531 : Eod_2Digit_Table_42,
    538 : Eod_2Digit_Table_42,
    539 : Eod_2Digit_Table_42,
    540 : Eod_2Digit_Table_43,
    541 : Eod_2Digit_Table_43,
    542 : Eod_2Digit_Table_43,
    543 : Eod_2Digit_Table_43,
    548 : Eod_2Digit_Table_41,
    549 : Eod_2Digit_Table_43,
    569 : Eod_2Digit_Table_44,
    570 : Eod_2Digit_Table_45,
    600 : Eod_2Digit_Table_50,
    601 : Eod_2Digit_Table_50,
    608 : Eod_2Digit_Table_50,
    609 : Eod_2Digit_Table_50,
    619 : Eod_2Digit_Table_48,
    620 : Eod_2Digit_Table_49,
    621 : Eod_2Digit_Table_49,
    629 : Eod_2Digit_Table_49,
    649 : Eod_2Digit_Table_52,
    659 : Eod_2Digit_Table_53,
    669 : Eod_2Digit_Table_53,
    670 : Eod_2Digit_Table_51,
    671 : Eod_2Digit_Table_51,
    672 : Eod_2Digit_Table_51,
    673 : Eod_2Digit_Table_51,
    674 : Eod_2Digit_Table_51,
    675 : Eod_2Digit_Table_51,
    676 : Eod_2Digit_Table_51,
    678 : Eod_2Digit_Table_51,
    679 : Eod_2Digit_Table_51,
    730 : Eod_2Digit_Table_54,
    731 : Eod_2Digit_Table_54,
    732 : Eod_2Digit_Table_54,
    733 : Eod_2Digit_Table_54,
    734 : Eod_2Digit_Table_54,
    735 : Eod_2Digit_Table_54,
    736 : Eod_2Digit_Table_54,
    737 : Eod_2Digit_Table_54,
    738 : Eod_2Digit_Table_54,
    739 : Eod_2Digit_Table_54,
    770 : Eod_2Digit_Table_55,
    771 : Eod_2Digit_Table_55,
    772 : Eod_2Digit_Table_55,
    773 : Eod_2Digit_Table_55,
    774 : Eod_2Digit_Table_55,
    775 : Eod_2Digit_Table_55,
    776 : Eod_2Digit_Table_55,
    777 : Eod_2Digit_Table_55,
    778 : Eod_2Digit_Table_55,
    779 : Eod_2Digit_Table_55
]]]></entry>
        <entry id="IF26_4DIG_EXT_Table1" type="java"><![CDATA[[1..5,8..9]]]></entry>
        <entry id="IF26_4DIG_EXT_Table10" type="java"><![CDATA[[1..9]]]></entry>
        <entry id="IF26_4DIG_EXT_Table11" type="java"><![CDATA[[1,3..4,8..9]]]></entry>
        <entry id="IF26_4DIG_EXT_Table12" type="java"><![CDATA[[1..3,5..9]]]></entry>
        <entry id="IF26_4DIG_EXT_Table13" type="java"><![CDATA[[1..6,8..9]]]></entry>
        <entry id="IF26_4DIG_EXT_Table14" type="java"><![CDATA[[1,3..4,7..9]]]></entry>
        <entry id="IF26_4DIG_EXT_Table15" type="java"><![CDATA[[1..3,7..9]]]></entry>
        <entry id="IF26_4DIG_EXT_Table16" type="java"><![CDATA[[1,3..4,7..9]]]></entry>
        <entry id="IF26_4DIG_EXT_Table17" type="java"><![CDATA[[1,3..5,7..9]]]></entry>
        <entry id="IF26_4DIG_EXT_Table19" type="java"><![CDATA[[2..9]]]></entry>
        <entry id="IF26_4DIG_EXT_Table2" type="java"><![CDATA[[1,3..9]]]></entry>
        <entry id="IF26_4DIG_EXT_Table20" type="java"><![CDATA[[0]]]></entry>
        <entry id="IF26_4DIG_EXT_Table21" type="java"><![CDATA[[0..2]]]></entry>
        <entry id="IF26_4DIG_EXT_Table22" type="java"><![CDATA[[8]]]></entry>
        <entry id="IF26_4DIG_EXT_Table23" type="java"><![CDATA[[9]]]></entry>
        <entry id="IF26_4DIG_EXT_Table24" type="java"><![CDATA[[10]]]></entry>
        <entry id="IF26_4DIG_EXT_Table25" type="java"><![CDATA[[1..3,8..9]]]></entry>
        <entry id="IF26_4DIG_EXT_Table3" type="java"><![CDATA[[1,3..5,8..9]]]></entry>
        <entry id="IF26_4DIG_EXT_Table4" type="java"><![CDATA[[1,3..5,7..9]]]></entry>
        <entry id="IF26_4DIG_EXT_Table5" type="java"><![CDATA[[1..5,7..9]]]></entry>
        <entry id="IF26_4DIG_EXT_Table6" type="java"><![CDATA[[1..4,7..9]]]></entry>
        <entry id="IF26_4DIG_EXT_Table7" type="java"><![CDATA[[1..4,8..9]]]></entry>
        <entry id="IF26_4DIG_EXT_Table8" type="java"><![CDATA[[1..6,8..9]]]></entry>
        <entry id="IF26_4DIG_EXT_Table9" type="java"><![CDATA[[1,3..4,8..9]]]></entry>
        <entry id="If26_4DIG_LEUK_LYMPH_EXT" type="java"><![CDATA[[
    [9590..9595,9650..9698,9702..9714,9719,9727,9740..9741] : IF26_4DIG_EXT_Table25,
    [9720..9726,9728..9734,9750,9754,9800..9970,9975] : IF26_4DIG_EXT_Table22
]]]></entry>
        <entry id="If26_4DIG_LEUK_LYMPH_NODES" type="java"><![CDATA[[
    [9590..9595,9650..9698,9702..9714,9727,9740..9741] : IF26_4DIG_NODES_Table15,
    [9719..9726,9728..9734,9750,9754,9800..9970,9975] : IF26_4DIG_NODES_Table13
]]]></entry>
        <entry id="If26_4DIG_LEUK_LYMPH_SIZE" type="java"><![CDATA[[
    [9590..9595,9650..9698,9702..9714,9719..9734,9740..9741,9750,9754,9800..9970,9975] : IF26_4DIG_SIZE_Table3
]]]></entry>
        <entry id="IF26_4DIG_NODES_Table1" type="java"><![CDATA[[0..9]]]></entry>
        <entry id="IF26_4DIG_NODES_Table10" type="java"><![CDATA[[0..4,7..9]]]></entry>
        <entry id="IF26_4DIG_NODES_Table11" type="java"><![CDATA[[0]]]></entry>
        <entry id="IF26_4DIG_NODES_Table12" type="java"><![CDATA[[0..2,4..9]]]></entry>
        <entry id="IF26_4DIG_NODES_Table13" type="java"><![CDATA[[9]]]></entry>
        <entry id="IF26_4DIG_NODES_Table15" type="java"><![CDATA[[0..3,9]]]></entry>
        <entry id="IF26_4DIG_NODES_Table2" type="java"><![CDATA[[0..3,5,7..9]]]></entry>
        <entry id="IF26_4DIG_NODES_Table3" type="java"><![CDATA[[0..2,5..9]]]></entry>
        <entry id="IF26_4DIG_NODES_Table4" type="java"><![CDATA[[0..1,7..9]]]></entry>
        <entry id="IF26_4DIG_NODES_Table5" type="java"><![CDATA[[0..1,5..9]]]></entry>
        <entry id="IF26_4DIG_NODES_Table6" type="java"><![CDATA[[0..1,6..9]]]></entry>
        <entry id="IF26_4DIG_NODES_Table7" type="java"><![CDATA[[0..3,5..9]]]></entry>
        <entry id="IF26_4DIG_NODES_Table8" type="java"><![CDATA[[0..2,5,7..9]]]></entry>
        <entry id="IF26_4DIG_NODES_Table9" type="java"><![CDATA[[0..2,7..9]]]></entry>
        <entry id="If26_4DIG_SITE_HIST_INSITU_EXT" type="java"><![CDATA[[
    [189] : [
            [8000..9999] : IF26_4DIG_EXT_Table20],
    [420..424] : [
            [8000..9719,9727,9735..9749,9751..9753,9755..9799,9971..9974,9976..9999] : IF26_4DIG_EXT_Table23,
            [9720..9726,9728..9734,9750,9754,9800..9970,9975] : IF26_4DIG_EXT_Table24],
    [440..449] : [
            [8000..9699,9702..9999] : IF26_4DIG_EXT_Table20,
            [9700..9701] : IF26_4DIG_EXT_Table24]
]]]></entry>
        <entry id="If26_4DIG_SITE_HIST_INSITU_NODES" type="java"><![CDATA[[
    [189] : [
            [8000..8219] : IF26_4DIG_NODES_Table11,
            [8220..8220] : IF26_4DIG_NODES_Table11,
            [8221..9999] : IF26_4DIG_NODES_Table11],
    [420..424] : [
            [8000..9719] : IF26_4DIG_NODES_Table13,
            [9720..9732] : IF26_4DIG_NODES_Table13,
            [9733..9799] : IF26_4DIG_NODES_Table13,
            [9800..9970] : IF26_4DIG_NODES_Table13,
            [9971..9999] : IF26_4DIG_NODES_Table13],
    [440..449] : [
            [8000..8719] : IF26_4DIG_NODES_Table11,
            [8720..8790] : IF26_4DIG_NODES_Table11,
            [8791..9699] : IF26_4DIG_NODES_Table11,
            [9700..9701] : IF26_4DIG_NODES_Table11,
            [9702..9999] : IF26_4DIG_NODES_Table11]
]]]></entry>
        <entry id="If26_4DIG_SITE_HIST_MALIG_EXT" type="java"><![CDATA[[
    [189] : [
            [8000..9999] : IF26_4DIG_EXT_Table10],
    [420..424] : [
            [8000..9719,9727,9735..9749,9751..9753,9755..9799,9971..9974,9976..9999] : IF26_4DIG_EXT_Table23,
            [9720..9726,9728..9734,9750,9754,9800..9970,9975] : IF26_4DIG_EXT_Table22],
    [440..449] : [
            [8000..9699,9702..9999] : IF26_4DIG_EXT_Table10,
            [9700..9701] : IF26_4DIG_EXT_Table15]
]]]></entry>
        <entry id="If26_4DIG_SITE_HIST_MALIG_NODES" type="java"><![CDATA[[
    [189] :[
            [8000..8219] : IF26_4DIG_NODES_Table4,
            [8220..8220] : IF26_4DIG_NODES_Table4,
            [8221..9999] : IF26_4DIG_NODES_Table4],
    [420..424] : [
            [8000..9719] : IF26_4DIG_NODES_Table13,
            [9720..9732] : IF26_4DIG_NODES_Table13,
            [9733..9799] : IF26_4DIG_NODES_Table13,
            [9800..9970] : IF26_4DIG_NODES_Table13,
            [9971..9999] : IF26_4DIG_NODES_Table13],
    [440..449] : [
            [8000..8719] : IF26_4DIG_NODES_Table8,
            [8720..8790] : IF26_4DIG_NODES_Table8,
            [8791..9699] : IF26_4DIG_NODES_Table8,
            [9700..9701] : IF26_4DIG_NODES_Table9,
            [9702..9999] : IF26_4DIG_NODES_Table8]
]]]></entry>
        <entry id="If26_4DIG_SITE_HIST_SIZE" type="java"><![CDATA[[
    [189] : [
            [8000..8219] : IF26_4DIG_SIZE_Table1,
            [8220..8220] : IF26_4DIG_SIZE_Table2,
            [8221..9999] : IF26_4DIG_SIZE_Table1
            ],
    [420..424] : [
            [8000..9719] : IF26_4DIG_SIZE_Table3,
            [9720..9732] : IF26_4DIG_SIZE_Table3,
            [9733..9799] : IF26_4DIG_SIZE_Table3,
            [9800..9970] : IF26_4DIG_SIZE_Table3,
            [9971..9999] : IF26_4DIG_SIZE_Table3
            ],
    [440..449] : [
            [8000..8719] : IF26_4DIG_SIZE_Table1,
            [8720..8790] : IF26_4DIG_SIZE_Table1,
            [8791..9699] : IF26_4DIG_SIZE_Table1,
            [9700..9701] : IF26_4DIG_SIZE_Table3,
            [9702..9999] : IF26_4DIG_SIZE_Table1
            ]
]]]></entry>
        <entry id="If26_4DIG_SITE_INSITU_EXT" type="java"><![CDATA[[
    0 : IF26_4DIG_EXT_Table20,
    1 : IF26_4DIG_EXT_Table20,
    2 : IF26_4DIG_EXT_Table20,
    3 : IF26_4DIG_EXT_Table20,
    4 : IF26_4DIG_EXT_Table20,
    5 : IF26_4DIG_EXT_Table20,
    6 : IF26_4DIG_EXT_Table20,
    8 : IF26_4DIG_EXT_Table20,
    9 : IF26_4DIG_EXT_Table20,
    19 : IF26_4DIG_EXT_Table20,
    20 : IF26_4DIG_EXT_Table20,
    21 : IF26_4DIG_EXT_Table20,
    22 : IF26_4DIG_EXT_Table20,
    23 : IF26_4DIG_EXT_Table20,
    24 : IF26_4DIG_EXT_Table20,
    28 : IF26_4DIG_EXT_Table20,
    29 : IF26_4DIG_EXT_Table20,
    30 : IF26_4DIG_EXT_Table20,
    31 : IF26_4DIG_EXT_Table20,
    39 : IF26_4DIG_EXT_Table20,
    40 : IF26_4DIG_EXT_Table20,
    41 : IF26_4DIG_EXT_Table20,
    48 : IF26_4DIG_EXT_Table20,
    49 : IF26_4DIG_EXT_Table20,
    50 : IF26_4DIG_EXT_Table20,
    51 : IF26_4DIG_EXT_Table20,
    52 : IF26_4DIG_EXT_Table20,
    58 : IF26_4DIG_EXT_Table20,
    59 : IF26_4DIG_EXT_Table20,
    60 : IF26_4DIG_EXT_Table20,
    61 : IF26_4DIG_EXT_Table20,
    62 : IF26_4DIG_EXT_Table20,
    68 : IF26_4DIG_EXT_Table20,
    69 : IF26_4DIG_EXT_Table20,
    79 : IF26_4DIG_EXT_Table20,
    80 : IF26_4DIG_EXT_Table20,
    81 : IF26_4DIG_EXT_Table20,
    88 : IF26_4DIG_EXT_Table20,
    89 : IF26_4DIG_EXT_Table20,
    90 : IF26_4DIG_EXT_Table20,
    91 : IF26_4DIG_EXT_Table20,
    98 : IF26_4DIG_EXT_Table20,
    99 : IF26_4DIG_EXT_Table20,
    100 : IF26_4DIG_EXT_Table20,
    101 : IF26_4DIG_EXT_Table20,
    102 : IF26_4DIG_EXT_Table20,
    103 : IF26_4DIG_EXT_Table20,
    104 : IF26_4DIG_EXT_Table20,
    108 : IF26_4DIG_EXT_Table20,
    109 : IF26_4DIG_EXT_Table20,
    110 : IF26_4DIG_EXT_Table20,
    111 : IF26_4DIG_EXT_Table20,
    112 : IF26_4DIG_EXT_Table20,
    113 : IF26_4DIG_EXT_Table20,
    118 : IF26_4DIG_EXT_Table20,
    119 : IF26_4DIG_EXT_Table20,
    129 : IF26_4DIG_EXT_Table20,
    130 : IF26_4DIG_EXT_Table20,
    131 : IF26_4DIG_EXT_Table20,
    132 : IF26_4DIG_EXT_Table20,
    138 : IF26_4DIG_EXT_Table20,
    139 : IF26_4DIG_EXT_Table20,
    140 : IF26_4DIG_EXT_Table20,
    141 : IF26_4DIG_EXT_Table20,
    142 : IF26_4DIG_EXT_Table20,
    148 : IF26_4DIG_EXT_Table20,
    150 : IF26_4DIG_EXT_Table20,
    151 : IF26_4DIG_EXT_Table20,
    152 : IF26_4DIG_EXT_Table20,
    153 : IF26_4DIG_EXT_Table20,
    154 : IF26_4DIG_EXT_Table20,
    155 : IF26_4DIG_EXT_Table20,
    158 : IF26_4DIG_EXT_Table20,
    159 : IF26_4DIG_EXT_Table20,
    160 : IF26_4DIG_EXT_Table20,
    161 : IF26_4DIG_EXT_Table20,
    162 : IF26_4DIG_EXT_Table20,
    163 : IF26_4DIG_EXT_Table20,
    164 : IF26_4DIG_EXT_Table20,
    165 : IF26_4DIG_EXT_Table20,
    166 : IF26_4DIG_EXT_Table20,
    168 : IF26_4DIG_EXT_Table20,
    169 : IF26_4DIG_EXT_Table20,
    170 : IF26_4DIG_EXT_Table20,
    171 : IF26_4DIG_EXT_Table20,
    172 : IF26_4DIG_EXT_Table20,
    173 : IF26_4DIG_EXT_Table20,
    178 : IF26_4DIG_EXT_Table20,
    179 : IF26_4DIG_EXT_Table20,
    180 : IF26_4DIG_EXT_Table20,
    181 : IF26_4DIG_EXT_Table20,
    182 : IF26_4DIG_EXT_Table20,
    183 : IF26_4DIG_EXT_Table20,
    184 : IF26_4DIG_EXT_Table20,
    185 : IF26_4DIG_EXT_Table20,
    186 : IF26_4DIG_EXT_Table20,
    187 : IF26_4DIG_EXT_Table20,
    188 : IF26_4DIG_EXT_Table20,
    199 : IF26_4DIG_EXT_Table20,
    209 : IF26_4DIG_EXT_Table20,
    210 : IF26_4DIG_EXT_Table20,
    211 : IF26_4DIG_EXT_Table20,
    212 : IF26_4DIG_EXT_Table20,
    218 : IF26_4DIG_EXT_Table20,
    220 : IF26_4DIG_EXT_Table20,
    221 : IF26_4DIG_EXT_Table20,
    239 : IF26_4DIG_EXT_Table20,
    240 : IF26_4DIG_EXT_Table20,
    241 : IF26_4DIG_EXT_Table20,
    248 : IF26_4DIG_EXT_Table20,
    249 : IF26_4DIG_EXT_Table20,
    250 : IF26_4DIG_EXT_Table20,
    251 : IF26_4DIG_EXT_Table20,
    252 : IF26_4DIG_EXT_Table20,
    253 : IF26_4DIG_EXT_Table20,
    254 : IF26_4DIG_EXT_Table20,
    257 : IF26_4DIG_EXT_Table20,
    258 : IF26_4DIG_EXT_Table20,
    259 : IF26_4DIG_EXT_Table20,
    260 : IF26_4DIG_EXT_Table20,
    268 : IF26_4DIG_EXT_Table20,
    269 : IF26_4DIG_EXT_Table20,
    300 : IF26_4DIG_EXT_Table20,
    301 : IF26_4DIG_EXT_Table20,
    310 : IF26_4DIG_EXT_Table20,
    311 : IF26_4DIG_EXT_Table20,
    312 : IF26_4DIG_EXT_Table20,
    313 : IF26_4DIG_EXT_Table20,
    318 : IF26_4DIG_EXT_Table20,
    319 : IF26_4DIG_EXT_Table20,
    320 : IF26_4DIG_EXT_Table20,
    321 : IF26_4DIG_EXT_Table20,
    322 : IF26_4DIG_EXT_Table20,
    323 : IF26_4DIG_EXT_Table20,
    328 : IF26_4DIG_EXT_Table20,
    329 : IF26_4DIG_EXT_Table20,
    339 : IF26_4DIG_EXT_Table20,
    340 : IF26_4DIG_EXT_Table20,
    341 : IF26_4DIG_EXT_Table20,
    342 : IF26_4DIG_EXT_Table20,
    343 : IF26_4DIG_EXT_Table20,
    348 : IF26_4DIG_EXT_Table20,
    349 : IF26_4DIG_EXT_Table20,
    379 : IF26_4DIG_EXT_Table20,
    380 : IF26_4DIG_EXT_Table24,
    381 : IF26_4DIG_EXT_Table24,
    382 : IF26_4DIG_EXT_Table24,
    383 : IF26_4DIG_EXT_Table24,
    384 : IF26_4DIG_EXT_Table24,
    388 : IF26_4DIG_EXT_Table24,
    390 : IF26_4DIG_EXT_Table24,
    398 : IF26_4DIG_EXT_Table24,
    399 : IF26_4DIG_EXT_Table24,
    400 : IF26_4DIG_EXT_Table24,
    401 : IF26_4DIG_EXT_Table24,
    402 : IF26_4DIG_EXT_Table24,
    403 : IF26_4DIG_EXT_Table24,
    408 : IF26_4DIG_EXT_Table24,
    409 : IF26_4DIG_EXT_Table24,
    410 : IF26_4DIG_EXT_Table24,
    411 : IF26_4DIG_EXT_Table24,
    412 : IF26_4DIG_EXT_Table24,
    413 : IF26_4DIG_EXT_Table24,
    414 : IF26_4DIG_EXT_Table24,
    418 : IF26_4DIG_EXT_Table24,
    419 : IF26_4DIG_EXT_Table24,
    470 : IF26_4DIG_EXT_Table24,
    471 : IF26_4DIG_EXT_Table24,
    472 : IF26_4DIG_EXT_Table24,
    473 : IF26_4DIG_EXT_Table24,
    474 : IF26_4DIG_EXT_Table24,
    475 : IF26_4DIG_EXT_Table24,
    476 : IF26_4DIG_EXT_Table24,
    478 : IF26_4DIG_EXT_Table24,
    479 : IF26_4DIG_EXT_Table24,
    480 : IF26_4DIG_EXT_Table24,
    481 : IF26_4DIG_EXT_Table24,
    482 : IF26_4DIG_EXT_Table24,
    488 : IF26_4DIG_EXT_Table20,
    490 : IF26_4DIG_EXT_Table24,
    491 : IF26_4DIG_EXT_Table24,
    492 : IF26_4DIG_EXT_Table24,
    493 : IF26_4DIG_EXT_Table24,
    494 : IF26_4DIG_EXT_Table24,
    495 : IF26_4DIG_EXT_Table24,
    496 : IF26_4DIG_EXT_Table24,
    498 : IF26_4DIG_EXT_Table24,
    499 : IF26_4DIG_EXT_Table24,
    500 : IF26_4DIG_EXT_Table20,
    501 : IF26_4DIG_EXT_Table20,
    502 : IF26_4DIG_EXT_Table20,
    503 : IF26_4DIG_EXT_Table20,
    504 : IF26_4DIG_EXT_Table20,
    505 : IF26_4DIG_EXT_Table20,
    506 : IF26_4DIG_EXT_Table20,
    508 : IF26_4DIG_EXT_Table20,
    509 : IF26_4DIG_EXT_Table20,
    510 : IF26_4DIG_EXT_Table20,
    511 : IF26_4DIG_EXT_Table20,
    512 : IF26_4DIG_EXT_Table20,
    518 : IF26_4DIG_EXT_Table20,
    519 : IF26_4DIG_EXT_Table20,
    529 : IF26_4DIG_EXT_Table20,
    530 : IF26_4DIG_EXT_Table20,
    531 : IF26_4DIG_EXT_Table20,
    538 : IF26_4DIG_EXT_Table20,
    539 : IF26_4DIG_EXT_Table20,
    540 : IF26_4DIG_EXT_Table20,
    541 : IF26_4DIG_EXT_Table20,
    542 : IF26_4DIG_EXT_Table20,
    543 : IF26_4DIG_EXT_Table20,
    548 : IF26_4DIG_EXT_Table20,
    549 : IF26_4DIG_EXT_Table20,
    559 : IF26_4DIG_EXT_Table20,
    569 : IF26_4DIG_EXT_Table20,
    570 : IF26_4DIG_EXT_Table20,
    571 : IF26_4DIG_EXT_Table20,
    572 : IF26_4DIG_EXT_Table20,
    573 : IF26_4DIG_EXT_Table20,
    574 : IF26_4DIG_EXT_Table20,
    577 : IF26_4DIG_EXT_Table20,
    578 : IF26_4DIG_EXT_Table20,
    579 : IF26_4DIG_EXT_Table20,
    589 : IF26_4DIG_EXT_Table20,
    600 : IF26_4DIG_EXT_Table20,
    601 : IF26_4DIG_EXT_Table20,
    602 : IF26_4DIG_EXT_Table20,
    608 : IF26_4DIG_EXT_Table20,
    609 : IF26_4DIG_EXT_Table20,
    619 : IF26_4DIG_EXT_Table20,
    620 : IF26_4DIG_EXT_Table20,
    621 : IF26_4DIG_EXT_Table20,
    629 : IF26_4DIG_EXT_Table20,
    630 : IF26_4DIG_EXT_Table20,
    631 : IF26_4DIG_EXT_Table20,
    632 : IF26_4DIG_EXT_Table20,
    637 : IF26_4DIG_EXT_Table20,
    638 : IF26_4DIG_EXT_Table20,
    639 : IF26_4DIG_EXT_Table20,
    649 : IF26_4DIG_EXT_Table20,
    659 : IF26_4DIG_EXT_Table20,
    669 : IF26_4DIG_EXT_Table20,
    670 : IF26_4DIG_EXT_Table21,
    671 : IF26_4DIG_EXT_Table21,
    672 : IF26_4DIG_EXT_Table21,
    673 : IF26_4DIG_EXT_Table21,
    674 : IF26_4DIG_EXT_Table21,
    675 : IF26_4DIG_EXT_Table21,
    676 : IF26_4DIG_EXT_Table21,
    677 : IF26_4DIG_EXT_Table21,
    678 : IF26_4DIG_EXT_Table21,
    679 : IF26_4DIG_EXT_Table21,
    680 : IF26_4DIG_EXT_Table20,
    681 : IF26_4DIG_EXT_Table20,
    688 : IF26_4DIG_EXT_Table20,
    689 : IF26_4DIG_EXT_Table20,
    690 : IF26_4DIG_EXT_Table20,
    691 : IF26_4DIG_EXT_Table20,
    692 : IF26_4DIG_EXT_Table20,
    693 : IF26_4DIG_EXT_Table20,
    694 : IF26_4DIG_EXT_Table20,
    695 : IF26_4DIG_EXT_Table20,
    696 : IF26_4DIG_EXT_Table20,
    698 : IF26_4DIG_EXT_Table20,
    699 : IF26_4DIG_EXT_Table20,
    700 : IF26_4DIG_EXT_Table24,
    701 : IF26_4DIG_EXT_Table24,
    709 : IF26_4DIG_EXT_Table24,
    710 : IF26_4DIG_EXT_Table20,
    711 : IF26_4DIG_EXT_Table20,
    712 : IF26_4DIG_EXT_Table20,
    713 : IF26_4DIG_EXT_Table20,
    714 : IF26_4DIG_EXT_Table20,
    715 : IF26_4DIG_EXT_Table20,
    716 : IF26_4DIG_EXT_Table20,
    717 : IF26_4DIG_EXT_Table20,
    718 : IF26_4DIG_EXT_Table20,
    719 : IF26_4DIG_EXT_Table20,
    720 : IF26_4DIG_EXT_Table24,
    721 : IF26_4DIG_EXT_Table24,
    722 : IF26_4DIG_EXT_Table24,
    723 : IF26_4DIG_EXT_Table24,
    724 : IF26_4DIG_EXT_Table24,
    725 : IF26_4DIG_EXT_Table24,
    728 : IF26_4DIG_EXT_Table24,
    729 : IF26_4DIG_EXT_Table24,
    739 : IF26_4DIG_EXT_Table20,
    740 : IF26_4DIG_EXT_Table20,
    741 : IF26_4DIG_EXT_Table20,
    749 : IF26_4DIG_EXT_Table20,
    750 : IF26_4DIG_EXT_Table20,
    751 : IF26_4DIG_EXT_Table20,
    752 : IF26_4DIG_EXT_Table20,
    753 : IF26_4DIG_EXT_Table20,
    754 : IF26_4DIG_EXT_Table20,
    755 : IF26_4DIG_EXT_Table20,
    758 : IF26_4DIG_EXT_Table20,
    759 : IF26_4DIG_EXT_Table20,
    760 : IF26_4DIG_EXT_Table23,
    761 : IF26_4DIG_EXT_Table23,
    762 : IF26_4DIG_EXT_Table23,
    763 : IF26_4DIG_EXT_Table23,
    764 : IF26_4DIG_EXT_Table23,
    765 : IF26_4DIG_EXT_Table23,
    767 : IF26_4DIG_EXT_Table23,
    768 : IF26_4DIG_EXT_Table23,
    770 : IF26_4DIG_EXT_Table23,
    771 : IF26_4DIG_EXT_Table23,
    772 : IF26_4DIG_EXT_Table23,
    773 : IF26_4DIG_EXT_Table23,
    774 : IF26_4DIG_EXT_Table23,
    775 : IF26_4DIG_EXT_Table23,
    778 : IF26_4DIG_EXT_Table23,
    779 : IF26_4DIG_EXT_Table23,
    809 : IF26_4DIG_EXT_Table23
]]]></entry>
        <entry id="If26_4DIG_SITE_INSITU_NODES" type="java"><![CDATA[[
    0 : IF26_4DIG_NODES_Table11,
    1 : IF26_4DIG_NODES_Table11,
    2 : IF26_4DIG_NODES_Table11,
    3 : IF26_4DIG_NODES_Table11,
    4 : IF26_4DIG_NODES_Table11,
    5 : IF26_4DIG_NODES_Table11,
    6 : IF26_4DIG_NODES_Table11,
    8 : IF26_4DIG_NODES_Table11,
    9 : IF26_4DIG_NODES_Table11,
    19 : IF26_4DIG_NODES_Table11,
    20 : IF26_4DIG_NODES_Table11,
    21 : IF26_4DIG_NODES_Table11,
    22 : IF26_4DIG_NODES_Table11,
    23 : IF26_4DIG_NODES_Table11,
    24 : IF26_4DIG_NODES_Table11,
    28 : IF26_4DIG_NODES_Table11,
    29 : IF26_4DIG_NODES_Table11,
    30 : IF26_4DIG_NODES_Table11,
    31 : IF26_4DIG_NODES_Table11,
    39 : IF26_4DIG_NODES_Table11,
    40 : IF26_4DIG_NODES_Table11,
    41 : IF26_4DIG_NODES_Table11,
    48 : IF26_4DIG_NODES_Table11,
    49 : IF26_4DIG_NODES_Table11,
    50 : IF26_4DIG_NODES_Table11,
    51 : IF26_4DIG_NODES_Table11,
    52 : IF26_4DIG_NODES_Table11,
    58 : IF26_4DIG_NODES_Table11,
    59 : IF26_4DIG_NODES_Table11,
    60 : IF26_4DIG_NODES_Table11,
    61 : IF26_4DIG_NODES_Table11,
    62 : IF26_4DIG_NODES_Table11,
    68 : IF26_4DIG_NODES_Table11,
    69 : IF26_4DIG_NODES_Table11,
    79 : IF26_4DIG_NODES_Table11,
    80 : IF26_4DIG_NODES_Table11,
    81 : IF26_4DIG_NODES_Table11,
    88 : IF26_4DIG_NODES_Table11,
    89 : IF26_4DIG_NODES_Table11,
    90 : IF26_4DIG_NODES_Table11,
    91 : IF26_4DIG_NODES_Table11,
    98 : IF26_4DIG_NODES_Table11,
    99 : IF26_4DIG_NODES_Table11,
    100 : IF26_4DIG_NODES_Table11,
    101 : IF26_4DIG_NODES_Table11,
    102 : IF26_4DIG_NODES_Table11,
    103 : IF26_4DIG_NODES_Table11,
    104 : IF26_4DIG_NODES_Table11,
    108 : IF26_4DIG_NODES_Table11,
    109 : IF26_4DIG_NODES_Table11,
    110 : IF26_4DIG_NODES_Table11,
    111 : IF26_4DIG_NODES_Table11,
    112 : IF26_4DIG_NODES_Table11,
    113 : IF26_4DIG_NODES_Table11,
    118 : IF26_4DIG_NODES_Table11,
    119 : IF26_4DIG_NODES_Table11,
    129 : IF26_4DIG_NODES_Table11,
    130 : IF26_4DIG_NODES_Table11,
    131 : IF26_4DIG_NODES_Table11,
    132 : IF26_4DIG_NODES_Table11,
    138 : IF26_4DIG_NODES_Table11,
    139 : IF26_4DIG_NODES_Table11,
    140 : IF26_4DIG_NODES_Table11,
    141 : IF26_4DIG_NODES_Table11,
    142 : IF26_4DIG_NODES_Table11,
    148 : IF26_4DIG_NODES_Table11,
    150 : IF26_4DIG_NODES_Table11,
    151 : IF26_4DIG_NODES_Table11,
    152 : IF26_4DIG_NODES_Table11,
    153 : IF26_4DIG_NODES_Table11,
    154 : IF26_4DIG_NODES_Table11,
    155 : IF26_4DIG_NODES_Table11,
    158 : IF26_4DIG_NODES_Table11,
    159 : IF26_4DIG_NODES_Table11,
    160 : IF26_4DIG_NODES_Table11,
    161 : IF26_4DIG_NODES_Table11,
    162 : IF26_4DIG_NODES_Table11,
    163 : IF26_4DIG_NODES_Table11,
    164 : IF26_4DIG_NODES_Table11,
    165 : IF26_4DIG_NODES_Table11,
    166 : IF26_4DIG_NODES_Table11,
    168 : IF26_4DIG_NODES_Table11,
    169 : IF26_4DIG_NODES_Table11,
    170 : IF26_4DIG_NODES_Table11,
    171 : IF26_4DIG_NODES_Table11,
    172 : IF26_4DIG_NODES_Table11,
    173 : IF26_4DIG_NODES_Table11,
    178 : IF26_4DIG_NODES_Table11,
    179 : IF26_4DIG_NODES_Table11,
    180 : IF26_4DIG_NODES_Table11,
    181 : IF26_4DIG_NODES_Table11,
    182 : IF26_4DIG_NODES_Table11,
    183 : IF26_4DIG_NODES_Table11,
    184 : IF26_4DIG_NODES_Table11,
    185 : IF26_4DIG_NODES_Table11,
    186 : IF26_4DIG_NODES_Table11,
    187 : IF26_4DIG_NODES_Table11,
    188 : IF26_4DIG_NODES_Table11,
    199 : IF26_4DIG_NODES_Table11,
    209 : IF26_4DIG_NODES_Table11,
    210 : IF26_4DIG_NODES_Table11,
    211 : IF26_4DIG_NODES_Table11,
    212 : IF26_4DIG_NODES_Table11,
    218 : IF26_4DIG_NODES_Table11,
    220 : IF26_4DIG_NODES_Table11,
    221 : IF26_4DIG_NODES_Table11,
    239 : IF26_4DIG_NODES_Table11,
    240 : IF26_4DIG_NODES_Table11,
    241 : IF26_4DIG_NODES_Table11,
    248 : IF26_4DIG_NODES_Table11,
    249 : IF26_4DIG_NODES_Table11,
    250 : IF26_4DIG_NODES_Table11,
    251 : IF26_4DIG_NODES_Table11,
    252 : IF26_4DIG_NODES_Table11,
    253 : IF26_4DIG_NODES_Table11,
    254 : IF26_4DIG_NODES_Table11,
    257 : IF26_4DIG_NODES_Table11,
    258 : IF26_4DIG_NODES_Table11,
    259 : IF26_4DIG_NODES_Table11,
    260 : IF26_4DIG_NODES_Table11,
    268 : IF26_4DIG_NODES_Table11,
    269 : IF26_4DIG_NODES_Table11,
    300 : IF26_4DIG_NODES_Table11,
    301 : IF26_4DIG_NODES_Table11,
    310 : IF26_4DIG_NODES_Table11,
    311 : IF26_4DIG_NODES_Table11,
    312 : IF26_4DIG_NODES_Table11,
    313 : IF26_4DIG_NODES_Table11,
    318 : IF26_4DIG_NODES_Table11,
    319 : IF26_4DIG_NODES_Table11,
    320 : IF26_4DIG_NODES_Table11,
    321 : IF26_4DIG_NODES_Table11,
    322 : IF26_4DIG_NODES_Table11,
    323 : IF26_4DIG_NODES_Table11,
    328 : IF26_4DIG_NODES_Table11,
    329 : IF26_4DIG_NODES_Table11,
    339 : IF26_4DIG_NODES_Table11,
    340 : IF26_4DIG_NODES_Table11,
    341 : IF26_4DIG_NODES_Table11,
    342 : IF26_4DIG_NODES_Table11,
    343 : IF26_4DIG_NODES_Table11,
    348 : IF26_4DIG_NODES_Table11,
    349 : IF26_4DIG_NODES_Table11,
    379 : IF26_4DIG_NODES_Table11,
    380 : IF26_4DIG_NODES_Table11,
    381 : IF26_4DIG_NODES_Table11,
    382 : IF26_4DIG_NODES_Table11,
    383 : IF26_4DIG_NODES_Table11,
    384 : IF26_4DIG_NODES_Table11,
    388 : IF26_4DIG_NODES_Table11,
    390 : IF26_4DIG_NODES_Table11,
    398 : IF26_4DIG_NODES_Table11,
    399 : IF26_4DIG_NODES_Table11,
    400 : IF26_4DIG_NODES_Table11,
    401 : IF26_4DIG_NODES_Table11,
    402 : IF26_4DIG_NODES_Table11,
    403 : IF26_4DIG_NODES_Table11,
    408 : IF26_4DIG_NODES_Table11,
    409 : IF26_4DIG_NODES_Table11,
    410 : IF26_4DIG_NODES_Table11,
    411 : IF26_4DIG_NODES_Table11,
    412 : IF26_4DIG_NODES_Table11,
    413 : IF26_4DIG_NODES_Table11,
    414 : IF26_4DIG_NODES_Table11,
    418 : IF26_4DIG_NODES_Table11,
    419 : IF26_4DIG_NODES_Table11,
    470 : IF26_4DIG_NODES_Table11,
    471 : IF26_4DIG_NODES_Table11,
    472 : IF26_4DIG_NODES_Table11,
    473 : IF26_4DIG_NODES_Table11,
    474 : IF26_4DIG_NODES_Table11,
    475 : IF26_4DIG_NODES_Table11,
    476 : IF26_4DIG_NODES_Table11,
    478 : IF26_4DIG_NODES_Table11,
    479 : IF26_4DIG_NODES_Table11,
    480 : IF26_4DIG_NODES_Table11,
    481 : IF26_4DIG_NODES_Table11,
    482 : IF26_4DIG_NODES_Table11,
    488 : IF26_4DIG_NODES_Table11,
    490 : IF26_4DIG_NODES_Table11,
    491 : IF26_4DIG_NODES_Table11,
    492 : IF26_4DIG_NODES_Table11,
    493 : IF26_4DIG_NODES_Table11,
    494 : IF26_4DIG_NODES_Table11,
    495 : IF26_4DIG_NODES_Table11,
    496 : IF26_4DIG_NODES_Table11,
    498 : IF26_4DIG_NODES_Table11,
    499 : IF26_4DIG_NODES_Table11,
    500 : IF26_4DIG_NODES_Table11,
    501 : IF26_4DIG_NODES_Table11,
    502 : IF26_4DIG_NODES_Table11,
    503 : IF26_4DIG_NODES_Table11,
    504 : IF26_4DIG_NODES_Table11,
    505 : IF26_4DIG_NODES_Table11,
    506 : IF26_4DIG_NODES_Table11,
    508 : IF26_4DIG_NODES_Table11,
    509 : IF26_4DIG_NODES_Table11,
    510 : IF26_4DIG_NODES_Table11,
    511 : IF26_4DIG_NODES_Table11,
    512 : IF26_4DIG_NODES_Table11,
    518 : IF26_4DIG_NODES_Table11,
    519 : IF26_4DIG_NODES_Table11,
    529 : IF26_4DIG_NODES_Table11,
    530 : IF26_4DIG_NODES_Table11,
    531 : IF26_4DIG_NODES_Table11,
    538 : IF26_4DIG_NODES_Table11,
    539 : IF26_4DIG_NODES_Table11,
    540 : IF26_4DIG_NODES_Table11,
    541 : IF26_4DIG_NODES_Table11,
    542 : IF26_4DIG_NODES_Table11,
    543 : IF26_4DIG_NODES_Table11,
    548 : IF26_4DIG_NODES_Table11,
    549 : IF26_4DIG_NODES_Table11,
    559 : IF26_4DIG_NODES_Table11,
    569 : IF26_4DIG_NODES_Table11,
    570 : IF26_4DIG_NODES_Table11,
    571 : IF26_4DIG_NODES_Table11,
    572 : IF26_4DIG_NODES_Table11,
    573 : IF26_4DIG_NODES_Table11,
    574 : IF26_4DIG_NODES_Table11,
    577 : IF26_4DIG_NODES_Table11,
    578 : IF26_4DIG_NODES_Table11,
    579 : IF26_4DIG_NODES_Table11,
    589 : IF26_4DIG_NODES_Table11,
    600 : IF26_4DIG_NODES_Table11,
    601 : IF26_4DIG_NODES_Table11,
    602 : IF26_4DIG_NODES_Table11,
    608 : IF26_4DIG_NODES_Table11,
    609 : IF26_4DIG_NODES_Table11,
    619 : IF26_4DIG_NODES_Table11,
    620 : IF26_4DIG_NODES_Table11,
    621 : IF26_4DIG_NODES_Table11,
    629 : IF26_4DIG_NODES_Table11,
    630 : IF26_4DIG_NODES_Table11,
    631 : IF26_4DIG_NODES_Table11,
    632 : IF26_4DIG_NODES_Table11,
    637 : IF26_4DIG_NODES_Table11,
    638 : IF26_4DIG_NODES_Table11,
    639 : IF26_4DIG_NODES_Table11,
    649 : IF26_4DIG_NODES_Table11,
    659 : IF26_4DIG_NODES_Table11,
    669 : IF26_4DIG_NODES_Table11,
    670 : IF26_4DIG_NODES_Table11,
    671 : IF26_4DIG_NODES_Table11,
    672 : IF26_4DIG_NODES_Table11,
    673 : IF26_4DIG_NODES_Table11,
    674 : IF26_4DIG_NODES_Table11,
    675 : IF26_4DIG_NODES_Table11,
    676 : IF26_4DIG_NODES_Table11,
    677 : IF26_4DIG_NODES_Table11,
    678 : IF26_4DIG_NODES_Table11,
    679 : IF26_4DIG_NODES_Table11,
    680 : IF26_4DIG_NODES_Table11,
    681 : IF26_4DIG_NODES_Table11,
    688 : IF26_4DIG_NODES_Table11,
    689 : IF26_4DIG_NODES_Table11,
    690 : IF26_4DIG_NODES_Table11,
    691 : IF26_4DIG_NODES_Table11,
    692 : IF26_4DIG_NODES_Table11,
    693 : IF26_4DIG_NODES_Table11,
    694 : IF26_4DIG_NODES_Table11,
    695 : IF26_4DIG_NODES_Table11,
    696 : IF26_4DIG_NODES_Table11,
    698 : IF26_4DIG_NODES_Table11,
    699 : IF26_4DIG_NODES_Table11,
    700 : IF26_4DIG_NODES_Table13,
    701 : IF26_4DIG_NODES_Table13,
    709 : IF26_4DIG_NODES_Table13,
    710 : IF26_4DIG_NODES_Table13,
    711 : IF26_4DIG_NODES_Table13,
    712 : IF26_4DIG_NODES_Table13,
    713 : IF26_4DIG_NODES_Table13,
    714 : IF26_4DIG_NODES_Table13,
    715 : IF26_4DIG_NODES_Table13,
    716 : IF26_4DIG_NODES_Table13,
    717 : IF26_4DIG_NODES_Table13,
    718 : IF26_4DIG_NODES_Table13,
    719 : IF26_4DIG_NODES_Table13,
    720 : IF26_4DIG_NODES_Table13,
    721 : IF26_4DIG_NODES_Table13,
    722 : IF26_4DIG_NODES_Table13,
    723 : IF26_4DIG_NODES_Table13,
    724 : IF26_4DIG_NODES_Table13,
    725 : IF26_4DIG_NODES_Table13,
    728 : IF26_4DIG_NODES_Table13,
    729 : IF26_4DIG_NODES_Table13,
    739 : IF26_4DIG_NODES_Table11,
    740 : IF26_4DIG_NODES_Table11,
    741 : IF26_4DIG_NODES_Table11,
    749 : IF26_4DIG_NODES_Table11,
    750 : IF26_4DIG_NODES_Table11,
    751 : IF26_4DIG_NODES_Table11,
    752 : IF26_4DIG_NODES_Table11,
    753 : IF26_4DIG_NODES_Table11,
    754 : IF26_4DIG_NODES_Table11,
    755 : IF26_4DIG_NODES_Table11,
    758 : IF26_4DIG_NODES_Table11,
    759 : IF26_4DIG_NODES_Table11,
    760 : IF26_4DIG_NODES_Table13,
    761 : IF26_4DIG_NODES_Table13,
    762 : IF26_4DIG_NODES_Table13,
    763 : IF26_4DIG_NODES_Table13,
    764 : IF26_4DIG_NODES_Table13,
    765 : IF26_4DIG_NODES_Table13,
    767 : IF26_4DIG_NODES_Table13,
    768 : IF26_4DIG_NODES_Table13,
    770 : IF26_4DIG_NODES_Table13,
    771 : IF26_4DIG_NODES_Table13,
    772 : IF26_4DIG_NODES_Table13,
    773 : IF26_4DIG_NODES_Table13,
    774 : IF26_4DIG_NODES_Table13,
    775 : IF26_4DIG_NODES_Table13,
    778 : IF26_4DIG_NODES_Table13,
    779 : IF26_4DIG_NODES_Table13,
    809 : IF26_4DIG_NODES_Table13
]]]></entry>
        <entry id="If26_4DIG_SITE_MALIG_EXT" type="java"><![CDATA[[
    0 : IF26_4DIG_EXT_Table1,
    1 : IF26_4DIG_EXT_Table1,
    2 : IF26_4DIG_EXT_Table1,
    3 : IF26_4DIG_EXT_Table1,
    4 : IF26_4DIG_EXT_Table1,
    5 : IF26_4DIG_EXT_Table1,
    6 : IF26_4DIG_EXT_Table1,
    8 : IF26_4DIG_EXT_Table1,
    9 : IF26_4DIG_EXT_Table1,
    19 : IF26_4DIG_EXT_Table2,
    20 : IF26_4DIG_EXT_Table2,
    21 : IF26_4DIG_EXT_Table2,
    22 : IF26_4DIG_EXT_Table2,
    23 : IF26_4DIG_EXT_Table2,
    24 : IF26_4DIG_EXT_Table2,
    28 : IF26_4DIG_EXT_Table2,
    29 : IF26_4DIG_EXT_Table2,
    30 : IF26_4DIG_EXT_Table4,
    31 : IF26_4DIG_EXT_Table4,
    39 : IF26_4DIG_EXT_Table4,
    40 : IF26_4DIG_EXT_Table3,
    41 : IF26_4DIG_EXT_Table3,
    48 : IF26_4DIG_EXT_Table3,
    49 : IF26_4DIG_EXT_Table3,
    50 : IF26_4DIG_EXT_Table3,
    51 : IF26_4DIG_EXT_Table6,
    52 : IF26_4DIG_EXT_Table6,
    58 : IF26_4DIG_EXT_Table7,
    59 : IF26_4DIG_EXT_Table7,
    60 : IF26_4DIG_EXT_Table5,
    61 : IF26_4DIG_EXT_Table5,
    62 : IF26_4DIG_EXT_Table4,
    68 : IF26_4DIG_EXT_Table7,
    69 : IF26_4DIG_EXT_Table7,
    79 : IF26_4DIG_EXT_Table3,
    80 : IF26_4DIG_EXT_Table3,
    81 : IF26_4DIG_EXT_Table3,
    88 : IF26_4DIG_EXT_Table3,
    89 : IF26_4DIG_EXT_Table3,
    90 : IF26_4DIG_EXT_Table8,
    91 : IF26_4DIG_EXT_Table8,
    98 : IF26_4DIG_EXT_Table8,
    99 : IF26_4DIG_EXT_Table8,
    100 : IF26_4DIG_EXT_Table8,
    101 : IF26_4DIG_EXT_Table8,
    102 : IF26_4DIG_EXT_Table8,
    103 : IF26_4DIG_EXT_Table8,
    104 : IF26_4DIG_EXT_Table8,
    108 : IF26_4DIG_EXT_Table8,
    109 : IF26_4DIG_EXT_Table8,
    110 : IF26_4DIG_EXT_Table1,
    111 : IF26_4DIG_EXT_Table1,
    112 : IF26_4DIG_EXT_Table1,
    113 : IF26_4DIG_EXT_Table1,
    118 : IF26_4DIG_EXT_Table1,
    119 : IF26_4DIG_EXT_Table1,
    129 : IF26_4DIG_EXT_Table1,
    130 : IF26_4DIG_EXT_Table1,
    131 : IF26_4DIG_EXT_Table1,
    132 : IF26_4DIG_EXT_Table1,
    138 : IF26_4DIG_EXT_Table1,
    139 : IF26_4DIG_EXT_Table1,
    140 : IF26_4DIG_EXT_Table9,
    141 : IF26_4DIG_EXT_Table1,
    142 : IF26_4DIG_EXT_Table9,
    148 : IF26_4DIG_EXT_Table9,
    150 : IF26_4DIG_EXT_Table10,
    151 : IF26_4DIG_EXT_Table10,
    152 : IF26_4DIG_EXT_Table10,
    153 : IF26_4DIG_EXT_Table10,
    154 : IF26_4DIG_EXT_Table10,
    155 : IF26_4DIG_EXT_Table10,
    158 : IF26_4DIG_EXT_Table10,
    159 : IF26_4DIG_EXT_Table10,
    160 : IF26_4DIG_EXT_Table10,
    161 : IF26_4DIG_EXT_Table10,
    162 : IF26_4DIG_EXT_Table10,
    163 : IF26_4DIG_EXT_Table10,
    164 : IF26_4DIG_EXT_Table10,
    165 : IF26_4DIG_EXT_Table10,
    166 : IF26_4DIG_EXT_Table10,
    168 : IF26_4DIG_EXT_Table10,
    169 : IF26_4DIG_EXT_Table10,
    170 : IF26_4DIG_EXT_Table10,
    171 : IF26_4DIG_EXT_Table10,
    172 : IF26_4DIG_EXT_Table10,
    173 : IF26_4DIG_EXT_Table10,
    178 : IF26_4DIG_EXT_Table10,
    179 : IF26_4DIG_EXT_Table10,
    180 : IF26_4DIG_EXT_Table10,
    181 : IF26_4DIG_EXT_Table10,
    182 : IF26_4DIG_EXT_Table10,
    183 : IF26_4DIG_EXT_Table10,
    184 : IF26_4DIG_EXT_Table10,
    185 : IF26_4DIG_EXT_Table10,
    186 : IF26_4DIG_EXT_Table10,
    187 : IF26_4DIG_EXT_Table10,
    188 : IF26_4DIG_EXT_Table10,
    199 : IF26_4DIG_EXT_Table10,
    209 : IF26_4DIG_EXT_Table10,
    210 : IF26_4DIG_EXT_Table5,
    211 : IF26_4DIG_EXT_Table5,
    212 : IF26_4DIG_EXT_Table5,
    218 : IF26_4DIG_EXT_Table5,
    220 : IF26_4DIG_EXT_Table10,
    221 : IF26_4DIG_EXT_Table10,
    239 : IF26_4DIG_EXT_Table10,
    240 : IF26_4DIG_EXT_Table8,
    241 : IF26_4DIG_EXT_Table10,
    248 : IF26_4DIG_EXT_Table10,
    249 : IF26_4DIG_EXT_Table10,
    250 : IF26_4DIG_EXT_Table2,
    251 : IF26_4DIG_EXT_Table2,
    252 : IF26_4DIG_EXT_Table2,
    253 : IF26_4DIG_EXT_Table2,
    254 : IF26_4DIG_EXT_Table2,
    257 : IF26_4DIG_EXT_Table9,
    258 : IF26_4DIG_EXT_Table9,
    259 : IF26_4DIG_EXT_Table9,
    260 : IF26_4DIG_EXT_Table9,
    268 : IF26_4DIG_EXT_Table9,
    269 : IF26_4DIG_EXT_Table9,
    300 : IF26_4DIG_EXT_Table9,
    301 : IF26_4DIG_EXT_Table9,
    310 : IF26_4DIG_EXT_Table16,
    311 : IF26_4DIG_EXT_Table16,
    312 : IF26_4DIG_EXT_Table16,
    313 : IF26_4DIG_EXT_Table16,
    318 : IF26_4DIG_EXT_Table16,
    319 : IF26_4DIG_EXT_Table16,
    320 : IF26_4DIG_EXT_Table6,
    321 : IF26_4DIG_EXT_Table10,
    322 : IF26_4DIG_EXT_Table12,
    323 : IF26_4DIG_EXT_Table9,
    328 : IF26_4DIG_EXT_Table9,
    329 : IF26_4DIG_EXT_Table9,
    339 : IF26_4DIG_EXT_Table9,
    340 : IF26_4DIG_EXT_Table10,
    341 : IF26_4DIG_EXT_Table10,
    342 : IF26_4DIG_EXT_Table10,
    343 : IF26_4DIG_EXT_Table10,
    348 : IF26_4DIG_EXT_Table10,
    349 : IF26_4DIG_EXT_Table10,
    379 : IF26_4DIG_EXT_Table9,
    380 : IF26_4DIG_EXT_Table11,
    381 : IF26_4DIG_EXT_Table11,
    382 : IF26_4DIG_EXT_Table11,
    383 : IF26_4DIG_EXT_Table11,
    384 : IF26_4DIG_EXT_Table13,
    388 : IF26_4DIG_EXT_Table11,
    390 : IF26_4DIG_EXT_Table11,
    398 : IF26_4DIG_EXT_Table11,
    399 : IF26_4DIG_EXT_Table11,
    400 : IF26_4DIG_EXT_Table14,
    401 : IF26_4DIG_EXT_Table14,
    402 : IF26_4DIG_EXT_Table14,
    403 : IF26_4DIG_EXT_Table14,
    408 : IF26_4DIG_EXT_Table14,
    409 : IF26_4DIG_EXT_Table14,
    410 : IF26_4DIG_EXT_Table14,
    411 : IF26_4DIG_EXT_Table14,
    412 : IF26_4DIG_EXT_Table14,
    413 : IF26_4DIG_EXT_Table14,
    414 : IF26_4DIG_EXT_Table14,
    418 : IF26_4DIG_EXT_Table14,
    419 : IF26_4DIG_EXT_Table14,
    470 : IF26_4DIG_EXT_Table11,
    471 : IF26_4DIG_EXT_Table11,
    472 : IF26_4DIG_EXT_Table11,
    473 : IF26_4DIG_EXT_Table11,
    474 : IF26_4DIG_EXT_Table11,
    475 : IF26_4DIG_EXT_Table11,
    476 : IF26_4DIG_EXT_Table11,
    478 : IF26_4DIG_EXT_Table11,
    479 : IF26_4DIG_EXT_Table11,
    480 : IF26_4DIG_EXT_Table11,
    481 : IF26_4DIG_EXT_Table11,
    482 : IF26_4DIG_EXT_Table11,
    488 : IF26_4DIG_EXT_Table9,
    490 : IF26_4DIG_EXT_Table11,
    491 : IF26_4DIG_EXT_Table11,
    492 : IF26_4DIG_EXT_Table11,
    493 : IF26_4DIG_EXT_Table11,
    494 : IF26_4DIG_EXT_Table11,
    495 : IF26_4DIG_EXT_Table11,
    496 : IF26_4DIG_EXT_Table11,
    498 : IF26_4DIG_EXT_Table11,
    499 : IF26_4DIG_EXT_Table11,
    500 : IF26_4DIG_EXT_Table10,
    501 : IF26_4DIG_EXT_Table10,
    502 : IF26_4DIG_EXT_Table10,
    503 : IF26_4DIG_EXT_Table10,
    504 : IF26_4DIG_EXT_Table10,
    505 : IF26_4DIG_EXT_Table10,
    506 : IF26_4DIG_EXT_Table10,
    508 : IF26_4DIG_EXT_Table10,
    509 : IF26_4DIG_EXT_Table10,
    510 : IF26_4DIG_EXT_Table16,
    511 : IF26_4DIG_EXT_Table16,
    512 : IF26_4DIG_EXT_Table16,
    518 : IF26_4DIG_EXT_Table16,
    519 : IF26_4DIG_EXT_Table16,
    529 : IF26_4DIG_EXT_Table10,
    530 : IF26_4DIG_EXT_Table10,
    531 : IF26_4DIG_EXT_Table10,
    538 : IF26_4DIG_EXT_Table10,
    539 : IF26_4DIG_EXT_Table10,
    540 : IF26_4DIG_EXT_Table8,
    541 : IF26_4DIG_EXT_Table8,
    542 : IF26_4DIG_EXT_Table8,
    543 : IF26_4DIG_EXT_Table8,
    548 : IF26_4DIG_EXT_Table8,
    549 : IF26_4DIG_EXT_Table8,
    559 : IF26_4DIG_EXT_Table8,
    569 : IF26_4DIG_EXT_Table10,
    570 : IF26_4DIG_EXT_Table4,
    571 : IF26_4DIG_EXT_Table4,
    572 : IF26_4DIG_EXT_Table4,
    573 : IF26_4DIG_EXT_Table4,
    574 : IF26_4DIG_EXT_Table4,
    577 : IF26_4DIG_EXT_Table16,
    578 : IF26_4DIG_EXT_Table16,
    579 : IF26_4DIG_EXT_Table16,
    589 : IF26_4DIG_EXT_Table8,
    600 : IF26_4DIG_EXT_Table3,
    601 : IF26_4DIG_EXT_Table3,
    602 : IF26_4DIG_EXT_Table3,
    608 : IF26_4DIG_EXT_Table3,
    609 : IF26_4DIG_EXT_Table3,
    619 : IF26_4DIG_EXT_Table10,
    620 : IF26_4DIG_EXT_Table10,
    621 : IF26_4DIG_EXT_Table10,
    629 : IF26_4DIG_EXT_Table10,
    630 : IF26_4DIG_EXT_Table9,
    631 : IF26_4DIG_EXT_Table9,
    632 : IF26_4DIG_EXT_Table9,
    637 : IF26_4DIG_EXT_Table9,
    638 : IF26_4DIG_EXT_Table9,
    639 : IF26_4DIG_EXT_Table9,
    649 : IF26_4DIG_EXT_Table10,
    659 : IF26_4DIG_EXT_Table10,
    669 : IF26_4DIG_EXT_Table10,
    670 : IF26_4DIG_EXT_Table19,
    671 : IF26_4DIG_EXT_Table19,
    672 : IF26_4DIG_EXT_Table19,
    673 : IF26_4DIG_EXT_Table19,
    674 : IF26_4DIG_EXT_Table19,
    675 : IF26_4DIG_EXT_Table19,
    676 : IF26_4DIG_EXT_Table19,
    677 : IF26_4DIG_EXT_Table19,
    678 : IF26_4DIG_EXT_Table19,
    679 : IF26_4DIG_EXT_Table19,
    680 : IF26_4DIG_EXT_Table10,
    681 : IF26_4DIG_EXT_Table10,
    688 : IF26_4DIG_EXT_Table10,
    689 : IF26_4DIG_EXT_Table10,
    690 : IF26_4DIG_EXT_Table7,
    691 : IF26_4DIG_EXT_Table7,
    692 : IF26_4DIG_EXT_Table7,
    693 : IF26_4DIG_EXT_Table7,
    694 : IF26_4DIG_EXT_Table7,
    695 : IF26_4DIG_EXT_Table7,
    696 : IF26_4DIG_EXT_Table7,
    698 : IF26_4DIG_EXT_Table7,
    699 : IF26_4DIG_EXT_Table7,
    700 : IF26_4DIG_EXT_Table17,
    701 : IF26_4DIG_EXT_Table17,
    709 : IF26_4DIG_EXT_Table17,
    710 : IF26_4DIG_EXT_Table10,
    711 : IF26_4DIG_EXT_Table10,
    712 : IF26_4DIG_EXT_Table10,
    713 : IF26_4DIG_EXT_Table10,
    714 : IF26_4DIG_EXT_Table10,
    715 : IF26_4DIG_EXT_Table10,
    716 : IF26_4DIG_EXT_Table10,
    717 : IF26_4DIG_EXT_Table10,
    718 : IF26_4DIG_EXT_Table10,
    719 : IF26_4DIG_EXT_Table10,
    720 : IF26_4DIG_EXT_Table17,
    721 : IF26_4DIG_EXT_Table17,
    722 : IF26_4DIG_EXT_Table17,
    723 : IF26_4DIG_EXT_Table17,
    724 : IF26_4DIG_EXT_Table17,
    725 : IF26_4DIG_EXT_Table17,
    728 : IF26_4DIG_EXT_Table17,
    729 : IF26_4DIG_EXT_Table17,
    739 : IF26_4DIG_EXT_Table10,
    740 : IF26_4DIG_EXT_Table9,
    741 : IF26_4DIG_EXT_Table9,
    749 : IF26_4DIG_EXT_Table9,
    750 : IF26_4DIG_EXT_Table9,
    751 : IF26_4DIG_EXT_Table9,
    752 : IF26_4DIG_EXT_Table9,
    753 : IF26_4DIG_EXT_Table9,
    754 : IF26_4DIG_EXT_Table9,
    755 : IF26_4DIG_EXT_Table9,
    758 : IF26_4DIG_EXT_Table9,
    759 : IF26_4DIG_EXT_Table9,
    760 : IF26_4DIG_EXT_Table23,
    761 : IF26_4DIG_EXT_Table23,
    762 : IF26_4DIG_EXT_Table23,
    763 : IF26_4DIG_EXT_Table23,
    764 : IF26_4DIG_EXT_Table23,
    765 : IF26_4DIG_EXT_Table23,
    767 : IF26_4DIG_EXT_Table23,
    768 : IF26_4DIG_EXT_Table23,
    770 : IF26_4DIG_EXT_Table23,
    771 : IF26_4DIG_EXT_Table23,
    772 : IF26_4DIG_EXT_Table23,
    773 : IF26_4DIG_EXT_Table23,
    774 : IF26_4DIG_EXT_Table23,
    775 : IF26_4DIG_EXT_Table23,
    778 : IF26_4DIG_EXT_Table23,
    779 : IF26_4DIG_EXT_Table23,
    809 : IF26_4DIG_EXT_Table23
]]]></entry>
        <entry id="If26_4DIG_SITE_MALIG_NODES" type="java"><![CDATA[[
    0 : IF26_4DIG_NODES_Table1,
    1 : IF26_4DIG_NODES_Table1,
    2 : IF26_4DIG_NODES_Table1,
    3 : IF26_4DIG_NODES_Table1,
    4 : IF26_4DIG_NODES_Table1,
    5 : IF26_4DIG_NODES_Table1,
    6 : IF26_4DIG_NODES_Table1,
    8 : IF26_4DIG_NODES_Table1,
    9 : IF26_4DIG_NODES_Table1,
    19 : IF26_4DIG_NODES_Table1,
    20 : IF26_4DIG_NODES_Table1,
    21 : IF26_4DIG_NODES_Table1,
    22 : IF26_4DIG_NODES_Table1,
    23 : IF26_4DIG_NODES_Table1,
    24 : IF26_4DIG_NODES_Table1,
    28 : IF26_4DIG_NODES_Table1,
    29 : IF26_4DIG_NODES_Table1,
    30 : IF26_4DIG_NODES_Table1,
    31 : IF26_4DIG_NODES_Table1,
    39 : IF26_4DIG_NODES_Table1,
    40 : IF26_4DIG_NODES_Table1,
    41 : IF26_4DIG_NODES_Table1,
    48 : IF26_4DIG_NODES_Table1,
    49 : IF26_4DIG_NODES_Table1,
    50 : IF26_4DIG_NODES_Table1,
    51 : IF26_4DIG_NODES_Table1,
    52 : IF26_4DIG_NODES_Table1,
    58 : IF26_4DIG_NODES_Table1,
    59 : IF26_4DIG_NODES_Table1,
    60 : IF26_4DIG_NODES_Table1,
    61 : IF26_4DIG_NODES_Table1,
    62 : IF26_4DIG_NODES_Table1,
    68 : IF26_4DIG_NODES_Table1,
    69 : IF26_4DIG_NODES_Table1,
    79 : IF26_4DIG_NODES_Table2,
    80 : IF26_4DIG_NODES_Table2,
    81 : IF26_4DIG_NODES_Table2,
    88 : IF26_4DIG_NODES_Table2,
    89 : IF26_4DIG_NODES_Table2,
    90 : IF26_4DIG_NODES_Table1,
    91 : IF26_4DIG_NODES_Table1,
    98 : IF26_4DIG_NODES_Table1,
    99 : IF26_4DIG_NODES_Table1,
    100 : IF26_4DIG_NODES_Table1,
    101 : IF26_4DIG_NODES_Table1,
    102 : IF26_4DIG_NODES_Table1,
    103 : IF26_4DIG_NODES_Table1,
    104 : IF26_4DIG_NODES_Table1,
    108 : IF26_4DIG_NODES_Table1,
    109 : IF26_4DIG_NODES_Table1,
    110 : IF26_4DIG_NODES_Table1,
    111 : IF26_4DIG_NODES_Table1,
    112 : IF26_4DIG_NODES_Table1,
    113 : IF26_4DIG_NODES_Table1,
    118 : IF26_4DIG_NODES_Table1,
    119 : IF26_4DIG_NODES_Table1,
    129 : IF26_4DIG_NODES_Table1,
    130 : IF26_4DIG_NODES_Table1,
    131 : IF26_4DIG_NODES_Table1,
    132 : IF26_4DIG_NODES_Table1,
    138 : IF26_4DIG_NODES_Table1,
    139 : IF26_4DIG_NODES_Table1,
    140 : IF26_4DIG_NODES_Table1,
    141 : IF26_4DIG_NODES_Table1,
    142 : IF26_4DIG_NODES_Table1,
    148 : IF26_4DIG_NODES_Table1,
    150 : IF26_4DIG_NODES_Table1,
    151 : IF26_4DIG_NODES_Table1,
    152 : IF26_4DIG_NODES_Table1,
    153 : IF26_4DIG_NODES_Table1,
    154 : IF26_4DIG_NODES_Table1,
    155 : IF26_4DIG_NODES_Table1,
    158 : IF26_4DIG_NODES_Table1,
    159 : IF26_4DIG_NODES_Table1,
    160 : IF26_4DIG_NODES_Table3,
    161 : IF26_4DIG_NODES_Table3,
    162 : IF26_4DIG_NODES_Table3,
    163 : IF26_4DIG_NODES_Table3,
    164 : IF26_4DIG_NODES_Table3,
    165 : IF26_4DIG_NODES_Table3,
    166 : IF26_4DIG_NODES_Table3,
    168 : IF26_4DIG_NODES_Table3,
    169 : IF26_4DIG_NODES_Table3,
    170 : IF26_4DIG_NODES_Table4,
    171 : IF26_4DIG_NODES_Table4,
    172 : IF26_4DIG_NODES_Table4,
    173 : IF26_4DIG_NODES_Table4,
    178 : IF26_4DIG_NODES_Table4,
    179 : IF26_4DIG_NODES_Table4,
    180 : IF26_4DIG_NODES_Table4,
    181 : IF26_4DIG_NODES_Table4,
    182 : IF26_4DIG_NODES_Table4,
    183 : IF26_4DIG_NODES_Table4,
    184 : IF26_4DIG_NODES_Table4,
    185 : IF26_4DIG_NODES_Table4,
    186 : IF26_4DIG_NODES_Table4,
    187 : IF26_4DIG_NODES_Table4,
    188 : IF26_4DIG_NODES_Table4,
    199 : IF26_4DIG_NODES_Table5,
    209 : IF26_4DIG_NODES_Table5,
    210 : IF26_4DIG_NODES_Table2,
    211 : IF26_4DIG_NODES_Table2,
    212 : IF26_4DIG_NODES_Table2,
    218 : IF26_4DIG_NODES_Table2,
    220 : IF26_4DIG_NODES_Table2,
    221 : IF26_4DIG_NODES_Table2,
    239 : IF26_4DIG_NODES_Table6,
    240 : IF26_4DIG_NODES_Table6,
    241 : IF26_4DIG_NODES_Table4,
    248 : IF26_4DIG_NODES_Table6,
    249 : IF26_4DIG_NODES_Table6,
    250 : IF26_4DIG_NODES_Table2,
    251 : IF26_4DIG_NODES_Table2,
    252 : IF26_4DIG_NODES_Table2,
    253 : IF26_4DIG_NODES_Table2,
    254 : IF26_4DIG_NODES_Table2,
    257 : IF26_4DIG_NODES_Table2,
    258 : IF26_4DIG_NODES_Table2,
    259 : IF26_4DIG_NODES_Table2,
    260 : IF26_4DIG_NODES_Table4,
    268 : IF26_4DIG_NODES_Table4,
    269 : IF26_4DIG_NODES_Table4,
    300 : IF26_4DIG_NODES_Table4,
    301 : IF26_4DIG_NODES_Table4,
    310 : IF26_4DIG_NODES_Table6,
    311 : IF26_4DIG_NODES_Table6,
    312 : IF26_4DIG_NODES_Table6,
    313 : IF26_4DIG_NODES_Table6,
    318 : IF26_4DIG_NODES_Table6,
    319 : IF26_4DIG_NODES_Table6,
    320 : IF26_4DIG_NODES_Table6,
    321 : IF26_4DIG_NODES_Table6,
    322 : IF26_4DIG_NODES_Table6,
    323 : IF26_4DIG_NODES_Table6,
    328 : IF26_4DIG_NODES_Table6,
    329 : IF26_4DIG_NODES_Table6,
    339 : IF26_4DIG_NODES_Table4,
    340 : IF26_4DIG_NODES_Table7,
    341 : IF26_4DIG_NODES_Table7,
    342 : IF26_4DIG_NODES_Table7,
    343 : IF26_4DIG_NODES_Table7,
    348 : IF26_4DIG_NODES_Table7,
    349 : IF26_4DIG_NODES_Table7,
    379 : IF26_4DIG_NODES_Table4,
    380 : IF26_4DIG_NODES_Table4,
    381 : IF26_4DIG_NODES_Table4,
    382 : IF26_4DIG_NODES_Table4,
    383 : IF26_4DIG_NODES_Table4,
    384 : IF26_4DIG_NODES_Table4,
    388 : IF26_4DIG_NODES_Table4,
    390 : IF26_4DIG_NODES_Table4,
    398 : IF26_4DIG_NODES_Table4,
    399 : IF26_4DIG_NODES_Table4,
    400 : IF26_4DIG_NODES_Table4,
    401 : IF26_4DIG_NODES_Table4,
    402 : IF26_4DIG_NODES_Table4,
    403 : IF26_4DIG_NODES_Table4,
    408 : IF26_4DIG_NODES_Table4,
    409 : IF26_4DIG_NODES_Table4,
    410 : IF26_4DIG_NODES_Table4,
    411 : IF26_4DIG_NODES_Table4,
    412 : IF26_4DIG_NODES_Table4,
    413 : IF26_4DIG_NODES_Table4,
    414 : IF26_4DIG_NODES_Table4,
    418 : IF26_4DIG_NODES_Table4,
    419 : IF26_4DIG_NODES_Table4,
    470 : IF26_4DIG_NODES_Table4,
    471 : IF26_4DIG_NODES_Table4,
    472 : IF26_4DIG_NODES_Table4,
    473 : IF26_4DIG_NODES_Table4,
    474 : IF26_4DIG_NODES_Table4,
    475 : IF26_4DIG_NODES_Table4,
    476 : IF26_4DIG_NODES_Table4,
    478 : IF26_4DIG_NODES_Table4,
    479 : IF26_4DIG_NODES_Table4,
    480 : IF26_4DIG_NODES_Table4,
    481 : IF26_4DIG_NODES_Table4,
    482 : IF26_4DIG_NODES_Table4,
    488 : IF26_4DIG_NODES_Table4,
    490 : IF26_4DIG_NODES_Table4,
    491 : IF26_4DIG_NODES_Table4,
    492 : IF26_4DIG_NODES_Table4,
    493 : IF26_4DIG_NODES_Table4,
    494 : IF26_4DIG_NODES_Table4,
    495 : IF26_4DIG_NODES_Table4,
    496 : IF26_4DIG_NODES_Table4,
    498 : IF26_4DIG_NODES_Table4,
    499 : IF26_4DIG_NODES_Table4,
    500 : IF26_4DIG_NODES_Table1,
    501 : IF26_4DIG_NODES_Table1,
    502 : IF26_4DIG_NODES_Table1,
    503 : IF26_4DIG_NODES_Table1,
    504 : IF26_4DIG_NODES_Table1,
    505 : IF26_4DIG_NODES_Table1,
    506 : IF26_4DIG_NODES_Table1,
    508 : IF26_4DIG_NODES_Table1,
    509 : IF26_4DIG_NODES_Table1,
    510 : IF26_4DIG_NODES_Table10,
    511 : IF26_4DIG_NODES_Table10,
    512 : IF26_4DIG_NODES_Table10,
    518 : IF26_4DIG_NODES_Table10,
    519 : IF26_4DIG_NODES_Table10,
    529 : IF26_4DIG_NODES_Table6,
    530 : IF26_4DIG_NODES_Table6,
    531 : IF26_4DIG_NODES_Table6,
    538 : IF26_4DIG_NODES_Table6,
    539 : IF26_4DIG_NODES_Table6,
    540 : IF26_4DIG_NODES_Table6,
    541 : IF26_4DIG_NODES_Table6,
    542 : IF26_4DIG_NODES_Table6,
    543 : IF26_4DIG_NODES_Table6,
    548 : IF26_4DIG_NODES_Table6,
    549 : IF26_4DIG_NODES_Table6,
    559 : IF26_4DIG_NODES_Table6,
    569 : IF26_4DIG_NODES_Table2,
    570 : IF26_4DIG_NODES_Table7,
    571 : IF26_4DIG_NODES_Table7,
    572 : IF26_4DIG_NODES_Table7,
    573 : IF26_4DIG_NODES_Table7,
    574 : IF26_4DIG_NODES_Table7,
    577 : IF26_4DIG_NODES_Table10,
    578 : IF26_4DIG_NODES_Table10,
    579 : IF26_4DIG_NODES_Table10,
    589 : IF26_4DIG_NODES_Table6,
    600 : IF26_4DIG_NODES_Table4,
    601 : IF26_4DIG_NODES_Table4,
    602 : IF26_4DIG_NODES_Table4,
    608 : IF26_4DIG_NODES_Table4,
    609 : IF26_4DIG_NODES_Table4,
    619 : IF26_4DIG_NODES_Table12,
    620 : IF26_4DIG_NODES_Table1,
    621 : IF26_4DIG_NODES_Table1,
    629 : IF26_4DIG_NODES_Table1,
    630 : IF26_4DIG_NODES_Table4,
    631 : IF26_4DIG_NODES_Table4,
    632 : IF26_4DIG_NODES_Table4,
    637 : IF26_4DIG_NODES_Table4,
    638 : IF26_4DIG_NODES_Table4,
    639 : IF26_4DIG_NODES_Table4,
    649 : IF26_4DIG_NODES_Table1,
    659 : IF26_4DIG_NODES_Table1,
    669 : IF26_4DIG_NODES_Table1,
    670 : IF26_4DIG_NODES_Table1,
    671 : IF26_4DIG_NODES_Table1,
    672 : IF26_4DIG_NODES_Table1,
    673 : IF26_4DIG_NODES_Table1,
    674 : IF26_4DIG_NODES_Table1,
    675 : IF26_4DIG_NODES_Table1,
    676 : IF26_4DIG_NODES_Table1,
    677 : IF26_4DIG_NODES_Table1,
    678 : IF26_4DIG_NODES_Table1,
    679 : IF26_4DIG_NODES_Table1,
    680 : IF26_4DIG_NODES_Table1,
    681 : IF26_4DIG_NODES_Table1,
    688 : IF26_4DIG_NODES_Table1,
    689 : IF26_4DIG_NODES_Table1,
    690 : IF26_4DIG_NODES_Table4,
    691 : IF26_4DIG_NODES_Table4,
    692 : IF26_4DIG_NODES_Table4,
    693 : IF26_4DIG_NODES_Table4,
    694 : IF26_4DIG_NODES_Table4,
    695 : IF26_4DIG_NODES_Table4,
    696 : IF26_4DIG_NODES_Table4,
    698 : IF26_4DIG_NODES_Table4,
    699 : IF26_4DIG_NODES_Table4,
    700 : IF26_4DIG_NODES_Table13,
    701 : IF26_4DIG_NODES_Table13,
    709 : IF26_4DIG_NODES_Table13,
    710 : IF26_4DIG_NODES_Table13,
    711 : IF26_4DIG_NODES_Table13,
    712 : IF26_4DIG_NODES_Table13,
    713 : IF26_4DIG_NODES_Table13,
    714 : IF26_4DIG_NODES_Table13,
    715 : IF26_4DIG_NODES_Table13,
    716 : IF26_4DIG_NODES_Table13,
    717 : IF26_4DIG_NODES_Table13,
    718 : IF26_4DIG_NODES_Table13,
    719 : IF26_4DIG_NODES_Table13,
    720 : IF26_4DIG_NODES_Table13,
    721 : IF26_4DIG_NODES_Table13,
    722 : IF26_4DIG_NODES_Table13,
    723 : IF26_4DIG_NODES_Table13,
    724 : IF26_4DIG_NODES_Table13,
    725 : IF26_4DIG_NODES_Table13,
    728 : IF26_4DIG_NODES_Table13,
    729 : IF26_4DIG_NODES_Table13,
    739 : IF26_4DIG_NODES_Table6,
    740 : IF26_4DIG_NODES_Table4,
    741 : IF26_4DIG_NODES_Table4,
    749 : IF26_4DIG_NODES_Table4,
    750 : IF26_4DIG_NODES_Table4,
    751 : IF26_4DIG_NODES_Table4,
    752 : IF26_4DIG_NODES_Table4,
    753 : IF26_4DIG_NODES_Table4,
    754 : IF26_4DIG_NODES_Table4,
    755 : IF26_4DIG_NODES_Table4,
    758 : IF26_4DIG_NODES_Table4,
    759 : IF26_4DIG_NODES_Table4,
    760 : IF26_4DIG_NODES_Table13,
    761 : IF26_4DIG_NODES_Table13,
    762 : IF26_4DIG_NODES_Table13,
    763 : IF26_4DIG_NODES_Table13,
    764 : IF26_4DIG_NODES_Table13,
    765 : IF26_4DIG_NODES_Table13,
    767 : IF26_4DIG_NODES_Table13,
    768 : IF26_4DIG_NODES_Table13,
    770 : IF26_4DIG_NODES_Table13,
    771 : IF26_4DIG_NODES_Table13,
    772 : IF26_4DIG_NODES_Table13,
    773 : IF26_4DIG_NODES_Table13,
    774 : IF26_4DIG_NODES_Table13,
    775 : IF26_4DIG_NODES_Table13,
    778 : IF26_4DIG_NODES_Table13,
    779 : IF26_4DIG_NODES_Table13,
    809 : IF26_4DIG_NODES_Table13
]]]></entry>
        <entry id="If26_4DIG_SITE_SIZE" type="java"><![CDATA[[
    0 : IF26_4DIG_SIZE_Table1,
    1 : IF26_4DIG_SIZE_Table1,
    2 : IF26_4DIG_SIZE_Table1,
    3 : IF26_4DIG_SIZE_Table1,
    4 : IF26_4DIG_SIZE_Table1,
    5 : IF26_4DIG_SIZE_Table1,
    6 : IF26_4DIG_SIZE_Table1,
    8 : IF26_4DIG_SIZE_Table1,
    9 : IF26_4DIG_SIZE_Table1,
    19 : IF26_4DIG_SIZE_Table1,
    20 : IF26_4DIG_SIZE_Table1,
    21 : IF26_4DIG_SIZE_Table1,
    22 : IF26_4DIG_SIZE_Table1,
    23 : IF26_4DIG_SIZE_Table1,
    24 : IF26_4DIG_SIZE_Table1,
    28 : IF26_4DIG_SIZE_Table1,
    29 : IF26_4DIG_SIZE_Table1,
    30 : IF26_4DIG_SIZE_Table1,
    31 : IF26_4DIG_SIZE_Table1,
    39 : IF26_4DIG_SIZE_Table1,
    40 : IF26_4DIG_SIZE_Table1,
    41 : IF26_4DIG_SIZE_Table1,
    48 : IF26_4DIG_SIZE_Table1,
    49 : IF26_4DIG_SIZE_Table1,
    50 : IF26_4DIG_SIZE_Table1,
    51 : IF26_4DIG_SIZE_Table1,
    52 : IF26_4DIG_SIZE_Table1,
    58 : IF26_4DIG_SIZE_Table1,
    59 : IF26_4DIG_SIZE_Table1,
    60 : IF26_4DIG_SIZE_Table1,
    61 : IF26_4DIG_SIZE_Table1,
    62 : IF26_4DIG_SIZE_Table1,
    68 : IF26_4DIG_SIZE_Table1,
    69 : IF26_4DIG_SIZE_Table1,
    79 : IF26_4DIG_SIZE_Table1,
    80 : IF26_4DIG_SIZE_Table1,
    81 : IF26_4DIG_SIZE_Table1,
    88 : IF26_4DIG_SIZE_Table1,
    89 : IF26_4DIG_SIZE_Table1,
    90 : IF26_4DIG_SIZE_Table1,
    91 : IF26_4DIG_SIZE_Table1,
    98 : IF26_4DIG_SIZE_Table1,
    99 : IF26_4DIG_SIZE_Table1,
    100 : IF26_4DIG_SIZE_Table1,
    101 : IF26_4DIG_SIZE_Table1,
    102 : IF26_4DIG_SIZE_Table1,
    103 : IF26_4DIG_SIZE_Table1,
    104 : IF26_4DIG_SIZE_Table1,
    108 : IF26_4DIG_SIZE_Table1,
    109 : IF26_4DIG_SIZE_Table1,
    110 : IF26_4DIG_SIZE_Table1,
    111 : IF26_4DIG_SIZE_Table1,
    112 : IF26_4DIG_SIZE_Table1,
    113 : IF26_4DIG_SIZE_Table1,
    118 : IF26_4DIG_SIZE_Table1,
    119 : IF26_4DIG_SIZE_Table1,
    129 : IF26_4DIG_SIZE_Table1,
    130 : IF26_4DIG_SIZE_Table1,
    131 : IF26_4DIG_SIZE_Table1,
    132 : IF26_4DIG_SIZE_Table1,
    138 : IF26_4DIG_SIZE_Table1,
    139 : IF26_4DIG_SIZE_Table1,
    140 : IF26_4DIG_SIZE_Table1,
    141 : IF26_4DIG_SIZE_Table1,
    142 : IF26_4DIG_SIZE_Table1,
    148 : IF26_4DIG_SIZE_Table1,
    150 : IF26_4DIG_SIZE_Table2,
    151 : IF26_4DIG_SIZE_Table2,
    152 : IF26_4DIG_SIZE_Table2,
    153 : IF26_4DIG_SIZE_Table2,
    154 : IF26_4DIG_SIZE_Table2,
    155 : IF26_4DIG_SIZE_Table2,
    158 : IF26_4DIG_SIZE_Table2,
    159 : IF26_4DIG_SIZE_Table2,
    160 : IF26_4DIG_SIZE_Table2,
    161 : IF26_4DIG_SIZE_Table2,
    162 : IF26_4DIG_SIZE_Table2,
    163 : IF26_4DIG_SIZE_Table2,
    164 : IF26_4DIG_SIZE_Table2,
    165 : IF26_4DIG_SIZE_Table2,
    166 : IF26_4DIG_SIZE_Table2,
    168 : IF26_4DIG_SIZE_Table2,
    169 : IF26_4DIG_SIZE_Table2,
    170 : IF26_4DIG_SIZE_Table1,
    171 : IF26_4DIG_SIZE_Table1,
    172 : IF26_4DIG_SIZE_Table1,
    173 : IF26_4DIG_SIZE_Table1,
    178 : IF26_4DIG_SIZE_Table1,
    179 : IF26_4DIG_SIZE_Table1,
    180 : IF26_4DIG_SIZE_Table1,
    181 : IF26_4DIG_SIZE_Table1,
    182 : IF26_4DIG_SIZE_Table1,
    183 : IF26_4DIG_SIZE_Table1,
    184 : IF26_4DIG_SIZE_Table1,
    185 : IF26_4DIG_SIZE_Table1,
    186 : IF26_4DIG_SIZE_Table1,
    187 : IF26_4DIG_SIZE_Table1,
    188 : IF26_4DIG_SIZE_Table1,
    199 : IF26_4DIG_SIZE_Table1,
    209 : IF26_4DIG_SIZE_Table1,
    210 : IF26_4DIG_SIZE_Table1,
    211 : IF26_4DIG_SIZE_Table1,
    212 : IF26_4DIG_SIZE_Table1,
    218 : IF26_4DIG_SIZE_Table1,
    220 : IF26_4DIG_SIZE_Table1,
    221 : IF26_4DIG_SIZE_Table1,
    239 : IF26_4DIG_SIZE_Table1,
    240 : IF26_4DIG_SIZE_Table1,
    241 : IF26_4DIG_SIZE_Table1,
    248 : IF26_4DIG_SIZE_Table1,
    249 : IF26_4DIG_SIZE_Table1,
    250 : IF26_4DIG_SIZE_Table1,
    251 : IF26_4DIG_SIZE_Table1,
    252 : IF26_4DIG_SIZE_Table1,
    253 : IF26_4DIG_SIZE_Table1,
    254 : IF26_4DIG_SIZE_Table1,
    257 : IF26_4DIG_SIZE_Table1,
    258 : IF26_4DIG_SIZE_Table1,
    259 : IF26_4DIG_SIZE_Table1,
    260 : IF26_4DIG_SIZE_Table3,
    268 : IF26_4DIG_SIZE_Table3,
    269 : IF26_4DIG_SIZE_Table3,
    300 : IF26_4DIG_SIZE_Table1,
    301 : IF26_4DIG_SIZE_Table1,
    310 : IF26_4DIG_SIZE_Table1,
    311 : IF26_4DIG_SIZE_Table1,
    312 : IF26_4DIG_SIZE_Table1,
    313 : IF26_4DIG_SIZE_Table1,
    318 : IF26_4DIG_SIZE_Table1,
    319 : IF26_4DIG_SIZE_Table1,
    320 : IF26_4DIG_SIZE_Table1,
    321 : IF26_4DIG_SIZE_Table1,
    322 : IF26_4DIG_SIZE_Table1,
    323 : IF26_4DIG_SIZE_Table1,
    328 : IF26_4DIG_SIZE_Table1,
    329 : IF26_4DIG_SIZE_Table1,
    339 : IF26_4DIG_SIZE_Table1,
    340 : IF26_4DIG_SIZE_Table1,
    341 : IF26_4DIG_SIZE_Table2,
    342 : IF26_4DIG_SIZE_Table2,
    343 : IF26_4DIG_SIZE_Table2,
    348 : IF26_4DIG_SIZE_Table2,
    349 : IF26_4DIG_SIZE_Table2,
    379 : IF26_4DIG_SIZE_Table1,
    380 : IF26_4DIG_SIZE_Table1,
    381 : IF26_4DIG_SIZE_Table1,
    382 : IF26_4DIG_SIZE_Table1,
    383 : IF26_4DIG_SIZE_Table1,
    384 : IF26_4DIG_SIZE_Table1,
    388 : IF26_4DIG_SIZE_Table1,
    390 : IF26_4DIG_SIZE_Table3,
    398 : IF26_4DIG_SIZE_Table3,
    399 : IF26_4DIG_SIZE_Table3,
    400 : IF26_4DIG_SIZE_Table1,
    401 : IF26_4DIG_SIZE_Table1,
    402 : IF26_4DIG_SIZE_Table1,
    403 : IF26_4DIG_SIZE_Table1,
    408 : IF26_4DIG_SIZE_Table1,
    409 : IF26_4DIG_SIZE_Table1,
    410 : IF26_4DIG_SIZE_Table1,
    411 : IF26_4DIG_SIZE_Table1,
    412 : IF26_4DIG_SIZE_Table1,
    413 : IF26_4DIG_SIZE_Table1,
    414 : IF26_4DIG_SIZE_Table1,
    418 : IF26_4DIG_SIZE_Table1,
    419 : IF26_4DIG_SIZE_Table1,
    470 : IF26_4DIG_SIZE_Table1,
    471 : IF26_4DIG_SIZE_Table1,
    472 : IF26_4DIG_SIZE_Table1,
    473 : IF26_4DIG_SIZE_Table1,
    474 : IF26_4DIG_SIZE_Table1,
    475 : IF26_4DIG_SIZE_Table1,
    476 : IF26_4DIG_SIZE_Table1,
    478 : IF26_4DIG_SIZE_Table1,
    479 : IF26_4DIG_SIZE_Table1,
    480 : IF26_4DIG_SIZE_Table3,
    481 : IF26_4DIG_SIZE_Table3,
    482 : IF26_4DIG_SIZE_Table3,
    488 : IF26_4DIG_SIZE_Table3,
    490 : IF26_4DIG_SIZE_Table1,
    491 : IF26_4DIG_SIZE_Table1,
    492 : IF26_4DIG_SIZE_Table1,
    493 : IF26_4DIG_SIZE_Table1,
    494 : IF26_4DIG_SIZE_Table1,
    495 : IF26_4DIG_SIZE_Table1,
    496 : IF26_4DIG_SIZE_Table1,
    498 : IF26_4DIG_SIZE_Table1,
    499 : IF26_4DIG_SIZE_Table1,
    500 : IF26_4DIG_SIZE_Table2,
    501 : IF26_4DIG_SIZE_Table2,
    502 : IF26_4DIG_SIZE_Table2,
    503 : IF26_4DIG_SIZE_Table2,
    504 : IF26_4DIG_SIZE_Table2,
    505 : IF26_4DIG_SIZE_Table2,
    506 : IF26_4DIG_SIZE_Table2,
    508 : IF26_4DIG_SIZE_Table2,
    509 : IF26_4DIG_SIZE_Table2,
    510 : IF26_4DIG_SIZE_Table1,
    511 : IF26_4DIG_SIZE_Table1,
    512 : IF26_4DIG_SIZE_Table1,
    518 : IF26_4DIG_SIZE_Table1,
    519 : IF26_4DIG_SIZE_Table1,
    529 : IF26_4DIG_SIZE_Table1,
    530 : IF26_4DIG_SIZE_Table1,
    531 : IF26_4DIG_SIZE_Table1,
    538 : IF26_4DIG_SIZE_Table1,
    539 : IF26_4DIG_SIZE_Table1,
    540 : IF26_4DIG_SIZE_Table1,
    541 : IF26_4DIG_SIZE_Table1,
    542 : IF26_4DIG_SIZE_Table1,
    543 : IF26_4DIG_SIZE_Table1,
    548 : IF26_4DIG_SIZE_Table1,
    549 : IF26_4DIG_SIZE_Table1,
    559 : IF26_4DIG_SIZE_Table1,
    569 : IF26_4DIG_SIZE_Table4,
    570 : IF26_4DIG_SIZE_Table1,
    571 : IF26_4DIG_SIZE_Table1,
    572 : IF26_4DIG_SIZE_Table1,
    573 : IF26_4DIG_SIZE_Table1,
    574 : IF26_4DIG_SIZE_Table1,
    577 : IF26_4DIG_SIZE_Table1,
    578 : IF26_4DIG_SIZE_Table1,
    579 : IF26_4DIG_SIZE_Table1,
    589 : IF26_4DIG_SIZE_Table1,
    600 : IF26_4DIG_SIZE_Table1,
    601 : IF26_4DIG_SIZE_Table1,
    602 : IF26_4DIG_SIZE_Table1,
    608 : IF26_4DIG_SIZE_Table1,
    609 : IF26_4DIG_SIZE_Table1,
    619 : IF26_4DIG_SIZE_Table1,
    620 : IF26_4DIG_SIZE_Table1,
    621 : IF26_4DIG_SIZE_Table1,
    629 : IF26_4DIG_SIZE_Table1,
    630 : IF26_4DIG_SIZE_Table1,
    631 : IF26_4DIG_SIZE_Table1,
    632 : IF26_4DIG_SIZE_Table1,
    637 : IF26_4DIG_SIZE_Table1,
    638 : IF26_4DIG_SIZE_Table1,
    639 : IF26_4DIG_SIZE_Table1,
    649 : IF26_4DIG_SIZE_Table1,
    659 : IF26_4DIG_SIZE_Table1,
    669 : IF26_4DIG_SIZE_Table1,
    670 : IF26_4DIG_SIZE_Table1,
    671 : IF26_4DIG_SIZE_Table1,
    672 : IF26_4DIG_SIZE_Table1,
    673 : IF26_4DIG_SIZE_Table1,
    674 : IF26_4DIG_SIZE_Table1,
    675 : IF26_4DIG_SIZE_Table1,
    676 : IF26_4DIG_SIZE_Table1,
    677 : IF26_4DIG_SIZE_Table1,
    678 : IF26_4DIG_SIZE_Table1,
    679 : IF26_4DIG_SIZE_Table1,
    680 : IF26_4DIG_SIZE_Table1,
    681 : IF26_4DIG_SIZE_Table1,
    688 : IF26_4DIG_SIZE_Table1,
    689 : IF26_4DIG_SIZE_Table1,
    690 : IF26_4DIG_SIZE_Table1,
    691 : IF26_4DIG_SIZE_Table1,
    692 : IF26_4DIG_SIZE_Table1,
    693 : IF26_4DIG_SIZE_Table1,
    694 : IF26_4DIG_SIZE_Table1,
    695 : IF26_4DIG_SIZE_Table1,
    696 : IF26_4DIG_SIZE_Table1,
    698 : IF26_4DIG_SIZE_Table1,
    699 : IF26_4DIG_SIZE_Table1,
    700 : IF26_4DIG_SIZE_Table1,
    701 : IF26_4DIG_SIZE_Table1,
    709 : IF26_4DIG_SIZE_Table1,
    710 : IF26_4DIG_SIZE_Table1,
    711 : IF26_4DIG_SIZE_Table1,
    712 : IF26_4DIG_SIZE_Table1,
    713 : IF26_4DIG_SIZE_Table1,
    714 : IF26_4DIG_SIZE_Table1,
    715 : IF26_4DIG_SIZE_Table1,
    716 : IF26_4DIG_SIZE_Table1,
    717 : IF26_4DIG_SIZE_Table1,
    718 : IF26_4DIG_SIZE_Table1,
    719 : IF26_4DIG_SIZE_Table1,
    720 : IF26_4DIG_SIZE_Table1,
    721 : IF26_4DIG_SIZE_Table1,
    722 : IF26_4DIG_SIZE_Table1,
    723 : IF26_4DIG_SIZE_Table1,
    724 : IF26_4DIG_SIZE_Table1,
    725 : IF26_4DIG_SIZE_Table1,
    728 : IF26_4DIG_SIZE_Table1,
    729 : IF26_4DIG_SIZE_Table1,
    739 : IF26_4DIG_SIZE_Table1,
    740 : IF26_4DIG_SIZE_Table1,
    741 : IF26_4DIG_SIZE_Table1,
    749 : IF26_4DIG_SIZE_Table1,
    750 : IF26_4DIG_SIZE_Table1,
    751 : IF26_4DIG_SIZE_Table1,
    752 : IF26_4DIG_SIZE_Table1,
    753 : IF26_4DIG_SIZE_Table1,
    754 : IF26_4DIG_SIZE_Table1,
    755 : IF26_4DIG_SIZE_Table1,
    758 : IF26_4DIG_SIZE_Table1,
    759 : IF26_4DIG_SIZE_Table1,
    760 : IF26_4DIG_SIZE_Table3,
    761 : IF26_4DIG_SIZE_Table3,
    762 : IF26_4DIG_SIZE_Table3,
    763 : IF26_4DIG_SIZE_Table3,
    764 : IF26_4DIG_SIZE_Table3,
    765 : IF26_4DIG_SIZE_Table3,
    767 : IF26_4DIG_SIZE_Table3,
    768 : IF26_4DIG_SIZE_Table3,
    770 : IF26_4DIG_SIZE_Table3,
    771 : IF26_4DIG_SIZE_Table3,
    772 : IF26_4DIG_SIZE_Table3,
    773 : IF26_4DIG_SIZE_Table3,
    774 : IF26_4DIG_SIZE_Table3,
    775 : IF26_4DIG_SIZE_Table3,
    778 : IF26_4DIG_SIZE_Table3,
    779 : IF26_4DIG_SIZE_Table3,
    809 : IF26_4DIG_SIZE_Table3
]]]></entry>
        <entry id="IF26_4DIG_SIZE_Table1" type="java"><![CDATA[[0..97,99]]]></entry>
        <entry id="IF26_4DIG_SIZE_Table2" type="java"><![CDATA[[0..98,99]]]></entry>
        <entry id="IF26_4DIG_SIZE_Table3" type="java"><![CDATA[[99]]]></entry>
        <entry id="IF26_4DIG_SIZE_Table4" type="java"><![CDATA[[0..3,99]]]></entry>
        <entry id="If26E98_3_HIST_INSITU_EXT" type="java"><![CDATA[[
    [9140] : IF26_10DGE98_3_INSITU_EXT_Table5,
    [9590..9591,9596,9650..9655,9659,9661..9665,9667,9670..9671,9673,9675,9678..9680,9684,9687,9689..9691,9695,9698..9699,9702,9705,9708..9709,9714,9716..9719,9727..9729] : IF26_10DGE98_3_INSITU_EXT_Table5,
    [9732..9733,9741..9742,9760..9762,9765..9769,9800..9801,9805,9820,9823,9826..9827,9831..9837,9840,9860..9863,9866..9867,9870..9876,9891,9895..9897,9910,9920,9931,9940,9945..9946,9948,9950,9960..9964,9970,9975,9980,9982..9987,9989] : IF26_10DGE98_3_INSITU_EXT_Table5,
    [9751,9752] : IF26_10DGE98_3_INSITU_EXT_Table5,
    [9731,9734,9740,9750,9755..9758,9764,9930] : IF26_10DGE98_3_INSITU_EXT_Table5,
    [9753..9754] : IF26_10DGE98_3_INSITU_EXT_Table5
]]]></entry>
        <entry id="If26E98_3_HIST_INSITU_LN" type="java"><![CDATA[[
    [9140] : IF26_10DGE98_3_INSITU_LN_Table2,
    [9590..9591,9596,9650..9655,9659,9661..9665,9667,9670..9671,9673,9675,9678..9680,9684,9687,9689..9691,9695,9698..9699,9702,9705,9708..9709,9714,9716..9719,9727..9729] : IF26_10DGE98_3_INSITU_LN_Table2,
    [9732..9733,9741..9742,9760..9762,9765..9769,9800..9801,9805,9820,9823,9826..9827,9831..9837,9840,9860..9863,9866..9867,9870..9876,9891,9895..9897,9910,9920,9931,9940,9945..9946,9948,9950,9960..9964,9970,9975,9980,9982..9987,9989] : IF26_10DGE98_3_INSITU_LN_Table2,
    [9751,9752] : IF26_10DGE98_3_INSITU_LN_Table2,
    [9731,9734,9740,9750,9755..9758,9764,9930] : IF26_10DGE98_3_INSITU_LN_Table2,
    [9753..9754] : IF26_10DGE98_3_INSITU_LN_Table2
]]]></entry>
        <entry id="If26E98_3_HIST_INSITU_POS_NODES" type="java"><![CDATA[[
    [9140] : IF26_10DGE98_3_Nodes_Pos_Table1,
    [9590..9591,9596,9650..9655,9659,9661..9665,9667,9670..9671,9673,9675,9678..9680,9684,9687,9689..9691,9695,9698..9699,9702,9705,9708..9709,9714,9716..9719,9727..9729] : IF26_10DGE98_3_Nodes_Pos_Table1,
    [9732..9733,9741..9742,9760..9762,9765..9769,9800..9801,9805,9820,9823,9826..9827,9831..9837,9840,9860..9863,9866..9867,9870..9876,9891,9895..9897,9910,9920,9931,9940,9945..9946,9948,9950,9960..9964,9970,9975,9980,9982..9987,9989] : IF26_10DGE98_3_Nodes_Pos_Table1,
    [9751,9752] : IF26_10DGE98_3_Nodes_Pos_Table1,
    [9731,9734,9740,9750,9755..9758,9764,9930] : IF26_10DGE98_3_Nodes_Pos_Table1,
    [9753..9754] : IF26_10DGE98_3_Nodes_Pos_Table1
]]]></entry>
        <entry id="If26E98_3_HIST_INSITU_REG_EXAM" type="java"><![CDATA[[
    [9140] : IF26_10DGE98_3_Reg_Exam_Table1,
    [9590..9591,9596,9650..9655,9659,9661..9665,9667,9670..9671,9673,9675,9678..9680,9684,9687,9689..9691,9695,9698..9699,9702,9705,9708..9709,9714,9716..9719,9727..9729] : IF26_10DGE98_3_Reg_Exam_Table1,
    [9732..9733,9741..9742,9760..9762,9765..9769,9800..9801,9805,9820,9823,9826..9827,9831..9837,9840,9860..9863,9866..9867,9870..9876,9891,9895..9897,9910,9920,9931,9940,9945..9946,9948,9950,9960..9964,9970,9975,9980,9982..9987,9989] : IF26_10DGE98_3_Reg_Exam_Table1,
    [9751,9752] : IF26_10DGE98_3_Reg_Exam_Table1,
    [9731,9734,9740,9750,9755..9758,9764,9930] : IF26_10DGE98_3_Reg_Exam_Table1,
    [9753..9754] : IF26_10DGE98_3_Reg_Exam_Table1
]]]></entry>
        <entry id="If26E98_3_HIST_MALIG_EXT" type="java"><![CDATA[[
    [9140] : IF26_10DGE98_3_MALIG_EXT_Table75,
    [9590..9591,9596,9650..9655,9659,9661..9665,9667,9670..9671,9673,9675,9678..9680,9684,9687,9689..9691,9695,9698..9699,9702,9705,9708..9709,9714,9716..9719,9727..9729] : IF26_10DGE98_3_MALIG_EXT_Table77,
    [9732..9733,9741..9742,9760..9762,9765..9769,9800..9801,9805,9820,9823,9826..9827,9831..9837,9840,9860..9863,9866..9867,9870..9876,9891,9895..9897,9910,9920,9931,9940,9945..9946,9948,9950,9960..9964,9970,9975,9980,9982..9987,9989] : IF26_10DGE98_3_MALIG_EXT_Table78,
    [9751,9752] : IF26_10DGE98_3_MALIG_EXT_Table80,
    [9731,9734,9740,9750,9755..9758,9764,9930] : IF26_10DGE98_3_MALIG_EXT_Table81,
    [9753..9754] : IF26_10DGE98_3_MALIG_EXT_Table82
]]]></entry>
        <entry id="If26E98_3_HIST_MALIG_LN" type="java"><![CDATA[[
    [9140] : IF26_10DGE98_3_MALIG_LN_Table7,
    [9590..9591,9596,9650..9655,9659,9661..9665,9667,9670..9671,9673,9675,9678..9680,9684,9687,9689..9691,9695,9698..9699,9702,9705,9708..9709,9714,9716..9719,9727..9729] : IF26_10DGE98_3_MALIG_LN_Table7,
    [9732..9733,9741..9742,9760..9762,9765..9769,9800..9801,9805,9820,9823,9826..9827,9831..9837,9840,9860..9863,9866..9867,9870..9876,9891,9895..9897,9910,9920,9931,9940,9945..9946,9948,9950,9960..9964,9970,9975,9980,9982..9987,9989] : IF26_10DGE98_3_MALIG_LN_Table13,
    [9751,9752] : IF26_10DGE98_3_MALIG_LN_Table13,
    [9731,9734,9740,9750,9755..9758,9764,9930] : IF26_10DGE98_3_MALIG_LN_Table13,
    [9753..9754] : IF26_10DGE98_3_MALIG_LN_Table13
]]]></entry>
        <entry id="If26E98_3_HIST_MALIG_POS_NODES" type="java"><![CDATA[[
    [9140] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [9590..9591,9596,9650..9655,9659,9661..9665,9667,9670..9671,9673,9675,9678..9680,9684,9687,9689..9691,9695,9698..9699,9702,9705,9708..9709,9714,9716..9719,9727..9729] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [9732..9733,9741..9742,9760..9762,9765..9769,9800..9801,9805,9820,9823,9826..9827,9831..9837,9840,9860..9863,9866..9867,9870..9876,9891,9895..9897,9910,9920,9931,9940,9945..9946,9948,9950,9960..9964,9970,9975,9980,9982..9987,9989] : IF26_10DGE98_3_Nodes_Pos_Table4,
    [9751,9752] : IF26_10DGE98_3_Nodes_Pos_Table4,
    [9731,9734,9740,9750,9755..9758,9764,9930] : IF26_10DGE98_3_Nodes_Pos_Table4,
    [9753..9754] : IF26_10DGE98_3_Nodes_Pos_Table4
]]]></entry>
        <entry id="If26E98_3_HIST_MALIG_REG_EXAM" type="java"><![CDATA[[
    [9140] : IF26_10DGE98_3_Reg_Exam_Table3,
    [9590..9591,9596,9650..9655,9659,9661..9665,9667,9670..9671,9673,9675,9678..9680,9684,9687,9689..9691,9695,9698..9699,9702,9705,9708..9709,9714,9716..9719,9727..9729] : IF26_10DGE98_3_Reg_Exam_Table3,
    [9732..9733,9741..9742,9760..9762,9765..9769,9800..9801,9805,9820,9823,9826..9827,9831..9837,9840,9860..9863,9866..9867,9870..9876,9891,9895..9897,9910,9920,9931,9940,9945..9946,9948,9950,9960..9964,9970,9975,9980,9982..9987,9989] : IF26_10DGE98_3_Reg_Exam_Table4,
    [9751,9752] : IF26_10DGE98_3_Reg_Exam_Table4,
    [9731,9734,9740,9750,9755..9758,9764,9930] : IF26_10DGE98_3_Reg_Exam_Table4,
    [9753..9754] : IF26_10DGE98_3_Reg_Exam_Table4
]]]></entry>
        <entry id="If26E98_3_HIST_SITE_INSITU_EXT" type="java"><![CDATA[[
    [8720..8790] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DGE98_3_INSITU_EXT_Table1,
            [690] : IF26_10DGE98_3_INSITU_EXT_Table1,
            [691..694,698..699] : IF26_10DGE98_3_INSITU_EXT_Table1],
    [9510..9514] : [
            [692] : IF26_10DGE98_3_INSITU_EXT_Table5],
    [9700..9701] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DGE98_3_INSITU_EXT_Table5]
]]]></entry>
        <entry id="If26E98_3_HIST_SITE_INSITU_LN" type="java"><![CDATA[[
    [8720..8790] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DGE98_3_INSITU_LN_Table1,
            [690] : IF26_10DGE98_3_INSITU_LN_Table1,
            [691..694,698..699] : IF26_10DGE98_3_INSITU_LN_Table1],
    [9510..9514] : [
            [692] : IF26_10DGE98_3_INSITU_LN_Table1],
    [9700..9701] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DGE98_3_INSITU_LN_Table2]
]]]></entry>
        <entry id="If26E98_3_HIST_SITE_INSITU_POS_NODES" type="java"><![CDATA[[
    [8720..8790] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DGE98_3_Nodes_Pos_Table2,
            [690] : IF26_10DGE98_3_Nodes_Pos_Table2,
            [691..694,698..699] : IF26_10DGE98_3_Nodes_Pos_Table2],
    [9510..9514] : [
            [692] : IF26_10DGE98_3_Nodes_Pos_Table2],
    [9700..9701] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DGE98_3_Nodes_Pos_Table1]
]]]></entry>
        <entry id="If26E98_3_HIST_SITE_INSITU_REG_EXAM" type="java"><![CDATA[[
    [8720..8790] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DGE98_3_Reg_Exam_Table2,
            [690] : IF26_10DGE98_3_Reg_Exam_Table2,
            [691..694,698..699] : IF26_10DGE98_3_Reg_Exam_Table2],
    [9510..9514] : [
            [692] : IF26_10DGE98_3_Reg_Exam_Table2],
    [9700..9701] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DGE98_3_Reg_Exam_Table1]
]]]></entry>
        <entry id="If26E98_3_HIST_SITE_MALIG_EXT" type="java"><![CDATA[[
    [8720..8790] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DGE98_3_MALIG_EXT_Table43,
            [690] : IF26_10DGE98_3_MALIG_EXT_Table66,
            [691..694,698..699] : IF26_10DGE98_3_MALIG_EXT_Table68],
    [9510..9514] : [
            [692] : IF26_10DGE98_3_MALIG_EXT_Table76],
    [9700..9701] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DGE98_3_MALIG_EXT_Table44]
]]]></entry>
        <entry id="If26E98_3_HIST_SITE_MALIG_LN" type="java"><![CDATA[[
    [8720..8790] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DGE98_3_MALIG_LN_Table2,
            [690] : IF26_10DGE98_3_MALIG_LN_Table12,
            [691..694,698..699] : IF26_10DGE98_3_MALIG_LN_Table12],
    [9510..9514] : [
            [692] : IF26_10DGE98_3_MALIG_LN_Table12],
    [9700..9701] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DGE98_3_MALIG_LN_Table7]
]]]></entry>
        <entry id="If26E98_3_HIST_SITE_MALIG_POS_NODES" type="java"><![CDATA[[
    [8720..8790] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DGE98_3_Nodes_Pos_Table3,
            [690] : IF26_10DGE98_3_Nodes_Pos_Table3,
            [691..694,698..699] : IF26_10DGE98_3_Nodes_Pos_Table3],
    [9510..9514] : [
            [692] : IF26_10DGE98_3_Nodes_Pos_Table3],
    [9700..9701] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DGE98_3_Nodes_Pos_Table3]
]]]></entry>
        <entry id="If26E98_3_HIST_SITE_MALIG_REG_EXAM" type="java"><![CDATA[[
    [8720..8790] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DGE98_3_Reg_Exam_Table3,
            [690] : IF26_10DGE98_3_Reg_Exam_Table3,
            [691..694,698..699] : IF26_10DGE98_3_Reg_Exam_Table3],
    [9510..9514] : [
            [692] : IF26_10DGE98_3_Reg_Exam_Table3],
    [9700..9701] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DGE98_3_Reg_Exam_Table3]
]]]></entry>
        <entry id="If26E98_3_HIST_SITE_SIZE" type="java"><![CDATA[[
    [8720..8790] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DGE98_3_Size_Table1,
            [690] : IF26_10DGE98_3_Size_Table1,
            [691..694,698..699] : IF26_10DGE98_3_Size_Table1],
    [9510..9514] : [
            [692] : IF26_10DGE98_3_Size_Table1],
    [9700..9701] : [
            [440..449,510..512,518..519,600..601,608..609,632] : IF26_10DGE98_3_Size_Table4]
]]]></entry>
        <entry id="If26E98_3_HIST_SIZE" type="java"><![CDATA[[
    [9140] : IF26_10DGE98_3_Size_Table5,
    [9590..9591,9596,9650..9655,9659,9661..9665,9667,9670..9671,9673,9675,9678..9680,9684,9687,9689..9691,9695,9698..9699,9702,9705,9708..9709,9714,9716..9719,9727..9729] : IF26_10DGE98_3_Size_Table5,
    [9732..9733,9741..9742,9760..9762,9765..9769,9800..9801,9805,9820,9823,9826..9827,9831..9837,9840,9860..9863,9866..9867,9870..9876,9891,9895..9897,9910,9920,9931,9940,9945..9946,9948,9950,9960..9964,9970,9975,9980,9982..9987,9989] : IF26_10DGE98_3_Size_Table6,
    [9751,9752] : IF26_10DGE98_3_Size_Table6,
    [9731,9734,9740,9750,9755..9758,9764,9930] : IF26_10DGE98_3_Size_Table6,
    [9753..9754] : IF26_10DGE98_3_Size_Table6
]]]></entry>
        <entry id="If26E98_3_SITE_INSITU_EXT" type="java"><![CDATA[[
    [0..6,8..9] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [19,24] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [20..23,28..29] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [30..31,39,62] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [40..41,48..49] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [50] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [51..52] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [58..59,68..69] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [60..61] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [79..81,88..89] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [98..99,90..91,100..104,108..109] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [110..113,118..119] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [129..132,138..139,141] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [140,142,148] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [150..155,158..159] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [160..166,168..169] : IF26_10DGE98_3_INSITU_EXT_Table4,
    [170..173,178..179] : IF26_10DGE98_3_INSITU_EXT_Table4,
    [180..189] : IF26_10DGE98_3_INSITU_EXT_Table4,
    [199,209] : IF26_10DGE98_3_INSITU_EXT_Table4,
    [210..212,218] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [220..221] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [239,248..249] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [240] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [241] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [250..254] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [257..259] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [260,268..269] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [300,301] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [310] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [311] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [312..313,318..319] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [320] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [321] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [322] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [323,328..329] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [339] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [340..343,348..349] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [380..383,388] : IF26_10DGE98_3_INSITU_EXT_Table5,
    [384] : IF26_10DGE98_3_INSITU_EXT_Table5,
    [390,398..399] : IF26_10DGE98_3_INSITU_EXT_Table5,
    [400..403,408..409,410..414,418..419] : IF26_10DGE98_3_INSITU_EXT_Table5,
    [440..449] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [470..476,478..479,490..496,498..499] : IF26_10DGE98_3_INSITU_EXT_Table5,
    [480..482,488] : IF26_10DGE98_3_INSITU_EXT_Table5,
    [500..506,508..509] : IF26_10DGE98_3_INSITU_EXT_Table4,
    [510..512,518..519] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [529] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [530..531,538..539] : IF26_10DGE98_3_INSITU_EXT_Table2,
    [540..543,548..549,559] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [569] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [570] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [571..574] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [577..579] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [589] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [600..609] : IF26_10DGE98_3_INSITU_EXT_Table4,
    [619] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [620..621,629] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [630..632,637..639] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [649] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [659,669] : IF26_10DGE98_3_INSITU_EXT_Table4,
    [670..679] : IF26_10DGE98_3_INSITU_EXT_Table3,
    [680..681,688..689] : IF26_10DGE98_3_INSITU_EXT_Table4,
    [690] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [691..694,698..699] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [695] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [696] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [700,710..719] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [701,709,720..725,728..729] : IF26_10DGE98_3_INSITU_EXT_Table5,
    [739] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [379,740..741,749,750..755,758..759] : IF26_10DGE98_3_INSITU_EXT_Table1,
    [809,760..765,767..768,770..775,778..779,420..424] : IF26_10DGE98_3_INSITU_EXT_Table5
]]]></entry>
        <entry id="If26E98_3_SITE_INSITU_LN" type="java"><![CDATA[[
    [0..6,8..9] : IF26_10DGE98_3_INSITU_LN_Table1,
    [19,24] : IF26_10DGE98_3_INSITU_LN_Table1,
    [20..23,28..29] : IF26_10DGE98_3_INSITU_LN_Table1,
    [30..31,39,62] : IF26_10DGE98_3_INSITU_LN_Table1,
    [40..41,48..49] : IF26_10DGE98_3_INSITU_LN_Table1,
    [50] : IF26_10DGE98_3_INSITU_LN_Table1,
    [51..52] : IF26_10DGE98_3_INSITU_LN_Table1,
    [58..59,68..69] : IF26_10DGE98_3_INSITU_LN_Table1,
    [60..61] : IF26_10DGE98_3_INSITU_LN_Table1,
    [79..81,88..89] : IF26_10DGE98_3_INSITU_LN_Table1,
    [98..99,90..91,100..104,108..109] : IF26_10DGE98_3_INSITU_LN_Table1,
    [110..113,118..119] : IF26_10DGE98_3_INSITU_LN_Table1,
    [129..132,138..139,141] : IF26_10DGE98_3_INSITU_LN_Table1,
    [140,142,148] : IF26_10DGE98_3_INSITU_LN_Table1,
    [150..155,158..159] : IF26_10DGE98_3_INSITU_LN_Table1,
    [160..166,168..169] : IF26_10DGE98_3_INSITU_LN_Table1,
    [170..173,178..179] : IF26_10DGE98_3_INSITU_LN_Table1,
    [180..189] : IF26_10DGE98_3_INSITU_LN_Table1,
    [199,209] : IF26_10DGE98_3_INSITU_LN_Table1,
    [210..212,218] : IF26_10DGE98_3_INSITU_LN_Table1,
    [220..221] : IF26_10DGE98_3_INSITU_LN_Table1,
    [239,248..249] : IF26_10DGE98_3_INSITU_LN_Table1,
    [240] : IF26_10DGE98_3_INSITU_LN_Table1,
    [241] : IF26_10DGE98_3_INSITU_LN_Table1,
    [250..254] : IF26_10DGE98_3_INSITU_LN_Table1,
    [257..259] : IF26_10DGE98_3_INSITU_LN_Table1,
    [260,268..269] : IF26_10DGE98_3_INSITU_LN_Table1,
    [300,301] : IF26_10DGE98_3_INSITU_LN_Table1,
    [310] : IF26_10DGE98_3_INSITU_LN_Table1,
    [311] : IF26_10DGE98_3_INSITU_LN_Table1,
    [312..313,318..319] : IF26_10DGE98_3_INSITU_LN_Table1,
    [320] : IF26_10DGE98_3_INSITU_LN_Table1,
    [321] : IF26_10DGE98_3_INSITU_LN_Table1,
    [322] : IF26_10DGE98_3_INSITU_LN_Table1,
    [323,328..329] : IF26_10DGE98_3_INSITU_LN_Table1,
    [339] : IF26_10DGE98_3_INSITU_LN_Table1,
    [340..343,348..349] : IF26_10DGE98_3_INSITU_LN_Table1,
    [380..383,388] : IF26_10DGE98_3_INSITU_LN_Table2,
    [384] : IF26_10DGE98_3_INSITU_LN_Table2,
    [390,398..399] : IF26_10DGE98_3_INSITU_LN_Table2,
    [400..403,408..409,410..414,418..419] : IF26_10DGE98_3_INSITU_LN_Table2,
    [440..449] : IF26_10DGE98_3_INSITU_LN_Table1,
    [470..476,478..479,490..496,498..499] : IF26_10DGE98_3_INSITU_LN_Table2,
    [480..482,488] : IF26_10DGE98_3_INSITU_LN_Table2,
    [500..506,508..509] : IF26_10DGE98_3_INSITU_LN_Table1,
    [510..512,518..519] : IF26_10DGE98_3_INSITU_LN_Table1,
    [529] : IF26_10DGE98_3_INSITU_LN_Table1,
    [530..531,538..539] : IF26_10DGE98_3_INSITU_LN_Table1,
    [540..543,548..549,559] : IF26_10DGE98_3_INSITU_LN_Table1,
    [569] : IF26_10DGE98_3_INSITU_LN_Table1,
    [570] : IF26_10DGE98_3_INSITU_LN_Table1,
    [571..574] : IF26_10DGE98_3_INSITU_LN_Table1,
    [577..579] : IF26_10DGE98_3_INSITU_LN_Table1,
    [589] : IF26_10DGE98_3_INSITU_LN_Table1,
    [600..609] : IF26_10DGE98_3_INSITU_LN_Table1,
    [619] : IF26_10DGE98_3_INSITU_LN_Table1,
    [620..621,629] : IF26_10DGE98_3_INSITU_LN_Table1,
    [630..632,637..639] : IF26_10DGE98_3_INSITU_LN_Table1,
    [649] : IF26_10DGE98_3_INSITU_LN_Table1,
    [659,669] : IF26_10DGE98_3_INSITU_LN_Table1,
    [670..679] : IF26_10DGE98_3_INSITU_LN_Table1,
    [680..681,688..689] : IF26_10DGE98_3_INSITU_LN_Table1,
    [690] : IF26_10DGE98_3_INSITU_LN_Table1,
    [691..694,698..699] : IF26_10DGE98_3_INSITU_LN_Table1,
    [695] : IF26_10DGE98_3_INSITU_LN_Table1,
    [696] : IF26_10DGE98_3_INSITU_LN_Table1,
    [700,710..719] : IF26_10DGE98_3_INSITU_LN_Table3,
    [701,709,720..725,728..729] : IF26_10DGE98_3_INSITU_LN_Table2,
    [739] : IF26_10DGE98_3_INSITU_LN_Table1,
    [379,740..741,749,750..755,758..759] : IF26_10DGE98_3_INSITU_LN_Table1,
    [809,760..765,767..768,770..775,778..779,420..424] : IF26_10DGE98_3_INSITU_LN_Table2
]]]></entry>
        <entry id="If26E98_3_SITE_INSITU_POS_NODES" type="java"><![CDATA[[
    [0..6,8..9] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [19,24] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [20..23,28..29] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [30..31,39,62] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [40..41,48..49] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [50] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [51..52] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [58..59,68..69] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [60..61] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [79..81,88..89] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [98..99,90..91,100..104,108..109] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [110..113,118..119] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [129..132,138..139,141] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [140,142,148] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [150..155,158..159] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [160..166,168..169] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [170..173,178..179] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [180..189] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [199,209] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [210..212,218] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [220..221] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [239,248..249] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [240] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [241] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [250..254] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [257..259] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [260,268..269] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [300,301] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [310] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [311] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [312..313,318..319] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [320] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [321] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [322] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [323,328..329] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [339] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [340..343,348..349] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [380..383,388] : IF26_10DGE98_3_Nodes_Pos_Table1,
    [384] : IF26_10DGE98_3_Nodes_Pos_Table1,
    [390,398..399] : IF26_10DGE98_3_Nodes_Pos_Table1,
    [400..403,408..409,410..414,418..419] : IF26_10DGE98_3_Nodes_Pos_Table1,
    [440..449] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [470..476,478..479,490..496,498..499] : IF26_10DGE98_3_Nodes_Pos_Table1,
    [480..482,488] : IF26_10DGE98_3_Nodes_Pos_Table1,
    [500..506,508..509] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [510..512,518..519] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [529] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [530..531,538..539] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [540..543,548..549,559] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [569] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [570] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [571..574] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [577..579] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [589] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [600..609] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [619] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [620..621,629] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [630..632,637..639] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [649] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [659,669] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [670..679] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [680..681,688..689] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [690] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [691..694,698..699] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [695] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [696] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [700,710..719] : IF26_10DGE98_3_Nodes_Pos_Table4,
    [701,709,720..725,728..729] : IF26_10DGE98_3_Nodes_Pos_Table1,
    [739] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [379,740..741,749,750..755,758..759] : IF26_10DGE98_3_Nodes_Pos_Table2,
    [809,760..765,767..768,770..775,778..779,420..424] : IF26_10DGE98_3_Nodes_Pos_Table1
]]]></entry>
        <entry id="If26E98_3_SITE_INSITU_REG_EXAM" type="java"><![CDATA[[
    [0..6,8..9] : IF26_10DGE98_3_Reg_Exam_Table2,
    [19,24] : IF26_10DGE98_3_Reg_Exam_Table2,
    [20..23,28..29] : IF26_10DGE98_3_Reg_Exam_Table2,
    [30..31,39,62] : IF26_10DGE98_3_Reg_Exam_Table2,
    [40..41,48..49] : IF26_10DGE98_3_Reg_Exam_Table2,
    [50] : IF26_10DGE98_3_Reg_Exam_Table2,
    [51..52] : IF26_10DGE98_3_Reg_Exam_Table2,
    [58..59,68..69] : IF26_10DGE98_3_Reg_Exam_Table2,
    [60..61] : IF26_10DGE98_3_Reg_Exam_Table2,
    [79..81,88..89] : IF26_10DGE98_3_Reg_Exam_Table2,
    [98..99,90..91,100..104,108..109] : IF26_10DGE98_3_Reg_Exam_Table2,
    [110..113,118..119] : IF26_10DGE98_3_Reg_Exam_Table2,
    [129..132,138..139,141] : IF26_10DGE98_3_Reg_Exam_Table2,
    [140,142,148] : IF26_10DGE98_3_Reg_Exam_Table2,
    [150..155,158..159] : IF26_10DGE98_3_Reg_Exam_Table2,
    [160..166,168..169] : IF26_10DGE98_3_Reg_Exam_Table2,
    [170..173,178..179] : IF26_10DGE98_3_Reg_Exam_Table2,
    [180..189] : IF26_10DGE98_3_Reg_Exam_Table2,
    [199,209] : IF26_10DGE98_3_Reg_Exam_Table2,
    [210..212,218] : IF26_10DGE98_3_Reg_Exam_Table2,
    [220..221] : IF26_10DGE98_3_Reg_Exam_Table2,
    [239,248..249] : IF26_10DGE98_3_Reg_Exam_Table2,
    [240] : IF26_10DGE98_3_Reg_Exam_Table2,
    [241] : IF26_10DGE98_3_Reg_Exam_Table2,
    [250..254] : IF26_10DGE98_3_Reg_Exam_Table2,
    [257..259] : IF26_10DGE98_3_Reg_Exam_Table2,
    [260,268..269] : IF26_10DGE98_3_Reg_Exam_Table2,
    [300,301] : IF26_10DGE98_3_Reg_Exam_Table2,
    [310] : IF26_10DGE98_3_Reg_Exam_Table2,
    [311] : IF26_10DGE98_3_Reg_Exam_Table2,
    [312..313,318..319] : IF26_10DGE98_3_Reg_Exam_Table2,
    [320] : IF26_10DGE98_3_Reg_Exam_Table2,
    [321] : IF26_10DGE98_3_Reg_Exam_Table2,
    [322] : IF26_10DGE98_3_Reg_Exam_Table2,
    [323,328..329] : IF26_10DGE98_3_Reg_Exam_Table2,
    [339] : IF26_10DGE98_3_Reg_Exam_Table2,
    [340..343,348..349] : IF26_10DGE98_3_Reg_Exam_Table2,
    [380..383,388] : IF26_10DGE98_3_Reg_Exam_Table1,
    [384] : IF26_10DGE98_3_Reg_Exam_Table1,
    [390,398..399] : IF26_10DGE98_3_Reg_Exam_Table1,
    [400..403,408..409,410..414,418..419] : IF26_10DGE98_3_Reg_Exam_Table1,
    [440..449] : IF26_10DGE98_3_Reg_Exam_Table2,
    [470..476,478..479,490..496,498..499] : IF26_10DGE98_3_Reg_Exam_Table1,
    [480..482,488] : IF26_10DGE98_3_Reg_Exam_Table1,
    [500..506,508..509] : IF26_10DGE98_3_Reg_Exam_Table2,
    [510..512,518..519] : IF26_10DGE98_3_Reg_Exam_Table2,
    [529] : IF26_10DGE98_3_Reg_Exam_Table2,
    [530..531,538..539] : IF26_10DGE98_3_Reg_Exam_Table2,
    [540..543,548..549,559] : IF26_10DGE98_3_Reg_Exam_Table2,
    [569] : IF26_10DGE98_3_Reg_Exam_Table2,
    [570] : IF26_10DGE98_3_Reg_Exam_Table2,
    [571..574] : IF26_10DGE98_3_Reg_Exam_Table2,
    [577..579] : IF26_10DGE98_3_Reg_Exam_Table2,
    [589] : IF26_10DGE98_3_Reg_Exam_Table2,
    [600..609] : IF26_10DGE98_3_Reg_Exam_Table2,
    [619] : IF26_10DGE98_3_Reg_Exam_Table2,
    [620..621,629] : IF26_10DGE98_3_Reg_Exam_Table2,
    [630..632,637..639] : IF26_10DGE98_3_Reg_Exam_Table2,
    [649] : IF26_10DGE98_3_Reg_Exam_Table2,
    [659,669] : IF26_10DGE98_3_Reg_Exam_Table2,
    [670..679] : IF26_10DGE98_3_Reg_Exam_Table2,
    [680..681,688..689] : IF26_10DGE98_3_Reg_Exam_Table2,
    [690] : IF26_10DGE98_3_Reg_Exam_Table2,
    [691..694,698..699] : IF26_10DGE98_3_Reg_Exam_Table2,
    [695] : IF26_10DGE98_3_Reg_Exam_Table2,
    [696] : IF26_10DGE98_3_Reg_Exam_Table2,
    [700,710..719] : IF26_10DGE98_3_Reg_Exam_Table4,
    [701,709,720..725,728..729] : IF26_10DGE98_3_Reg_Exam_Table1,
    [739] : IF26_10DGE98_3_Reg_Exam_Table2,
    [379,740..741,749,750..755,758..759] : IF26_10DGE98_3_Reg_Exam_Table2,
    [809,760..765,767..768,770..775,778..779,420..424] : IF26_10DGE98_3_Reg_Exam_Table1
]]]></entry>
        <entry id="If26E98_3_SITE_MALIG_EXT" type="java"><![CDATA[[
    [0..6,8..9] : IF26_10DGE98_3_MALIG_EXT_Table1,
    [19,24] : IF26_10DGE98_3_MALIG_EXT_Table2,
    [20..23,28..29] : IF26_10DGE98_3_MALIG_EXT_Table3,
    [30..31,39,62] : IF26_10DGE98_3_MALIG_EXT_Table4,
    [40..41,48..49] : IF26_10DGE98_3_MALIG_EXT_Table5,
    [50] : IF26_10DGE98_3_MALIG_EXT_Table6,
    [51..52] : IF26_10DGE98_3_MALIG_EXT_Table7,
    [58..59,68..69] : IF26_10DGE98_3_MALIG_EXT_Table8,
    [60..61] : IF26_10DGE98_3_MALIG_EXT_Table9,
    [79..81,88..89] : IF26_10DGE98_3_MALIG_EXT_Table10,
    [98..99,90..91,100..104,108..109] : IF26_10DGE98_3_MALIG_EXT_Table11,
    [110..113,118..119] : IF26_10DGE98_3_MALIG_EXT_Table12,
    [129..132,138..139,141] : IF26_10DGE98_3_MALIG_EXT_Table13,
    [140,142,148] : IF26_10DGE98_3_MALIG_EXT_Table14,
    [150..155,158..159] : IF26_10DGE98_3_MALIG_EXT_Table15,
    [160..166,168..169] : IF26_10DGE98_3_MALIG_EXT_Table16,
    [170..173,178..179] : IF26_10DGE98_3_MALIG_EXT_Table17,
    [180..189] : IF26_10DGE98_3_MALIG_EXT_Table18,
    [199,209] : IF26_10DGE98_3_MALIG_EXT_Table19,
    [210..212,218] : IF26_10DGE98_3_MALIG_EXT_Table20,
    [220..221] : IF26_10DGE98_3_MALIG_EXT_Table21,
    [239,248..249] : IF26_10DGE98_3_MALIG_EXT_Table22,
    [240] : IF26_10DGE98_3_MALIG_EXT_Table23,
    [241] : IF26_10DGE98_3_MALIG_EXT_Table24,
    [250..254] : IF26_10DGE98_3_MALIG_EXT_Table25,
    [257..259] : IF26_10DGE98_3_MALIG_EXT_Table26,
    [260,268..269] : IF26_10DGE98_3_MALIG_EXT_Table27,
    [300,301] : IF26_10DGE98_3_MALIG_EXT_Table28,
    [310] : IF26_10DGE98_3_MALIG_EXT_Table29,
    [311] : IF26_10DGE98_3_MALIG_EXT_Table30,
    [312..313,318..319] : IF26_10DGE98_3_MALIG_EXT_Table31,
    [320] : IF26_10DGE98_3_MALIG_EXT_Table32,
    [321] : IF26_10DGE98_3_MALIG_EXT_Table33,
    [322] : IF26_10DGE98_3_MALIG_EXT_Table34,
    [323,328..329] : IF26_10DGE98_3_MALIG_EXT_Table35,
    [339] : IF26_10DGE98_3_MALIG_EXT_Table36,
    [340..343,348..349] : IF26_10DGE98_3_MALIG_EXT_Table37,
    [380..383,388] : IF26_10DGE98_3_MALIG_EXT_Table38,
    [384] : IF26_10DGE98_3_MALIG_EXT_Table39,
    [390,398..399] : IF26_10DGE98_3_MALIG_EXT_Table40,
    [400..403,408..409,410..414,418..419] : IF26_10DGE98_3_MALIG_EXT_Table41,
    [440,442..449] : IF26_10DGE98_3_MALIG_EXT_Table42,
    [470..476,478..479,490..496,498..499] : IF26_10DGE98_3_MALIG_EXT_Table45,
    [480..482,488] : IF26_10DGE98_3_MALIG_EXT_Table46,
    [500..506,508..509] : IF26_10DGE98_3_MALIG_EXT_Table47,
    [510..512,518..519] : IF26_10DGE98_3_MALIG_EXT_Table48,
    [529] : IF26_10DGE98_3_MALIG_EXT_Table49,
    [530..531,538..539] : IF26_10DGE98_3_MALIG_EXT_Table50,
    [540..543,548..549,559] : IF26_10DGE98_3_MALIG_EXT_Table51,
    [569] : IF26_10DGE98_3_MALIG_EXT_Table52,
    [570] : IF26_10DGE98_3_MALIG_EXT_Table53,
    [571..574] : IF26_10DGE98_3_MALIG_EXT_Table54,
    [577..579] : IF26_10DGE98_3_MALIG_EXT_Table55,
    [589] : IF26_10DGE98_3_MALIG_EXT_Table56,
    [600..609] : IF26_10DGE98_3_MALIG_EXT_Table57,
    [619] : IF26_10DGE98_3_MALIG_EXT_Table58,
    [620..621,629] : IF26_10DGE98_3_MALIG_EXT_Table59,
    [630..632,637..639] : IF26_10DGE98_3_MALIG_EXT_Table60,
    [649] : IF26_10DGE98_3_MALIG_EXT_Table61,
    [659,669] : IF26_10DGE98_3_MALIG_EXT_Table62,
    [670..679] : IF26_10DGE98_3_MALIG_EXT_Table63,
    [680..681,688..689] : IF26_10DGE98_3_MALIG_EXT_Table64,
    [690] : IF26_10DGE98_3_MALIG_EXT_Table65,
    [691..694,698..699] : IF26_10DGE98_3_MALIG_EXT_Table67,
    [695] : IF26_10DGE98_3_MALIG_EXT_Table69,
    [696] : IF26_10DGE98_3_MALIG_EXT_Table70,
    [700,710..719] : IF26_10DGE98_3_MALIG_EXT_Table71,
    [701,709,720..725,728..729] : IF26_10DGE98_3_MALIG_EXT_Table72,
    [739] : IF26_10DGE98_3_MALIG_EXT_Table73,
    [379,740..741,749,750..755,758..759] : IF26_10DGE98_3_MALIG_EXT_Table74,
    [809,760..765,767..768,770..775,778..779,420..424] : IF26_10DGE98_3_MALIG_EXT_Table79,
    [441] : IF26_10DGE98_3_MALIG_EXT_Table83
]]]></entry>
        <entry id="If26E98_3_SITE_MALIG_LN" type="java"><![CDATA[[
    [0..6,8..9] : IF26_10DGE98_3_MALIG_LN_Table1,
    [19,24] : IF26_10DGE98_3_MALIG_LN_Table1,
    [20..23,28..29] : IF26_10DGE98_3_MALIG_LN_Table1,
    [30..31,39,62] : IF26_10DGE98_3_MALIG_LN_Table1,
    [40..41,48..49] : IF26_10DGE98_3_MALIG_LN_Table1,
    [50] : IF26_10DGE98_3_MALIG_LN_Table1,
    [51..52] : IF26_10DGE98_3_MALIG_LN_Table1,
    [58..59,68..69] : IF26_10DGE98_3_MALIG_LN_Table1,
    [60..61] : IF26_10DGE98_3_MALIG_LN_Table1,
    [79..81,88..89] : IF26_10DGE98_3_MALIG_LN_Table1,
    [98..99,90..91,100..104,108..109] : IF26_10DGE98_3_MALIG_LN_Table1,
    [110..113,118..119] : IF26_10DGE98_3_MALIG_LN_Table1,
    [129..132,138..139,141] : IF26_10DGE98_3_MALIG_LN_Table1,
    [140,142,148] : IF26_10DGE98_3_MALIG_LN_Table1,
    [150..155,158..159] : IF26_10DGE98_3_MALIG_LN_Table5,
    [160..166,168..169] : IF26_10DGE98_3_MALIG_LN_Table9,
    [170..173,178..179] : IF26_10DGE98_3_MALIG_LN_Table6,
    [180..189] : IF26_10DGE98_3_MALIG_LN_Table6,
    [199,209] : IF26_10DGE98_3_MALIG_LN_Table6,
    [210..212,218] : IF26_10DGE98_3_MALIG_LN_Table1,
    [220..221] : IF26_10DGE98_3_MALIG_LN_Table11,
    [239,248..249] : IF26_10DGE98_3_MALIG_LN_Table3,
    [240] : IF26_10DGE98_3_MALIG_LN_Table3,
    [241] : IF26_10DGE98_3_MALIG_LN_Table12,
    [250..254] : IF26_10DGE98_3_MALIG_LN_Table12,
    [257..259] : IF26_10DGE98_3_MALIG_LN_Table12,
    [260,268..269] : IF26_10DGE98_3_MALIG_LN_Table12,
    [300,301] : IF26_10DGE98_3_MALIG_LN_Table12,
    [310] : IF26_10DGE98_3_MALIG_LN_Table1,
    [311] : IF26_10DGE98_3_MALIG_LN_Table1,
    [312..313,318..319] : IF26_10DGE98_3_MALIG_LN_Table1,
    [320] : IF26_10DGE98_3_MALIG_LN_Table1,
    [321] : IF26_10DGE98_3_MALIG_LN_Table1,
    [322] : IF26_10DGE98_3_MALIG_LN_Table1,
    [323,328..329] : IF26_10DGE98_3_MALIG_LN_Table1,
    [339] : IF26_10DGE98_3_MALIG_LN_Table12,
    [340..343,348..349] : IF26_10DGE98_3_MALIG_LN_Table8,
    [380..383,388] : IF26_10DGE98_3_MALIG_LN_Table12,
    [384] : IF26_10DGE98_3_MALIG_LN_Table8,
    [390,398..399] : IF26_10DGE98_3_MALIG_LN_Table12,
    [400..403,408..409,410..414,418..419] : IF26_10DGE98_3_MALIG_LN_Table12,
    [440..449] : IF26_10DGE98_3_MALIG_LN_Table12,
    [470..476,478..479,490..496,498..499] : IF26_10DGE98_3_MALIG_LN_Table12,
    [480..482,488] : IF26_10DGE98_3_MALIG_LN_Table12,
    [500..506,508..509] : IF26_10DGE98_3_MALIG_LN_Table1,
    [510..512,518..519] : IF26_10DGE98_3_MALIG_LN_Table10,
    [529] : IF26_10DGE98_3_MALIG_LN_Table3,
    [530..531,538..539] : IF26_10DGE98_3_MALIG_LN_Table11,
    [540..543,548..549,559] : IF26_10DGE98_3_MALIG_LN_Table8,
    [569] : IF26_10DGE98_3_MALIG_LN_Table2,
    [570] : IF26_10DGE98_3_MALIG_LN_Table2,
    [571..574] : IF26_10DGE98_3_MALIG_LN_Table2,
    [577..579] : IF26_10DGE98_3_MALIG_LN_Table12,
    [589] : IF26_10DGE98_3_MALIG_LN_Table8,
    [600..609] : IF26_10DGE98_3_MALIG_LN_Table3,
    [619] : IF26_10DGE98_3_MALIG_LN_Table3,
    [620..621,629] : IF26_10DGE98_3_MALIG_LN_Table3,
    [630..632,637..639] : IF26_10DGE98_3_MALIG_LN_Table12,
    [649] : IF26_10DGE98_3_MALIG_LN_Table4,
    [659,669] : IF26_10DGE98_3_MALIG_LN_Table4,
    [670..679] : IF26_10DGE98_3_MALIG_LN_Table3,
    [680..681,688..689] : IF26_10DGE98_3_MALIG_LN_Table4,
    [690] : IF26_10DGE98_3_MALIG_LN_Table12,
    [691..694,698..699] : IF26_10DGE98_3_MALIG_LN_Table12,
    [695] : IF26_10DGE98_3_MALIG_LN_Table12,
    [696] : IF26_10DGE98_3_MALIG_LN_Table12,
    [700,710..719] : IF26_10DGE98_3_MALIG_LN_Table13,
    [701,709,720..725,728..729] : IF26_10DGE98_3_MALIG_LN_Table13,
    [739] : IF26_10DGE98_3_MALIG_LN_Table3,
    [379,740..741,749,750..755,758..759] : IF26_10DGE98_3_MALIG_LN_Table12,
    [809,760..765,767..768,770..775,778..779,420..424] : IF26_10DGE98_3_MALIG_LN_Table13
]]]></entry>
        <entry id="If26E98_3_SITE_MALIG_POS_NODES" type="java"><![CDATA[[
    [0..6,8..9] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [19,24] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [20..23,28..29] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [30..31,39,62] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [40..41,48..49] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [50] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [51..52] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [58..59,68..69] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [60..61] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [79..81,88..89] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [98..99,90..91,100..104,108..109] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [110..113,118..119] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [129..132,138..139,141] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [140,142,148] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [150..155,158..159] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [160..166,168..169] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [170..173,178..179] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [180..189] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [199,209] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [210..212,218] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [220..221] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [239,248..249] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [240] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [241] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [250..254] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [257..259] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [260,268..269] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [300,301] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [310] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [311] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [312..313,318..319] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [320] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [321] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [322] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [323,328..329] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [339] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [340..343,348..349] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [380..383,388] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [384] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [390,398..399] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [400..403,408..409,410..414,418..419] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [440..449] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [470..476,478..479,490..496,498..499] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [480..482,488] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [500..506,508..509] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [510..512,518..519] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [529] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [530..531,538..539] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [540..543,548..549,559] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [569] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [570] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [571..574] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [577..579] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [589] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [600..609] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [619] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [620..621,629] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [630..632,637..639] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [649] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [659,669] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [670..679] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [680..681,688..689] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [690] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [691..694,698..699] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [695] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [696] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [700,710..719] : IF26_10DGE98_3_Nodes_Pos_Table4,
    [701,709,720..725,728..729] : IF26_10DGE98_3_Nodes_Pos_Table4,
    [739] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [379,740..741,749,750..755,758..759] : IF26_10DGE98_3_Nodes_Pos_Table3,
    [809,760..765,767..768,770..775,778..779,420..424] : IF26_10DGE98_3_Nodes_Pos_Table4
]]]></entry>
        <entry id="If26E98_3_SITE_MALIG_REG_EXAM" type="java"><![CDATA[[
    [0..6,8..9] : IF26_10DGE98_3_Reg_Exam_Table3,
    [19,24] : IF26_10DGE98_3_Reg_Exam_Table3,
    [20..23,28..29] : IF26_10DGE98_3_Reg_Exam_Table3,
    [30..31,39,62] : IF26_10DGE98_3_Reg_Exam_Table3,
    [40..41,48..49] : IF26_10DGE98_3_Reg_Exam_Table3,
    [50] : IF26_10DGE98_3_Reg_Exam_Table3,
    [51..52] : IF26_10DGE98_3_Reg_Exam_Table3,
    [58..59,68..69] : IF26_10DGE98_3_Reg_Exam_Table3,
    [60..61] : IF26_10DGE98_3_Reg_Exam_Table3,
    [79..81,88..89] : IF26_10DGE98_3_Reg_Exam_Table3,
    [98..99,90..91,100..104,108..109] : IF26_10DGE98_3_Reg_Exam_Table3,
    [110..113,118..119] : IF26_10DGE98_3_Reg_Exam_Table3,
    [129..132,138..139,141] : IF26_10DGE98_3_Reg_Exam_Table3,
    [140,142,148] : IF26_10DGE98_3_Reg_Exam_Table3,
    [150..155,158..159] : IF26_10DGE98_3_Reg_Exam_Table3,
    [160..166,168..169] : IF26_10DGE98_3_Reg_Exam_Table3,
    [170..173,178..179] : IF26_10DGE98_3_Reg_Exam_Table3,
    [180..189] : IF26_10DGE98_3_Reg_Exam_Table3,
    [199,209] : IF26_10DGE98_3_Reg_Exam_Table3,
    [210..212,218] : IF26_10DGE98_3_Reg_Exam_Table3,
    [220..221] : IF26_10DGE98_3_Reg_Exam_Table3,
    [239,248..249] : IF26_10DGE98_3_Reg_Exam_Table3,
    [240] : IF26_10DGE98_3_Reg_Exam_Table3,
    [241] : IF26_10DGE98_3_Reg_Exam_Table3,
    [250..254] : IF26_10DGE98_3_Reg_Exam_Table3,
    [257..259] : IF26_10DGE98_3_Reg_Exam_Table3,
    [260,268..269] : IF26_10DGE98_3_Reg_Exam_Table3,
    [300,301] : IF26_10DGE98_3_Reg_Exam_Table3,
    [310] : IF26_10DGE98_3_Reg_Exam_Table3,
    [311] : IF26_10DGE98_3_Reg_Exam_Table3,
    [312..313,318..319] : IF26_10DGE98_3_Reg_Exam_Table3,
    [320] : IF26_10DGE98_3_Reg_Exam_Table3,
    [321] : IF26_10DGE98_3_Reg_Exam_Table3,
    [322] : IF26_10DGE98_3_Reg_Exam_Table3,
    [323,328..329] : IF26_10DGE98_3_Reg_Exam_Table3,
    [339] : IF26_10DGE98_3_Reg_Exam_Table3,
    [340..343,348..349] : IF26_10DGE98_3_Reg_Exam_Table3,
    [380..383,388] : IF26_10DGE98_3_Reg_Exam_Table3,
    [384] : IF26_10DGE98_3_Reg_Exam_Table3,
    [390,398..399] : IF26_10DGE98_3_Reg_Exam_Table3,
    [400..403,408..409,410..414,418..419] : IF26_10DGE98_3_Reg_Exam_Table3,
    [440..449] : IF26_10DGE98_3_Reg_Exam_Table3,
    [470..476,478..479,490..496,498..499] : IF26_10DGE98_3_Reg_Exam_Table3,
    [480..482,488] : IF26_10DGE98_3_Reg_Exam_Table3,
    [500..506,508..509] : IF26_10DGE98_3_Reg_Exam_Table3,
    [510..512,518..519] : IF26_10DGE98_3_Reg_Exam_Table3,
    [529] : IF26_10DGE98_3_Reg_Exam_Table3,
    [530..531,538..539] : IF26_10DGE98_3_Reg_Exam_Table3,
    [540..543,548..549,559] : IF26_10DGE98_3_Reg_Exam_Table3,
    [569] : IF26_10DGE98_3_Reg_Exam_Table3,
    [570] : IF26_10DGE98_3_Reg_Exam_Table3,
    [571..574] : IF26_10DGE98_3_Reg_Exam_Table3,
    [577..579] : IF26_10DGE98_3_Reg_Exam_Table3,
    [589] : IF26_10DGE98_3_Reg_Exam_Table3,
    [600..609] : IF26_10DGE98_3_Reg_Exam_Table3,
    [619] : IF26_10DGE98_3_Reg_Exam_Table3,
    [620..621,629] : IF26_10DGE98_3_Reg_Exam_Table3,
    [630..632,637..639] : IF26_10DGE98_3_Reg_Exam_Table3,
    [649] : IF26_10DGE98_3_Reg_Exam_Table3,
    [659,669] : IF26_10DGE98_3_Reg_Exam_Table3,
    [670..679] : IF26_10DGE98_3_Reg_Exam_Table3,
    [680..681,688..689] : IF26_10DGE98_3_Reg_Exam_Table3,
    [690] : IF26_10DGE98_3_Reg_Exam_Table3,
    [691..694,698..699] : IF26_10DGE98_3_Reg_Exam_Table3,
    [695] : IF26_10DGE98_3_Reg_Exam_Table3,
    [696] : IF26_10DGE98_3_Reg_Exam_Table3,
    [700,710..719] : IF26_10DGE98_3_Reg_Exam_Table4,
    [701,709,720..725,728..729] : IF26_10DGE98_3_Reg_Exam_Table4,
    [739] : IF26_10DGE98_3_Reg_Exam_Table3,
    [379,740..741,749,750..755,758..759] : IF26_10DGE98_3_Reg_Exam_Table3,
    [809,760..765,767..768,770..775,778..779,420..424] : IF26_10DGE98_3_Reg_Exam_Table4
]]]></entry>
        <entry id="If26E98_3_SITE_SIZE" type="java"><![CDATA[[
    [0..6,8..9] : IF26_10DGE98_3_Size_Table1,
    [19,24] : IF26_10DGE98_3_Size_Table1,
    [20..23,28..29] : IF26_10DGE98_3_Size_Table1,
    [30..31,39,62] : IF26_10DGE98_3_Size_Table1,
    [40..41,48..49] : IF26_10DGE98_3_Size_Table1,
    [50] : IF26_10DGE98_3_Size_Table1,
    [51..52] : IF26_10DGE98_3_Size_Table1,
    [58..59,68..69] : IF26_10DGE98_3_Size_Table1,
    [60..61] : IF26_10DGE98_3_Size_Table1,
    [79..81,88..89] : IF26_10DGE98_3_Size_Table1,
    [98..99,90..91,100..104,108..109] : IF26_10DGE98_3_Size_Table1,
    [110..113,118..119] : IF26_10DGE98_3_Size_Table1,
    [129..132,138..139,141] : IF26_10DGE98_3_Size_Table1,
    [140,142,148] : IF26_10DGE98_3_Size_Table1,
    [150..155,158..159] : IF26_10DGE98_3_Size_Table2,
    [160..166,168..169] : IF26_10DGE98_3_Size_Table2,
    [170..173,178..179] : IF26_10DGE98_3_Size_Table1,
    [180..189] : IF26_10DGE98_3_Size_Table2,
    [199,209] : IF26_10DGE98_3_Size_Table2,
    [210..212,218] : IF26_10DGE98_3_Size_Table1,
    [220..221] : IF26_10DGE98_3_Size_Table1,
    [239,248..249] : IF26_10DGE98_3_Size_Table1,
    [240] : IF26_10DGE98_3_Size_Table1,
    [241] : IF26_10DGE98_3_Size_Table1,
    [250..254] : IF26_10DGE98_3_Size_Table1,
    [257..259] : IF26_10DGE98_3_Size_Table1,
    [260,268..269] : IF26_10DGE98_3_Size_Table1,
    [300,301] : IF26_10DGE98_3_Size_Table1,
    [310] : IF26_10DGE98_3_Size_Table1,
    [311] : IF26_10DGE98_3_Size_Table1,
    [312..313,318..319] : IF26_10DGE98_3_Size_Table1,
    [320] : IF26_10DGE98_3_Size_Table1,
    [321] : IF26_10DGE98_3_Size_Table1,
    [322] : IF26_10DGE98_3_Size_Table1,
    [323,328..329] : IF26_10DGE98_3_Size_Table1,
    [339] : IF26_10DGE98_3_Size_Table1,
    [340..343,348..349] : IF26_10DGE98_3_Size_Table2,
    [380..383,388] : IF26_10DGE98_3_Size_Table1,
    [384] : IF26_10DGE98_3_Size_Table1,
    [390,398..399] : IF26_10DGE98_3_Size_Table1,
    [400..403,408..409,410..414,418..419] : IF26_10DGE98_3_Size_Table1,
    [440..449] : IF26_10DGE98_3_Size_Table1,
    [470..476,478..479,490..496,498..499] : IF26_10DGE98_3_Size_Table1,
    [480..482,488] : IF26_10DGE98_3_Size_Table1,
    [500..506,508..509] : IF26_10DGE98_3_Size_Table3,
    [510..512,518..519] : IF26_10DGE98_3_Size_Table1,
    [529] : IF26_10DGE98_3_Size_Table1,
    [530..531,538..539] : IF26_10DGE98_3_Size_Table1,
    [540..543,548..549,559] : IF26_10DGE98_3_Size_Table1,
    [569] : IF26_10DGE98_3_Size_Table1,
    [570] : IF26_10DGE98_3_Size_Table1,
    [571..574] : IF26_10DGE98_3_Size_Table1,
    [577..579] : IF26_10DGE98_3_Size_Table1,
    [589] : IF26_10DGE98_3_Size_Table1,
    [600..609] : IF26_10DGE98_3_Size_Table1,
    [619] : IF26_10DGE98_3_Size_Table1,
    [620..621,629] : IF26_10DGE98_3_Size_Table1,
    [630..632,637..639] : IF26_10DGE98_3_Size_Table1,
    [649] : IF26_10DGE98_3_Size_Table1,
    [659,669] : IF26_10DGE98_3_Size_Table1,
    [670..679] : IF26_10DGE98_3_Size_Table1,
    [680..681,688..689] : IF26_10DGE98_3_Size_Table1,
    [690] : IF26_10DGE98_3_Size_Table1,
    [691..694,698..699] : IF26_10DGE98_3_Size_Table1,
    [695] : IF26_10DGE98_3_Size_Table1,
    [696] : IF26_10DGE98_3_Size_Table1,
    [700,710..719] : IF26_10DGE98_3_Size_Table1,
    [701,709,720..725,728..729] : IF26_10DGE98_3_Size_Table1,
    [739] : IF26_10DGE98_3_Size_Table1,
    [379,740..741,749,750..755,758..759] : IF26_10DGE98_3_Size_Table1,
    [809,760..765,767..768,770..775,778..779,420..424] : IF26_10DGE98_3_Size_Table6
]]]></entry>
        <entry id="IF288_Schemas_1" type="java"><![CDATA[['bladder','cervix','conjunctiva','corpus_adenosarcoma','corpus_carcinoma','corpus_sarcoma','esophagus','fallopian_tube','heart_mediastinum','heme_retic','kidney_parenchyma','kidney_renal_pelvis','lung','merkel_cell_penis','merkel_cell_scrotum','merkel_cell_skin','merkel_cell_vulva','peritoneum','peritoneum_female_gen','retroperitoneum','scrotum','skin','small_intestine','soft_tissue','urethra','vagina']]]></entry>
        <entry id="IF289_Schemas_1" type="java"><![CDATA[['bladder','corpus_adenosarcoma','corpus_carcinoma','corpus_sarcoma','kidney_parenchyma','kidney_renal_pelvis','lung','melanoma_choroid','melanoma_ciliary_body','melanoma_conjunctiva','ovary','peritoneum_female_gen','placenta','pleura','small_intestine','vagina']]]></entry>
        <entry id="IF290_Schemas_1" type="java"><![CDATA[['appendix','bladder','bone','colon','corpus_adenosarcoma','corpus_carcinoma','corpus_sarcoma','heart_mediastinum','kidney_parenchyma','liver','melanoma_choroid','melanoma_ciliary_body','melanoma_iris','merkel_cell_penis','merkel_cell_scrotum','merkel_cell_skin','merkel_cell_vulva','ovary','peritoneum_female_gen','rectum','skin_eyelid','small_intestine','soft_tissue','vagina']]]></entry>
        <entry id="IF291_Schemas_1" type="java"><![CDATA[['brain','cns_other','colon','corpus_adenosarcoma','corpus_carcinoma','corpus_sarcoma','fallopian_tube','kidney_parenchyma','lacrimal_gland','liver','melanoma_choroid','melanoma_ciliary_body','melanoma_iris','rectum','vagina']]]></entry>
        <entry id="IF292_Schemas_1" type="java"><![CDATA[['brain','cns_other','corpus_adenosarcoma','corpus_carcinoma','corpus_sarcoma','fallopian_tube','gist_peritoneum','liver','melanoma_choroid','melanoma_ciliary_body','melanoma_iris','melanoma_skin','net_ampulla','vagina']]]></entry>
        <entry id="IF293_Schemas_1" type="java"><![CDATA[['brain','cns_other','colon','corpus_adenosarcoma','corpus_carcinoma','corpus_sarcoma','fallopian_tube','gist_esophagus','gist_peritoneum','gist_small_intestine','gist_stomach','kidney_parenchyma','lacrimal_gland','liver','lymphoma_ocular_adnexa','melanoma_choroid','melanoma_ciliary_body','melanoma_iris','melanoma_skin','net_ampulla','rectum','skin_eyelid','testis','vagina']]]></entry>
        <entry id="IF29_Post1987" type="java"><![CDATA[[
    0 : SurgeryCodeTable_08,
    1 : SurgeryCodeTable_08,
    2 : SurgeryCodeTable_08,
    3 : SurgeryCodeTable_08,
    4 : SurgeryCodeTable_08,
    5 : SurgeryCodeTable_08,
    6 : SurgeryCodeTable_08,
    8 : SurgeryCodeTable_08,
    9 : SurgeryCodeTable_08,
    19 : SurgeryCodeTable_08,
    20 : SurgeryCodeTable_08,
    21 : SurgeryCodeTable_08,
    22 : SurgeryCodeTable_08,
    23 : SurgeryCodeTable_08,
    24 : SurgeryCodeTable_08,
    28 : SurgeryCodeTable_08,
    29 : SurgeryCodeTable_08,
    30 : SurgeryCodeTable_08,
    31 : SurgeryCodeTable_08,
    39 : SurgeryCodeTable_08,
    40 : SurgeryCodeTable_08,
    41 : SurgeryCodeTable_08,
    48 : SurgeryCodeTable_08,
    49 : SurgeryCodeTable_08,
    50 : SurgeryCodeTable_08,
    51 : SurgeryCodeTable_08,
    52 : SurgeryCodeTable_08,
    58 : SurgeryCodeTable_08,
    59 : SurgeryCodeTable_08,
    60 : SurgeryCodeTable_08,
    61 : SurgeryCodeTable_08,
    62 : SurgeryCodeTable_08,
    68 : SurgeryCodeTable_08,
    69 : SurgeryCodeTable_08,
    79 : SurgeryCodeTable_08,
    80 : SurgeryCodeTable_08,
    81 : SurgeryCodeTable_08,
    88 : SurgeryCodeTable_08,
    89 : SurgeryCodeTable_08,
    90 : SurgeryCodeTable_08,
    91 : SurgeryCodeTable_08,
    98 : SurgeryCodeTable_08,
    99 : SurgeryCodeTable_08,
    100 : SurgeryCodeTable_08,
    101 : SurgeryCodeTable_08,
    102 : SurgeryCodeTable_08,
    103 : SurgeryCodeTable_08,
    104 : SurgeryCodeTable_08,
    108 : SurgeryCodeTable_08,
    109 : SurgeryCodeTable_08,
    110 : SurgeryCodeTable_08,
    111 : SurgeryCodeTable_08,
    112 : SurgeryCodeTable_08,
    113 : SurgeryCodeTable_08,
    118 : SurgeryCodeTable_08,
    119 : SurgeryCodeTable_08,
    129 : SurgeryCodeTable_08,
    130 : SurgeryCodeTable_08,
    131 : SurgeryCodeTable_08,
    132 : SurgeryCodeTable_08,
    138 : SurgeryCodeTable_08,
    139 : SurgeryCodeTable_08,
    140 : SurgeryCodeTable_08,
    142 : SurgeryCodeTable_08,
    148 : SurgeryCodeTable_08,
    150 : SurgeryCodeTable_03,
    151 : SurgeryCodeTable_03,
    152 : SurgeryCodeTable_03,
    153 : SurgeryCodeTable_03,
    154 : SurgeryCodeTable_03,
    155 : SurgeryCodeTable_03,
    158 : SurgeryCodeTable_03,
    159 : SurgeryCodeTable_03,
    160 : SurgeryCodeTable_06,
    161 : SurgeryCodeTable_06,
    162 : SurgeryCodeTable_06,
    163 : SurgeryCodeTable_06,
    164 : SurgeryCodeTable_06,
    165 : SurgeryCodeTable_06,
    166 : SurgeryCodeTable_06,
    168 : SurgeryCodeTable_06,
    169 : SurgeryCodeTable_06,
    170 : SurgeryCodeTable_03,
    171 : SurgeryCodeTable_03,
    172 : SurgeryCodeTable_03,
    173 : SurgeryCodeTable_03,
    178 : SurgeryCodeTable_03,
    179 : SurgeryCodeTable_03,
    180 : SurgeryCodeTable_06,
    181 : SurgeryCodeTable_06,
    182 : SurgeryCodeTable_06,
    183 : SurgeryCodeTable_06,
    184 : SurgeryCodeTable_06,
    185 : SurgeryCodeTable_06,
    186 : SurgeryCodeTable_06,
    187 : SurgeryCodeTable_06,
    188 : SurgeryCodeTable_06,
    189 : SurgeryCodeTable_06,
    199 : SurgeryCodeTable_06,
    209 : SurgeryCodeTable_06,
    210 : SurgeryCodeTable_03,
    211 : SurgeryCodeTable_03,
    212 : SurgeryCodeTable_03,
    218 : SurgeryCodeTable_03,
    220 : SurgeryCodeTable_03,
    221 : SurgeryCodeTable_03,
    239 : SurgeryCodeTable_03,
    240 : SurgeryCodeTable_03,
    241 : SurgeryCodeTable_03,
    248 : SurgeryCodeTable_03,
    249 : SurgeryCodeTable_03,
    250 : SurgeryCodeTable_09,
    251 : SurgeryCodeTable_09,
    252 : SurgeryCodeTable_09,
    253 : SurgeryCodeTable_09,
    254 : SurgeryCodeTable_09,
    257 : SurgeryCodeTable_09,
    258 : SurgeryCodeTable_09,
    259 : SurgeryCodeTable_09,
    260 : SurgeryCodeTable_03,
    268 : SurgeryCodeTable_03,
    269 : SurgeryCodeTable_03,
    300 : SurgeryCodeTable_03,
    301 : SurgeryCodeTable_03,
    310 : SurgeryCodeTable_03,
    311 : SurgeryCodeTable_03,
    312 : SurgeryCodeTable_03,
    313 : SurgeryCodeTable_03,
    318 : SurgeryCodeTable_03,
    319 : SurgeryCodeTable_03,
    320 : SurgeryCodeTable_07,
    321 : SurgeryCodeTable_07,
    322 : SurgeryCodeTable_07,
    323 : SurgeryCodeTable_07,
    328 : SurgeryCodeTable_07,
    329 : SurgeryCodeTable_07,
    339 : SurgeryCodeTable_03,
    340 : SurgeryCodeTable_06,
    341 : SurgeryCodeTable_06,
    342 : SurgeryCodeTable_06,
    343 : SurgeryCodeTable_06,
    348 : SurgeryCodeTable_06,
    349 : SurgeryCodeTable_06,
    379 : SurgeryCodeTable_03,
    380 : SurgeryCodeTable_03,
    381 : SurgeryCodeTable_03,
    382 : SurgeryCodeTable_03,
    383 : SurgeryCodeTable_03,
    384 : SurgeryCodeTable_03,
    388 : SurgeryCodeTable_03,
    390 : SurgeryCodeTable_03,
    398 : SurgeryCodeTable_03,
    399 : SurgeryCodeTable_03,
    400 : SurgeryCodeTable_07,
    401 : SurgeryCodeTable_07,
    402 : SurgeryCodeTable_07,
    403 : SurgeryCodeTable_07,
    408 : SurgeryCodeTable_07,
    409 : SurgeryCodeTable_07,
    410 : SurgeryCodeTable_07,
    411 : SurgeryCodeTable_07,
    412 : SurgeryCodeTable_07,
    413 : SurgeryCodeTable_07,
    414 : SurgeryCodeTable_07,
    418 : SurgeryCodeTable_07,
    419 : SurgeryCodeTable_07,
    420 : SurgeryCodeTable_03,
    421 : SurgeryCodeTable_03,
    422 : SurgeryCodeTable_02,
    423 : SurgeryCodeTable_03,
    424 : SurgeryCodeTable_03,
    440 : SurgeryCodeTable_04,
    441 : SurgeryCodeTable_04,
    442 : SurgeryCodeTable_04,
    443 : SurgeryCodeTable_04,
    444 : SurgeryCodeTable_04,
    445 : SurgeryCodeTable_04,
    446 : SurgeryCodeTable_04,
    447 : SurgeryCodeTable_04,
    448 : SurgeryCodeTable_04,
    449 : SurgeryCodeTable_04,
    470 : SurgeryCodeTable_07,
    471 : SurgeryCodeTable_07,
    472 : SurgeryCodeTable_07,
    473 : SurgeryCodeTable_07,
    474 : SurgeryCodeTable_07,
    475 : SurgeryCodeTable_07,
    476 : SurgeryCodeTable_07,
    478 : SurgeryCodeTable_07,
    479 : SurgeryCodeTable_07,
    480 : SurgeryCodeTable_03,
    481 : SurgeryCodeTable_03,
    482 : SurgeryCodeTable_03,
    488 : SurgeryCodeTable_03,
    490 : SurgeryCodeTable_07,
    491 : SurgeryCodeTable_07,
    492 : SurgeryCodeTable_07,
    493 : SurgeryCodeTable_07,
    494 : SurgeryCodeTable_07,
    495 : SurgeryCodeTable_07,
    496 : SurgeryCodeTable_07,
    498 : SurgeryCodeTable_07,
    499 : SurgeryCodeTable_07,
    500 : SurgeryCodeTable_06,
    501 : SurgeryCodeTable_06,
    502 : SurgeryCodeTable_06,
    503 : SurgeryCodeTable_06,
    504 : SurgeryCodeTable_06,
    505 : SurgeryCodeTable_06,
    506 : SurgeryCodeTable_06,
    508 : SurgeryCodeTable_06,
    509 : SurgeryCodeTable_06,
    510 : SurgeryCodeTable_03,
    511 : SurgeryCodeTable_03,
    512 : SurgeryCodeTable_03,
    518 : SurgeryCodeTable_03,
    519 : SurgeryCodeTable_03,
    529 : SurgeryCodeTable_03,
    530 : SurgeryCodeTable_01,
    531 : SurgeryCodeTable_01,
    538 : SurgeryCodeTable_01,
    539 : SurgeryCodeTable_01,
    540 : SurgeryCodeTable_06,
    541 : SurgeryCodeTable_06,
    542 : SurgeryCodeTable_06,
    543 : SurgeryCodeTable_06,
    548 : SurgeryCodeTable_06,
    549 : SurgeryCodeTable_06,
    559 : SurgeryCodeTable_03,
    569 : SurgeryCodeTable_05,
    570 : SurgeryCodeTable_03,
    571 : SurgeryCodeTable_03,
    572 : SurgeryCodeTable_03,
    573 : SurgeryCodeTable_03,
    574 : SurgeryCodeTable_03,
    577 : SurgeryCodeTable_03,
    578 : SurgeryCodeTable_03,
    579 : SurgeryCodeTable_03,
    589 : SurgeryCodeTable_03,
    600 : SurgeryCodeTable_03,
    601 : SurgeryCodeTable_03,
    602 : SurgeryCodeTable_03,
    608 : SurgeryCodeTable_03,
    609 : SurgeryCodeTable_03,
    619 : SurgeryCodeTable_06,
    620 : SurgeryCodeTable_07,
    621 : SurgeryCodeTable_07,
    629 : SurgeryCodeTable_07,
    630 : SurgeryCodeTable_03,
    631 : SurgeryCodeTable_03,
    632 : SurgeryCodeTable_03,
    637 : SurgeryCodeTable_03,
    638 : SurgeryCodeTable_03,
    639 : SurgeryCodeTable_03,
    649 : SurgeryCodeTable_06,
    659 : SurgeryCodeTable_06,
    669 : SurgeryCodeTable_06,
    670 : SurgeryCodeTable_06,
    671 : SurgeryCodeTable_06,
    672 : SurgeryCodeTable_06,
    673 : SurgeryCodeTable_06,
    674 : SurgeryCodeTable_06,
    675 : SurgeryCodeTable_06,
    676 : SurgeryCodeTable_06,
    677 : SurgeryCodeTable_06,
    678 : SurgeryCodeTable_06,
    679 : SurgeryCodeTable_06,
    680 : SurgeryCodeTable_03,
    681 : SurgeryCodeTable_03,
    688 : SurgeryCodeTable_03,
    689 : SurgeryCodeTable_03,
    690 : SurgeryCodeTable_03,
    691 : SurgeryCodeTable_03,
    692 : SurgeryCodeTable_03,
    693 : SurgeryCodeTable_03,
    694 : SurgeryCodeTable_03,
    695 : SurgeryCodeTable_03,
    696 : SurgeryCodeTable_03,
    698 : SurgeryCodeTable_03,
    699 : SurgeryCodeTable_03,
    700 : SurgeryCodeTable_03,
    701 : SurgeryCodeTable_03,
    709 : SurgeryCodeTable_03,
    710 : SurgeryCodeTable_03,
    711 : SurgeryCodeTable_03,
    712 : SurgeryCodeTable_03,
    713 : SurgeryCodeTable_03,
    714 : SurgeryCodeTable_03,
    715 : SurgeryCodeTable_03,
    716 : SurgeryCodeTable_03,
    717 : SurgeryCodeTable_03,
    718 : SurgeryCodeTable_03,
    719 : SurgeryCodeTable_03,
    720 : SurgeryCodeTable_03,
    721 : SurgeryCodeTable_03,
    722 : SurgeryCodeTable_03,
    723 : SurgeryCodeTable_03,
    724 : SurgeryCodeTable_03,
    725 : SurgeryCodeTable_03,
    728 : SurgeryCodeTable_03,
    729 : SurgeryCodeTable_03,
    739 : SurgeryCodeTable_06,
    740 : SurgeryCodeTable_03,
    741 : SurgeryCodeTable_03,
    749 : SurgeryCodeTable_03,
    750 : SurgeryCodeTable_03,
    751 : SurgeryCodeTable_03,
    752 : SurgeryCodeTable_03,
    753 : SurgeryCodeTable_03,
    754 : SurgeryCodeTable_03,
    755 : SurgeryCodeTable_03,
    758 : SurgeryCodeTable_03,
    759 : SurgeryCodeTable_03,
    760 : SurgeryCodeTable_03,
    761 : SurgeryCodeTable_03,
    762 : SurgeryCodeTable_03,
    763 : SurgeryCodeTable_03,
    764 : SurgeryCodeTable_03,
    765 : SurgeryCodeTable_03,
    767 : SurgeryCodeTable_03,
    768 : SurgeryCodeTable_03,
    770 : SurgeryCodeTable_02,
    771 : SurgeryCodeTable_02,
    772 : SurgeryCodeTable_02,
    773 : SurgeryCodeTable_02,
    774 : SurgeryCodeTable_02,
    775 : SurgeryCodeTable_02,
    778 : SurgeryCodeTable_02,
    779 : SurgeryCodeTable_02,
    809 : SurgeryCodeTable_03
]]]></entry>
        <entry id="IF29_Pre1988" type="java"><![CDATA[[
    0 : SurgeryCodeTable_13,
    1 : SurgeryCodeTable_13,
    2 : SurgeryCodeTable_13,
    3 : SurgeryCodeTable_13,
    4 : SurgeryCodeTable_13,
    5 : SurgeryCodeTable_13,
    6 : SurgeryCodeTable_13,
    8 : SurgeryCodeTable_13,
    9 : SurgeryCodeTable_13,
    19 : SurgeryCodeTable_13,
    20 : SurgeryCodeTable_13,
    21 : SurgeryCodeTable_13,
    22 : SurgeryCodeTable_13,
    23 : SurgeryCodeTable_13,
    24 : SurgeryCodeTable_13,
    28 : SurgeryCodeTable_13,
    29 : SurgeryCodeTable_13,
    30 : SurgeryCodeTable_13,
    31 : SurgeryCodeTable_13,
    39 : SurgeryCodeTable_13,
    40 : SurgeryCodeTable_13,
    41 : SurgeryCodeTable_13,
    48 : SurgeryCodeTable_13,
    49 : SurgeryCodeTable_13,
    50 : SurgeryCodeTable_13,
    51 : SurgeryCodeTable_13,
    52 : SurgeryCodeTable_13,
    58 : SurgeryCodeTable_13,
    59 : SurgeryCodeTable_13,
    60 : SurgeryCodeTable_13,
    61 : SurgeryCodeTable_13,
    62 : SurgeryCodeTable_13,
    68 : SurgeryCodeTable_13,
    69 : SurgeryCodeTable_13,
    79 : SurgeryCodeTable_13,
    80 : SurgeryCodeTable_13,
    81 : SurgeryCodeTable_13,
    88 : SurgeryCodeTable_13,
    89 : SurgeryCodeTable_13,
    90 : SurgeryCodeTable_13,
    91 : SurgeryCodeTable_13,
    98 : SurgeryCodeTable_13,
    99 : SurgeryCodeTable_13,
    100 : SurgeryCodeTable_13,
    101 : SurgeryCodeTable_13,
    102 : SurgeryCodeTable_13,
    103 : SurgeryCodeTable_13,
    104 : SurgeryCodeTable_13,
    108 : SurgeryCodeTable_13,
    109 : SurgeryCodeTable_13,
    110 : SurgeryCodeTable_13,
    111 : SurgeryCodeTable_13,
    112 : SurgeryCodeTable_13,
    113 : SurgeryCodeTable_13,
    118 : SurgeryCodeTable_13,
    119 : SurgeryCodeTable_13,
    129 : SurgeryCodeTable_13,
    130 : SurgeryCodeTable_13,
    131 : SurgeryCodeTable_13,
    132 : SurgeryCodeTable_13,
    138 : SurgeryCodeTable_13,
    139 : SurgeryCodeTable_13,
    140 : SurgeryCodeTable_13,
    142 : SurgeryCodeTable_13,
    148 : SurgeryCodeTable_13,
    150 : SurgeryCodeTable_13,
    151 : SurgeryCodeTable_13,
    152 : SurgeryCodeTable_13,
    153 : SurgeryCodeTable_13,
    154 : SurgeryCodeTable_13,
    155 : SurgeryCodeTable_13,
    158 : SurgeryCodeTable_13,
    159 : SurgeryCodeTable_13,
    160 : SurgeryCodeTable_10,
    161 : SurgeryCodeTable_10,
    162 : SurgeryCodeTable_10,
    163 : SurgeryCodeTable_10,
    164 : SurgeryCodeTable_10,
    165 : SurgeryCodeTable_10,
    166 : SurgeryCodeTable_10,
    168 : SurgeryCodeTable_10,
    169 : SurgeryCodeTable_10,
    170 : SurgeryCodeTable_13,
    171 : SurgeryCodeTable_13,
    172 : SurgeryCodeTable_13,
    173 : SurgeryCodeTable_13,
    178 : SurgeryCodeTable_13,
    179 : SurgeryCodeTable_13,
    180 : SurgeryCodeTable_10,
    181 : SurgeryCodeTable_10,
    182 : SurgeryCodeTable_10,
    183 : SurgeryCodeTable_10,
    184 : SurgeryCodeTable_10,
    185 : SurgeryCodeTable_10,
    186 : SurgeryCodeTable_10,
    187 : SurgeryCodeTable_10,
    188 : SurgeryCodeTable_10,
    189 : SurgeryCodeTable_10,
    199 : SurgeryCodeTable_10,
    209 : SurgeryCodeTable_10,
    210 : SurgeryCodeTable_13,
    211 : SurgeryCodeTable_13,
    212 : SurgeryCodeTable_13,
    218 : SurgeryCodeTable_13,
    220 : SurgeryCodeTable_13,
    221 : SurgeryCodeTable_13,
    239 : SurgeryCodeTable_13,
    240 : SurgeryCodeTable_13,
    241 : SurgeryCodeTable_13,
    248 : SurgeryCodeTable_13,
    249 : SurgeryCodeTable_13,
    250 : SurgeryCodeTable_13,
    251 : SurgeryCodeTable_13,
    252 : SurgeryCodeTable_13,
    253 : SurgeryCodeTable_13,
    254 : SurgeryCodeTable_13,
    257 : SurgeryCodeTable_13,
    258 : SurgeryCodeTable_13,
    259 : SurgeryCodeTable_13,
    260 : SurgeryCodeTable_13,
    268 : SurgeryCodeTable_13,
    269 : SurgeryCodeTable_13,
    300 : SurgeryCodeTable_13,
    301 : SurgeryCodeTable_13,
    310 : SurgeryCodeTable_13,
    311 : SurgeryCodeTable_13,
    312 : SurgeryCodeTable_13,
    313 : SurgeryCodeTable_13,
    318 : SurgeryCodeTable_13,
    319 : SurgeryCodeTable_13,
    320 : SurgeryCodeTable_13,
    321 : SurgeryCodeTable_13,
    322 : SurgeryCodeTable_13,
    323 : SurgeryCodeTable_13,
    328 : SurgeryCodeTable_13,
    329 : SurgeryCodeTable_13,
    339 : SurgeryCodeTable_13,
    340 : SurgeryCodeTable_10,
    341 : SurgeryCodeTable_10,
    342 : SurgeryCodeTable_10,
    343 : SurgeryCodeTable_10,
    348 : SurgeryCodeTable_10,
    349 : SurgeryCodeTable_10,
    379 : SurgeryCodeTable_13,
    380 : SurgeryCodeTable_13,
    381 : SurgeryCodeTable_13,
    382 : SurgeryCodeTable_13,
    383 : SurgeryCodeTable_13,
    384 : SurgeryCodeTable_13,
    388 : SurgeryCodeTable_13,
    390 : SurgeryCodeTable_13,
    398 : SurgeryCodeTable_13,
    399 : SurgeryCodeTable_13,
    400 : SurgeryCodeTable_13,
    401 : SurgeryCodeTable_13,
    402 : SurgeryCodeTable_13,
    403 : SurgeryCodeTable_13,
    408 : SurgeryCodeTable_13,
    409 : SurgeryCodeTable_13,
    410 : SurgeryCodeTable_13,
    411 : SurgeryCodeTable_13,
    412 : SurgeryCodeTable_13,
    413 : SurgeryCodeTable_13,
    414 : SurgeryCodeTable_13,
    418 : SurgeryCodeTable_13,
    419 : SurgeryCodeTable_13,
    420 : SurgeryCodeTable_13,
    421 : SurgeryCodeTable_13,
    422 : SurgeryCodeTable_13,
    423 : SurgeryCodeTable_13,
    424 : SurgeryCodeTable_13,
    440 : SurgeryCodeTable_11,
    441 : SurgeryCodeTable_11,
    442 : SurgeryCodeTable_11,
    443 : SurgeryCodeTable_11,
    444 : SurgeryCodeTable_11,
    445 : SurgeryCodeTable_11,
    446 : SurgeryCodeTable_11,
    447 : SurgeryCodeTable_11,
    448 : SurgeryCodeTable_11,
    449 : SurgeryCodeTable_11,
    470 : SurgeryCodeTable_13,
    471 : SurgeryCodeTable_13,
    472 : SurgeryCodeTable_13,
    473 : SurgeryCodeTable_13,
    474 : SurgeryCodeTable_13,
    475 : SurgeryCodeTable_13,
    476 : SurgeryCodeTable_13,
    478 : SurgeryCodeTable_13,
    479 : SurgeryCodeTable_13,
    480 : SurgeryCodeTable_13,
    481 : SurgeryCodeTable_13,
    482 : SurgeryCodeTable_13,
    488 : SurgeryCodeTable_13,
    490 : SurgeryCodeTable_13,
    491 : SurgeryCodeTable_13,
    492 : SurgeryCodeTable_13,
    493 : SurgeryCodeTable_13,
    494 : SurgeryCodeTable_13,
    495 : SurgeryCodeTable_13,
    496 : SurgeryCodeTable_13,
    498 : SurgeryCodeTable_13,
    499 : SurgeryCodeTable_13,
    500 : SurgeryCodeTable_10,
    501 : SurgeryCodeTable_10,
    502 : SurgeryCodeTable_10,
    503 : SurgeryCodeTable_10,
    504 : SurgeryCodeTable_10,
    505 : SurgeryCodeTable_10,
    506 : SurgeryCodeTable_10,
    508 : SurgeryCodeTable_10,
    509 : SurgeryCodeTable_10,
    510 : SurgeryCodeTable_13,
    511 : SurgeryCodeTable_13,
    512 : SurgeryCodeTable_13,
    518 : SurgeryCodeTable_13,
    519 : SurgeryCodeTable_13,
    529 : SurgeryCodeTable_13,
    530 : SurgeryCodeTable_12,
    531 : SurgeryCodeTable_12,
    538 : SurgeryCodeTable_12,
    539 : SurgeryCodeTable_12,
    540 : SurgeryCodeTable_10,
    541 : SurgeryCodeTable_10,
    542 : SurgeryCodeTable_10,
    543 : SurgeryCodeTable_10,
    548 : SurgeryCodeTable_10,
    549 : SurgeryCodeTable_10,
    559 : SurgeryCodeTable_13,
    569 : SurgeryCodeTable_10,
    570 : SurgeryCodeTable_13,
    571 : SurgeryCodeTable_13,
    572 : SurgeryCodeTable_13,
    573 : SurgeryCodeTable_13,
    574 : SurgeryCodeTable_13,
    577 : SurgeryCodeTable_13,
    578 : SurgeryCodeTable_13,
    579 : SurgeryCodeTable_13,
    589 : SurgeryCodeTable_13,
    600 : SurgeryCodeTable_13,
    601 : SurgeryCodeTable_13,
    602 : SurgeryCodeTable_13,
    608 : SurgeryCodeTable_13,
    609 : SurgeryCodeTable_13,
    619 : SurgeryCodeTable_10,
    620 : SurgeryCodeTable_13,
    621 : SurgeryCodeTable_13,
    629 : SurgeryCodeTable_13,
    630 : SurgeryCodeTable_13,
    631 : SurgeryCodeTable_13,
    632 : SurgeryCodeTable_13,
    637 : SurgeryCodeTable_13,
    638 : SurgeryCodeTable_13,
    639 : SurgeryCodeTable_13,
    649 : SurgeryCodeTable_10,
    659 : SurgeryCodeTable_10,
    669 : SurgeryCodeTable_10,
    670 : SurgeryCodeTable_10,
    671 : SurgeryCodeTable_10,
    672 : SurgeryCodeTable_10,
    673 : SurgeryCodeTable_10,
    674 : SurgeryCodeTable_10,
    675 : SurgeryCodeTable_10,
    676 : SurgeryCodeTable_10,
    677 : SurgeryCodeTable_10,
    678 : SurgeryCodeTable_10,
    679 : SurgeryCodeTable_10,
    680 : SurgeryCodeTable_13,
    681 : SurgeryCodeTable_13,
    688 : SurgeryCodeTable_13,
    689 : SurgeryCodeTable_13,
    690 : SurgeryCodeTable_13,
    691 : SurgeryCodeTable_13,
    692 : SurgeryCodeTable_13,
    693 : SurgeryCodeTable_13,
    694 : SurgeryCodeTable_13,
    695 : SurgeryCodeTable_13,
    696 : SurgeryCodeTable_13,
    698 : SurgeryCodeTable_13,
    699 : SurgeryCodeTable_13,
    700 : SurgeryCodeTable_13,
    701 : SurgeryCodeTable_13,
    709 : SurgeryCodeTable_13,
    710 : SurgeryCodeTable_13,
    711 : SurgeryCodeTable_13,
    712 : SurgeryCodeTable_13,
    713 : SurgeryCodeTable_13,
    714 : SurgeryCodeTable_13,
    715 : SurgeryCodeTable_13,
    716 : SurgeryCodeTable_13,
    717 : SurgeryCodeTable_13,
    718 : SurgeryCodeTable_13,
    719 : SurgeryCodeTable_13,
    720 : SurgeryCodeTable_13,
    721 : SurgeryCodeTable_13,
    722 : SurgeryCodeTable_13,
    723 : SurgeryCodeTable_13,
    724 : SurgeryCodeTable_13,
    725 : SurgeryCodeTable_13,
    728 : SurgeryCodeTable_13,
    729 : SurgeryCodeTable_13,
    739 : SurgeryCodeTable_13,
    740 : SurgeryCodeTable_13,
    741 : SurgeryCodeTable_13,
    749 : SurgeryCodeTable_13,
    750 : SurgeryCodeTable_13,
    751 : SurgeryCodeTable_13,
    752 : SurgeryCodeTable_13,
    753 : SurgeryCodeTable_13,
    754 : SurgeryCodeTable_13,
    755 : SurgeryCodeTable_13,
    758 : SurgeryCodeTable_13,
    759 : SurgeryCodeTable_13,
    760 : SurgeryCodeTable_13,
    761 : SurgeryCodeTable_13,
    762 : SurgeryCodeTable_13,
    763 : SurgeryCodeTable_13,
    764 : SurgeryCodeTable_13,
    765 : SurgeryCodeTable_13,
    767 : SurgeryCodeTable_13,
    768 : SurgeryCodeTable_13,
    770 : SurgeryCodeTable_13,
    771 : SurgeryCodeTable_13,
    772 : SurgeryCodeTable_13,
    773 : SurgeryCodeTable_13,
    774 : SurgeryCodeTable_13,
    775 : SurgeryCodeTable_13,
    778 : SurgeryCodeTable_13,
    779 : SurgeryCodeTable_13,
    809 : SurgeryCodeTable_13
]]]></entry>
        <entry id="IF348_Hist_List_1" type="java"><![CDATA[[9732,9741,9742,9800,9801,9806..9809,9820,9826,9831..9834,9840,9860,9861,9863,9865..9867,9869..9879,9891,9895..9898,9910..9912,9920,9931,9940,9945,9946,9948,9950,9961..9968,9975,9980,9982,9983,9985,9986,9989,9991..9993]]]></entry>
        <entry id="IF348_Hist_List_2" type="java"><![CDATA[[9590,9591,9596,9597,9650,9651,9652,9653,9655,9659,9663,9671,9673,9678,9680,9687,9688,9690,9691,9695,9698,9700,9701,9702,9705,9708,9709,9712,9714,9717,9718,9719,9724,9725,9726,9727,9735,9737,9738,9740,9751]]]></entry>
        <entry id="IF348_Hist_List_3" type="java"><![CDATA[[9755,9756,9757,9758,9759,9762,9811,9812,9813,9814,9815,9816,9817,9818,9823,9827,9837,9971]]]></entry>
        <entry id="IF352_Histologies" type="java"><![CDATA[[8000..8046,8051..8131,8148..8152,8154..8157,8170..8175,8230,8231,8243..8245,8247,8248,8508..8513,8560..8570,8575,8950,8980,8981]]]></entry>
        <entry id="IF354_properties" type="java"><![CDATA[['csTumorSize','csExtension','csTumorSizeExtEval','csLymphNodes','csLymphNodesEval','csMetsAtDx','csMetsEval','csMetsAtDxBone','csMetsAtDxBrain','csMetsAtDxLiver','csMetsAtDxLung','lymphVascularInvasion','csSiteSpecificFactor1','csSiteSpecificFactor2','csSiteSpecificFactor3','csSiteSpecificFactor4','csSiteSpecificFactor5','csSiteSpecificFactor6','csSiteSpecificFactor7','csSiteSpecificFactor8','csSiteSpecificFactor9','csSiteSpecificFactor10','csSiteSpecificFactor11','csSiteSpecificFactor12','csSiteSpecificFactor13','csSiteSpecificFactor14','csSiteSpecificFactor15','csSiteSpecificFactor16','csSiteSpecificFactor17','csSiteSpecificFactor18','csSiteSpecificFactor19','csSiteSpecificFactor20','csSiteSpecificFactor21','csSiteSpecificFactor22','csSiteSpecificFactor23','csSiteSpecificFactor24']]]></entry>
        <entry id="IF363_Schemas" type="java"><![CDATA[['buccal_mucosa','floor_mouth','gum_lower','gum_other','gum_upper','lip_lower','lip_other','lip_upper','mouth_other','nasal_cavity','palate_hard','sinus_ethmoid','sinus_maxillary','melanoma_buccal_mucosa','melanoma_floor_mouth','melanoma_gum_lower','melanoma_gum_other','melanoma_gum_upper','melanoma_lip_lower','melanoma_lip_other','melanoma_lip_upper','melanoma_mouth_other','melanoma_nasal_cavity','melanoma_palate_hard','melanoma_sinus_ethmoid','melanoma_sinus_maxillary']>]]></entry>
        <entry id="IF380_Hist_List_1" type="java"><![CDATA[['9700','9701','9702','9705','9708','9709','9716','9717','9718','9724','9725','9726','9827','9834','9837']]]></entry>
        <entry id="IF380_Hist_List_2" type="java"><![CDATA[['9591','9596','9597','9659','9671','9673','9678','9679','9680','9687','9688','9689','9690','9691','9695','9698','9699','9712','9731','9732','9734','9737','9738','9761','9762','9811','9812','9813','9814','9815','9816','9817','9818','9823','9826','9833','9940']]]></entry>
        <entry id="IF380_Hist_List_3" type="java"><![CDATA[['9719','9948']]]></entry>
        <entry id="IF380_Hist_List_4" type="java"><![CDATA[['9740','9741','9742','9751','9755','9756','9757','9758','9759','9801','9806','9807','9808','9809','9875','9876','9945','9946','9950','9961','9962','9963','9964','9975','9980','9982','9983','9985','9986','9989','9991','9992']]]></entry>
        <entry id="IF380_Hist_List_5" type="java"><![CDATA[['9590','9650','9651','9652','9653','9655','9663','9727','9735','9800','9820','9832','9840','9860','9861','9863','9865','9866','9867','9869','9870','9871','9872','9873','9874','9891','9895','9896','9897','9898','9910','9911','9920','9930','9931','9965','9966','9967','9971']]]></entry>
        <entry id="IF38_3Table" type="java"><![CDATA[[
    [300] : [9250..9342],
    [301] : [9250..9342],
    [310..319] : [9250..9342],
    [381,382,384,388] : [8010..8245,8247..8671,8720..8790,8940..8941],
    [383] : [8010..8231,8241..8245,8247..8671,8720..8790,8940..8941],
    [400..419] : [8010..8060,8075..8671,8720..8790,8940..8941],
    [470..479] : [8010..8671,8720..8790,8940..8941],
    [480..488,490..499] : [8720..8790],
    [490..499] : [8720..8790],
    [700..709] : [8010..8671,8940..8941],
    [710..719] : [8010..8060,8071..8671,8940..8941],
    [720..729] : [8010..8671,8940..8941],
    [760..768] : [8720..8790,8800..8811,8813..8830,8840..8921,8940..8941,8990..8991,9040..9044,9120..9170,9240..9252,9540..9560,9580..9582]
]]]></entry>
        <entry id="IF405_Hist_List" type="java"><![CDATA[[8000..8019,8022..8029,8033,8074,8153,8240,8300,8392,8413,8525,8576,8490,8950,8980,8981]]]></entry>
        <entry id="IF414_Lymph_Nodes" type="java"><![CDATA[[100..118,121..123,125..128,152,153]]]></entry>
        <entry id="IF506_TNM_CODES_Table" type="java"><![CDATA[['003', '04A', '04B', '04C', '04D', '05A', '05B', '006', '08E', '08F', '10A', '10B', '011', '012', '015'] : ['0', '1'],
['007', '08A', '08B', '08C', '08D', '009', '13B', '16A', '16B', '17B', '17C', '18A', '18B', '19A', '026', '36B', '36C', '37A', '043', '47A', '47B', '053', '054'] : ['0', '1', '88'],
['17A', '19B', '020', '021', '022' '023', '024', '028', '029', '033', '034', '035', '36A', '37B', '038', '040'] : ['0', '1'],
['044', '045', '046', '048', '049', '050', '57B'] : ['0', '1'],
['13A', '014', '025', '027', '039', '042'] : ['0', '1', '1A', '1B'],
['030', '031', '51A'] : ['0', '1', '1A', '1B', '1C'],
['041'] : ['0', '1', '1A', '1B', '1C', '88'],
['055'] : ['0', '1', '1A', '1B', '1C'],
['032'] : ['0', '1', '0I+'],
['052'] : ['0', '1', '1A', '1B', '1C', '1D', '1E'],
['51B'] : ['0', '1', '1A', '1B', '1C'],
['056', '57A', '999'] : ['88']]]]></entry>
        <entry id="IF507_TNM_CODES_Table" type="java"><![CDATA[['003', '04A', '04D', '05A', '05B', '006', '029'] : [['C', 'P'] : ['X', '0', '1', '2', '2A', '2B', '2C', '3']],
['04B', '04C', '011'] : [['C', 'P'] : ['X', '0', '1', '2', '3', '3A', '3B']],
['007'] : [['C', 'P'] : ['X', '0', '1', '2', '2A', '2B', '2C', '3', '88']],
['08A', '08B', '08C', '08D'] : [['C', 'P'] : ['X', '0', '1', '1A', '1B', '88']],
['08E', '08F'] : [['C', 'P'] : ['X', '0', '1', '1A', '1B']],
['009', '13B', '16A', '16B', '17B', '17C', '18A', '18B', '19A', '36B', '36C', '37A', '041', '043', '47A', '47B', '053', '054'] : [['C', 'P'] : ['X', '0', '1', '88']],
['10A', '10B', '13A', '015', '025', '040', '042', '044', '045'] : [['C', 'P'] : ['X', '0', '1', '2', '3']],
['012', '020', '021', '36A', '046', '052'] : [['C', 'P'] : ['X', '0', '1', '2']],
['014'] : [['C', 'P'] : ['X', '0', '1', '1A', '1B', '1C', '2', '2A', '2B']],
['17A', '19B', '022', '023', '024', '027', '028', '034', '035', '37B', '038', '048', '049', '51A'] : [['C', 'P'] : ['X', '0', '1']],
['026'] : [['C', 'P'] : ['X', '0', '1', '2', '3', '88']],
['030'] : [['C', 'P'] : ['X', '0', '1', '1A', '1B', '2']],
['031', '033'] : [['C', 'P'] : ['X', '0', '1', '1A', '1B', '2', '2A', '2B', '2C', '3']],
['032'] : [['C'] : ['X', '0', '1', '2', '2A', '2B', '3', '3A', '3B', '3C'], ['P'] : ['X', '0', '0I-', '0I+', '0M-', '0M+', '1', '1A', '1B', '1C', '1MI', '2', '2A', '2B', '3', '3A', '3B', '3C']],
['039', '056', '57A', '999'] : [['C', 'P'] : ['88']],
['050'] : [['C'] : ['X', '0', '0A', '0B', '1'], ['P'] : ['X', '0', '1', '0A', '0B']],
['51B'] : [['C'] : ['X', '0', '1'], ['P'] : ['X', '0', '1', '1A', '1B', '1C']],
['055'] : [['C', 'P'] : ['X', '0', '1', '2', '3', '4']],
['57B'] : [['C', 'P'] : ['X', '0', '1', '1A', '1B', '2', '2A', '2B', '3']]]]></entry>
        <entry id="IF508_TNM_CODES_Table" type="java"><![CDATA[['003', '04A', '04B', '04C', '04D', '05A', '05B', '006'] : [['C', 'P'] : ['0', '1', '2', '3', '4', '4A', '4B', '4C', '99']],
['007', '08D'] : [['C', 'P'] : ['1', '2', '3', '4', '4A', '4B', '4C', '88', '99']],
['08A'] : [['C'] : ['1', '2', '4', '4A', '4B', '4C', '88', '99'], ['P'] : ['0', '1', '2', '88', '99']],
['08B'] : [['C'] : ['1', '2', '3', '4', '4A', '4B', '4C', '88', '99'], ['P'] : ['0', '1', '2', '3', '4', '4A', '4B', '4C', '88', '99']],
['08C'] : [['C'] : ['3', '88', '99'], ['P'] : ['0', '3', '88', '99']],
['08E', '08F'] : [['C', 'P'] : ['4', '4A', '4B', '4C']],
['009'] : [['C', 'P'] : ['3', '4', '4A', '4B', '4C', '88', '99']],
['10A', '10B', '011', '032'] : [['C', 'P'] : ['0', '1', '1A', '1B', '2', '2A', '2B', '3', '3A', '3B', '3C', '4', '99']],
['012', '17A'] : [['C', 'P'] : ['0', '1', '2', '2A', '2B', '3', '3A', '3B', '4', '99']],
['13A'] : [['C', 'P'] : ['0', '1', '2', '2A', '2B', '2C', '3', '3A', '3B', '3C', '4', '4A', '4B', '4C', '99']],
['13B'] : [['C', 'P'] : ['0', '1', '2', '3', '4', '88', '99']],
['014'] : [['C', 'P'] : ['0', '1', '2', '2A', '2B', '2C', '3', '3A', '3B', '3C', '4', '4A', '4B', '99']],
['015', '040'] : [['C', 'P'] : ['0', '1', '2', '3', '3A', '3B', '4', '99']],
['16A'] : [['C', 'P'] : ['1', '1A', '1B', '2', '3', '3A', '3B', '4', '88', '99']],
['16B'] : [['C', 'P'] : ['1', '2', '3', '3A', '3B', '4', '88', '99']],
['17B', '17C'] : [['C', 'P'] : ['0', '1', '2', '2A', '2B', '3', '3A', '3B', '4', '88', '99']],
['18A', '18B'] : [['C', 'P'] : ['1', '2', '3', '3A', '3B', '3C', '4', '4A', '4B', '88', '99']],
['19A'] : [['C', 'P'] : ['0', '1', '2', '3', '4', '4A', '4B', '88', '99']],
['19B', '034'] : [['C', 'P'] : ['0', '1', '2', '3', '4', '4A', '4B', '99']],
['020', '021'] : [['C', 'P'] : ['0', '1', '2', '3', '3A', '3B', '4', '4A', '4B', '99']],
['022', '023', '024'] : [['C', 'P'] : ['0', '1', '1A', '1B', '2', '2A', '2B', '3', '4', '99']],
['025'] : [['C', 'P'] : ['OC', '0', '1', '1A', '1B', '2', '2A', '2B', '3', '3A', '3B', '4', '99']],
['026'] : [['C', 'P'] : ['1', '1A', '1B', '2', '3', '4', '88', '99']],
['027'] : [['C', 'P'] : ['1', '1A', '1B', '2', '2A', '2B', '3', '4', '4A', '4B', '99']],
['028'] : [['C', 'P'] : ['1', '1A', '1B', '2', '2A', '2B', '3', '4', '99']],
['029'] : [['C', 'P'] : ['0', '1', '2', '3', '4', '99']],
['030'] : [['C', 'P'] : ['0', '1', '1A', '1B', '2', '2A', '2B', '2C', '3', '3A', '3B', '4', '99']],
['031'] : [['C'] : ['0', '1', '1A', '1B', '2', '2A', '2B', '2C', '3', '4', '99'], ['P'] : ['0', '1', '1A', '1B', '2', '2A', '2B', '2C', '3', '3A', '3B', '3C', '4', '99']],
['033'] : [['C', 'P'] : ['0', '1', '1A', '1B', '2', '3', '3A', '3B', '3C', '4', '4A', '4B', '99']],
['035'] : [['C', 'P'] : ['0', '1', '1A', '1A1', '1A2', '1B', '1B1', '1B2', '2', '2A', '2A1', '2A2', '2B', '3', '3A', '3B', '4', '4A', '4B', '99']],
['36A'] : [['C', 'P'] : ['0', '1', '1A', '1B', '2', '3', '3A', '3B', '3C', '3C1', '3C2', '4', '4A', '4B', '99']],
['36B'] : [['C', 'P'] : ['1', '1A', '1B', '2', '3', '3A', '3B', '3C', '4', '4A', '4B', '88', '99']],
['36C'] : [['C', 'P'] : ['1', '1A', '1B', '1C', '2', '3', '3A', '3B', '3C', '4', '4A', '4B', '88', '99']],
['37A'] : [['C', 'P'] : ['1', '1A', '1B', '1C', '2', '2A', '2B', '2C', '3', '3A', '3B', '3C', '4', '88', '99']],
['37B'] : [['C', 'P'] : ['1', '1A', '1B', '1C', '2', '2A', '2B', '2C', '3', '3A', '3B', '3C', '4', '99']],
['038'] : [['C', 'P'] : ['0', '1', '1A', '1B', '1C', '2', '2A', '2B', '2C', '3', '3A', '3B', '3C', '4', '99']],
['039', '57A'] : [['C', 'P'] : ['1', '1A', '1B', '2', '2A', '2B', '3', '3A', '3B', '4', '4A', '4B', '99']],
['041'] : [['C', 'P'] : ['1', '2', '2A', '2B', '3', '4', '88' '99']],
['042'] : [['C', 'P'] : ['0', '1', '1A', '1B', '1S', '2', '2A', '2B', '2C', '3', '3A', '3B', '3C', '99']],
['043', '47A', '47B'] : [['C', 'P'] : ['1', '2', '3', '4', '88', '99']],
['044', '045', '046'] : [['C', 'P'] : ['0IS', '0A', '1', '2', '3', '4', '99']],
['048'] : [['C', 'P'] : ['0', '1', '1A', '1B', '1C', '2', '3', '3A', '3B', '3C', '4', '99']],
['049', '050', '052', '053', '054', '055', '056', '999'] : [['C', 'P'] : ['88']],
['51A', '51B'] : [['C', 'P'] : ['1', '2', '2A', '2B', '3', '3A', '3B', '3C', '4', '99']],
['57B'] : [['C', 'P'] : ['1', '1A', '1B', '2', '2B', '3', '3A', '3B', '4', '4A', '4A1', '4A2', '4B', '4C', '99']],
['57C'] : [['C', 'P'] : ['1', '1A', '1B', '2', '2A', '2B', '3', '3A', '3B', '4', '4A', '4B', '88', '99']]]]></entry>
        <entry id="IF509_TNM_CODES_Table" type="java"><![CDATA[['003', '04A', '04D', '05A', '006', '13A', '014'] : [['C', 'P'] : ['X', '0', 'IS', '1', '2', '3', '4', '4A', '4B']],
['04B', '04C', '015', '17A', '022', '023', '024', '029', '030', '034'] : [['C', 'P'] : ['X', '0', 'IS', '1', '2', '3', '4']],
['05B', '10A', '10B', '011'] : [['C', 'P'] : ['X', '0', 'IS', '1', '1A', '1B', '2', '3', '4', '4A', '4B']],
['007'] : [['C', 'P'] : ['X', '0', '1', '2', '3', '4', '4A', '4B', '88']],
['08A', '08B', '08C', '08D'] : [['C', 'P'] : ['X', '0', '1', '1A', '1B', '2', '3', '4', '4A', '4B', '88']],
['08E', '08F'] : [['C', 'P'] : ['4', '4A', '4B']],
['009'] : [['C', 'P'] : ['X', '3', '4', '4A', '4B', '88']],
['012', '020'] : [['C', 'P'] : ['X', '0', 'IS', '1', '1A', '1B', '2', '3', '4']],
['13B', '17C', '026'] : [['C', 'P'] : ['X', '0', '1', '1A', '1B', '2', '3', '4', '88']],
['16A', '16B', '17B', '47A', '47B', '054'] : [['C', 'P'] : ['X', '0', '1', '2', '3', '4', '88']],
['18A', '18B'] : [['C', 'P'] : ['X', '0', '1', '2', '3', '3A', '3B', '4', '88']],
['19A'] : [['C', 'P'] : ['X', '0', 'IS', '1', '2', '2A', '2B', '3', '4', '88']],
['19B', '021'] : [['C', 'P'] : ['X', '0', 'IS', '1', '2', '2A', '2B', '3', '4']],
['025'] : [['C', 'P'] : ['X', '0', 'IS', '1', '1A', '1B', '2', '2A', '2B', '3', '4']],
['027'] : [['C', 'P'] : ['X', '0', '1', '2', '3']],
['028'] : [['C', 'P'] : ['X', '0', '1', '1A', '1B', '2', '2A', '2B']],
['031'] : [['C', 'P'] : ['X', '0', 'IS', '1', '1A', '1B', '2', '2A', '2B', '3', '3A', '3B', '4', '4A', '4B']],
['032'] : [['C', 'P'] : ['X', '0', 'IS', '1', '1A', '1B', '1C', '1MI', '2', '3', '4', '4A', '4B', '4C', '4D']],
['033'] : [['C', 'P'] : ['X', '0', 'IS', '1', '1A', '1B', '2', '3']],
['035'] : [['C', 'P'] : ['X', '0', 'IS', '1', '1A', '1A1', '1A2', '1B', '1B1', '1B2', '2', '2A', '2A1', '2A2', '2B', '3', '3A', '3B', '4']],
['36A'] : [['C', 'P'] : ['X', '0', 'IS', '1', '1A', '1B', '2', '3', '3A', '3B', '4']],
['36B'] : [['C', 'P'] : ['X', '0', '1', '1A', '1B', '2', '2A', '2B', '3', '3A', '3B', '4', '88']],
['36C'] : [['C', 'P'] : ['X', '0', '1', '1A', '1B', '1C', '2', '2A', '2B', '3', '3A', '3B', '4', '88']],
['37A'] : [['C', 'P'] : ['X', '0', '1', '1A', '1B', '1C', '2', '2A', '2B', '2C', '3', '3A', '3B', '3C', '88']],
['37B'] : [['C', 'P'] : ['X', '0', '1', '1A', '1B', '1C', '2', '2A', '2B', '2C', '3', '3A', '3B', '3C']],
['038'] : [['C', 'P'] : ['X', '0', 'IS', '1', '1A', '1B', '1C', '2', '2A', '2B', '2C', '3', '3A', '3B', '3C']],
['039'] : [['C', 'P'] : ['X', '0', '1', '2']],
['040'] : [['C', 'P'] : ['X', '0', 'IS', 'A', '1', '1A', '1B', '2', '3', '4']],
['041'] : [['C', 'P'] : ['X', '0', '1', '1A', '1B', '1C', '2', '2A', '2B', '2C', '3', '3A', '3B', '4', '88']],
['042'] : [['C'] : ['X', 'IS', '1', '2', '3', '4'], ['P'] : ['X', '0', 'IS', '1', '2', '3', '4']],
['043'] : [['C', 'P'] : ['X', '0', '1', '1A', '1B', '2', '2A', '2B', '3', '3A', '3B', '3C', '4', '88']],
['044', '46A'] : [['C', 'P'] : ['X', '0', 'IS', 'A', '1', '2', '3', '4']],
['045'] : [['C', 'P'] : ['X', '0', 'IS', 'A', '1', '2', '2A', '2B', '3', '3A', '3B', '4', '4A', '4B']],
['46B'] : [['C', 'P'] : ['X', '0', 'IS', 'ISPU', 'ISPD', 'A', '1', '2', '3', '4']],
['048'] : [['C', 'P'] : ['X', '0', 'IS', '1', '2', '2A', '2B', '3', '3A', '3B', '4']],
['049'] : [['C', 'P'] : ['X', '0', 'IS', '1', '2', '3', '4', '4A', '4B', '4C', '4D']],
['050'] : [['C'] : ['X', '0', 'IS', '1', '1A', '1B', '1C', '1D', '2', '2A', '2B', '2C', '2D', '3', '3A', '3B', '3C', '3D', '4'], ['P'] : ['X', '0', 'IS', '1', '1A', '1B', '1C', '2', '2A', '2B', '2C', '3', '4']],
['51A'] : [['C', 'P'] : ['X', '0', '1', '1A', '1B', '1C', '1D', '2', '2A', '2B', '2C', '2D', '3', '3A', '3B', '3C', '3D', '4', '4A', '4B', '4C', '4D', '4E']],
['51B'] : [['C', 'P'] : ['X', '0', '1', '1A', '1B', '1C', '2', '2A', '3', '3A', '4', '4A', '4B']],
['052'] : [['C'] : ['X', '0', '1', '1A', '1B', '1C', '2', '2A', '2B', '3', '3A', '3B', '4', '4A', '4B', '4C', '4D'], ['P'] : ['X', '0', '1', '2', '2A', '2B', '3', '3A', '3B', '4', '4A', '4B']],
['053'] : [['C', 'P'] : ['X', '0', '1', '2', '3', '4', '4A', '4B', '4C', '88']],
['055'] : [['C', 'P'] : ['X', '0', '1', '1A', '1B', '1C', '2', '2A', '2B', '2C', '2D', '3', '4', '4A', '4B', '4C', '4D']],
['056', '57A', '999'] : [['C', 'P'] : ['88']],
['57B'] : [['C', 'P'] : ['1', '1A', '1B', '2', '2A', '2B', '3', '4']]]]></entry>
        <entry id="IF546_Table" type="java"><![CDATA[['cX','c0','c0A','c0B','c1','c1A','c1B','c1C','c2','c2A','c2B','c2C','c3','c3A','c3B','c3C','c4','88']]]></entry>
        <entry id="IF549_Table" type="java"><![CDATA[['pX','p0','p0I-','p0I+','p0M-','p0M+','p1M','p1MI','p1','p1A','p1B','p1C','p2','p2A','p2B','p2C','p3','p3A','p3B','p3C','p4','cX','c0','c0A','c0B','c1','c1A','c1B','c1C','c2','c2A','c2B','c2C','c3','c3A','c3B','c3C','c4','88','p0A','p0B']]]></entry>
        <entry id="IF550_Table" type="java"><![CDATA[['pX','p0','pIS','pISU','pISD','pA','p1','p1A','p1A1','p1A2','p1B','p1B1','p1B2','p1C','p1D','p1MI','p2','p2A','p2A1','p2A2','p2B','p2C','p2D','p3','p3A','p3B','p3C','p3D','p4','p4A','p4B','p4C','p4D','p4E','cX','c0','c1','c1A','c1A1','c1A2','c1B','c1B1','c1B2','c1C','c1D','c1MI','c2','c2A','c2A1','c2A2','c2B','c2C','c2D','c3','c3A','c3B','c3C','c3D','c4','c4A','c4B','c4C','c4D','c4E','88']]]></entry>
        <entry id="IF582_Table" type="java"><![CDATA[['000' : ['000' : ['p0', 'c0'], '001' : ['p0M-'], '002' : ['p0M+'], '987' : ['ER'], '988' : ['p0'], '' : ['p0']],
 '001' : ['000' : ['p0I-'], '001' : ['p0M-'], '002' : ['p0M+'], '987' : ['ER'], '988' : ['p0I-'], '' : ['p0I-']],
 ['002', '009'] : ['000' : ['p0I+'], '001' : ['p0I+'], '002' : ['p0M+'], '987' : ['ER'], '988' : ['p0I+'], '' : ['p0I+']],
 '987' : ['000' : ['ER'], '001' : ['ER'], '002' : ['ER'], '987' : ['p1'], '988' : ['p1'], '' : ['p1']],
 ['988', ''] : ['000' : ['p0'], '001' : ['p0M-'], '002' : ['p0M+'], '987' : ['p1']]]]]></entry>
        <entry id="IF602_List1" type="java"><![CDATA[['003','04A','04D','05A','05B','006','007','08A','08B','08C','08D','08E','08F','009','10A','10B','011','13A','014','031','51B']]]></entry>
        <entry id="IF602_List2" type="java"><![CDATA[['04B','04C','012','13B','015','16A','16B','17A','17B','17C','020','021','022','023','024','025','026','029','030','034','035','36A','36B','36C','37A','37B','038','040','042','044','46A','46B','47A','47B','048','050','054','57B']]]></entry>
        <entry id="IF602_List3" type="java"><![CDATA[['032','049','055']]]></entry>
        <entry id="IF610_Table" type="java"><![CDATA[[['003', '04A', '04B', '04C', '04D', '05A', '05B', '006', '08E', '08F', '10A', '10B', '011', '012', '015', '17A', '019', '020', '021'] : ['c0', 'c1', 'p1'],
['022', '023', '024', '028', '029', '033', '034', '035', '36A', '37B', '038', '040', '044', '045', '046', '048', '049', '050'] : ['c0', 'c1', 'p1'],
['007', '08A', '08B', '08C', '08D', '009', '13B', '16A', '16B', '17B', '17C', '018', '026', '36B', '36C', '37A', '043', '47A', '47B', '053', '054', '57B'] : ['c0', 'c1', 'p1', '88'],
['13A', '014', '025', '027', '042'] : ['c0', 'c1', 'p1', 'c1A', 'p1A', 'c1B', 'p1B'],
['030', '031'] : ['c0', 'c1', 'p1', 'c1A', 'p1A', 'c1B', 'p1B', 'c1C', 'p1C'],
['032'] : ['c0', 'c0I+', 'c1', 'p1'],
['039'] : ['c0', 'c1', 'p1', 'c1A', 'p1A', 'c1B', 'p1B', '88'],
['041', '51A', '51B', '055'] : ['c0', 'c1', 'p1', 'c1A', 'p1A', 'c1B', 'p1B', 'c1C', 'p1C', '88'],
['052'] : ['c0', 'c1', 'p1', 'c1A', 'p1A', 'c1B', 'p1B', 'c1C', 'p1C', 'c1D', 'p1D', 'c1E', 'p1E'],
['056', '57A', '57C', '999'] : ['88']]]]></entry>
        <entry id="IF611_Table" type="java"><![CDATA[[['003', '04A', '04D', '05A', '05B', '006'] : ['C' : ['cX', 'c0', 'c1', 'c2', 'c2A', 'c2B', 'c2C', 'c3'], 'P' : ['pX', 'c0', 'p0', 'p1', 'p2', 'p2A', 'p2B', 'p2C', 'p3']],
['04B', '04C', '011'] : ['C' : ['cX', 'c0', 'c1', 'c2', 'c3', 'c3A', 'c3B'], 'P' : ['pX', 'c0', 'p0', 'p1', 'p2', 'p3', 'p3A', 'p3B']],
['007'] : ['C' : ['cX', 'c0', 'c1', 'c2', 'c2A', 'c2B', 'c2C', 'c3', '88'], 'P' : ['pX', 'c0', 'p0', 'p1', 'p2', 'p2A', 'p2B', 'p2C', 'p3', '88']],
['08A', '08B', '08C', '08D'] : ['C' : ['cX', 'c0', 'c1', 'c1A', 'c1B', '88'], 'P' : ['pX', 'c0', 'p0', 'p1', 'p1A', 'p1B', '88']],
['08E', '08F'] : ['C' : ['cX', 'c0', 'c1', 'c1A', 'c1B'], 'P' : ['pX', 'c0', 'p0', 'p1', 'p1A', 'p1B']],
['009', '13B', '17B', '17C', '018', '36B', '36C', '37A', '041', '043', '47A', '47B', '51A', '51B', '053', '054'] : ['C' : ['cX', 'c0', 'c1', '88'], 'P' : ['pX', 'c0', 'p0', 'p1', '88']],
['10A', '10B', '015', '025', '029', '040', '042', '044', '045'] : ['C' : ['cX', 'c0', 'c1', 'c2', 'c3'], 'P' : ['pX', 'c0', 'p0', 'p1', 'p2', 'p3']],
['012', '13A', '020', '021', '046', '052'] : ['C' : ['cX', 'c0', 'c1', 'c2'], 'P' : ['pX', 'c0', 'p0', 'p1', 'p2']],
['014'] : ['C' : ['cX', 'c0', 'c1', 'c1A', 'c1B', 'c1C', 'c2', 'c2A', 'c2B'], 'P' : ['pX', 'c0', 'p0', 'p1', 'p1A', 'p1B', 'p1C', 'p2', 'p2A', 'p2B']],
['16A', '16B'] : ['C' : ['c0', 'c1', '88'], 'P' : ['c0', 'c1', 'p0', 'p1', '88']],
['17A', '019', '022', '023', '024', '034', '035', '37B', '038', '048', '049'] : ['C' : ['cX', 'c0', 'c1'], 'P' : ['pX', 'c0', 'p0', 'p1']],
['026'] : ['C' : ['cX', 'c0', 'c1', 'c2', 'c3', '88'], 'P' : ['pX', 'c0', 'p0', 'p1', 'p2', 'p3', '88']],
['027', '028'] : ['C' : ['cX', 'c0', 'c1'], 'P' : ['pX', 'c0', 'c1', 'p0', 'p1']],
['030'] : ['C' : ['cX', 'c0', 'c1', 'c1B', 'c2'], 'P' : ['pX', 'c0', 'p0', 'p1', 'p1A', 'p1B', 'p2']],
['031'] : ['C' : ['cX', 'c0', 'c1', 'c2', 'c2C', 'c3'], 'P' : ['pX', 'c0', 'p0', 'p1', 'p1A', 'p1B' 'p2', 'p2A', 'p2B', 'p2C', 'p3']],
['032'] : ['C' : ['cX', 'c0', 'c1', 'c2', 'c2A', 'c2B', 'c3', 'c3A', 'c3B', 'c3C'], 'P' : ['pX', 'c0', 'p0', 'p0I-', 'p0I+', 'p0M-', 'p0M+', 'p1', 'p1A', 'p1B', 'p1C', 'p1MI', 'p2', 'p2A', 'p2B', 'p3', 'p3A', 'p3B', 'p3C']],
['033'] : ['C' : ['cX', 'c0', 'c1', 'c1A', 'c1B', 'c2', 'c2A', 'c2B', 'c2C', 'c3'], 'P' : ['pX', 'c0', 'p0', 'p1', 'p1A', 'p1B', 'p2', 'p2A', 'p2B', 'p2C', 'p3']],
['36A'] : ['C' : ['cX', 'c0', 'c1', 'c2'], 'P' : ['pX', 'c0', 'c1', 'c2', 'p0', 'p1', 'p2']],
['039', '056', '57A', '57C', '999'] : ['C' : ['88'], 'P' : ['88']],
['050'] : ['C' : ['cX', 'c0', 'c0A', 'c0B', 'c1'], 'P' : ['pX', 'c0', 'p0', 'p1']],
['055'] : ['C' : ['cX', 'c0', 'c1', 'c2', 'c3', 'c4', '88'], 'P' : ['pX', 'c0', 'p0', 'p1', 'p2', 'p3', 'p4', '88']],
['57B'] : ['C' : ['cX', 'c0', 'c1', 'c1A', 'c1B', 'c2', 'c2A', 'c2B', 'c3', '88'], 'P' : ['pX', 'c0', 'p0', 'p1', 'p1A', 'p1B', 'p2', 'p2A', 'p2B', 'p3', '88']]]]]></entry>
        <entry id="IF612_Table" type="java"><![CDATA[[['003', '04A', '04B', '04C', '04D', '05A', '05B', '006'] : [['C', 'P'] : ['0', '1', '2', '3', '4', '4A', '4B', '4C', '99']],
['007', '08B', '08D'] : [['C', 'P'] : ['1', '2', '3', '4', '4A', '4B', '4C', '99', '88']],
['08A'] : [['C', 'P'] : ['1', '2', '99', '88']],
['08C'] : [['C', 'P'] : ['99', '88']],
['08E', '08F'] : [['C'] : ['1', '2', '3', '4', '4A', '4B', '4C', '99'], ['P'] : ['4', '4A', '4B', '4C', '99']],
['009'] : [['C', 'P'] : ['3', '4', '4A', '4B', '4C', '99', '88']],
['10A', '10B', '011'] : [['C', 'P'] : ['0', '1', '1A', '1B', '2A', '2B', '3', '3A', '3B', '3C', '4', '99']],
['012', '17A'] : [['C', 'P'] : ['0', '1', '2A', '2B', '3A', '3B', '4', '99']],
['13A'] : [['C', 'P'] : ['0', '1', '2', '2A', '2B', '2C', '3', '3A', '3B', '3C', '4', '4A', '4B', '4C', '99']],
['13B', '043', '47A', '47B'] : [['C', 'P'] : ['1', '2', '3', '4', '99', '88']],
['014'] : [['C', 'P'] : ['0', '1', '2', '2A', '2B', '2C', '3', '3A', '3B', '3C', '4', '4A', '4B', '99']],
['015'] : [['C', 'P'] : ['0', '1', '2', '3', '3A', '3B', '4', '99']],
['16A'] : [['C', 'P'] : ['1', '1A', '1B', '2', '3A', '3B', '4', '99', '88']],
['16B'] : [['C', 'P'] : ['1', '2', '3', '3A', '3B', '4', '99', '88']],
['17B', '17C'] : [['C', 'P'] : ['1', '2A', '2B', '3A', '3B', '4', '99', '88']],
['018'] : [['C', 'P'] : ['1', '2', '3', '3A', '3B', '3C', '4A', '4B', '99', '88']],
['019', '034'] : [['C', 'P'] : ['0', '1', '2', '3', '4A', '4B', '99']],
['020'] : [['C', 'P'] : ['0', '1', '2', '3A', '3B', '4A', '4B', '99']],
['021'] : [['C', 'P'] : ['0', '1', '2', '3A', '3B', '4', '4A', '4B', '99']],
['022'] : [['C', 'P'] : ['0', '1', '1A', '1B', '2', '2A', '2B', '3', '4', '99']],
['023', '024'] : [['C', 'P'] : ['0', '1A', '1B', '2', '2A', '2B', '3', '4', '99']],
['025'] : [['C', 'P'] : ['OC', '0', '1A', '1B', '2', '2A', '2B', '3', '3A', '3B', '4', '99']],
['026'] : [['C', 'P'] : ['1', '1A', '1B', '2', '3', '4', '99', '88']],
['027'] : [['C', 'P'] : ['1A', '1B', '2A', '2B', '3', '4', '4A', '4B', '99']],
['028'] : [['C', 'P'] : ['1', '1A', '1B', '2', '2A', '2B', '3', '4', '99']],
['029'] : [['C', 'P'] : ['0', '1', '2', '3', '4', '99']],
['030'] : [['C'] : ['0', '1B', '2B', '2C', '3B', '4', '99'], ['P'] : ['0', '1A', '1B', '2A', '2B', '2C', '3', '3A', '3B', '4', '99']],
['031'] : [['C'] : ['0', '1', '1A', '1B', '2', '2A', '2B', '2C', '3', '4', '99'], ['P'] : ['0', '1', '1A', '1B', '2', '2A', '2B', '2C', '3', '3A', '3B', '3C', '4', '99']],
['032'] : [['C'] : ['0', '1A', '2A', '2B', '3', '3A', '3B', '3C', '4', '99'], ['P'] : ['0', '1A', '1B', '2A', '2B', '3', '3A', '3B', '3C', '4', '99']],
['033'] : [['C', 'P'] : ['0', '1', '1A', '1B', '2', '3', '3A', '3B', '3C', '4A', '4B', '99']],
['035'] : [['C', 'P'] : ['0', '1', '1A', '1A1', '1A2', '1B', '1B1', '1B2', '2', '2A', '2A1', '2A2', '2B', '3', '3A', '3B', '4A', '4B', '99']],
['36A'] : [['C', 'P'] : ['0', '1', '1A', '1B', '2', '3', '3A', '3B', '3C1', '3C2', '4', '4A', '4B', '99']],
['36B'] : [['C', 'P'] : ['1', '1A', '1B', '2', '2A', '2B', '3', '3A', '3B', '3C', '4A', '4B', '99', '88']],
['36C'] : [['C', 'P'] : ['1', '1A', '1B', '1C', '2', '3', '3A', '3B', '3C', '4A', '4B', '99', '88']],
['37A'] : [['C', 'P'] : ['1', '1A', '1B', '1C', '2', '2A', '2B', '2C', '3', '3A', '3B', '3C', '4', '99', '88']],
['37B'] : [['C', 'P'] : ['3', '3A', '3B', '3C', '4', '99']],
['038'] : [['C', 'P'] : ['0', '1', '1A', '1B', '1C', '2', '2A', '2B', '2C', '3', '3A', '3B', '3C', '4', '99']],
['039'] : [['C', 'P'] : ['1', '1A', '1B', '2', '2A', '2B', '3', '3A', '3B', '4', '4A', '4B', '99', '88']],
['040'] : [['C', 'P'] : ['0', '1', '2', '3A', '3B', '4', '99']],
['041'] : [['C', 'P'] : ['1', '2A', '2B', '3', '4', '99', '88']],
['042'] : [['C'] : ['0', '1', '1B', '1S', '2', '2A', '2B', '2C', '3', '3A', '3B', '3C', '99'], ['P'] : ['0', '1', '1A', '1B', '1S', '2', '2A', '2B', '2C', '3', '3A', '3B', '3C', '99']],
['044', '045', '046'] : [['C', 'P'] : ['0IS', '0A', '1', '2', '3', '4', '99']],
['048'] : [['C', 'P'] : ['0', '1', '1A', '1B', '1C', '2', '3', '3A', '3B', '3C', '4', '99']],
['049', '050', '052', '053', '054', '056', '999'] : [['C', 'P'] : ['88']],
['51A', '51B'] : [['C', 'P'] : ['1', '2A', '2B', '3', '3A', '3B', '3C', '4', '99', '88']],
['055'] : [['C', 'P'] : ['1', '1A', '1B', '2', '2A', '2B', '3', '3A', '3B', '4', '4A', '4B', '99']],
['57A'] : [['C', 'P'] : ['1', '1A', '1B', '2', '2A', '2B', '3', '3A', '3B', '4', '4A', '4B', '99']],
['57B'] : [['C', 'P'] : ['1A', '1B', '2A', '2B', '3A', '3B', '4A', '4A1', '4A2', '4B', '4C', '99', '88']],
['57C'] : [['C', 'P'] : ['4', '4A', '4B', '88', '99']]]]]></entry>
        <entry id="IF613_Table" type="java"><![CDATA[[['003', '04A', '04D', '05A', '006', '13A', '014'] : ['C' : ['cX', 'c0', 'pIS', 'c1', 'c2', 'c3', 'c4', 'c4A', 'c4B'], 'P' : ['pX', 'p0', 'pIS', 'p1', 'p2', 'p3', 'p4', 'p4A', 'p4B']],
['04B', '04C', '015', '17A', '022', '023', '024', '029', '030', '034'] : ['C' : ['cX', 'c0', 'pIS', 'c1', 'c2', 'c3', 'c4'], 'P' : ['pX', 'p0', 'pIS', 'p1', 'p2', 'p3', 'p4']],
['05B', '10A', '10B', '011'] : ['C' : ['cX', 'c0', 'pIS', 'c1', 'c1A', 'c1B', 'c2', 'c3', 'c4', 'c4A', 'c4B'], 'P' : ['pX', 'p0', 'pIS', 'p1', 'p1A', 'p1B', 'p2', 'p3', 'p4', 'p4A', 'p4B']],
['007'] : ['C' : ['cX', 'c0', 'c1', 'c2', 'c3', 'c4', 'c4A', 'c4B', '88'], 'P' : ['pX', 'p0', 'p1', 'p2', 'p3', 'p4', 'p4A', 'p4B', '88']],
['08A', '08B', '08C', '08D'] : ['C' : ['cX', 'c0', 'c1', 'c1A', 'c1B', 'c2', 'c3', 'c4', 'c4A', 'c4B', '88'], 'P' : ['pX', 'p0', 'p1', 'p1A', 'p1B', 'p2', 'p3', 'p4', 'p4A', 'p4B', '88']],
['08E', '08F'] : ['C' : ['cX', 'c0', 'c1', 'c1A', 'c1B', 'c2', 'c3', 'c4', 'c4A', 'c4B'], 'P' : ['p4', 'p4A', 'p4B']],
['009'] : ['C' : ['cX', 'c0', 'c3', 'c4', 'c4A', 'c4B', '88'], 'P' : ['pX', 'p0', 'p3', 'p4', 'p4A', 'p4B', '88']],
['012', '020'] : ['C' : ['cX', 'c0', 'pIS', 'c1', 'c1A', 'c1B', 'c2', 'c3', 'c4'], 'P' : ['pX', 'p0', 'pIS', 'p1', 'p1A', 'p1B', 'p2', 'p3', 'p4']],
['13B', '17C'] : ['C' : ['cX', 'c0', 'c1', 'c1A', 'c1B', 'c2', 'c3', 'c4', '88'], 'P' : ['pX', 'p0', 'p1', 'p1A', 'p1B', 'p2', 'p3', 'p4', '88']],
['16A', '16B', '17B', '47A', '47B', '054'] : ['C' : ['cX', 'c0', 'c1', 'c2', 'c3', 'c4', '88'], 'P' : ['pX', 'p0', 'p1', 'p2', 'p3', 'p4', '88']],
['018'] : ['C' : ['cX', 'c0', 'c1', 'c2', 'c3', 'c3A', 'c3B', 'c4', '88'], 'P' : ['pX', 'p0', 'p1', 'p2', 'p3', 'p3A', 'p3B', 'p4', '88']],
['019', '021'] : ['C' : ['cX', 'c0', 'pIS', 'c1', 'c2', 'c2A', 'c2B', 'c3', 'c4'], 'P' : ['pX', 'p0', 'pIS', 'p1', 'p2', 'p2A', 'p2B', 'p3', 'p4']],
['025'] : ['C' : ['cX', 'c0', 'pIS', 'c1', 'c1A', 'c1B', 'c2', 'c2A', 'c2B', 'c3', 'c4'], 'P' : ['pX', 'p0', 'pIS', 'p1', 'p1A', 'p1B', 'p2', 'p2A', 'p2B', 'p3', 'p4']],
['026'] : ['C' : ['cX', 'c0', 'c1', 'c1A', 'c1B', 'c2', 'c3', 'c4', '88'], 'P' : ['pX', 'p0', 'p1', 'p1A', 'p1B', 'p2', 'p3', 'p4', '88']],
['027'] : ['C' : ['cX', 'c0', 'c1', 'c2', 'c3'], 'P' : ['pX', 'p0', 'p1', 'p2', 'p3']],
['028'] : ['C' : ['cX', 'c0', 'c1', 'c1A', 'c1B', 'c2', 'c2A', 'c2B'], 'P' : ['pX', 'p0', 'p1', 'p1A', 'p1B', 'p2', 'p2A', 'p2B']],
['031'] : ['C' : ['cX', 'c0', 'pIS', 'c1', 'c1A', 'c1B', 'c2', 'c2A', 'c2B', 'c3', 'c3A', 'c3B', 'c4', 'c4A', 'c4B'], 'P' : ['pX', 'p0', 'pIS', 'p1', 'p1A', 'p1B', 'p2', 'p2A', 'p2B', 'p3', 'p3A', 'p3B', 'p4', 'p4A', 'p4B']],
['032'] : ['C' : ['cX', 'c0', 'pIS', 'c1', 'c1A', 'c1B', 'c1C', 'c1MI', 'c2', 'c3', 'c4', 'c4A', 'c4B', 'c4C', 'c4D'], 'P' : ['pX', 'p0', 'pIS', 'p1', 'p1A', 'p1B', 'p1C', 'p1MI', 'p2', 'p3', 'p4', 'p4A', 'p4B', 'p4C', 'p4D']],
['033'] : ['C' : ['cX', 'c0', 'pIS', 'c1', 'c1A', 'c1B', 'c2', 'c3'], 'P' : ['pX', 'p0', 'pIS', 'p1', 'p1A', 'p1B', 'p2', 'p3']],
['035'] : ['C' : ['cX', 'c0', 'pIS', 'c1', 'c1A', 'c1A1', 'c1A2', 'c1B', 'c1B1', 'c1B2', 'c2', 'c2A', 'c2A1', 'c2A2', 'c2B', 'c3', 'c3A', 'c3B', 'c4'], 'P' : ['pX', 'p0', 'pIS', 'p1', 'p1A', 'p1A1', 'p1A2', 'p1B', 'p1B1', 'p1B2', 'p2', 'p2A', 'p2A1', 'p2A2', 'p2B', 'p3', 'p3A', 'p3B', 'p4']],
['36A'] : ['C' : ['cX', 'c0', 'pIS', 'c1', 'c1A', 'c1B', 'c2', 'c3', 'c3A', 'c3B', 'c4'], 'P' : ['pX', 'p0', 'pIS', 'p1', 'p1A', 'p1B', 'p2', 'p3', 'p3A', 'p3B', 'p4']],
['36B'] : ['C' : ['cX', 'c0', 'c1', 'c1A', 'c1B', 'c2', 'c2A', 'c2B', 'c3', 'c3A', 'c3B', 'c4', '88'], 'P' : ['pX', 'p0', 'p1', 'p1A', 'p1B', 'p2', 'p2A', 'p2B', 'p3', 'p3A', 'p3B', 'p4', '88']],
['36C'] : ['C' : ['cX', 'c0', 'c1', 'c1A', 'c1B', 'c1C', 'c2', 'c2A', 'c2B', 'c3', 'c3A', 'c3B', 'c4', '88'], 'P' : ['pX', 'p0', 'p1', 'p1A', 'p1B', 'p1C', 'p2', 'p2A', 'p2B', 'p3', 'p3A', 'p3B', 'p4', '88']],
['37A'] : ['C' : ['cX', 'c0', 'c1', 'c1A', 'c1B', 'c1C', 'c2', 'c2A', 'c2B', 'c2C', 'c3', 'c3A', 'c3B', 'c3C', '88'], 'P' : ['pX', 'p0', 'p1', 'p1A', 'p1B', 'p1C', 'p2', 'p2A', 'p2B', 'p2C', 'p3', 'p3A', 'p3B', 'p3C', '88']],
['37B'] : ['C' : ['cX', 'c0', 'c3', 'c3A', 'c3B', 'c3C'], 'P' : ['pX', 'p0', 'p3', 'p3A', 'p3B', 'p3C']],
['038'] : ['C' : ['cX', 'c0', 'pIS', 'c1', 'c1A', 'c1B', 'c1C', 'c2', 'c2A', 'c2B', 'c2C', 'c3', 'c3A', 'c3B', 'c3C'], 'P' : ['pX', 'p0', 'pIS', 'p1', 'p1A', 'p1B', 'p1C', 'p2', 'p2A', 'p2B', 'p2C', 'p3', 'p3A', 'p3B', 'p3C']],
['039'] : ['C' : ['cX', 'c0', 'c1', 'c2', '88'], 'P' : ['pX', 'p0', 'p1', 'p2', '88']],
['040'] : ['C' : ['cX', 'c0', 'pIS', 'pA', 'c1', 'c1A', 'c1B', 'c2', 'c3', 'c4'], 'P' : ['pX', 'p0', 'pIS', 'pA', 'p1', 'p1A', 'p1B', 'p2', 'p3', 'p4']],
['041'] : ['C' : ['cX', 'c0', 'c1', 'c1A', 'c1B', 'c1C', 'c2', 'c2A', 'c2B', 'c2C', 'c3', 'c3A', 'c3B', 'c4', '88'], 'P' : ['pX', 'p0', 'p2', 'p2A', 'p2B', 'p2C', 'p3', 'p3A', 'p3B', 'p4', '88']],
['042'] : ['C' : ['cX', 'c4'], 'P' : ['pX', 'p0', 'pIS', 'p1', 'p2', 'p3', 'p4']],
['043'] : ['C' : ['cX', 'c0', 'c1', 'c1A', 'c1B', 'c2', 'c2A', 'c2B', 'c3', 'c3A', 'c3B', 'c3C', 'c4', '88'], 'P' : ['pX', 'p0', 'p1', 'p1A', 'p1B', 'p2', 'p2A', 'p2B', 'p3', 'p3A', 'p3B', 'p3C', 'p4', '88']],
['044', '46A'] : ['C' : ['cX', 'c0', 'pIS', 'pA', 'c1', 'c2', 'c3', 'c4'], 'P' : ['pX', 'p0', 'pIS', 'pA', 'p1', 'p2', 'p3', 'p4']],
['045'] : ['C' : ['cX', 'c0', 'pIS', 'pA', 'c1', 'c2', 'c3', 'c4', 'c4A', 'c4B'], 'P' : ['pX', 'p0', 'pIS', 'pA', 'p1', 'p2', 'p2A', 'p2B', 'p3', 'p3A', 'p3B', 'p4', 'p4A', 'p4B']],
['46B'] : ['C' : ['cX', 'c0', 'pIS', 'pISU', 'pISD', 'pA', 'c1', 'c2', 'c3', 'c4'], 'P' : ['pX', 'p0', 'pIS', 'pISU', 'pISD', 'pA', 'p1', 'p2', 'p3', 'p4']],
['048'] : ['C' : ['cX', 'c0', 'pIS', 'c1', 'c2', 'c2A', 'c2B', 'c3', 'c3A', 'c3B', 'c4'], 'P' : ['pX', 'p0', 'pIS', 'p1', 'p2', 'p2A', 'p2B', 'p3', 'p3A', 'p3B', 'p4']],
['049'] : ['C' : ['cX', 'c0', 'pIS', 'c1', 'c2', 'c3', 'c4', 'c4A', 'c4B', 'c4C', 'c4D'], 'P' : ['pX', 'p0', 'pIS', 'p1', 'p2', 'p3', 'p4', 'p4A', 'p4B', 'p4C', 'p4D']],
['050'] : ['C' : ['cX', 'c0', 'pIS', 'c1', 'c1A', 'c1B', 'c1C', 'c1D', 'c2', 'c2A', 'c2B', 'c2C', 'c2D', 'c3', 'c3A', 'c3B', 'c3C', 'c3D', 'c4'], 'P' : ['pX', 'p0', 'pIS', 'p1', 'p1A', 'p1B', 'p1C', 'p2', 'p2A', 'p2B', 'p2C', 'p3', 'p4']],
['51A'] : ['C' : ['cX', 'c0', 'c1', 'c1A', 'c1B', 'c1C', 'c1D', 'c2', 'c2A', 'c2B', 'c2C', 'c2D', 'c3', 'c3A', 'c3B', 'c3C', 'c3D', 'c4', 'c4A', 'c4B', 'c4C', 'c4D', 'c4E', '88'], 'P' : ['pX', 'p0', 'p1', 'p1A', 'p1B', 'p1C', 'p1D', 'p2', 'p2A', 'p2B', 'p2C', 'p2D', 'p3', 'p3A', 'p3B', 'p3C', 'p3D', 'p4', 'p4A', 'p4B', 'p4C', 'p4D', 'p4E', '88']],
['51B'] : ['C' : ['cX', 'c0', 'c1', 'c1A', 'c1B', 'c1C', 'c2', 'c2A', 'c3', 'c3A', 'c4', 'c4A', 'c4B', '88'], 'P' : ['pX', 'p0', 'p1', 'p1A', 'p1B', 'p1C', 'p2', 'p2A', 'p3', 'p3A', 'p4', 'p4A', 'p4B', '88']],
['052'] : ['C' : ['cX', 'c0', 'c1', 'c1A', 'c1B', 'c1C', 'c2', 'c2A', 'c2B', 'c3', 'c3A', 'c3B', 'c4', 'c4A', 'c4B', 'c4C', 'c4D'], 'P' : ['pX', 'p0', 'p1', 'p2', 'p2A', 'p2B', 'p3', 'p3A', 'p3B', 'p4', 'p4A', 'p4B']],
['053'] : ['C' : ['cX', 'c0', 'c1', 'c2', 'c3', 'c4', 'c4A', 'c4B', 'c4C', '88'], 'P' : ['pX', 'p0', 'p1', 'p2', 'p3', 'p4', 'p4A', 'p4B', 'p4C', '88']],
['055'] : ['C' : ['cX', 'c0', 'c1', 'c1A', 'c1B', 'c1C', 'c2', 'c2A', 'c2B', 'c2C', 'c2D', 'c3', 'c4', 'c4A', 'c4B', 'c4C', 'c4D', '88'], 'P' : ['pX', 'p0', 'p1', 'p1A', 'p1B', 'p1C', 'p2', 'p2A', 'p2B', 'p2C', 'p2D', 'p3', 'p4', 'p4A', 'p4B', 'p4C', 'p4D', '88']],
['056', '57A', '57C', '999'] : ['C' : ['88'], 'P' : ['88']],
['57B'] : ['C' : ['cX', 'c0', 'c1', 'c1A', 'c1B', 'c2', 'c2A', 'c2B', 'c3', 'c4', '88'], 'P' : ['pX', 'p0', 'p1', 'p1A', 'p1B', 'p2', 'p2A', 'p2B', 'p3', 'p4', '88']]]]]></entry>
        <entry id="IF617_Table" type="java"><![CDATA[[['003', '04A', '04D'] : [['p0', 'c0'] : [0], ['p1', 'c1'] : [1..30], ['p2A', 'c2A'] : [31..60], ['p2', 'p2B', 'p2C', 'c2', 'c2B', 'c2C'] : [1..60], ['p3', 'c3'] : [61..980]],
['04B', '04C'] : [['p0', 'c0'] : [0], ['p1', 'p2', 'c1', 'c2'] : [1..60], ['p3A', 'c3A'] : [61..980]],
['05A', '05B', '006', '007', '029'] : [['p0', 'c0'] : [0], ['p1', 'c1'] : [1..30], ['p2A', 'c2A'] : [31..60], ['p2', 'p2B', 'p2C', 'c2', 'c2B', 'c2C'] : [1..60], ['p3', 'c3'] : [61..980]]]]]></entry>
        <entry id="IF622_Table" type="java"><![CDATA[['031' : [['p1', 'p1A', 'p1B'] : [1..100], ['p2', 'p2A', 'p2B'] : [101..200], ['p3', 'p3A', 'p3B'] : [201..400], ['p4', 'p4A', 'p4B'] : [401..980]],
         '050' : [['p1A', 'p2A'] : [1..50], ['p1B', 'p2B'] : [51..150], ['p1C', 'p2C'] : [151..980]]]]]></entry>
        <entry id="IF7022_List1" type="java"><![CDATA[['A000','A100','A200','A300','A400','A500','A600','A610','A620','A630','A640','A900','A970','A980','A990']]]></entry>
        <entry id="IF79_SurgeryCodeTable_01" type="java"><![CDATA[[0,1,2,3,4,5,6,9]]]></entry>
        <entry id="IF79_SurgeryCodeTable_02" type="java"><![CDATA[[0,1,2,3,4,5,9]]]></entry>
        <entry id="IF79_SurgeryCodeTable_03" type="java"><![CDATA[[0,1,2,3,9]]]></entry>
        <entry id="IF79_SurgeryCodeTable_04" type="java"><![CDATA[[0,1,2,9]]]></entry>
        <entry id="IF79_SurgeryCodeTable_05" type="java"><![CDATA[[0,1,9]]]></entry>
        <entry id="IF79SiteReferenceTable" type="java"><![CDATA[[
    [0..6,8..9,19..24,28..31,39..41,48..52,58..62,68..69] : IF79_SurgeryCodeTable_02,
    [79..81,88..89] : IF79_SurgeryCodeTable_02,
    [90..91,98..104,108..113,118..119,129..132,138..140] : IF79_SurgeryCodeTable_02,
    [150..155,158..159] : IF79_SurgeryCodeTable_05,
    [160..166,168..169] : IF79_SurgeryCodeTable_05,
    [180..189] : IF79_SurgeryCodeTable_05,
    [199] : IF79_SurgeryCodeTable_05,
    [209] : IF79_SurgeryCodeTable_05,
    [210..212,218] : IF79_SurgeryCodeTable_01,
    [220..221] : IF79_SurgeryCodeTable_05,
    [250..254,257..259] : IF79_SurgeryCodeTable_04,
    [320..323,328..329] : IF79_SurgeryCodeTable_02,
    [340..343,348..349] : IF79_SurgeryCodeTable_01,
    [400..403,408..414,418..419,470..476,478..479,490..496,498..499] : IF79_SurgeryCodeTable_05,
    [422,770..775,778..779] : IF79_SurgeryCodeTable_05,
    [440..449] : IF79_SurgeryCodeTable_04,
    [500..506,508..509] : IF79_SurgeryCodeTable_02,
    [530..531,538..539] : IF79_SurgeryCodeTable_05,
    [540..543,548..549,559] : IF79_SurgeryCodeTable_04,
    [569] : IF79_SurgeryCodeTable_05,
    [619] : IF79_SurgeryCodeTable_05,
    [620..621,629] : IF79_SurgeryCodeTable_03,
    [649,659,669] : IF79_SurgeryCodeTable_03,
    [670..679] : IF79_SurgeryCodeTable_03,
    [700..701,709..725,728..729] : IF79_SurgeryCodeTable_05,
    [739] : IF79_SurgeryCodeTable_02,
    [142,148,170..173,178..179,239..241,248..249,260,268..269,300..301,310..313,318..319,339,379..384,388,390,398..399,420..421,423..424,480..482,488,510..512,518..519,529,570..574,577..579,589,600..602,608..609,630..632,637..639,680..681,688..696,698..699,740..741,749..755,758..765,767..768,809] : IF79_SurgeryCodeTable_05
]]]></entry>
        <entry id="IF80_SurgeryCodeTable_01" type="java"><![CDATA[[0,1,2,3,4,5,6,7,8,9]]]></entry>
        <entry id="IF80_SurgeryCodeTable_02" type="java"><![CDATA[[0,1,2,3,4,5,6,7,9]]]></entry>
        <entry id="IF80_SurgeryCodeTable_03" type="java"><![CDATA[[0,1,2,3,4,5,6,9]]]></entry>
        <entry id="IF80_SurgeryCodeTable_04" type="java"><![CDATA[[0,1,2,3,4,5,9]]]></entry>
        <entry id="IF80_SurgeryCodeTable_05" type="java"><![CDATA[[0,1,2,5,6,7,9]]]></entry>
        <entry id="IF80SiteReferenceTable" type="java"><![CDATA[[
    [0..6,8..9,19..24,28..31,39..41,48..52,58..62,68..69] : IF80_SurgeryCodeTable_02,
    [79..81,88..89] : IF80_SurgeryCodeTable_04,
    [90..91,98..104,108..113,118..119,129..132,138..140] : IF80_SurgeryCodeTable_01,
    [150..155,158..159] : IF80_SurgeryCodeTable_04,
    [160..166,168..169] : IF80_SurgeryCodeTable_04,
    [180..189] : IF80_SurgeryCodeTable_01,
    [199] : IF80_SurgeryCodeTable_01,
    [209] : IF80_SurgeryCodeTable_01,
    [210..212,218] : IF80_SurgeryCodeTable_04,
    [220..221] : IF80_SurgeryCodeTable_04,
    [250..254,257..259] : IF80_SurgeryCodeTable_04,
    [320..323,328..329] : IF80_SurgeryCodeTable_04,
    [340..343,348..349] : IF80_SurgeryCodeTable_02,
    [400..403,408..414,418..419,470..476,478..479,490..496,498..499] : IF80_SurgeryCodeTable_05,
    [422,770..775,778..779] : IF80_SurgeryCodeTable_05,
    [440..449] : IF80_SurgeryCodeTable_04,
    [500..506,508..509] : IF80_SurgeryCodeTable_03,
    [530..531,538..539] : IF80_SurgeryCodeTable_02,
    [540..543,548..549,559] : IF80_SurgeryCodeTable_04,
    [569] : IF80_SurgeryCodeTable_04,
    [619] : IF80_SurgeryCodeTable_04,
    [620..621,629] : IF80_SurgeryCodeTable_04,
    [649,659,669] : IF80_SurgeryCodeTable_04,
    [670..679] : IF80_SurgeryCodeTable_04,
    [700..701,709..725,728..729] : IF80_SurgeryCodeTable_05,
    [739] : IF80_SurgeryCodeTable_04,
    [142,148,170..173,178..179,239..241,248..249,260,268..269,300..301,310..313,318..319,339,379..384,388,390,398..399,420..421,423..424,480..482,488,510..512,518..519,529,570..574,577..579,589,600..602,608..609,630..632,637..639,680..681,688..696,698..699,740..741,749..755,758..765,767..768,809] : IF80_SurgeryCodeTable_04
]]]></entry>
        <entry id="IFN2803_Table" type="java"><![CDATA[[['00060']: ['9'],
['00080', '00090', '00100', '00118', '00119', '00128', '00140', '00278', '00288', '00350', '00358', '00378', '00460', '00470', '00478', '00558', '00559', '00560', '00590', '00598', '00638', '00660', '00698', '00718', '00730', '00740', '00770', '00778', '99999']: ['A', 'B', 'C', 'D', '9'],
['00071', '00072', '00073', '00074', '00075', '00076', '00077', '00121', '00122', '00130', '00131', '00132', '00133', '00161', '00169', '00170', '00190', '09190', '00230', '00241', '00242', '00250', '00260', '00270', '00280', '00500', '00510', '00520', '00528', '00530', '00541', '00570', '09500', '09520']: ['1', '2', '3', '9'],
['00111', '00112', '00150', '00180', '00200', '00220', '00360', '00370', '00640', '00650', '00690']: ['1', '2', '3', '4', '9'],
['00210', '09210']: ['1', '2', '3', '4', 'L', 'H', '9'],
['00290', '09290', '00301', '09301', '00302', '09302', '00310', '09310', '00320', '09320', '00330', '09330', '00340', '09340', '00671', '00672']: ['1', '2', '3', 'A', 'B', 'C', 'D', '9'],
['00381', '00382', '00383']: ['1', '2', '3', 'H', '9'],
['00400', '00410', '00421', '00422', '00440', '00450', '00458', '00459', '00700']: ['1', '2', '3', 'A', 'B', 'C', 'D', 'H', '9'],
['00430', '00750']: ['L', 'H', 'A', 'B', 'C', 'D', '9'],
['00480']: ['1', '2', '3', 'L', 'M', 'H', 'A', 'B', 'C', 'D', '9'],
['00542']: ['1', '2', '3', 'L', 'H', 'S', '9'],
['00551', '00552', '00553']: ['1', '2', '3', 'B', 'L', 'H', '9'],
['00580']: ['1', '2', '3', '4', '5', 'A', 'B', 'C', 'D', 'E', '9'],
['00600', '00680']: ['1', '2', '3', '4', 'A', 'B', 'C', 'D', '9'],
['00610', '00620', '00631', '00633']: ['1', '2', '3', 'L', 'H', '9'],
['00710']: ['1', '2', '3', '4', '9'],
['00721', '09721', '00722', '09722', '00723', '09723', '09724']: ['1', '2', '3', '4', 'L', 'H', 'A', 'B', 'C', 'D', '9'],
['00760']: ['L', 'H', 'M', 'A', 'B', 'C', 'D', '9'],
['00790', '00795', '00811', '00812', '00821', '00822', '00830']: ['8']]]]></entry>
        <entry id="IFN2880_Table" type="java"><![CDATA[[['00500', '09500']: ['1', '1A', '1B', '2', '3', '3A', '3B', '3C', '4', '4A', '4B', '97', '98', '99'],
['00510']: ['1', '2', '3', '4', '4A', '4B', '97', '98', '99'],
['00520']: ['1', '1A', '1A1', '1A2', '1B', '1B1', '1B2', '2', '2A', '2A1', '2A2', '2B', '3', '3A', '3B', '4', '4A', '4B', '97', '98', '99'],
['00528', '00541']: ['1', '1A', '1B', '2', '2A', '2B', '3', '3A', '3B', '3C', '4', '4A', '4B', '98', '99'],
['00530']: ['1', '1A', '1B', '2', '3', '3A', '3B', '3C', '3C1', '3C2', '4', '4A', '4B', '97', '98', '99'],
['00542']: ['1', '1A', '1B', '1C', '2', '2A', '2B', '3', '3A', '3B', '3C', '4', '4A', '4B', '98', '99'],
['00551', '00553']: ['1', '1A', '1B', '1C', '1C1', '1C2', '1C3', '2', '2A', '2B', '3', '3A', '3A1', '3A11', '3A12', '3A2', '3B', '3C', '4', '4A', '4B', '97', '98', '99'],
['00552']: ['2', '2A', '2B', '3', '3A', '3A1', '3A11', '3A12', '3A2', '3B', '3C', '4', '4A', '4B', '97', '98', '99'],
['00560']: ['1', '2', '3', '4', '97', '98', '99'],
['09520']: ['1', '1A', '1A1', '1A2', '1B', '1B1', '1B2', '1B3', '2', '2A', '2A1', '2A2', '2B', '3', '3A', '3B', '3C1', '3C2', '4', '4A', '4B', '97', '98', '99']]]]></entry>
        <entry id="IFN2965_Schema_ID_Table" type="java"><![CDATA[[
['00060'] : ['2', '3', '4', '5'],
['00090'] : ['1'],
['00100', '00111'] : ['2'],
['00161', '00169'] : ['2'],
['00170'] : ['0', '3', '9'],
['00242'] : ['3'],
['00250'] : ['1', '5', '6', '9'],
['00260'] : ['4', '7'],
['00430'] : ['1', '2', '9'],
['00459'] : ['0', '1'],
['00631'] : ['1'],
['00633'] : ['2'],
['00671'] : ['2'],
['00672', '00690']   : ['1'],
['00698'] : ['2', '9'],
['00730', '00740'] : ['1', '2'],
['00790'] : ['3', '9'],
['00821'] : ['0', '1', '9'],
['00830'] : ['1', '2'],
['99999'] : ['0', '1']]]]></entry>
        <entry id="IFN2965_Table" type="java"><![CDATA[[[0..6, 8..9, 19..24, 28..52, 58..62, 68..69, 79..110, 112..119, 129..148, 150..155, 158..159, 161..218, 220..221, 239, 241, 248..269, 300..301, 310..329, 339..349, 379..384, 388, 390..414, 418..424, 440, 442..449, 470..480, 482..488, 490..519, 529..559, 569..574, 577..579, 589, 600..609, 619..632, 637..639, 649, 659..679, 681..689, 691..693, 698..725, 728..729, 740..755, 758..759, 761..779, 809] : [[9732] : ['00821'], [9591] : ['00790', '00830']],
[111] : [[9732] : ['00821'], [9591] : ['00790', '00830'], [8000..8700, 9700..9701] : ['00090', '00100', '00111']],
[160] : [[9732] : ['00821'], [8000..8015, 8021..8046, 8060, 8071..8073, 8075..8076, 8078..8082, 8084..8149, 8154, 8160..8231, 8243..8248, 8250..8552, 8561..8682, 8690..8700, 8720..8790, 9700..9701] : ['00169', '00170'], [8050..8054, 8070, 8074, 8077, 8083, 8560] : ['00161', '00170'], [9591] : ['00790', '00830'], [8020] : ['00161', '00169', '00170']],
[240] : [[9732] : ['00821'], [9591] : ['00790', '00830'], [8000..8700, 8720..8790, 9700..9701] : ['00242', '00250', '00260']],
[441, 690, 696] : [[9732] : ['00821']],
[481] : [[8935..8936] : ['00430'], [9732] : ['00821'], [9591] : ['00790', '00830']],
[680] : [[9732] : ['00821'], [9591] : ['00790', '00830'], [8000..8700, 8720..8790, 9700..9701] : ['00631', '00633']],
[694] : [[9732] : ['00821'], [8720..8790] : ['00671', '00672'], [9591] : ['00790', '00830']],
[695] : [[9732] : ['00821'], [8000..8700, 8941, 8980, 8982, 9700..9701] : ['00690', '00698']],
[739] : [[8345..8349, 8430, 8510, 8512..8513] : ['00740'], [9732] : ['00821'], [8000..8344, 8350..8420, 8440..8509, 8514..8700, 8720..8790, 9700..9701] : ['00730'], [9591] : ['00790', '00830']],
[760] : [[9732] : ['00821'],[8941] : ['00060', '00459'],[9591] : ['00790', '00830'],[8010, 8046, 8051..8052, 8070..8074, 8082..8084, 8121, 8140, 8147, 8200, 8310, 8430, 8450, 8480, 8525, 8550, 8562] : ['00060', '99999']]]]]></entry>
        <entry id="IFN2968_Table" type="java"><![CDATA[[['00060']: ['800'],
['00071', '00074']: ['000', '100', '150', '200', '300', '400', '500', '550', '600', '650', '700', '999'],
['00072', '00073']: ['000', '100', '150', '200', '300', '400', '500', '600', '650', '700', '999'],
['00075']: ['000', '100', '150', '200', '300', '400', '500', '600', '700', '750', '999'],
['00076', '00077']: ['000', '100', '150', '200', '300', '400', '500', '600', '700', '999'],
['00080']: ['000', '100', '200', '300', '350', '400', '500', '600', '700', '800', '999'],
['00090']: ['000', '100', '200', '300', '500', '700', '800', '999'],
['00100', '00301', '09301', '00330', '09330']: ['000', '100', '200', '300', '400', '600', '700', '800', '999'],
['00111']: ['000', '100', '200', '300', '400', '500', '550', '600', '700', '999'],
['00112']: ['000', '100', '150', '200', '300', '400', '500', '600', '700', '999'],
['00118', '00119', '00128']: ['000', '100', '200', '700', '999'],
['00121']: ['000', '100', '200', '300', '400', '600', '700', '999'],
['00122']: ['000', '100', '150', '175', '200', '300', '400', '500', '550', '600', '700', '999'],
['00130', '00278', '00288', '00358', '00378', '00478', '00558', '00559', '00598', '00638', '00698', '00718', '00778']: ['000', '100', '200', '700', '800', '999'],
['00131']: ['000', '100', '200', '250', '300', '400', '450', '500', '600', '700', '999'],
['00132']: ['000', '100', '150', '200', '250', '300', '400', '500', '600', '700', '999'],
['00133']: ['000', '100', '200', '400', '500', '600', '700', '999'],
['00140']: ['000', '100', '300', '500', '600', '700', '999'],
['00150']: ['000', '100', '300', '400', '500', '600', '700', '999'],
['00161', '00169']: ['000', '100', '150', '200', '250', '300', '350', '400', '500', '600', '700', '800', '999'],
['00170']: ['000', '100', '200', '300', '400', '500', '600', '650', '700', '750', '800', '999'],
['00180', '00250']: ['000', '100', '200', '250', '300', '400', '500', '600', '700', '800', '999'],
['00190', '09190']: ['000', '050', '070', '100', '200', '300', '400', '500', '600', '700', '750', '800', '999'],
['00200', '00610']: ['000', '050', '100', '200', '300', '400', '500', '600', '700', '800', '999'],
['00210', '09210', '00260']: ['000', '100', '200', '600', '700', '800', '999'],
['00220', '00590']: ['000', '100', '150', '200', '300', '400', '500', '600', '700', '800', '999'],
['00230']: ['000', '100', '200', '300', '400', '500', '600', '700', '800', '999'],
['00310', '09310', '00340', '09340']: ['000', '100', '200', '300', '500', '600', '700', '800', '999'],
['00241']: ['000', '100', '200', '300', '400', '450', '500', '550', '600', '700', '800', '999'],
['00242']: ['000', '100', '150', '200', '250', '300', '400', '450', '500', '550', '600', '650', '700', '800', '999'],
['00270']: ['000', '100', '150', '200', '250', '300', '400', '450', '500', '600', '700', '800', '999'],
['00280']: ['000', '100', '500', '600', '700', '800', '999'],
['00290', '09290']: ['000', '100', '200', '400', '500', '600', '700', '800', '999'],
['00302', '09302', '00600', '00640', '00672']: ['000', '100', '200', '300', '400', '500', '600', '700', '800', '999'],
['00320', '09320', '00560', '00690', '00760', '00770']: ['000', '100', '200', '300', '700', '800', '999'],
['00350', '00470']: ['000', '100', '200', '300', '400', '500', '700', '800', '999'],
['00360']: ['000', '100', '200', '300', '400', '450', '500', '600', '650', '675', '700', '800', '980', '999'],
['00370']: ['000', '100', '300', '500', '600', '700', '800', '999'],
['00381']: ['100', '200', '300', '500', '800', '999'],
['00382']: ['100', '200', '300', '400', '450', '500', '650', '700', '750', '800', '999'],
['00383', '00421', '00422']: ['100', '200', '300', '400', '500', '550', '600', '650', '700', '750', '800', '999'],
['00400']: ['100', '200', '500', '600', '700', '800', '999'],
['00410', '00440', '00450']: ['100', '200', '700', '800', '999'],
['00430', '00460']: ['000', '100', '400', '700', '800', '999'],
['00458']: ['100', '200', '300', '600', '700', '800', '999'],
['00459']: ['100', '200', '700', '800', '999'],
['00480']: ['000', '050', '070', '100', '200', '300', '400', '450', '500', '600', '700', '800', '999'],
['00500']: ['000', '100', '150', '200', '250', '300', '400', '500', '600', '700', '800', '999'],
['09500']: ['000', '100', '150', '200', '250', '300', '400', '500', '600', '650', '750', '800', '999'],
['00510']: ['000', '100', '300', '400', '500', '600', '700', '800', '999'],
['00520', '09520']: ['000', '100', '150', '200', '250', '300', '350', '400', '450', '500', '550', '600', '700', '750', '800', '999'],
['00528']: ['100', '200', '300', '400', '500', '550', '600', '650', '700', '750', '800', '999'],
['00530']: ['000', '050', '100', '150', '200', '250', '300', '400', '500', '550', '600', '650', '700', '750', '800', '999'],
['00541']: ['100', '200', '400', '450', '500', '550', '600', '650', '700', '750', '800', '999'],
['00542']: ['100', '125', '150', '175', '200', '250', '300', '350', '400', '450', '500', '550', '600', '650', '700', '750', '800', '999'],
['00551']: ['000', '050', '100', '150', '200', '250', '300', '350', '400', '450', '500', '600', '650', '700', '750', '800', '999'],
['00552']: ['000', '300', '400', '450', '600', '650', '700', '750', '800', '999'],
['00553']: ['000', '050', '070', '080', '100', '150', '250', '300', '350', '400', '450', '500', '600', '650', '700', '750', '800', '999'],
['00570']: ['000', '050', '070', '100', '150', '200', '300', '400', '450', '500', '550', '600', '700', '800', '999'],
['00580']: ['000', '100', '110', '120', '150', '200', '210', '220', '250', '300', '350', '400', '500', '600', '700', '800', '999'],
['00620']: ['000', '050', '100', '130', '150', '170', '200', '250', '300', '350', '370', '400', '450', '500', '550', '600', '650', '700', '720', '750', '800', '999'],
['00631']: ['000', '050', '100', '200', '300', '400', '700', '800', '999'],
['00633']: ['000', '050', '100', '300', '400', '700', '800', '999'],
['00650']: ['000', '100', '200', '300', '400', '500', '600', '650', '700', '800', '999'],
['00660']: ['000', '100', '110', '120', '130', '150', '200', '250', '300', '350', '400', '450', '500', '550', '600', '650', '700', '750', '800', '999'],
['00671']: ['000', '100', '150', '200', '250', '300', '350', '400', '450', '500', '550', '600', '650', '700', '800', '999'],
['00680']: ['100', '125', '150', '175', '200', '225', '250', '275', '300', '325', '350', '375', '400', '425', '450', '475', '500', '525', '550', '600', '650', '700', '750', '800', '999'],
['00700']: ['000', '100', '300', '400', '700', '800', '999'],
['00710']: ['100', '200', '300', '400', '700', '800', '999'],
['00721', '09721', '00722', '09722']: ['050', '100', '500', '700', '800', '999'],
['00723', '09723']: ['000', '050', '100', '200', '700', '800', '999'],
['09724']: ['050', '150', '250', '800', '999'],
['00730', '00740']: ['000', '100', '200', '300', '400', '600', '700', '750', '800', '999'],
['00750']: ['000', '050', '100', '200', '300', '700', '800', '999'],
['00790', '00795']: ['100', '200', '300', '400', '500', '575', '600', '700', '750', '800', '999'],
['00811']: ['100', '150', '200', '250', '300', '400', '450', '500', '600', '700', '800', '999'],
['00812']: ['100', '200', '400', '500', '600', '700', '800', '999'],
['00821']: ['700', '999'],
['00822']: ['100', '200', '700', '999'],
['00830']: ['100', '700', '999'],
['99999']: ['888']]]]></entry>
        <entry id="IFN2969_Table" type="java"><![CDATA[[['00060']: ['100', '150', '200', '250', '300', '400', '450', '500', '600', '700', '800', '999'],
['00071', '00072', '00073', '00074', '00075', '00076', '00077', '00080', '00111', '00112', '00121', '00122', '00131', '00132', '00133', '00150']: ['000', '100', '150', '200', '250', '300', '400', '450', '500', '600', '700', '800', '999'],
['00090']: ['000', '300', '400', '600', '800', '999'],
['00100', '00210', '09210', '00671', '00672', '00812']: ['000', '300', '400', '500', '800', '999'],
['00118', '00119', '00128', '00140', '00180', '00250', '00288', '00301', '09301', '00302', '09302', '00320', '09320', '00330', '09330', '00358', '00378']: ['000', '300', '800', '999'],
['00400', '00410', '00422', '00430', '00440', '00478', '00558', '00560', '00580', '00598', '00600', '00638', '00650']: ['000', '300', '800', '999'],
['00660', '00680', '00690', '00698', '00700', '00718', '00760', '00770', '00778']: ['000', '300', '800', '999'],
['00130']: ['000', '100', '150', '200', '250', '300', '400', '500', '600', '700', '800', '999'],
['00161', '00169', '00220', '00241', '00242', '00260', '00278', '00280', '00290', '09290', '00340', '09340', '00370']: ['000', '300', '700', '800', '999'],
['00170', '00190', '09190', '00270', '00310', '09310', '00350', '00631', '00633', '00750']: ['000', '300', '400', '800', '999'],
['00200']: ['000', '200', '300', '800', '999'],
['00230', '00620']: ['000', '300', '400', '700', '800', '999'],
['00360']: ['000', '300', '400', '600', '700', '800', '999'],
['00381', '00382', '00383', '00421', '00450', '00559']: ['000', '800', '999'],
['00458']: ['000', '100', '200', '300', '700', '800', '999'],
['00459']: ['000', '800', '999'],
['00460']: ['000', '100', '200', '300', '350', '400', '500', '600', '650', '700', '750', '800', '999'],
['00470']: ['000', '100', '200', '300', '350', '400', '450', '500', '550', '600', '650', '700', '750', '800', '999'],
['00480']: ['000', '030', '050', '070', '100', '150', '200', '250', '300', '350', '400', '500', '600', '700', '800', '999'],
['00500']: ['000', '050', '100', '200', '300', '400', '500', '600', '700', '750', '800', '999'],
['09500']: ['000', '040', '110', '120', '150', '250', '310', '650', '800', '999'],
['00510']: ['000', '050', '300', '800', '999'],
['00541', '00542']: ['000', '050', '300', '800', '999'],
['00528']: ['000', '050', '300', '800', '999'],
['00520']: ['000', '050', '300', '800', '999']
['00530']: ['000', '050', '100', '200', '300', '400', '500', '600', '800', '999'],
['00551', '00552', '00553']: ['000', '050', '300', '400', '500', '800', '999'],
['00570']: ['000', '100', '200', '300', '400', '500', '800', '999'],
['00590']: ['000', '100', '200', '300', '400', '500', '600', '800', '999'],
['00610']: ['000', '200', '300', '400', '800', '999'],
['00640']: ['000', '100', '200', '300', '400', '500', '600', '700', '800', '999'],
['00710']: ['000', '300', '400', '500', '600', '700', '750', '800', '999'],
['00721', '09721', '00722', '09722', '00723', '09723', '09724', '00790', '00795', '00821', '00830', '99999']: ['888'],
['00730', '00740']: ['000', '050', '070', '300', '400', '800', '999'],
['00811']: ['000', '050', '100', '200', '300', '400', '500', '600', '700', '800', '999'],
['00822']: ['000', '800', '987', '999'],
['09520']: ['000', '050', '100', '200', '300', '400', '500', '600', '800', '999']]]]></entry>
        <entry id="IFN2970_Table" type="java"><![CDATA[[['00060', '00071', '00072', '00073', '00074', '00075', '00076', '00077', '00080', '00090', '00100']: ['00', '10', '70', '99'],
['00111', '00112', '00118', '00119', '00121', '00122', '00128', '00130', '00131', '00132', '00133', '00140', '00150', '00161']: ['00', '10', '70', '99'],
['00169', '00170', '00180', '00210', '09210', '00220', '00241', '00242', '00250', '00260', '00270', '00278', '00288']: ['00', '10', '70', '99'],
['00358', '00378', '00400', '00410', '00421', '00422', '00430', '00440', '00450', '00478', '00500', '09500']: ['00', '10', '70', '99'],
['00510', '00520', '09520', '00530', '00541', '00542', '00558', '00559', '00570', '00598', '00600', '00610']: ['00', '10', '70', '99'],
['00631', '00633', '00638', '00640', '00650', '00660', '00690', '00698', '00700', '00718', '00721', '09721', '00722', '09722', '00723', '09723', '00730', '00740', '00750', '00760', '00778', '00811', '00812']: ['00', '10', '70', '99'],
['00350', '00381', '00382', '00383', '00551', '00552', '00553', '00560', '00580', '00671', '00672', '00680', '00710']: ['00', '10', '30', '50', '70', '99'],
['00190', '09190']: ['00', '10', '30', '40', '50', '70', '99'],
['00200']: ['00', '10', '20', '30', '40', '50', '70', '99'],
['00230', '00620']: ['00', '10', '50', '70', '99'],
['00280']: ['00', '10', '20', '70', '99'],
['00290', '09290', '00301', '09301', '00302', '09302', '00310', '09310', '00320', '09320', '00330', '09330', '00360', '00460', '00770']: ['00', '10', '20', '30', '50', '70', '99'],
['00340', '09340']: ['00', '10', '20', '40', '50', '60', '70', '99'],
['00370']: ['00', '05', '10', '70', '99'],
['00458', '00790', '00795', '00821', '00822', '00830', '99999']: ['88'],
['00459']: [ '00', '10', '70', '99'],
['00470']: ['00', '10', '20', '30', '50', '60', '70', '99'],
['00480']: ['00', '05', '10', '70', '99'],
['00528']: [ '00', '10', '70', '99'],
['00590']: ['00', '10', '30', '50', '60', '70', '99'],
['09724']: ['00', '15', '25', '35', '45', '70', '99']]]]></entry>
        <entry id="IFN3010_AJCC_ID_Table" type="java"><![CDATA[[
['6']    : ['2', '3', '4', '5'],
['9']    : ['1'],
['10', '11.1'] : ['2'],
['16.1', '16.2', '16.3'] : ['2'],
['17']   : ['0', '3', '9'],
['24']   : ['3'],
['25']   : ['1', '5', '6', '9'],
['26']   : ['4', '7'],
['43.1'] : ['2'],
['43.2'] : ['1', '9'],
['63.1', '63.2'] : ['1'],
['63.3', '63.4', '67.1'] : ['2'],
['67.2', '69', '73.1', '73.2', '74']   : ['1'],
['79.0'] : ['3', '9'],
['82.1'] : ['0'],
['83.0'] : ['1', '2'],
['XX']   : ['0', '1', '2', '9']
        ]]]></entry>
        <entry id="IFN3010_Table" type="java"><![CDATA[[
[0..6, 8..9, 19..24, 28..52, 58..69, 79..104, 108..110, 112..119, 129..148, 150..155, 158..159, 161..173, 178..212, 218, 220..221, 239, 241, 250..269, 300, 310, 320..323, 328..329, 339..349, 379..384, 388, 420, 422..424, 470..480, 482..488, 490..509, 529..559, 569..579, 589, 619..631, 637..639, 649, 659..679, 681..689, 691..693, 740..741, 749, 761..779, 809] : [[9591] : ['3' : ['79.0']]],
[111] : [[8072] : ['2' : ['9'], '3' : ['9', '10']], [9591] : ['3' : ['79.0']], [8070, 8083] : ['2' : ['9', '11.1'], '3' : ['9', '10', '11.1']], [8000, 8010, 8020, 8052, 8071, 8073, 8140, 8200] : ['2' : ['9'], '3' : ['9']], [8051..8052, 8074..8075, 8082, 8086, 8560] : ['2' : ['11.1'], '3' : ['11.1']], [8085] : ['3' : ['10']]],
[160] : [[8200, 8430] : ['2' : ['16.2'], '3' : ['16.2']], [8051, 8074, 8077, 8083] : ['2' : ['16.1'], '3' : ['16.1']], [9591] : ['3' : ['79.0']], [8070, 8560] : ['2' : ['16.1', '17'], '3' : ['16.1', '17']], [8071] : ['2' : ['16.3'], '3' : ['16.3']], [8082, 8142, 8144, 8211, 8214, 8260, 8480, 8490, 8510..8512, 8576] : ['2' : ['17'], '3' : ['17']], [8000, 8010, 8013, 8041, 8145, 8246, 8255] : ['2' : ['16.3', '17'], '3' : ['16.3', '17']], [8140, 8148, 8244] : ['2' : ['16.2', '17'], '3' : ['16.2', '17']], [8020] : ['2' : ['17'], '3' : ['16.1', '16.2', '17']], [8976] : ['2' : ['16.3', '17'], '3' : ['16.3', '17']]],
[240] : [[8255, 8481] : ['2' : ['24'], '3' : ['24']], [9591] : ['3' : ['79.0']], [8010, 8013, 8020, 8041, 8070, 8140, 8144, 8148, 8246, 8310, 8470, 8480, 8490, 8503, 8560] : ['2' : ['24', '25', '26'], '3' : ['24', '25', '26']], [8000, 8160, 8244] : ['2' : ['24', '26'], '3' : ['24', '26']], [8162, 8500] : ['2' : ['26'], '3' : ['26']]],
[311..319, 400..414, 418..419, 511..519, 600..608] : [[9732] : ['3' : ['82.1', 'XX']], [9591] : ['3' : ['79.0']]],
[421] : [[9732] : ['3' : ['82.1', 'XX']], [9591] : ['3' : ['79.0', '83.0']]],
[440, 442..449, 510, 609, 632] : [[9732] : ['3' : ['82.1', 'XX']]],
[481] : [[8936] : ['3' : ['43.1', '43.2']], [9591] : ['3' : ['79.0']]],
[680] : [[8070..8072, 8140] : ['2' : ['63.2', '63.4'], '3' : ['63.2', '63.4']], [9591] : ['3' : ['79.0']], [8000, 8010, 8020, 8031, 8041, 8082, 8120, 8122, 8130..8131, 8310] : ['2' : ['63.1', '63.3'], '3' : ['63.1', '63.3']]],
[694] : [[8720, 8730, 8770..8774] : ['3' : ['67.1', '67.2']], [9591] : ['3' : ['79.0']]],
[695] : [[8010, 8070..8072, 8082, 8140, 8147, 8200, 8410, 8430, 8440, 8450, 8480, 8500, 8525, 8550, 8562, 8941, 8980, 8982] : ['2' : ['XX'], '3' : ['69', 'XX']]],
[739] : [[8020..8021] : ['2' : ['XX'], '3' : ['73.2', 'XX']], [8345..8347] : ['2' : ['XX'], '3' : ['74', 'XX']], [9591] : ['3' : ['79.0']], [8000, 8010, 8050, 8230, 8260, 8290, 8330..8331, 8335, 8337, 8339..8344] : ['2' : ['XX'], '3' : ['73.1', 'XX']]],
[760] : [[9591] : ['3' : ['79.0']], [8010, 8046, 8051..8052, 8070..8074, 8082..8084, 8121, 8140, 8147, 8200, 8310, 8430, 8450, 8480, 8525, 8550, 8562, 8941] : ['2' : ['XX'], '3' : ['6', 'XX']]]]
]]></entry>
        <entry id="IFN3068_Histologies" type="java"><![CDATA[['8000','8010','8020','8041','8044','8070','8120','8140','8240','8243','8310','8313','8323','8380','8410','8441','8442','8452','8460','8461','8470','8472','8474','8480','8590','8594','8620','8622','8623','8631','8633','8634','8640','8670','8806','8822','8930','8931','8933','8950','8960','8980','9000','9050','9052','9060','9070','9071','9073','9080','9085','9090','9091','9100','9110']]]></entry>
        <entry id="IFN4911_2024_Table" type="java"><![CDATA[[
[340..349] : ['8050', '8323'],
[500..509] : ['8240', '8323', '8032', '8230'],
[510..519] : ['8255'],
[529] : ['8950', '8255'],
[530..539], ['8255'],
[540..541, 543..549] : ['8950', '8255'],
[550..559] : ['8255'],
[569, 570] : ['8950', '8255'],
[571..589] : ['8255'],
[619] : ['8200'],
[659..689] : ['8255', '8323'],
[700..729] : ['9260'],
[751..753] : ['9260']]]]></entry>
        <entry id="IFN4911_Table" type="java"><![CDATA[[[79..89] : ['8983'],
[90..109] : ['8201'],
[111] : ['8201'],
[180..209] : ['8144', '8210', '8261', '8501', '8245', '8507'],
[300, 310..319] : ['8120', '8263', '8480', '8830', '9080', '9260', '9500', '9503'],
[340..349] : ['8123', '8507', '8550', '8983'],
[470..479, 700..729, 751..753] : ['8830', '9150'],
[500..509] : ['8260', '8345'],
[619] : ['8550'],
[649] : ['9260', '8318'],
[739] : ['8050', '8510']]]]></entry>
        <entry id="IFN5016_GroupCode_Table_18" type="java"><![CDATA[[
01: ['00','10','11','12','13','14','20','21','22','23','24','25','26','27','30','40','41','42','43','90','99'],
02: ['00','10','11','12','13','14','20','21','22','23','24','25','26','27','30','31','32','33','34','35','36','37','38','40','41','42','50','51','52','53','80','90','99'],
03: ['00','10','11','12','13','14','15','20','21','22','23','24','25','26','27','28','30','31','32','40','41','42','43','50','51','52','90','99'],
04: ['00','10','11','12','13','14','20','21','22','23','24','25','26','27','30','40','50','51','52','53','54','55','80','90','99'],
05: ['00','10','11','12','13','14','20','21','22','23','24','25','26','27','30','31','32','33','40','41','42','50','51','52','60','61','62','63','80','90','99'],
06: ['00','10','11','12','13','14','20','21','22','23','24','25','26','27','28','29','30','32','40','41','50','51','60','61','70','80','90','99'],
07: ['00','10','11','12','13','14','20','21','22','23','24','25','26','27','30','31','40','50','51','55','56','57','60','65','66','70','80','90','99'],
08: ['00','10','11','12','13','14','20','21','22','23','24','25','26','27','28','30','40','50','60','70','80','90','99'],
09: ['00','10','11','12','13','14','15','20','21','22','23','24','25','26','27','60','61','62','63','90','99'],
10: ['00','10','11','12','13','14','15','16','17','20','21','22','23','24','25','26','30','36','37','38','50','51','52','59','60','61','65','66','75','90','99'],
11: ['00','25','30','35','36','37','40','60','70','80','90','99'],
12: ['00','10','11','12','13','14','15','20','21','22','23','24','25','26','27','28','30','31','32','33','40','41','42','50','80','90','99'],
13: ['00','12','13','15','19','20','21','22','23','24','25','30','33','45','46','47','48','55','56','65','66','70','80','90','99'],
14: ['98'],
15: ['00','15','19','25','26','30','40','41','42','50','51','52','53','54','90','99'],
16: ['00','19','21','22','80','90','99'],
17: ['00','10','11','12','13','14','20','21','22','23','24','25','26','27','30','31','32','33','34','35','36','45','46','47','60','90','99'],
18: ['00','19','20','21','22','23','24','30','40','41','42','43','44','45','46','47','48','49','50','51','52','53','54','55','56','57','58','59','60','61','62','63','64','65','66','67','68','69','70','71','72','73','74','75','76','80','90','99'],
19: ['00','10','11','12','13','14','15','16','17','20','21','22','23','24','25','26','27','28','29','30','40','50','51','52','53','54','60','61','62','70','71','72','73','74','90','99'],
20: ['00','10','11','12','13','14','15','16','19','20','21','22','23','24','25','26','30','31','32','40','50','60','61','62','63','64','65','66','67','75','76','77','78','79','90','99'],
21: ['00','17','25','26','27','28','35','36','37','50','51','52','55','56','57','60','61','62','63','70','71','72','73','74','80','90','99'],
22: ['00','10','14','15','16','17','18','19','20','21','22','23','24','25','26','30','50','70','80','90','99'],
23: ['00','12','20','30','40','80','90','99'],
24: ['00','10','11','12','13','14','15','20','21','22','23','24','25','26','27','30','40','50','70','80','90','99'],
25: ['00','10','11','12','13','14','15','16','20','21','22','23','24','25','26','27','30','50','60','61','62','63','64','70','71','72','73','74','80','90','99'],
26: ['00','10','20','21','22','30','40','55','90','99'],
27: ['00','13','20','21','22','23','25','26','27','30','40','50','80','90','99'],
28: ['00','15','19','25','30','31','32','40','41','42','50','51','52','60','61','62','90','99'],
29: ['98'],
30: ['00','10','11','12','13','14','20','21','22','23','24','25','26','27','30','40','41','50','60','90','99']]]]></entry>
        <entry id="IFN5016_GroupCode_Table_22" type="java"><![CDATA[[
01: ['00','10','11','12','13','14','20','21','22','23','24','25','26','27','30','40','41','42','43','90','99'],
02: ['00','10','11','12','13','14','20','21','22','23','24','25','26','27','30','31','32','33','34','35','36','37','38','40','41','42','50','51','52','53','80','90','99'],
03: ['00','10','11','12','13','14','15','20','21','22','23','24','25','26','27','28','30','31','32','40','41','42','43','50','51','52','90','99'],
04: ['00','10','11','12','13','14','20','21','22','23','24','25','26','27','30','40','50','51','52','53','54','55','80','90','99'],
05: ['00','10','11','12','13','14','20','21','22','23','24','25','26','27','30','31','32','33','40','41','42','50','51','52','60','61','62','63','80','90','99'],
06: ['00','10','12','20','22','26','27','28','29','30','32','40','41','50','51','60','61','70','80','90','99'],
07: ['00','10','12','20','22','26','27','30','31','40','50','51','55','56','57','60','65','66','70','80','90','99'],
08: ['00','10','12','20','22','26','27','28','30','40','50','60','70','80','90','99'],
09: ['00','10','12','15','20','22','26','27','60','61','62','63','90','99'],
10: ['00','10','11','12','13','14','15','16','17','20','21','22','23','24','25','26','30','36','37','38','50','51','52','59','60','61','65','66','75','90','99'],
11: ['00','25','30','35','36','37','40','60','70','80','90','99'],
12: ['00','10','11','12','13','14','15','20','21','22','23','24','25','26','27','28','30','31','32','33','40','41','42','50','80','90','99'],
13: ['00','12','13','15','19','20','21','22','23','24','25','30','33','45','46','47','48','55','56','65','66','70','80','90','99'],
14: ['98'],
15: ['00','15','19','25','26','30','40','41','42','50','51','52','53','54','90','99'],
16: ['00','19','21','22','80','90','99'],
17: ['00','10','11','12','13','14','20','21','22','23','24','25','26','27','30','31','32','33','34','35','36','45','46','47','60','90','99'],
18: ['00','19','20','21','22','23','24','30','40','41','42','43','44','45','46','47','48','49','50','51','52','53','54','55','56','57','58','59','60','61','62','63','64','65','66','67','68','69','70','71','72','73','74','75','76','80','90','99'],
19: ['00','10','11','12','13','14','15','16','17','20','21','22','23','24','25','26','27','28','29','30','40','50','51','52','53','54','60','61','62','70','71','72','73','74','90','99'],
20: ['00','10','11','12','13','14','15','16','19','20','21','22','23','24','25','26','30','31','32','40','50','60','61','62','63','64','65','66','67','75','76','77','78','79','90','99'],
21: ['00','17','25','26','27','28','35','36','37','50','51','52','55','56','57','60','61','62','63','70','71','72','73','74','80','90','99'],
22: ['00','10','14','15','16','17','18','19','20','21','22','23','24','25','26','30','50','70','80','90','99'],
23: ['00','12','20','30','40','80','90','99'],
24: ['00','10','11','12','13','14','15','20','21','22','23','24','25','26','27','30','40','50','70','80','90','99'],
25: ['00','10','11','12','13','14','15','16','20','21','22','23','24','25','26','27','30','50','60','61','62','63','64','70','71','72','73','74','80','90','99'],
26: ['00','10','20','21','22','30','40','55','90','99'],
27: ['00','13','20','21','22','23','25','26','27','30','40','50','80','90','99'],
28: ['00','15','19','25','30','31','32','40','41','42','50','51','52','60','61','62','90','99'],
29: ['98'],
30: ['00','10','11','12','13','14','20','21','22','23','24','25','26','27','30','40','41','50','60','90','99']]]]></entry>
        <entry id="IFN5016_Primary_Site_GroupCode_Table" type="java"><![CDATA[[
[0..2,3..5,6,8..9,19,20..23,24,28..29,30..39,40..49,50,51..52,58..59,60..61,62,68..69] : 1,
[79..89] : 2,
[90..100,101,102..109,110,111,112..119,129..139,140] : 3,
[150,151..152,153,154..155,158,159] : 4,
[160,161..169] : 5,
[180,181,182..189] : 6,
[199] : 7,
[209] : 8,
[210,211..218] : 9,
[220,221] : 10,
[250..259] : 11,
[320,321,322,323..329] : 12,
[340..349] : 13,
[400..411,412,413,414,418..419,470,471..472,473..475,476..479,490,491..492,493..495,496..499] : 15,
[422]: 16,
[440,441,442..444,445..449] : 17,
[500,501..509] : 18,
[530..539] : 19,
[540..559] : 20,
[569] : 21,
[619] : 22,
[620..629] : 23,
[649,659..669] : 24,
[670..679] : 25,
[700,701..709,710..719,720..721,722,723,724..725,728..729] : 26,
[739] : 27,
[770..779] : 28,
[760,761..768,809] : 29,
[142..148,170,171..179,239,240,241,248..249,260..269,300,301,310,311,312..319,339,379,380..383,384,388,390..399,480,481..488,510,511..519,529,570,571..574,577..579,589,600..608,609,630..631,632,637..639,680,681..689,690,691..692,693,694,695,696,698,699,740..749,750,751..753,754,755,758..759] : 30]]]></entry>
        <entry id="IFN6396_Hist_List" type="groovy"><![CDATA[['9740','9749','9751','9755','9756','9757','9758','9759','9930','9971']]]></entry>
        <entry id="IFN6634_List_1" type="java"><![CDATA[['9806','9807','9812','9813','9814','9815','9816','9817','9818','9819','9865','9866','9869','9871','9875','9877','9878','9879','9896','9897','9911','9912','9965','9966','9967','9968','9986']]]></entry>
        <entry id="IFN6634_List_2" type="java"><![CDATA[['9590','9655','9800','9820','9860','9863','9980','9982','9989']]]></entry>
        <entry id="IFN6660_List" type="java"><![CDATA[['00','04','06','10','13','14','15','16','17','20','21','22','25','26','27','30','36','40','46','51','52','53','54','55','56','57','58','59','60','62','70','88','99']]]></entry>
        <entry id="IFN6775_GroupCode_Table_23A" type="java"><![CDATA[[
01 : ['A000', 'A100', 'A110', 'A120', 'A130', 'A140', 'A200', 'A210', 'A220', 'A230', 'A240', 'A250', 'A260', 'A270', 'A300', 'A400', 'A410', 'A420', 'A430', 'A900', 'A990'],
02 : ['A000', 'A100', 'A110', 'A120', 'A130', 'A140', 'A200', 'A210', 'A220', 'A230', 'A240', 'A250', 'A260', 'A270', 'A300', 'A310', 'A320', 'A330', 'A340', 'A350', 'A360', 'A370', 'A380', 'A400', 'A410', 'A420', 'A500', 'A510', 'A520', 'A530', 'A800', 'A900', 'A990'],
03 : ['A000', 'A100', 'A110', 'A120', 'A130', 'A140', 'A150', 'A200', 'A210', 'A220', 'A230', 'A240', 'A250', 'A260', 'A270', 'A280', 'A300', 'A310', 'A320', 'A400', 'A410', 'A420', 'A430', 'A500', 'A510', 'A520', 'A900', 'A990'],
04 : ['A000', 'A100', 'A110', 'A120', 'A130', 'A140', 'A200', 'A210', 'A220', 'A230', 'A240', 'A250', 'A260', 'A270', 'A300', 'A400', 'A500', 'A510', 'A520', 'A530', 'A540', 'A550', 'A800', 'A900', 'A990'],
05 : ['A000', 'A100', 'A110', 'A120', 'A130', 'A140', 'A200', 'A210', 'A220', 'A230', 'A240', 'A250', 'A260', 'A270', 'A300', 'A310', 'A320', 'A330', 'A400', 'A410', 'A420', 'A500', 'A510', 'A520', 'A600', 'A610', 'A620', 'A630', 'A800', 'A900', 'A990'],
06 : ['A000', 'A100', 'A120', 'A200', 'A220', 'A260', 'A270', 'A280', 'A290', 'A300', 'A320', 'A400', 'A410', 'A500', 'A510', 'A600', 'A610', 'A700', 'A800', 'A900', 'A990'],
07 : ['A000', 'A100', 'A120', 'A200', 'A220', 'A260', 'A270', 'A300', 'A310', 'A400', 'A500', 'A510', 'A550', 'A560', 'A570', 'A600', 'A650', 'A660', 'A700', 'A800', 'A900', 'A990'],
08 : ['A000', 'A100', 'A120', 'A200', 'A220', 'A260', 'A270', 'A280', 'A300', 'A400', 'A500', 'A600', 'A700', 'A800', 'A900', 'A990'],
09 : ['A000', 'A100', 'A120', 'A150', 'A200', 'A220', 'A260', 'A270', 'A600', 'A610', 'A620', 'A630', 'A900', 'A990'],
10 : ['A000', 'A100', 'A110', 'A120', 'A130', 'A140', 'A150', 'A160', 'A170', 'A200', 'A210', 'A220', 'A230', 'A240', 'A250', 'A260', 'A300', 'A360', 'A370', 'A380', 'A500', 'A510', 'A520', 'A590', 'A600', 'A610', 'A650', 'A660', 'A750', 'A900', 'A990'],
11 : ['A000', 'A250', 'A300', 'A350', 'A360', 'A370', 'A400', 'A600', 'A700', 'A800', 'A900', 'A990'],
12 : ['A000', 'A100', 'A110', 'A120', 'A130', 'A140', 'A150', 'A200', 'A210', 'A220', 'A230', 'A240', 'A250', 'A260', 'A270', 'A280', 'A300', 'A310', 'A320', 'A330', 'A400', 'A410', 'A420', 'A500', 'A800', 'A900', 'A990'],
13 : ['A000', 'A120', 'A130', 'A150', 'A190', 'A200', 'A210', 'A220', 'A230', 'A240', 'A250', 'A300', 'A330', 'A450', 'A460', 'A470', 'A480', 'A550', 'A560', 'A650', 'A660', 'A700', 'A800', 'A900', 'A990'],
15 : ['A000', 'A150', 'A190', 'A250', 'A260', 'A300', 'A400', 'A410', 'A420', 'A500', 'A510', 'A520', 'A530', 'A540', 'A900', 'A990'],
16 : ['A000', 'A190', 'A210', 'A220', 'A800', 'A900', 'A990'],
18 : ['A000', 'A190', 'A200', 'A210', 'A220', 'A230', 'A240', 'A300', 'A400', 'A410', 'A420', 'A430', 'A440', 'A450', 'A460', 'A470', 'A480', 'A490', 'A500', 'A510', 'A520', 'A530', 'A540', 'A550', 'A560', 'A570', 'A580', 'A590', 'A600', 'A610', 'A620', 'A630', 'A640', 'A650', 'A660', 'A670', 'A680', 'A690', 'A700', 'A710', 'A720', 'A730', 'A740', 'A750', 'A760', 'A800', 'A900', 'A990'],
19 : ['A000', 'A100', 'A110', 'A120', 'A130', 'A140', 'A150', 'A160', 'A170', 'A200', 'A210', 'A220', 'A230', 'A240', 'A250', 'A260', 'A270', 'A280', 'A290', 'A300', 'A400', 'A500', 'A510', 'A520', 'A530', 'A540', 'A600', 'A610', 'A620', 'A700', 'A710', 'A720', 'A730', 'A740', 'A900', 'A990'],
20 : ['A000', 'A100', 'A110', 'A120', 'A130', 'A140', 'A150', 'A160', 'A190', 'A200', 'A210', 'A220', 'A230', 'A240', 'A250', 'A260', 'A300', 'A310', 'A320', 'A400', 'A500', 'A600', 'A610', 'A620', 'A630', 'A640', 'A650', 'A660', 'A670', 'A750', 'A760', 'A770', 'A780', 'A790', 'A900', 'A990'],
21 : ['A000', 'A170', 'A250', 'A260', 'A270', 'A280', 'A350', 'A360', 'A370', 'A500', 'A510', 'A520', 'A550', 'A560', 'A570', 'A600', 'A610', 'A620', 'A630', 'A700', 'A710', 'A720', 'A730', 'A740', 'A800', 'A900', 'A990'],
22 : ['A000', 'A100', 'A140', 'A150', 'A160', 'A170', 'A180', 'A190', 'A200', 'A210', 'A220', 'A230', 'A240', 'A250', 'A260', 'A300', 'A500', 'A700', 'A800', 'A900', 'A990'],
23 : ['A000', 'A120', 'A200', 'A300', 'A400', 'A800', 'A900', 'A990'],
24 : ['A000', 'A100', 'A110', 'A120', 'A130', 'A140', 'A150', 'A200', 'A210', 'A220', 'A230', 'A240', 'A250', 'A260', 'A270', 'A300', 'A400', 'A500', 'A700', 'A800', 'A900', 'A990'],
25 : ['A000', 'A100', 'A110', 'A120', 'A130', 'A140', 'A150', 'A160', 'A200', 'A210', 'A220', 'A230', 'A240', 'A250', 'A260', 'A270', 'A300', 'A500', 'A600', 'A610', 'A620', 'A630', 'A640', 'A700', 'A710', 'A720', 'A730', 'A740', 'A800', 'A900', 'A990'],
26 : ['A000', 'A100', 'A200', 'A210', 'A220', 'A300', 'A400', 'A550', 'A900', 'A990'],
27 : ['A000', 'A130', 'A200', 'A210', 'A220', 'A230', 'A250', 'A260', 'A270', 'A300', 'A400', 'A500', 'A800', 'A900', 'A990'],
28 : ['A000', 'A150', 'A190', 'A250', 'A300', 'A310', 'A320', 'A400', 'A410', 'A420', 'A500', 'A510', 'A520', 'A600', 'A610', 'A620', 'A900', 'A990'],
29 : ['A980'],
30 : ['A000', 'A100', 'A110', 'A120', 'A130', 'A140', 'A200', 'A210', 'A220', 'A230', 'A240', 'A250', 'A260', 'A270', 'A300', 'A400', 'A410', 'A500', 'A600', 'A900', 'A990']]]]]></entry>
        <entry id="IFN6775_GroupCode_Table_23B" type="java"><![CDATA[[
06 : ['B000', 'B100', 'B200', 'B220', 'B260', 'B270', 'B280', 'B281', 'B290', 'B291', 'B300', 'B320', 'B330', 'B400', 'B401', 'B410', 'B500', 'B510', 'B600', 'B610', 'B700', 'B800', 'B900', 'B990'],
11 : ['B000', 'B250', 'B300', 'B350', 'B351', 'B352', 'B400', 'B600', 'B800', 'B900', 'B990'],
13 : ['B000', 'B120', 'B130', 'B150', 'B190', 'B200', 'B210', 'B220', 'B230', 'B240', 'B250', 'B300', 'B320', 'B330', 'B450', 'B460', 'B470', 'B480', 'B550', 'B560', 'B650', 'B660', 'B800', 'B900', 'B990'],
17 : ['B000', 'B100', 'B110', 'B120', 'B130', 'B140', 'B200', 'B220', 'B230', 'B240', 'B300', 'B310', 'B320', 'B500', 'B510', 'B520', 'B530', 'B540', 'B600', 'B900', 'B990'],
18 : ['B000', 'B200', 'B210', 'B215', 'B240', 'B290', 'B300', 'B310', 'B320', 'B400', 'B410', 'B420', 'B500', 'B510', 'B520', 'B600', 'B610', 'B620', 'B700', 'B710', 'B720', 'B760', 'B800', 'B900', 'B990'],
27 : ['B000', 'B130', 'B200', 'B210', 'B220', 'B250', 'B251', 'B252', 'B253', 'B300', 'B400', 'B500', 'B800', 'B900', 'B990']]]]]></entry>
        <entry id="IFN6775_Primary_Site_GroupCode_Table" type="java"><![CDATA[[
[0..69] : 1,
[79..89] : 2,
[90..140] : 3,
[150..159] : 4,
[160..169] : 5,
[180..189] : 6,
[199] : 7,
[209] : 8,
[210..218] : 9,
[220..221] : 10,
[250..259] : 11,
[320..329] : 12,
[340..349] : 13,
[400..419, 470..479, 490..499] : 15,
[422] : 16,
[440..449] : 17,
[500..509] : 18,
[530..539] : 19,
[540..559] : 20,
[569] : 21,
[619] : 22,
[620..629] : 23,
[649..669] : 24,
[670..679] : 25,
[700..729] : 26,
[739] : 27,
[770..779] : 28,
[760..768, 809] : 29,
[142..148, 170..179, 239, 240..249, 260..319, 339, 379..399, 480..488, 510..529, 570..609, 630..639, 680..699, 740..759] : 30]]]></entry>
        <entry id="IFN7040_NAACCR_PathCHART_Table" type="java"><![CDATA[[
[0..6, 8..9] : [
    [8000..8005, 8011..8015, 8020..8022, 8030..8035, 8051, 8071..8075, 8078, 8082..8084, 8141, 8143, 8147, 8200, 8255, 8260, 8262, 8430, 8480..8481, 8721..8723, 8730, 8743, 8745..8746, 8770..8772, 8940..8941, 9140, 9699, 9823] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8140, 8201, 8261, 8263, 8720] : [
        [2, 3] : 1
    ],
    [8081] : [
        [2] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[19] : [
    [8000..8005, 8011..8015, 8020..8022, 8030..8035, 8051, 8071..8075, 8078, 8082..8086, 8141, 8143, 8147, 8200, 8255, 8430, 8480..8481, 8560, 8562, 8570..8575, 8721..8723, 8825, 8900..8902, 8910, 8912, 8940..8941, 9140, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8140, 8201, 8720] : [
        [2, 3] : 1
    ],
    [8081] : [
        [2] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[20..24, 28..29] : [
    [8000..8005, 8011..8015, 8020..8022, 8030..8035, 8051, 8071..8075, 8078, 8082..8084, 8141, 8143, 8147, 8200, 8255, 8430, 8480..8481, 8560, 8562, 8570..8575, 8721..8723, 8825, 8900..8902, 8910, 8912, 8940..8941, 9140, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8140, 8201, 8720] : [
        [2, 3] : 1
    ],
    [8081] : [
        [2] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[30..31, 39..41, 48..52, 58..62, 68..69] : [
    [8000..8005, 8011..8015, 8020..8022, 8030..8035, 8051, 8071..8075, 8078, 8082..8084, 8141, 8143, 8147, 8200, 8255, 8260, 8262, 8310, 8430, 8440, 8480..8481, 8550..8551, 8721..8723, 8730, 8743, 8745..8746, 8770..8772, 8810..8811, 8813..8815, 8825, 8900..8902, 8910, 8912, 8940..8941, 8980..8982, 9140, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8140, 8201, 8261, 8263, 8720] : [
        [2, 3] : 1
    ],
    [8081] : [
        [2] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[79..81, 88..89] : [
    [8000..8005, 8011..8015, 8020..8022, 8030..8035, 8071..8075, 8078, 8082..8084, 8141, 8143, 8147, 8190, 8200, 8231, 8255, 8260, 8262, 8290, 8310, 8430, 8440, 8480..8481, 8500, 8502, 8525, 8550..8551, 8560..8562, 8570..8575, 8800..8806, 8810..8811, 8813..8815, 8825, 8840, 8850..8855, 8857..8858, 8890..8891, 8894..8896, 8900..8902, 8910, 8912, 8940..8941, 8980..8982, 8990..8991, 9140, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8140, 8201, 8230, 8261, 8263] : [
        [2, 3] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[108..109, 90..91, 98..104] : [
    [8000..8005, 8011..8015, 8020..8022, 8030..8035, 8051, 8071..8075, 8078, 8082..8086, 8121..8124, 8141, 8143, 8147, 8200, 8255, 8260, 8262, 8430, 8480..8481, 8721..8723, 8730, 8743, 8745..8746, 8761, 8770..8772, 8800..8806, 8850..8855, 8857..8858, 8900..8902, 8910, 8912, 8940..8941, 8980..8982, 9140, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8120, 8140, 8201, 8261, 8263, 8720] : [
        [2, 3] : 1
    ],
    [8081] : [
        [2] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[110, 112..113, 118..119] : [
    [8000..8005, 8011..8015, 8020..8022, 8030..8035, 8041, 8043, 8051, 8071..8075, 8078, 8082..8084, 8121..8124, 8141, 8143, 8147, 8200, 8255, 8260, 8262, 8310, 8430, 8480..8481, 8721..8723, 8730, 8743, 8745..8746, 8770..8772, 8800..8806, 8810..8811, 8813..8815, 8825, 8900..8902, 8910, 8912, 8940..8941, 8980..8982, 9070..9072, 9140, 9370..9372, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8120, 8140, 8201, 8261, 8263, 8720] : [
        [2, 3] : 1
    ],
    [8081] : [
        [2] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[111] : [
    [8000..8005, 8011..8015, 8020..8022, 8030..8035, 8041, 8043, 8051, 8071..8075, 8078, 8082..8086, 8121..8124, 8141, 8143, 8147, 8200, 8255, 8260, 8262, 8310, 8430, 8480..8481, 8721..8723, 8730, 8743, 8745..8746, 8770..8772, 8800..8806, 8810..8811, 8813..8815, 8825, 8900..8902, 8910, 8912, 8940..8941, 8980..8982, 9070..9072, 9140, 9370..9372, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9714, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9750..9751, 9754..9759, 9811..9818, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8120, 8140, 8201, 8261, 8263, 8720] : [
        [2, 3] : 1
    ],
    [8081] : [
        [2] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[129..132, 138..139] : [
    [8000..8005, 8011..8015, 8020..8022, 8051, 8071..8075, 8078, 8082..8084, 8121..8124, 8141, 8143, 8147, 8200, 8255, 8430, 8810..8811, 8813..8815, 8825, 8940..8941, 8980..8982, 9140, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8120, 8140, 8201] : [
        [2, 3] : 1
    ],
    [8081] : [
        [2] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[140, 142, 148] : [
    [8000..8005, 8011..8015, 8020..8022, 8051, 8071..8075, 8078, 8082..8084, 8141, 8143, 8147, 8200, 8255, 8430, 8890..8891, 8894..8896, 8940..8941, 8980..8982, 9370..9372, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8140, 8201] : [
        [2, 3] : 1
    ],
    [8081] : [
        [2] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[150..155, 158..159] : [
    [8000..8005, 8012..8013, 8020..8021, 8032..8033, 8045, 8051, 8072..8074, 8082..8083, 8144..8145, 8154, 8200, 8244, 8246, 8249, 8255, 8260, 8430, 8480..8481, 8490, 8560, 8574, 8720, 8800, 8890, 8936, 8980, 9120, 9140, 9680, 9688, 9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8070, 8140] : [
        [2, 3] : 1
    ],
    [8011, 8042..8043, 8054, 8078, 8091..8093, 8095, 8097..8098, 8100, 8102, 8110, 8121..8122, 8124, 8131, 8147, 8150..8152, 8155..8156, 8158, 8160..8162, 8170..8175, 8180, 8215, 8220..8221, 8251..8252, 8254, 8256..8257, 8270, 8272..8273, 8280..8281, 8290, 8300, 8311..8320, 8322, 8330..8332, 8335, 8337, 8339..8347, 8350, 8370, 8381..8384, 8390, 8400, 8402..8403, 8406..8408, 8410, 8413, 8420, 8452, 8461, 8474, 8502, 8508, 8514, 8521, 8523..8525, 8530, 8540..8541, 8543, 8551..8552, 8580..8586, 8588..8589, 8600, 8620, 8630..8631, 8634, 8640, 8650, 8670, 8681..8682, 8690..8692, 8700, 8710, 8723, 8728, 8740, 8743..8744, 8761, 8770, 8773..8774, 8780, 8812..8813, 8830, 8832, 8853, 8855, 8857, 8894..8895, 8902, 8934..8935, 8950..8951, 8959..8960, 8964, 8970..8973, 8981, 8983, 8991, 9000, 9014..9015, 9020, 9045, 9051..9053, 9063, 9104..9105, 9110..9111, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9221..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9478, 9480, 9490, 9500..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8041, 8071, 8240] : [
        [2] : 3,
        [3] : 1
    ],
    [8050, 8080..8081, 8201, 8230, 8380, 8519, 8542, 8742, 9061, 9064, 9070..9071, 9080] : [
        [2] : 3
    ],
    [8077, 8148] : [
        [2] : 1
    ],
    [8120, 8130, 8163, 8250, 8253, 8409, 8441, 8453, 8455, 8460, 8470, 8500..8501, 8503..8504, 8507, 8509, 8520, 8522, 8741, 9050] : [
        [2, 3] : 3
    ]
],
[160..166, 168..169] : [
    [8000..8005, 8012..8014, 8020..8022, 8031, 8033, 8035, 8041, 8141..8142, 8145, 8153..8154, 8156, 8211, 8214, 8220, 8240..8242, 8244, 8246, 8249, 8255, 8260, 8262, 8265, 8310, 8430, 8480..8481, 8510, 8512, 8570..8571, 8574, 8576, 8711, 8720, 8800, 8890, 8976, 8980, 9120, 9140, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731..9732, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8070, 8140, 8144, 8210, 8261, 8263, 8490] : [
        [2, 3] : 1
    ],
    [8011, 8042..8043, 8051, 8054, 8075, 8078, 8084..8086, 8090..8095, 8097..8098, 8100, 8102, 8110, 8121..8122, 8124, 8131, 8147, 8150..8152, 8155, 8158, 8160..8162, 8170..8175, 8180, 8215, 8231, 8247, 8251..8252, 8254, 8256..8257, 8270, 8272..8273, 8280..8281, 8290, 8300, 8311..8319, 8322, 8330..8332, 8335, 8337, 8339..8347, 8350, 8370, 8381..8384, 8390, 8400..8403, 8406..8408, 8410, 8413, 8420, 8440, 8450, 8452, 8461, 8474, 8502, 8508, 8513..8514, 8521, 8523..8525, 8530, 8540..8543, 8551..8552, 8562, 8573, 8580..8586, 8588..8589, 8593, 8600, 8620, 8630..8631, 8634, 8640, 8650, 8670, 8681..8682, 8690..8692, 8700, 8710, 8721..8723, 8728, 8740, 8743..8745, 8761, 8770..8771, 8773..8774, 8780, 8812..8813, 8821..8822, 8830, 8832, 8853, 8855, 8857, 8894..8895, 8902, 8934..8935, 8941, 8951, 8959..8960, 8964, 8970..8973, 8981, 8983, 8991, 9000, 9014..9015, 9020, 9045, 9051..9053, 9062..9063, 9104..9105, 9110..9111, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9221..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9478, 9480, 9490, 9500..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8032, 8560, 8936] : [
        [2] : 3,
        [3] : 1
    ],
    [8052, 8076, 8120, 8130, 8163, 8250, 8253, 8320, 8409, 8441, 8453, 8455, 8460, 8500..8501, 8503..8504, 8507, 8509, 8520, 8522, 8741..8742, 9050, 9061] : [
        [2, 3] : 3
    ],
    [8071, 8080..8081, 8230, 8380, 8470, 8519, 9064, 9070..9071, 9080] : [
        [2] : 3
    ],
    [8148, 8213] : [
        [2] : 1
    ]
],
[170..173, 178..179] : [
    [8000..8005, 8013, 8020..8021, 8041, 8145, 8153..8154, 8156, 8220..8221, 8240..8241, 8243..8246, 8249, 8255, 8310, 8481, 8490, 8510, 8570..8571, 8574, 8576, 8693, 8800, 9120, 9140, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9714..9715, 9717, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9764, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8140, 8144, 8210, 8213, 8261, 8263] : [
        [2, 3] : 1
    ],
    [8011, 8015, 8034, 8042..8044, 8051, 8054, 8072..8073, 8078, 8083..8086, 8090..8095, 8097..8098, 8100, 8102, 8110, 8121..8124, 8131, 8141, 8147, 8150..8152, 8155, 8157..8158, 8160..8162, 8170..8175, 8180, 8190, 8200, 8214..8215, 8231, 8247, 8251..8252, 8254, 8256..8257, 8270, 8272..8273, 8280..8281, 8290, 8300, 8311..8320, 8322, 8330..8332, 8335, 8337, 8339..8347, 8350, 8370, 8381, 8384, 8390, 8400..8403, 8406..8408, 8410, 8413, 8420, 8440, 8452, 8461, 8474, 8482, 8502, 8508, 8513..8514, 8521, 8523..8525, 8530, 8540..8543, 8550..8552, 8562, 8573, 8580..8586, 8588..8589, 8600, 8620, 8630..8631, 8634, 8640, 8650, 8670, 8680..8682, 8690..8692, 8700, 8710, 8721..8723, 8728, 8740, 8743..8745, 8761, 8770, 8773..8774, 8780, 8812..8813, 8821..8822, 8830, 8832, 8853, 8855, 8857, 8894..8895, 8902, 8934..8935, 8941, 8951, 8959..8960, 8964, 8970..8973, 8981, 8983, 8991, 9000, 9014..9015, 9020, 9045, 9051..9053, 9063, 9104..9105, 9110..9111, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9221..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9478, 9480, 9490, 9500..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8052, 8120, 8130, 8163, 8250, 8253, 8409, 8441, 8453, 8455, 8460, 8500..8501, 8503..8504, 8507, 8509, 8520, 8522, 8741..8742, 9050] : [
        [2, 3] : 3
    ],
    [8071, 8076..8077, 8080..8081, 8230, 8470, 8519, 9061, 9064, 9070..9071, 9080] : [
        [2] : 3
    ],
    [8262, 8480, 8560, 8720, 8890, 8936] : [
        [2] : 3,
        [3] : 1
    ]
],
[180, 182..189, 199, 209] : [
    [8000..8005, 8012, 8014, 8020..8021, 8031..8033, 8041, 8045, 8052, 8070, 8072..8074, 8076, 8078, 8123, 8152, 8154, 8240..8241, 8243..8244, 8246, 8249, 8255, 8260, 8265, 8310, 8380, 8480..8481, 8490, 8570..8571, 8574, 8576, 8721, 8730, 8743, 8746, 8771..8772, 8800, 8890, 8936, 8980, 9120, 9140, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9717, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8140, 8144, 8210, 8213, 8220..8221, 8261..8263] : [
        [2, 3] : 1
    ],
    [8011, 8034, 8040, 8042..8044, 8054, 8091..8095, 8097..8098, 8100, 8102, 8110, 8121..8122, 8131, 8147, 8150..8151, 8155..8156, 8158, 8160..8162, 8170..8175, 8180, 8212, 8214..8215, 8242, 8251..8252, 8254, 8256..8257, 8270, 8272..8273, 8280..8281, 8290, 8300, 8311..8313, 8316..8320, 8322, 8330..8332, 8335, 8337, 8339..8347, 8350, 8370, 8384, 8390, 8400, 8402..8403, 8406..8408, 8410, 8413, 8420, 8452, 8474, 8502, 8508, 8513..8514, 8523..8524, 8530, 8540..8541, 8543, 8551..8552, 8573, 8580..8586, 8588..8589, 8600, 8620, 8623, 8630..8631, 8634, 8650, 8670, 8680..8682, 8690..8693, 8700, 8710, 8722..8723, 8728, 8740, 8744..8745, 8761, 8770, 8773..8774, 8780, 8812..8813, 8830, 8832, 8853, 8855, 8857, 8880, 8894..8895, 8902, 8934..8935, 8941, 8950..8951, 8959..8960, 8964, 8970..8973, 8981, 8983, 8991, 9000, 9014..9015, 9020, 9045, 9051..9053, 9063, 9104..9105, 9110..9111, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9221..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9478, 9480, 9501..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8013, 8071, 8145, 8230, 8510, 8560, 8720] : [
        [2] : 3,
        [3] : 1
    ],
    [8080..8081, 8200, 8441, 8460, 8470, 8519, 8632, 9061, 9064, 9070..9071, 9080] : [
        [2] : 3
    ],
    [8120, 8163, 8250, 8253, 8409, 8453, 8455, 8500..8501, 8503..8504, 8507, 8509, 8520..8522, 8550, 8562, 8640, 8742, 9050] : [
        [2, 3] : 3
    ],
    [8148, 8211] : [
        [2] : 1
    ]
],
[181] : [
    [8000..8005, 8012..8013, 8020, 8041, 8145, 8152, 8154, 8221, 8240..8244, 8246, 8249, 8260, 8310, 8380, 8471, 8481, 8490, 8510, 8560, 8574, 8800, 8890, 9120, 9140, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9717, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8140, 8144, 8210..8211, 8213, 8220, 8261..8263, 8470, 8480] : [
        [2, 3] : 1
    ],
    [8011, 8042..8043, 8051, 8054, 8078, 8090..8093, 8095, 8097..8098, 8100, 8102, 8110, 8121..8122, 8124, 8131, 8147, 8150..8151, 8153, 8155..8156, 8158, 8160..8162, 8170..8175, 8180, 8190, 8200, 8214..8215, 8247, 8251..8252, 8254, 8256..8257, 8270, 8272..8273, 8280..8281, 8290, 8300, 8311..8313, 8316..8319, 8330..8332, 8335, 8337, 8339..8347, 8350, 8370, 8384, 8390, 8400..8403, 8406..8407, 8413, 8420, 8450, 8452, 8461, 8472, 8474, 8502, 8508, 8513..8514, 8521, 8523..8525, 8530, 8540..8543, 8550..8552, 8562, 8573, 8580..8586, 8588..8589, 8600, 8620, 8630..8631, 8634, 8640, 8650, 8670, 8680..8682, 8690..8693, 8700, 8710, 8723, 8728, 8740, 8743..8744, 8761, 8770, 8773..8774, 8780, 8812..8813, 8830, 8832, 8853, 8855, 8857, 8894..8895, 8902, 8934..8935, 8941, 8950..8951, 8959..8960, 8964, 8970..8973, 8981, 8983, 8991, 9000, 9014..9015, 9020, 9045, 9051..9053, 9063, 9104..9105, 9110..9111, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9221..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9478, 9480, 9490, 9500..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8071, 8080..8081, 8230, 8441, 8460, 8519, 8720, 9061, 9064, 9070..9071, 9080] : [
        [2] : 3
    ],
    [8120, 8130, 8163, 8250, 8253, 8408..8410, 8453, 8455, 8500..8501, 8503..8504, 8507, 8509, 8520, 8522, 8741..8742, 9050] : [
        [2, 3] : 3
    ],
    [8255, 8936] : [
        [2] : 3,
        [3] : 1
    ]
],
[210..212, 218] : [
    [8000..8005, 8013, 8020..8022, 8041, 8045, 8051, 8071, 8074, 8078, 8085..8086, 8090, 8094, 8123..8124, 8141, 8154, 8215, 8240, 8244, 8246, 8249, 8255, 8260, 8481, 8490, 8560, 8570..8576, 8721..8723, 8730, 8743, 8745..8746, 8771..8772, 8800, 8890, 9120, 9140, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9717, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8052, 8070, 8072..8073, 8076, 8083, 8140, 8542, 8720] : [
        [2, 3] : 1
    ],
    [8011, 8014..8015, 8042..8044, 8121..8122, 8131, 8142, 8150..8153, 8155..8156, 8158, 8160..8162, 8170..8175, 8180, 8214, 8220, 8241..8242, 8245, 8251..8252, 8254, 8256..8257, 8270, 8272..8273, 8280..8281, 8290, 8300, 8311..8320, 8322, 8330..8332, 8335, 8337, 8339..8347, 8350, 8370, 8381..8384, 8420, 8452..8453, 8461, 8474, 8482, 8502, 8508, 8513, 8521, 8523..8525, 8530, 8541, 8550..8552, 8580..8586, 8588..8589, 8600, 8620, 8630..8631, 8634, 8640, 8650, 8670, 8690..8692, 8700, 8710, 8728, 8744, 8773..8774, 8780, 8812..8813, 8830, 8853, 8855, 8857, 8894..8895, 8902, 8934..8935, 8941, 8951, 8959..8960, 8964, 8970..8973, 8981, 8983, 8991, 9000, 9014..9015, 9020, 9045, 9051..9053, 9063, 9104..9105, 9110..9111, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9221..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9478, 9480, 9490, 9500..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8077] : [
        [2] : 1
    ],
    [8080, 8130, 8163, 8243, 8250, 8253, 8380, 8441, 8455, 8460, 8501, 8504, 8507, 8509, 8520, 8522, 8540, 9050] : [
        [2, 3] : 3
    ],
    [8081] : [
        [2] : 1,
        [3] : 3
    ],
    [8120, 8230, 8470, 8503, 8519, 9061, 9064, 9070..9071, 9080] : [
        [2] : 3
    ],
    [8480] : [
        [2] : 3,
        [3] : 1
    ]
],
[220] : [
    [8000..8005, 8013, 8020..8022, 8031..8033, 8035, 8041, 8046, 8171..8175, 8246, 8310, 8714, 8800, 8890, 8970, 8980, 8991, 9120, 9133, 9140, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9716, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8170] : [
        [2] : 3,
        [3] : 1
    ],
    [8011, 8015, 8034, 8042..8044, 8051, 8054, 8072..8075, 8078, 8083..8086, 8090..8095, 8097..8098, 8100..8102, 8110, 8121..8124, 8131, 8141..8143, 8145, 8147, 8150..8152, 8154..8156, 8158, 8161..8162, 8180, 8190, 8200, 8214..8215, 8220..8221, 8231, 8241..8245, 8247, 8251..8252, 8254..8257, 8262, 8265, 8272..8273, 8280..8281, 8290, 8300, 8311..8314, 8316..8320, 8322, 8330..8333, 8335, 8337, 8339..8347, 8350, 8370, 8381..8384, 8390, 8400..8403, 8406..8408, 8410, 8413, 8420, 8430, 8440, 8450, 8452, 8461, 8471, 8474, 8481..8482, 8490, 8502, 8508, 8513..8514, 8521, 8523..8525, 8530, 8540..8543, 8550..8552, 8560, 8562, 8570..8574, 8576, 8580..8586, 8588..8589, 8600, 8620, 8630..8631, 8634, 8640, 8650, 8670, 8680..8682, 8690..8692, 8700, 8710, 8721..8723, 8728, 8730, 8740, 8743..8746, 8761, 8770..8774, 8780, 8812..8813, 8830, 8832, 8853, 8855, 8857, 8860, 8894..8895, 8902, 8934..8935, 8941, 8950..8951, 8959..8960, 8964, 8971..8973, 8981, 8983, 9000, 9014..9015, 9020, 9045, 9051..9053, 9063, 9104..9105, 9110..9111, 9124..9125, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9221..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9478, 9480, 9490, 9500..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8050, 8052, 8070..8071, 8076, 8120, 8130, 8140, 8144, 8160, 8163, 8201, 8210..8211, 8213, 8230, 8250, 8253, 8260..8261, 8263, 8380, 8409, 8441, 8455, 8460, 8480, 8500..8501, 8503..8504, 8507, 8509, 8520, 8522, 8741..8742, 9050] : [
        [2, 3] : 3
    ],
    [8077, 8080..8081, 8148, 8519, 8720, 9061, 9064, 9070..9071, 9080] : [
        [2] : 3
    ],
    [8453] : [
        [2] : 1,
        [3] : 3
    ],
    [8470] : [
        [2, 3] : 1
    ]
],
[221] : [
    [8000..8005, 8012..8013, 8020..8022, 8030..8033, 8035, 8041, 8045..8046, 8154, 8180, 8244, 8246, 8249, 8310, 8480..8481, 8490, 8560, 8570, 8574, 8576, 8800, 8890, 8910, 8980, 9120, 9140, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9716, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8070, 8140, 8261, 8455, 8470, 8503] : [
        [2, 3] : 1
    ],
    [8011, 8015, 8034, 8042..8044, 8051, 8054, 8078, 8085, 8090..8095, 8097..8098, 8100, 8102, 8110, 8121..8124, 8131, 8141..8143, 8145, 8147, 8150..8152, 8155..8156, 8158, 8170..8175, 8190, 8200, 8214..8215, 8220..8221, 8231, 8241..8243, 8247, 8251..8252, 8254, 8256..8257, 8262, 8270, 8272..8273, 8280..8281, 8300, 8311..8320, 8322, 8330..8332, 8335, 8337, 8339..8347, 8350, 8370, 8381..8384, 8390, 8400..8403, 8406..8408, 8410, 8413, 8420, 8452, 8461, 8474, 8482, 8502, 8508, 8513..8514, 8521, 8523..8525, 8530, 8540..8543, 8551..8552, 8562, 8572..8573, 8580..8586, 8588..8589, 8600, 8620, 8630..8631, 8634, 8640, 8650, 8670, 8680..8682, 8690..8692, 8700, 8710, 8721..8723, 8728, 8730, 8740, 8743..8746, 8761, 8770..8774, 8780, 8812..8813, 8825, 8830, 8832, 8853, 8855, 8857, 8894..8895, 8902, 8934..8935, 8941, 8950..8951, 8959..8960, 8964, 8970..8973, 8981, 8983, 8991, 9000, 9014..9015, 9020, 9045, 9051..9053, 9063, 9104..9105, 9110..9111, 9124, 9130, 9137, 9160, 9170, 9174, 9181..9187, 9192..9195, 9221..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9478, 9480, 9490, 9500..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8050, 8071, 8144, 8160, 8163, 8240, 8260] : [
        [2] : 3,
        [3] : 1
    ],
    [8080..8081, 8211, 8500, 8519, 8720, 9061, 9064, 9070..9071, 9080] : [
        [2] : 3
    ],
    [8120, 8130, 8162, 8201, 8210, 8213, 8230, 8250, 8253, 8263, 8380, 8409, 8441, 8453, 8460, 8501, 8504, 8507, 8509, 8520, 8522, 8741..8742, 9050] : [
        [2, 3] : 3
    ],
    [8148] : [
        [2] : 1
    ]
],
[239] : [
    [8000..8005, 8012..8014, 8020..8022, 8032..8033, 8035, 8041, 8045, 8072..8074, 8145, 8154, 8249, 8255, 8262, 8310, 8470, 8480..8481, 8490, 8560, 8570, 8574, 8576, 8800, 8890, 8980, 9120, 9140, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9716, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8070, 8140, 8144, 8210, 8261, 8263, 8455, 8503] : [
        [2, 3] : 1
    ],
    [8011, 8015, 8034, 8042..8044, 8051, 8054, 8078, 8085, 8090..8095, 8097..8098, 8100, 8102, 8110, 8121..8122, 8124, 8131, 8141..8143, 8147, 8150..8153, 8155..8156, 8158, 8161..8162, 8170..8175, 8180, 8190, 8214..8215, 8220..8221, 8231, 8241..8242, 8247, 8251..8252, 8254, 8256..8257, 8270, 8272..8273, 8280..8281, 8300, 8311..8320, 8322, 8330..8332, 8335, 8337, 8339..8347, 8350, 8370, 8381..8384, 8390, 8400..8403, 8406..8408, 8410, 8413, 8420, 8452, 8461, 8474, 8482, 8502, 8508, 8513..8514, 8521, 8524..8525, 8530, 8540..8543, 8551..8552, 8562, 8572..8573, 8580..8586, 8588..8589, 8600, 8620, 8630..8631, 8634, 8640, 8650, 8670, 8680..8682, 8690..8692, 8700, 8710, 8721..8723, 8728, 8730, 8740, 8743..8746, 8761, 8770..8774, 8780, 8812..8813, 8830, 8832, 8853, 8855, 8857, 8894..8895, 8902, 8934..8935, 8941, 8951, 8959..8960, 8964, 8970..8973, 8981, 8983, 8991, 9000, 9014..9015, 9020, 9045, 9051..9053, 9063, 9104..9105, 9110..9111, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9221..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9478, 9480, 9490, 9500..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8071, 8160, 8163, 8230, 8240, 8246, 8260] : [
        [2] : 3,
        [3] : 1
    ],
    [8080..8081, 8500, 8519, 8720, 9061, 9064, 9070..9071, 9080] : [
        [2] : 3
    ],
    [8120, 8130, 8201, 8213, 8250, 8253, 8380, 8409, 8441, 8453, 8460, 8501, 8504, 8507, 8509, 8520, 8522, 8741..8742, 9050] : [
        [2, 3] : 3
    ],
    [8148] : [
        [2] : 1,
        [3] : 3
    ]
],
[240, 248..249] : [
    [8000..8005, 8012..8013, 8020..8022, 8030..8033, 8035, 8041, 8045..8046, 8154, 8244, 8246, 8249, 8310, 8480..8481, 8490, 8560, 8570, 8574, 8576, 8800, 8890, 8910, 8980, 9120, 9140, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9716, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8070, 8140, 8261, 8455, 8470, 8503] : [
        [2, 3] : 1
    ],
    [8011, 8015, 8034, 8042..8044, 8051, 8054, 8078, 8085, 8090..8095, 8097..8098, 8100, 8102, 8110, 8121..8124, 8131, 8141..8143, 8145, 8147, 8150..8152, 8155..8156, 8158, 8170..8175, 8180, 8190, 8200, 8214..8215, 8220..8221, 8231, 8241..8243, 8247, 8251..8252, 8254, 8256..8257, 8262, 8270, 8272..8273, 8280..8281, 8300, 8311..8320, 8322, 8330..8332, 8335, 8337, 8339..8347, 8350, 8370, 8381..8384, 8390, 8400..8403, 8406..8408, 8410, 8413, 8420, 8452, 8461, 8474, 8482, 8502, 8508, 8513..8514, 8521, 8523..8525, 8530, 8540..8543, 8551..8552, 8562, 8572..8573, 8580..8586, 8588..8589, 8600, 8620, 8630..8631, 8634, 8640, 8650, 8670, 8680..8682, 8690..8692, 8700, 8710, 8721..8723, 8728, 8730, 8740, 8743..8746, 8761, 8770..8774, 8780, 8812..8813, 8825, 8830, 8832, 8853, 8855, 8857, 8894..8895, 8902, 8934..8935, 8941, 8950..8951, 8959..8960, 8964, 8970..8973, 8981, 8983, 8991, 9000, 9014..9015, 9020, 9045, 9051..9053, 9063, 9104..9105, 9110..9111, 9124, 9130, 9137, 9160, 9170, 9174, 9181..9187, 9192..9195, 9221..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9478, 9480, 9490, 9500..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8050, 8071, 8144, 8160, 8162..8163, 8240, 8260] : [
        [2] : 3,
        [3] : 1
    ],
    [8080..8081, 8211, 8500, 8519, 8720, 9061, 9064, 9070..9071, 9080] : [
        [2] : 3
    ],
    [8120, 8130, 8201, 8210, 8213, 8230, 8250, 8253, 8263, 8380, 8409, 8441, 8453, 8460, 8501, 8504, 8507, 8509, 8520, 8522, 8741..8742, 9050] : [
        [2, 3] : 3
    ],
    [8148] : [
        [2] : 1
    ]
],
[241] : [
    [8000..8005, 8013, 8020, 8041, 8070, 8145, 8153..8154, 8156, 8158, 8211, 8220, 8240, 8243, 8246, 8249, 8255, 8260, 8262, 8480..8481, 8490, 8510, 8560, 8574, 8693, 8800, 8936, 8980, 9120, 9140, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9716, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8140, 8144, 8210, 8261, 8263, 8455, 8503] : [
        [2, 3] : 1
    ],
    [8011, 8015, 8031, 8034, 8042..8044, 8051, 8054, 8078, 8083..8086, 8090..8095, 8097..8098, 8100, 8102, 8110, 8121..8124, 8131, 8141, 8143, 8147, 8150..8152, 8155, 8161..8162, 8170..8175, 8180, 8190, 8200, 8213..8215, 8221, 8231, 8241..8242, 8247, 8251..8252, 8254, 8256..8257, 8270, 8272..8273, 8280..8281, 8300, 8311..8320, 8322, 8330..8333, 8335, 8337, 8339..8347, 8350, 8370, 8381..8384, 8390, 8400..8403, 8406..8408, 8410, 8413, 8420, 8440, 8452, 8461, 8471, 8474, 8482, 8502, 8508, 8513..8514, 8521, 8524..8525, 8530, 8540..8543, 8551..8552, 8562, 8573, 8580..8586, 8588..8589, 8600, 8620, 8630..8631, 8634, 8640, 8650, 8670, 8680..8682, 8690..8692, 8700, 8710, 8714, 8721..8723, 8728, 8730, 8740, 8743..8746, 8761, 8770..8774, 8780, 8812..8813, 8830, 8832, 8853, 8855, 8857, 8894..8895, 8902, 8934..8935, 8941, 8950..8951, 8959..8960, 8964, 8970..8973, 8981, 8983, 8991, 9000, 9014..9015, 9020, 9045, 9051..9053, 9063, 9104..9105, 9110..9111, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9221..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9478, 9480, 9490, 9500..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8050, 8071, 8080..8081, 8160, 8500, 8519, 8720, 9061, 9064, 9070..9071, 9080] : [
        [2] : 3
    ],
    [8052, 8120, 8130, 8201, 8230, 8250, 8253, 8290, 8380, 8409, 8441, 8453, 8460, 8470, 8501, 8504, 8507, 8509, 8520, 8522, 8741..8742, 9050] : [
        [2, 3] : 3
    ],
    [8163] : [
        [2] : 3,
        [3] : 1
    ]
],
[250..253, 257..259] : [
    [8000..8005, 8013..8014, 8020..8021, 8030..8031, 8033, 8035, 8041, 8045, 8070, 8072..8074, 8150..8156, 8158, 8244, 8249, 8255, 8265, 8310, 8440, 8480..8481, 8490, 8500, 8510, 8550..8552, 8560, 8574, 8576, 8693, 8800, 8971, 8980, 9120, 9140, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8140, 8163, 8260, 8453, 8455, 8470, 8503] : [
        [2, 3] : 1
    ],
    [8011, 8015, 8034, 8042..8044, 8051, 8053..8054, 8075, 8078, 8085..8086, 8090..8095, 8097..8098, 8100, 8102, 8110, 8121..8124, 8131, 8141, 8143, 8145, 8147, 8149, 8157, 8160..8162, 8170..8175, 8180, 8190, 8214..8215, 8220..8221, 8231, 8242, 8247, 8251..8252, 8254, 8256..8257, 8262, 8270, 8272..8273, 8280..8281, 8300, 8311..8320, 8322..8323, 8330..8332, 8335, 8337, 8339..8347, 8350, 8360, 8370, 8381..8384, 8390, 8400..8403, 8406..8408, 8410, 8413, 8420, 8442, 8450, 8461, 8471, 8473..8474, 8502, 8508, 8512..8514, 8521, 8524..8525, 8530, 8540..8542, 8562, 8573, 8580..8586, 8588..8589, 8600, 8620, 8630..8631, 8634, 8640, 8650, 8670, 8680..8682, 8690..8692, 8700, 8710, 8721..8723, 8728, 8730, 8740, 8743..8746, 8761, 8770..8771, 8773..8774, 8780, 8812..8813, 8822, 8830, 8832, 8853, 8855, 8857, 8894..8895, 8902, 8934..8935, 8941, 8950..8951, 8959..8960, 8964, 8970, 8972..8973, 8981, 8983, 8991, 9000, 9014..9015, 9020, 9045, 9051..9053, 9063, 9104..9105, 9110..9111, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9221..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9478, 9480, 9490, 9500..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8050, 8052, 8076, 8120, 8130, 8210, 8213, 8230, 8250, 8253, 8261, 8263, 8290, 8380, 8409, 8460, 8501, 8504, 8507, 8509, 8520, 8522, 8543, 8741..8742, 9050] : [
        [2, 3] : 3
    ],
    [8071, 8240, 8246, 8441, 8452] : [
        [2] : 3,
        [3] : 1
    ],
    [8080..8081, 8144, 8201, 8211, 8519, 8720, 9061, 9064, 9070..9071, 9080] : [
        [2] : 3
    ],
    [8148] : [
        [2] : 1,
        [3] : 3
    ]
],
[254] : [
    [8000..8005, 8011..8015, 8020..8022, 8030..8035, 8041, 8043, 8051, 8071..8075, 8078, 8141, 8143, 8147, 8150..8158, 8211, 8231, 8240..8246, 8249, 8255, 8260, 8262, 8310, 8323, 8430, 8440..8441, 8450, 8452, 8471, 8480..8481, 8490, 8508, 8510, 8514, 8521, 8550..8552, 8560, 8562, 8570..8576, 8800..8806, 8890..8891, 8894..8896, 8971, 8980..8982, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8140, 8210, 8230, 8261, 8263, 8453, 8455, 8470, 8500..8501, 8503..8504] : [
        [2, 3] : 1
    ],
    [8148, 8507] : [
        [2] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[260] : [
    [8000..8005, 8012, 8014, 8020..8021, 8031..8033, 8041, 8045, 8052, 8070, 8072..8074, 8076, 8078, 8123, 8152..8154, 8156, 8240..8246, 8249, 8255, 8260, 8265, 8310, 8380, 8471, 8481, 8490, 8570..8571, 8574, 8576, 8693, 8721, 8730, 8743, 8746, 8771..8772, 8800, 8980, 9120, 9140, 9150, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9717, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8140, 8144, 8210..8211, 8213, 8220..8221, 8261..8263, 8470, 8480] : [
        [2, 3] : 1
    ],
    [8011, 8040, 8042..8043, 8054, 8091..8093, 8095, 8097..8098, 8100, 8102, 8110, 8121..8122, 8131, 8147, 8150..8151, 8155, 8157..8158, 8160..8162, 8170..8175, 8180, 8212, 8214..8215, 8251..8252, 8254, 8256..8257, 8270, 8272..8273, 8280..8281, 8290, 8300, 8311..8313, 8316..8319, 8330..8332, 8335, 8337, 8339..8347, 8350, 8370, 8384, 8390, 8400, 8402..8403, 8406..8407, 8413, 8420, 8452, 8472, 8474, 8502, 8508, 8513..8514, 8523..8524, 8530, 8540..8541, 8543, 8551..8552, 8573, 8580..8586, 8588..8589, 8600, 8620, 8623, 8630..8631, 8634, 8650, 8670, 8680..8682, 8690..8692, 8700, 8710, 8723, 8728, 8740, 8744, 8761, 8770, 8773..8774, 8780, 8812..8813, 8821, 8830, 8832, 8853, 8855, 8857, 8880, 8894..8895, 8902, 8934..8935, 8941, 8951, 8959..8960, 8964, 8970..8973, 8981, 8983, 8991, 9000, 9014..9015, 9020, 9045, 9051..9053, 9063, 9104..9105, 9110..9111, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9221..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9478, 9480, 9501..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8013, 8071, 8145, 8230, 8510, 8560, 8720, 8890, 8936] : [
        [2] : 3,
        [3] : 1
    ],
    [8080..8081, 8200, 8441, 8460, 8519, 8632, 9061, 9064, 9070..9071, 9080] : [
        [2] : 3
    ],
    [8120, 8163, 8250, 8253, 8408..8410, 8453, 8455, 8500..8501, 8503..8504, 8507, 8509, 8520..8522, 8550, 8562, 8640, 8742, 9050] : [
        [2, 3] : 3
    ],
    [8148] : [
        [2] : 1
    ]
],
[268..269] : [
    [8000..8005, 8012, 8014, 8020..8022, 8030..8033, 8035, 8041, 8045..8046, 8051, 8071, 8074, 8078, 8082, 8085..8086, 8090, 8094, 8123..8124, 8141..8142, 8150..8156, 8158, 8171..8175, 8180, 8214..8215, 8240..8246, 8249, 8255, 8262, 8265, 8310, 8380, 8430, 8440, 8471, 8481, 8500, 8512, 8551..8552, 8560, 8570..8576, 8693, 8711, 8714, 8721..8723, 8730, 8743, 8745..8746, 8771..8772, 8800, 8910, 8970..8971, 8976, 8980, 8991, 9120, 9133, 9140, 9150, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9717, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8072..8073, 8076, 8083, 8140, 8144, 8163, 8210..8211, 8213, 8220..8221, 8260..8261, 8263, 8453, 8455, 8470, 8480, 8490, 8503, 8542, 8720] : [
        [2, 3] : 1
    ],
    [8011, 8040, 8042..8043, 8053, 8101, 8121..8122, 8131, 8149, 8157, 8251..8252, 8254, 8256..8257, 8272..8273, 8280..8281, 8300, 8311..8313, 8316..8319, 8330..8332, 8335, 8337, 8339..8347, 8350, 8360, 8370, 8384, 8420, 8442, 8473..8474, 8502, 8508, 8524, 8530, 8541, 8580..8586, 8588..8589, 8593, 8600, 8620, 8623, 8630..8631, 8634, 8650, 8670, 8690..8692, 8700, 8710, 8728, 8744, 8773..8774, 8780, 8812..8813, 8821, 8830, 8853, 8855, 8857, 8880, 8894..8895, 8902, 8934..8935, 8951, 8959..8960, 8964, 8972..8973, 8981, 8983, 9000, 9014..9015, 9020, 9045, 9051..9053, 9063, 9104..9105, 9110..9111, 9124..9125, 9130, 9137, 9160, 9170, 9174, 9181..9187, 9192..9195, 9221..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9478, 9480, 9501..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8013, 8145, 8160, 8162, 8170, 8200, 8230, 8441, 8452, 8510, 8550, 8890, 8936] : [
        [2] : 3,
        [3] : 1
    ],
    [8077, 8148] : [
        [2] : 1
    ],
    [8080, 8250, 8253, 8501, 8504, 8507, 8509, 8520..8522, 8540, 8640, 9050] : [
        [2, 3] : 3
    ],
    [8081] : [
        [2] : 1,
        [3] : 3
    ],
    [8120, 8290, 8320, 8408, 8410, 8460, 8519, 8543, 8562, 8632, 9061, 9064, 9070..9071, 9080] : [
        [2] : 3
    ]
],
[300] : [
    [8000..8005, 8011..8015, 8020..8023, 8030..8035, 8051, 8071..8075, 8078, 8082..8084, 8121..8124, 8131, 8141, 8143, 8147, 8200, 8255, 8260, 8262, 8430, 8480..8481, 8560, 8562, 8570..8575, 8721..8723, 8730, 8743, 8745..8746, 8770..8772, 8800..8806, 8810..8811, 8813..8815, 8825, 8830, 8890..8891, 8894..8896, 8900..8902, 8910, 8912, 8920..8921, 8940..8941, 9045, 9220..9221, 9370..9372, 9500..9505, 9520..9523, 9540, 9560..9561, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140, 8201, 8261, 8263, 8720] : [
        [2, 3] : 1
    ],
    [9250..9252, 9260..9261, 9270, 9282, 9290, 9300, 9302, 9310, 9312, 9321, 9330, 9340..9342, 9440..9442] : [
        [3] : 3
    ]
],
[301, 310..313, 318] : [
    [8000..8005, 8011..8015, 8020..8022, 8030..8035, 8051, 8071..8075, 8078, 8082..8086, 8121..8124, 8131, 8141, 8143, 8147, 8200, 8255, 8260, 8262, 8430, 8480..8481, 8560, 8562, 8570..8575, 8721..8723, 8730, 8743, 8745..8746, 8770..8772, 8800..8806, 8810..8811, 8813..8815, 8825, 8830, 8890..8891, 8894..8896, 8900..8902, 8910, 8912, 8920..8921, 8940..8941, 9045, 9370..9372, 9500..9505, 9520..9523, 9540, 9560..9561, 9571, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140, 8201, 8261, 8263, 8720] : [
        [2, 3] : 1
    ],
    [9250..9252, 9260..9261, 9270, 9282, 9290, 9300, 9302, 9310, 9312, 9321, 9330, 9340..9342, 9440..9442] : [
        [3] : 3
    ]
],
[319] : [
    [8000..8005, 8011..8015, 8020..8023, 8030..8035, 8051, 8071..8075, 8078, 8082..8086, 8121..8124, 8131, 8141, 8143, 8147, 8200, 8255, 8260, 8262, 8430, 8480..8481, 8560, 8562, 8570..8575, 8721..8723, 8730, 8743, 8745..8746, 8770..8772, 8800..8806, 8810..8811, 8813..8815, 8825, 8830, 8890..8891, 8894..8896, 8900..8902, 8910, 8912, 8920..8921, 8940..8941, 9045, 9370..9372, 9500..9505, 9520..9523, 9540, 9560..9561, 9571, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140, 8201, 8261, 8263, 8720] : [
        [2, 3] : 1
    ],
    [9250..9252, 9260..9261, 9270, 9282, 9290, 9300, 9302, 9310, 9312, 9321, 9330, 9340..9342, 9440..9442] : [
        [3] : 3
    ]
],
[320..323, 328..329] : [
    [8000..8005, 8011..8015, 8020..8022, 8030..8035, 8041, 8043, 8051, 8071..8075, 8078, 8082..8084, 8121..8124, 8141, 8143, 8147, 8200, 8255, 8260, 8262, 8430, 8480..8481, 8560, 8562, 8800..8806, 8810..8811, 8813..8815, 8825, 8980..8982, 9220..9221, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8120, 8140, 8201, 8261, 8263] : [
        [2, 3] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[339] : [
    [8000..8005, 8011..8015, 8020..8022, 8030..8035, 8041..8046, 8051, 8071..8075, 8078, 8141, 8143, 8147, 8200, 8250, 8252..8255, 8260, 8262, 8800..8806, 8810..8811, 8813..8815, 8825, 8830, 8972..8973, 9220..9221, 9699, 9823] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8140, 8201, 8261, 8263] : [
        [2, 3] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[340..343, 348..349] : [
    [8000..8005, 8011..8015, 8020..8023, 8030..8035, 8041..8046, 8051, 8071..8075, 8078, 8083, 8121..8124, 8141, 8143, 8147, 8200, 8231, 8240..8246, 8249, 8251..8252, 8254..8257, 8260, 8265, 8310, 8320, 8323, 8333, 8430, 8480..8481, 8490, 8510, 8550..8551, 8560, 8562, 8570..8576, 8714, 8800..8806, 8810..8811, 8813..8815, 8825, 8830, 8842, 8890..8891, 8894..8896, 8900..8902, 8910, 8912, 8972..8973, 8980..8982, 8990..8991, 9051..9053, 9120, 9133, 9137, 9140, 9174, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9678..9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8120, 8140, 8201, 8230, 8250, 8253, 9050] : [
        [2, 3] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[379] : [
    [8000..8005, 8011..8015, 8020..8023, 8070, 8240..8246, 8249, 8580..8586, 8588..8589, 9086, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9679..9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010] : [
        [2, 3] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[380] : [
    [9120, 9137, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9678..9680, 9684, 9687..9691, 9695, 9698..9702, 9705, 9708..9709, 9712, 9714..9719, 9724, 9727..9729, 9735, 9737..9738, 9749, 9751, 9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[381..382, 388] : [
    [8000..8005, 8680, 8693, 8800..8806, 8810..8811, 8813..8815, 8825, 8830, 8850..8855, 8857..8859, 8890..8891, 8894..8896, 8900..8902, 8910, 8912, 8990..8991, 9060..9065, 9070..9072, 9080..9085, 9100..9101, 9105, 9490, 9500..9505, 9540, 9560..9561, 9571, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9678..9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8012..8014, 8020, 8022, 8030, 8032..8033, 8040..8041, 8046, 8050..8053, 8070..8078, 8080..8081, 8083..8086, 8090..8091, 8094, 8097, 8103, 8120..8124, 8130..8131, 8140, 8143..8145, 8147..8148, 8154, 8160, 8162..8163, 8170, 8180, 8200..8201, 8210..8213, 8215, 8220..8221, 8230..8231, 8240, 8243..8245, 8247, 8249..8250, 8252..8256, 8260..8263, 8270, 8272, 8290, 8310, 8312, 8316, 8319..8320, 8322..8323, 8330, 8335, 8340..8345, 8370, 8380..8382, 8384, 8390, 8400..8402, 8406..8410, 8413, 8430, 8440..8442, 8444, 8450, 8452..8453, 8455, 8460..8462, 8470..8474, 8480..8484, 8490, 8500..8504, 8507..8510, 8514, 8520..8525, 8540..8543, 8550..8551, 8560..8562, 8570, 8573..8575, 8580..8582, 8584, 8620, 8631..8632, 8640, 8650, 8670, 8720..8723, 8727..8728, 8730, 8740..8746, 8760..8761, 8770..8772, 8774, 8780, 8940..8941] : [
        [2, 3] : 3
    ],
    [8011, 8015, 8021, 8023, 8031, 8034..8035, 8042..8045, 8054, 8060, 8082, 8092..8093, 8095, 8098, 8100..8102, 8110, 8141..8142, 8146, 8149..8153, 8155..8158, 8161, 8171..8175, 8190, 8214, 8241..8242, 8248, 8251, 8257, 8264..8265, 8271, 8273, 8280..8281, 8300, 8311, 8313..8315, 8317..8318, 8325, 8331..8333, 8336..8337, 8339, 8346..8347, 8350, 8360..8361, 8373, 8383, 8392, 8403, 8405, 8420, 8443, 8451, 8463, 8512..8513, 8530, 8552, 8571..8572, 8576, 8583, 8585..8586, 8588..8593, 8600, 8610, 8621..8623, 8630, 8633..8634, 8642, 8726, 8750, 8773, 8790, 9440..9442] : [
        [3] : 3
    ],
    [8519] : [
        [2] : 3
    ]
],
[383] : [
    [8000..8005, 8680, 8693, 8800..8806, 8810..8811, 8813..8815, 8825, 8830, 8850..8855, 8857..8859, 8890..8891, 8894..8896, 8900..8902, 8910, 8912, 8990..8991, 9060..9065, 9070..9072, 9080..9085, 9100..9101, 9105, 9490, 9500..9505, 9540, 9560..9561, 9571, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9678..9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8012..8014, 8020, 8022, 8030, 8032..8033, 8040..8041, 8046, 8050..8053, 8070..8078, 8080..8081, 8083..8086, 8090..8091, 8094, 8097, 8103, 8120..8124, 8130..8131, 8140, 8143..8145, 8147..8148, 8154, 8160, 8162..8163, 8170, 8180, 8200..8201, 8210..8213, 8215, 8220..8221, 8230..8231, 8243..8245, 8247, 8249..8250, 8252..8256, 8260..8263, 8270, 8272, 8290, 8310, 8312, 8316, 8319..8320, 8322..8323, 8330, 8335, 8340..8345, 8370, 8380..8382, 8384, 8390, 8400..8402, 8406..8410, 8413, 8430, 8440..8442, 8444, 8450, 8452..8453, 8455, 8460..8462, 8470..8474, 8480..8484, 8490, 8500..8504, 8507..8510, 8514, 8520..8525, 8540..8543, 8550..8551, 8560..8562, 8570, 8573..8575, 8580..8582, 8584, 8620, 8631..8632, 8640, 8650, 8670, 8720..8723, 8727..8728, 8730, 8740..8746, 8760..8761, 8770..8772, 8774, 8780, 8940..8941] : [
        [2, 3] : 3
    ],
    [8011, 8015, 8021, 8023, 8031, 8034..8035, 8042..8045, 8054, 8060, 8082, 8092..8093, 8095, 8098, 8100..8102, 8110, 8141..8142, 8146, 8149..8153, 8155..8158, 8161, 8171..8175, 8190, 8214, 8241..8242, 8248, 8251, 8257, 8264..8265, 8271, 8273, 8280..8281, 8300, 8311, 8313..8315, 8317..8318, 8325, 8331..8333, 8336..8337, 8339, 8346..8347, 8350, 8360..8361, 8373, 8383, 8392, 8403, 8405, 8420, 8443, 8451, 8463, 8512..8513, 8530, 8552, 8571..8572, 8576, 8583, 8585..8586, 8588..8593, 8600, 8610, 8621..8623, 8630, 8633..8634, 8642, 8726, 8750, 8773, 8790, 9440..9442] : [
        [3] : 3
    ],
    [8519] : [
        [2] : 3
    ]
],
[384] : [
    [8000..8005, 8800..8806, 8810..8811, 8813..8815, 8825, 8830, 8973, 9051..9053, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9678, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8012..8014, 8020, 8022, 8030, 8032..8033, 8040..8041, 8046, 8050..8053, 8070..8078, 8080..8081, 8083..8086, 8090..8091, 8094, 8097, 8103, 8120..8124, 8130..8131, 8140, 8143..8145, 8147..8148, 8154, 8160, 8162..8163, 8170, 8180, 8200..8201, 8210..8213, 8215, 8220..8221, 8230..8231, 8240, 8243..8245, 8247, 8249..8250, 8252..8256, 8260..8263, 8270, 8272, 8290, 8310, 8312, 8316, 8319..8320, 8322..8323, 8330, 8335, 8340..8345, 8370, 8380..8382, 8384, 8390, 8400..8402, 8406..8410, 8413, 8430, 8440..8442, 8444, 8450, 8452..8453, 8455, 8460..8462, 8470..8474, 8480..8484, 8490, 8500..8504, 8507..8510, 8514, 8520..8525, 8540..8543, 8550..8551, 8560..8562, 8570, 8573..8575, 8580..8582, 8584, 8620, 8631..8632, 8640, 8650, 8670, 8720..8723, 8727..8728, 8730, 8740..8746, 8760..8761, 8770..8772, 8774, 8780, 8940..8941] : [
        [2, 3] : 3
    ],
    [8011, 8015, 8021, 8023, 8031, 8034..8035, 8042..8045, 8054, 8060, 8082, 8092..8093, 8095, 8098, 8100..8102, 8110, 8141..8142, 8146, 8149..8153, 8155..8158, 8161, 8171..8175, 8190, 8214, 8241..8242, 8248, 8251, 8257, 8264..8265, 8271, 8273, 8280..8281, 8300, 8311, 8313..8315, 8317..8318, 8325, 8331..8333, 8336..8337, 8339, 8346..8347, 8350, 8360..8361, 8373, 8383, 8392, 8403, 8405, 8420, 8443, 8451, 8463, 8512..8513, 8530, 8552, 8571..8572, 8576, 8583, 8585..8586, 8588..8593, 8600, 8610, 8621..8623, 8630, 8633..8634, 8642, 8726, 8750, 8773, 8790, 9440..9442] : [
        [3] : 3
    ],
    [8519] : [
        [2] : 3
    ],
    [9050] : [
        [2, 3] : 1
    ]
],
[390, 398..399] : [
    [8000..8005, 8011..8015, 8020..8022, 8030..8035, 8041, 8043, 8051, 8071..8075, 8078, 8121..8124, 8141, 8143, 8147, 8200, 8231, 8240..8246, 8249..8255, 8260, 8262, 8310, 8320, 8323, 8430, 8480..8481, 8490, 8510, 8550..8551, 8560, 8562, 8570..8576, 8800..8806, 8810..8811, 8813..8815, 8825, 8830, 8890..8891, 8894..8896, 8900..8902, 8910, 8912, 8980..8982, 8990..8991, 9080..9085, 9120, 9364..9365, 9823] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8120, 8140, 8201, 8230, 8261, 8263] : [
        [2, 3] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[400..403, 408..414, 418..419] : [
    [8000..8005, 8800..8803, 8805, 8830, 8840, 8890..8891, 8912, 8982, 8990, 9040..9041, 9043, 9065, 9084..9085, 9120, 9133, 9180..9187, 9192..9195, 9220..9222, 9230, 9240, 9242..9243, 9250, 9260..9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9364, 9366..9368, 9370..9372, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9716, 9719, 9724, 9727..9729, 9731..9732, 9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8012..8014, 8020, 8022, 8030, 8032..8033, 8040..8041, 8046, 8050..8053, 8075..8078, 8080..8081, 8083..8086, 8090..8091, 8094, 8097, 8103, 8120..8124, 8130..8131, 8140, 8143..8145, 8147..8148, 8154, 8160, 8162..8163, 8170, 8180, 8200..8201, 8210..8213, 8215, 8220..8221, 8230..8231, 8240, 8243..8247, 8249..8250, 8252..8256, 8260..8263, 8270, 8272, 8290, 8310, 8312, 8316, 8319..8320, 8322..8323, 8330, 8335, 8340..8345, 8370, 8380..8382, 8384, 8390, 8400..8402, 8406..8410, 8413, 8430, 8440..8442, 8444, 8450, 8452..8453, 8455, 8460..8462, 8470..8474, 8480..8484, 8490, 8500..8504, 8507..8510, 8514, 8520..8525, 8540..8543, 8550..8551, 8560..8562, 8570, 8573..8575, 8580..8582, 8584, 8620, 8631..8632, 8640, 8650, 8670, 8720..8723, 8727..8728, 8730, 8740..8746, 8760..8761, 8770..8772, 8774, 8780, 8940..8941, 9050, 9061, 9070] : [
        [2, 3] : 3
    ],
    [8011, 8015, 8021, 8023, 8031, 8034..8035, 8042..8045, 8054, 8060, 8072..8074, 8082, 8092..8093, 8095, 8098, 8100..8102, 8110, 8141..8142, 8146, 8149..8153, 8155..8158, 8161, 8171..8175, 8190, 8214, 8241..8242, 8248, 8251, 8257, 8264..8265, 8271, 8273, 8280..8281, 8300, 8311, 8313..8315, 8317..8318, 8325, 8331..8333, 8336..8337, 8339, 8346..8347, 8350, 8360..8361, 8373, 8383, 8392, 8403, 8405, 8420, 8443, 8451, 8463, 8512..8513, 8530, 8552, 8571..8572, 8576, 8583, 8585..8586, 8588..8593, 8600, 8610, 8621..8623, 8630, 8633..8634, 8642, 8680..8682, 8690..8692, 8700, 8712, 8726, 8750, 8773, 8790, 8812..8813, 8823, 8832, 8853, 8855, 8857, 8893..8895, 8902, 8930..8931, 8933..8936, 8950..8951, 8959..8960, 8964, 8970..8973, 8980..8981, 8983, 8991, 9000, 9014..9015, 9020, 9045, 9051..9053, 9060, 9062..9063, 9072, 9081..9083, 9086, 9090, 9100..9102, 9104..9105, 9110..9111, 9121, 9124, 9130..9131, 9137, 9161, 9170, 9174, 9200, 9210, 9251..9252, 9300, 9312, 9321, 9340, 9362..9363, 9365, 9380..9382, 9385, 9390..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9478, 9480, 9490, 9500..9505, 9508..9513, 9520..9523, 9532..9533, 9539, 9560, 9571] : [
        [3] : 3
    ],
    [8070..8071, 8519] : [
        [2] : 3
    ],
    [9064, 9071, 9080] : [
        [2] : 3,
        [3] : 1
    ]
],
[420..421, 424] : [
    [9366..9368, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9678..9680, 9684, 9687..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714, 9719, 9724, 9727..9729, 9731..9735, 9737..9738, 9740..9742, 9750..9751, 9754..9762, 9800..9801, 9805..9809, 9811..9820, 9823, 9826..9828, 9831..9837, 9840, 9860..9861, 9863, 9865..9867, 9869..9879, 9891, 9895..9898, 9910..9912, 9920, 9930..9931, 9940, 9945..9946, 9948, 9950, 9960..9965, 9971, 9975, 9980, 9982..9987, 9989, 9991..9993] : [
        [3] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[422] : [
    [9120, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9678..9680, 9684, 9687..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9716, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[423] : [
    [9440..9442] : [
        [3] : 3
    ],
    [9590, 9699, 9740..9741, 9750, 9754..9758, 9823] : [
        [3] : 1
    ]
],
[440..449] : [
    [8102, 8110, 8141, 8143, 8147, 8190, 8200, 8231, 8247, 8255, 8260, 8262, 8310, 8390, 8400..8403, 8407..8410, 8413, 8420, 8430, 8440, 8480..8481, 8542, 8560, 8562, 8570..8575, 8721..8723, 8730, 8740, 8744..8746, 8761, 8770..8772, 8780, 8800..8806, 8810..8811, 8813..8815, 8825, 8830, 8832..8833, 8850..8855, 8857..8858, 8890..8891, 8894..8896, 8910, 8912, 8940..8941, 8980..8982, 9120, 9130, 9133, 9140, 9150, 9560..9561, 9590..9591, 9596..9597, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687, 9690..9691, 9695, 9698..9702, 9705, 9708..9709, 9718, 9725..9729, 9751, 9823, 9837] : [
        [3] : 1
    ],
    [8140, 8201, 8230, 8261, 8263, 8720, 8741..8743] : [
        [2, 3] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[470..476, 478..479] : [
    [8000..8005, 8680, 8693, 8800..8806, 8810..8811, 8813..8815, 8825, 8830, 8832..8833, 8840, 8850..8855, 8857..8858, 8890..8891, 8894..8896, 8900..8902, 8910, 8912, 8920..8921, 8950..8951, 8990..8991, 9040..9044, 9080..9085, 9120, 9130, 9133, 9140, 9150, 9170, 9240, 9242..9243, 9251..9252, 9364..9365, 9370..9372, 9490, 9500..9505, 9540, 9542, 9560..9561, 9571, 9580..9581, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9708, 9712, 9714..9715, 9719, 9724, 9726..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9930, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8012..8014, 8020, 8022, 8030, 8032..8033, 8040..8041, 8046, 8050..8053, 8070..8078, 8080..8081, 8083..8086, 8090..8091, 8094, 8097, 8103, 8120..8124, 8130..8131, 8140, 8143..8145, 8147..8148, 8154, 8160, 8162..8163, 8170, 8180, 8200..8201, 8210..8213, 8215, 8220..8221, 8230..8231, 8240, 8243..8247, 8249..8250, 8252..8256, 8260..8263, 8270, 8272, 8290, 8310, 8312, 8316, 8319..8320, 8322..8323, 8330, 8335, 8340..8345, 8370, 8380..8382, 8384, 8390, 8400..8402, 8406..8410, 8413, 8430, 8440..8442, 8444, 8450, 8452..8453, 8455, 8460..8462, 8470..8474, 8480..8484, 8490, 8500..8504, 8507..8510, 8514, 8520..8525, 8540..8543, 8550..8551, 8560..8562, 8570, 8573..8575, 8580..8582, 8584, 8620, 8631..8632, 8640, 8650, 8670, 8720..8723, 8727..8728, 8730, 8740..8746, 8760..8761, 8770..8772, 8774, 8780, 8940..8941] : [
        [2, 3] : 3
    ],
    [8011, 8015, 8021, 8023, 8031, 8034..8035, 8042..8045, 8054, 8060, 8082, 8092..8093, 8095, 8098, 8100..8102, 8110, 8141..8142, 8146, 8149..8153, 8155..8158, 8161, 8171..8175, 8190, 8214, 8241..8242, 8248, 8251, 8257, 8264..8265, 8271, 8273, 8280..8281, 8300, 8311, 8313..8315, 8317..8318, 8325, 8331..8333, 8336..8337, 8339, 8346..8347, 8350, 8360..8361, 8373, 8383, 8392, 8403, 8405, 8420, 8443, 8451, 8463, 8512..8513, 8530, 8552, 8571..8572, 8576, 8583, 8585..8586, 8588..8593, 8600, 8610, 8621..8623, 8630, 8633..8634, 8642, 8726, 8750, 8773, 8790, 9440..9442] : [
        [3] : 3
    ],
    [8519] : [
        [2] : 3
    ]
],
[480..482, 488] : [
    [8000..8005, 8460..8461, 8680, 8693, 8714, 8800..8806, 8810..8811, 8813..8815, 8825, 8830, 8840, 8850..8855, 8857..8858, 8890..8891, 8894..8896, 8900..8902, 8910, 8912, 8920..8921, 8930..8931, 8936, 8950..8951, 8990..8991, 9051..9053, 9060, 9064..9065, 9070..9072, 9080..9085, 9110, 9120, 9130, 9133, 9150, 9490, 9500..9505, 9540, 9560..9561, 9571, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9930, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8720..8723, 8727..8728, 8730, 8740..8746, 8760..8761, 8770..8772, 8774, 8780] : [
        [2, 3] : 3
    ],
    [8726, 8750, 8773, 8790, 9440..9442] : [
        [3] : 3
    ],
    [9050] : [
        [2, 3] : 1
    ]
],
[490..496, 498..499] : [
    [8000..8005, 8711, 8714, 8800..8806, 8810..8811, 8814..8815, 8825, 8830, 8832, 8840, 8842, 8850..8852, 8854, 8858..8859, 8890..8891, 8896, 8900..8901, 8910, 8912, 8920..8921, 8936, 8940, 8963, 8982, 8990, 9040..9041, 9043..9044, 9120, 9133, 9137, 9140, 9150, 9180, 9231, 9240, 9252, 9364, 9366..9368, 9490, 9500, 9540, 9542, 9561, 9580..9581, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9708, 9712, 9714..9715, 9719, 9724, 9726..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9930, 9965..9968, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070..8071, 8076, 8081, 8120, 8130, 8140, 8144, 8163, 8201, 8210..8211, 8213, 8230, 8250, 8253, 8261, 8263, 8380, 8409, 8441, 8453, 8455, 8460, 8470, 8480, 8500..8501, 8503..8504, 8507, 8509, 8520, 8522, 8721..8723, 8727..8728, 8730, 8740..8746, 8760..8761, 8770..8772, 8774, 8780, 9050, 9061, 9064, 9070..9071, 9080] : [
        [2, 3] : 3
    ],
    [8011..8015, 8020..8023, 8030..8035, 8041..8046, 8051, 8054, 8072..8075, 8078, 8082..8086, 8090..8095, 8097..8098, 8100, 8102..8103, 8110, 8121..8124, 8131, 8141..8143, 8145, 8147, 8150..8156, 8158, 8160..8162, 8170..8175, 8180, 8190, 8200, 8214..8215, 8220..8221, 8231, 8240..8245, 8249, 8251..8252, 8254..8257, 8260, 8262, 8265, 8270, 8272..8273, 8280..8281, 8290, 8300, 8310..8320, 8322..8323, 8330..8333, 8335, 8337, 8339..8347, 8350, 8370, 8381..8384, 8390, 8400..8403, 8406..8408, 8410, 8413, 8420, 8430, 8440, 8450, 8452, 8461, 8474, 8481..8482, 8490, 8502, 8508, 8510, 8512..8514, 8521, 8523..8525, 8530, 8540..8543, 8550..8552, 8560, 8570..8576, 8580..8586, 8588..8589, 8600, 8620, 8630..8631, 8634, 8640, 8650, 8670, 8680..8682, 8690..8692, 8700, 8710, 8713, 8726, 8750, 8773, 8790, 8812..8813, 8820..8823, 8831, 8833, 8835..8836, 8841, 8853, 8855..8857, 8860, 8893..8895, 8897, 8902, 8934..8935, 8941, 8950..8951, 8959..8960, 8964, 8970..8973, 8980..8981, 8983, 8991, 9000, 9014..9015, 9020, 9045, 9051..9053, 9055, 9060, 9062..9063, 9065, 9072, 9081..9086, 9090, 9100..9102, 9104..9105, 9110..9111, 9124..9125, 9130, 9136, 9161, 9170..9171, 9174, 9181..9184, 9186..9187, 9192..9195, 9221..9222, 9230, 9242, 9250, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9373, 9380..9382, 9385, 9390..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9478, 9480, 9501..9505, 9508..9513, 9520..9523, 9538..9539, 9550, 9560, 9562, 9571] : [
        [3] : 3
    ],
    [8077, 8080, 8148, 8519, 8720] : [
        [2] : 3
    ]
],
[500..506, 508..509] : [
    [8000..8005, 8013, 8035, 8041, 8045, 8074, 8140, 8147, 8200, 8246, 8249, 8255, 8310, 8314..8315, 8410, 8430, 8480..8481, 8490, 8508, 8514, 8525, 8562, 8571..8572, 8574..8575, 8800..8801, 8832, 8836, 8850, 8890..8891, 8982..8983, 9020, 9120, 9580, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8070, 8201, 8401, 8500, 8502..8504, 8507, 8509, 8520, 8522..8523, 8540, 8543] : [
        [2, 3] : 1
    ],
    [8011..8012, 8014..8015, 8020..8021, 8030..8034, 8040, 8042..8044, 8054, 8060, 8072..8073, 8075, 8078, 8082, 8085..8086, 8091..8095, 8097..8098, 8100, 8102, 8121..8124, 8131, 8141..8143, 8145, 8150..8153, 8155..8156, 8158, 8160..8162, 8170..8175, 8180, 8190, 8214..8215, 8220..8221, 8231, 8241..8242, 8244..8245, 8247, 8251..8252, 8254, 8256..8257, 8262, 8265, 8270, 8272..8273, 8280..8281, 8300, 8311..8313, 8316..8319, 8322, 8330..8333, 8335, 8337, 8339..8340, 8344..8347, 8350, 8370, 8381..8384, 8390, 8400, 8402..8403, 8407..8408, 8420, 8440, 8450, 8461, 8474, 8512, 8551..8552, 8576, 8580..8586, 8588..8589, 8600, 8620, 8630..8631, 8634, 8640, 8650, 8670, 8680..8682, 8690..8692, 8700, 8710, 8723, 8728, 8740, 8744, 8746, 8761, 8770, 8773..8774, 8780, 8805, 8812..8813, 8830, 8853, 8855, 8857, 8894..8895, 8902, 8930..8931, 8933..8936, 8950..8951, 8959..8960, 8964, 8970..8973, 8981, 8991, 9000, 9014, 9045, 9051..9053, 9062..9063, 9090, 9104..9105, 9110..9111, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9221..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9478, 9480, 9490, 9500..9505, 9509..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8051..8052, 8071, 8076, 8120, 8130, 8144, 8154, 8163, 8210, 8213, 8243, 8250, 8253, 8261, 8263, 8320, 8342..8343, 8380, 8406, 8409, 8441, 8452, 8455, 8460, 8542, 8741..8743, 9050, 9061] : [
        [2, 3] : 3
    ],
    [8077, 8080..8081, 8148, 8453, 8510, 8720, 8825, 9064, 9070..9071, 9080] : [
        [2] : 3
    ],
    [8211, 8240, 8260, 8290, 8470, 8521, 8524, 8541, 8550, 8560, 8570, 8573] : [
        [2] : 3,
        [3] : 1
    ],
    [8230] : [
        [2] : 1,
        [3] : 3
    ],
    [8501, 8519] : [
        [2] : 1
    ]
],
[510..512, 518] : [
    [8000..8005, 8013, 8020, 8041, 8072..8073, 8078, 8082, 8084..8086, 8092..8095, 8097..8098, 8100, 8102, 8110, 8120, 8122, 8124, 8200..8201, 8240, 8246..8247, 8249, 8255, 8260, 8310, 8323, 8400..8401, 8406, 8410, 8413, 8481, 8500, 8560, 8562, 8570, 8574, 8730, 8741, 8745, 8772, 8800..8805, 8832, 8841, 8890..8891, 8896, 8900, 8910, 8933, 8940, 8980, 9020, 9100..9101, 9120, 9140, 9364, 9540, 9542, 9580, 9590..9591, 9596..9597, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9702, 9705, 9708..9709, 9712, 9714..9715, 9718..9719, 9724..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8052, 8070..8071, 8140, 8409, 8542, 8720, 8723, 8740, 8742..8743, 8746] : [
        [2, 3] : 1
    ],
    [8011, 8014, 8021..8022, 8031, 8034..8035, 8042..8044, 8054, 8121, 8141..8142, 8145, 8148, 8150..8153, 8155..8156, 8158, 8160..8162, 8170..8175, 8180, 8190, 8214..8215, 8220..8221, 8230, 8241..8243, 8245, 8251..8252, 8254, 8256..8257, 8262, 8265, 8270, 8272..8273, 8280..8281, 8290, 8300, 8311..8319, 8322, 8330..8333, 8335, 8337, 8339..8347, 8350, 8370, 8381..8383, 8408, 8420, 8440, 8452, 8461, 8474, 8507, 8510, 8512..8513, 8521, 8530, 8551..8552, 8571..8573, 8580..8586, 8588..8589, 8600, 8620, 8630..8631, 8634, 8640, 8650, 8670, 8680, 8690..8692, 8700, 8710, 8728, 8773..8774, 8812..8813, 8823, 8826, 8830, 8833, 8853, 8855, 8857, 8894..8895, 8902, 8934..8935, 8959..8960, 8964, 8970..8973, 8981, 8991, 9000, 9014..9015, 9045, 9051..9053, 9062..9063, 9065, 9072, 9090, 9104..9105, 9111, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9220..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9478, 9480, 9490, 9501..9502, 9504..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8012, 8030, 8080, 8163, 8210..8211, 8213, 8231, 8250, 8253, 8261, 8263, 8453, 8455, 8460, 8540..8541, 8543, 8744, 9050, 9061] : [
        [2, 3] : 3
    ],
    [8051, 8090..8091, 8144, 8480, 8721, 9064, 9071] : [
        [2] : 3,
        [3] : 1
    ],
    [8076..8077] : [
        [2] : 1
    ],
    [8081] : [
        [2] : 1,
        [3] : 3
    ],
    [8083, 8123, 8441, 8470, 8761, 9070, 9080] : [
        [2] : 3
    ]
],
[519] : [
    [8000..8005, 8013, 8020, 8041, 8072..8073, 8078, 8082, 8084..8086, 8092..8095, 8097..8098, 8100, 8102, 8110, 8120, 8122, 8124, 8200..8201, 8240, 8246..8247, 8249, 8255, 8260, 8310, 8323, 8400..8401, 8406, 8410, 8413, 8481, 8500, 8560, 8562, 8570, 8574, 8730, 8741, 8745, 8772, 8800..8805, 8832, 8841, 8890..8891, 8896, 8900, 8910, 8933, 8940, 8980, 9020, 9092, 9100..9101, 9120, 9140, 9364, 9540, 9542, 9580, 9590..9591, 9596..9597, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9702, 9705, 9708..9709, 9712, 9714..9715, 9718..9719, 9724..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8052, 8070..8071, 8140, 8409, 8542, 8720, 8723, 8740, 8742..8743, 8746] : [
        [2, 3] : 1
    ],
    [8011, 8014, 8021..8022, 8031, 8034..8035, 8042..8044, 8054, 8121, 8141..8142, 8145, 8148, 8150..8153, 8155..8156, 8158, 8160..8162, 8170..8175, 8180, 8190, 8214..8215, 8220..8221, 8230, 8241..8243, 8245, 8251..8252, 8254, 8256..8257, 8262, 8265, 8270, 8272..8273, 8280..8281, 8290, 8300, 8311..8319, 8322, 8330..8333, 8335, 8337, 8339..8347, 8350, 8370, 8381..8383, 8408, 8420, 8440, 8452, 8461, 8474, 8507, 8510, 8512..8513, 8521, 8530, 8551..8552, 8571..8573, 8580..8586, 8588..8589, 8600, 8620, 8630..8631, 8634, 8640, 8650, 8670, 8680, 8690..8692, 8700, 8710, 8728, 8773..8774, 8812..8813, 8823, 8826, 8830, 8833, 8853, 8855, 8857, 8894..8895, 8902, 8934..8935, 8959..8960, 8964, 8970..8973, 8981, 8991, 9000, 9014..9015, 9045, 9051..9053, 9062..9063, 9065, 9072, 9090, 9104..9105, 9111, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9220..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9478, 9480, 9490, 9501..9502, 9504..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8012, 8030, 8080, 8163, 8210..8211, 8213, 8231, 8250, 8253, 8261, 8263, 8453, 8455, 8460, 8540..8541, 8543, 8744, 9050, 9061] : [
        [2, 3] : 3
    ],
    [8051, 8090..8091, 8144, 8480, 8721, 9064, 9071] : [
        [2] : 3,
        [3] : 1
    ],
    [8076..8077] : [
        [2] : 1
    ],
    [8081] : [
        [2] : 1,
        [3] : 3
    ],
    [8083, 8123, 8441, 8470, 8761, 9070, 9080] : [
        [2] : 3
    ]
],
[529] : [
    [8000..8005, 8013, 8015, 8020, 8041, 8074..8075, 8082, 8084..8086, 8098, 8120, 8122..8123, 8154, 8200, 8240, 8244, 8246, 8249, 8255, 8262, 8265, 8310, 8323, 8380, 8383..8384, 8480, 8482..8483, 8562, 8574, 8721, 8723, 8730, 8745, 8771..8772, 8800..8805, 8832, 8890..8891, 8896, 8900, 8910, 8933, 8940, 8950, 8980, 9020, 9100..9101, 9110, 9120, 9140, 9364, 9540, 9542, 9580, 9590..9591, 9596..9597, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9702, 9705, 9708..9709, 9712, 9714..9715, 9718..9719, 9724..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8052, 8070, 8076, 8140, 8261, 8720] : [
        [2, 3] : 1
    ],
    [8011, 8014, 8021..8022, 8030..8031, 8034..8035, 8042..8044, 8046, 8054, 8100, 8102, 8110, 8121, 8124, 8131, 8141..8142, 8145, 8147, 8150..8153, 8155..8156, 8158, 8160..8162, 8170..8175, 8180, 8190, 8214..8215, 8220..8221, 8230..8231, 8241..8243, 8245, 8251..8252, 8254, 8256..8257, 8272..8273, 8280..8281, 8290, 8300, 8311..8319, 8322, 8330..8333, 8335, 8337, 8339..8347, 8350, 8370, 8381..8382, 8390, 8400, 8402..8403, 8406..8408, 8413, 8420, 8430, 8440, 8450, 8452, 8473..8474, 8508, 8510, 8512..8514, 8521, 8523..8525, 8530, 8540..8541, 8543, 8550..8552, 8571..8573, 8580..8586, 8588..8589, 8600, 8620, 8630..8631, 8634, 8640, 8650, 8670, 8680..8682, 8690..8692, 8700, 8710, 8722, 8728, 8744, 8761, 8773..8774, 8812..8813, 8821, 8830, 8841, 8853, 8855, 8857, 8860, 8894..8895, 8902, 8934..8935, 8941, 8959..8960, 8964, 8970..8973, 8981, 8983, 8991, 9000, 9014..9015, 9045, 9051..9053, 9062..9063, 9065, 9072, 9090, 9104..9105, 9111, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9220..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9472, 9474..9478, 9480, 9490, 9500..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8051, 8072..8073, 8144, 8560, 9064, 9071] : [
        [2] : 3,
        [3] : 1
    ],
    [8071, 8080, 8083, 8211, 8441, 8519, 9070, 9080] : [
        [2] : 3
    ],
    [8077, 8743, 8746] : [
        [2] : 1
    ],
    [8081, 8163, 8201, 8213, 8250, 8253, 8409, 8453, 8455, 8460, 8470, 8500..8501, 8503..8504, 8507, 8509, 8520, 8522, 8542, 8741..8742, 9050, 9061] : [
        [2, 3] : 3
    ]
],
[530..531, 538..539] : [
    [8000..8005, 8013, 8015, 8020, 8041, 8045, 8073..8074, 8082..8086, 8098, 8123, 8154, 8200, 8240, 8244, 8246, 8249, 8255, 8260, 8262, 8265, 8310, 8323, 8380, 8383..8384, 8430, 8482, 8490, 8560, 8570, 8574, 8576, 8721, 8800..8803, 8805, 8890..8891, 8896, 8900, 8910, 8930..8931, 8933, 8951, 8980, 9105, 9110, 9120, 9140, 9364, 9540, 9542, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8052, 8070, 8072, 8076, 8140, 8483..8484] : [
        [2, 3] : 1
    ],
    [8011, 8014, 8021, 8030, 8034..8035, 8042..8044, 8078, 8091..8092, 8095, 8097, 8100, 8102, 8110, 8121..8122, 8124, 8131, 8141..8143, 8145, 8147, 8150..8153, 8155..8156, 8158, 8160..8162, 8170..8175, 8180, 8190, 8214..8215, 8220..8221, 8231, 8241..8243, 8245, 8247, 8251..8252, 8254, 8256..8257, 8272..8273, 8280..8281, 8290, 8300, 8311..8319, 8322, 8325, 8330..8333, 8335, 8337, 8339..8347, 8350, 8370, 8381, 8390, 8400..8403, 8406..8408, 8413, 8420, 8440, 8450, 8452, 8474, 8502, 8508, 8510, 8512..8514, 8521, 8524..8525, 8530, 8540..8541, 8543, 8550..8552, 8571, 8573, 8580..8586, 8588..8589, 8600, 8620, 8630..8631, 8634, 8640, 8650, 8670, 8680..8682, 8690..8692, 8710, 8722..8723, 8728, 8730, 8740, 8743..8744, 8761, 8770..8771, 8773..8774, 8812..8813, 8830, 8832, 8853, 8855, 8857, 8892, 8894..8895, 8902, 8934..8935, 8940..8941, 8959..8960, 8964, 8970..8973, 8981, 8983, 8991, 9000, 9014..9015, 9020, 9045, 9051..9053, 9062..9063, 9065, 9072, 9090, 9104, 9111, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9220..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9472, 9474..9478, 9480, 9490, 9500..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8071, 8120, 8144, 8263, 8480, 8720, 9071] : [
        [2] : 3,
        [3] : 1
    ],
    [8077, 8081] : [
        [2] : 1
    ],
    [8080, 8148, 8210..8211, 8261, 8441, 8460, 8500, 8503, 8519, 8522, 9064, 9070, 9080] : [
        [2] : 3
    ],
    [8130, 8163, 8201, 8213, 8230, 8250, 8253, 8409, 8453, 8455, 8470, 8501, 8504, 8507, 8509, 8520, 8741..8742, 9050, 9061] : [
        [2, 3] : 3
    ]
],
[540, 543, 548..549] : [
    [8000..8005, 8010, 8013, 8020, 8041, 8070, 8154, 8240, 8244, 8246, 8249, 8310, 8323, 8382..8383, 8480, 8482, 8570, 8574, 8714, 8800..8803, 8805, 8810, 8890..8891, 8896, 8900, 8910, 8930..8931, 8951, 8980, 9100, 9104..9105, 9110..9111, 9120, 9140, 9364, 9473, 9540, 9542, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8011, 8014..8015, 8023, 8034..8035, 8042..8044, 8051, 8054, 8078, 8084..8085, 8090..8095, 8097..8098, 8100, 8102, 8110, 8121..8124, 8131, 8141..8142, 8145, 8147, 8150..8153, 8155..8156, 8158, 8160..8162, 8170..8175, 8190, 8200, 8214..8215, 8220..8221, 8231, 8241..8242, 8245, 8247, 8251..8252, 8254, 8256..8257, 8265, 8270, 8272..8273, 8280..8281, 8290, 8300, 8311..8320, 8330..8333, 8335, 8337, 8339..8347, 8350, 8360, 8370, 8390, 8400..8403, 8406..8408, 8410, 8413, 8420, 8430, 8452, 8462..8463, 8471, 8474, 8502, 8508, 8510, 8512..8514, 8521, 8523..8525, 8530, 8540..8543, 8550..8552, 8562, 8571..8573, 8576, 8580..8586, 8588..8591, 8600, 8620, 8630..8631, 8634, 8640, 8650, 8670, 8681..8682, 8690..8693, 8700, 8710, 8721..8723, 8728, 8730, 8740, 8743..8746, 8761, 8770..8774, 8780, 8812..8813, 8822, 8830, 8832, 8853, 8855, 8857, 8860, 8894..8895, 8902, 8934..8935, 8940..8941, 8959..8960, 8964, 8970..8973, 8981, 8983, 8991, 9000, 9014..9015, 9020, 9045, 9051..9053, 9062..9063, 9090, 9103, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9220..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9472, 9474..9478, 9480, 9490, 9501..9502, 9504..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8071, 8076, 8081, 8148, 8262, 8470, 8519, 8560, 8720, 9064, 9070, 9080] : [
        [2] : 3
    ],
    [8080, 8120, 8130, 8163, 8180, 8201, 8211, 8213, 8250, 8253, 8261, 8322, 8384, 8409, 8453, 8455, 8460, 8500..8501, 8503..8504, 8507, 8509, 8520, 8522, 8741..8742, 8897, 9050, 9061] : [
        [2, 3] : 3
    ],
    [8140, 8380, 8441] : [
        [2, 3] : 1
    ],
    [8144, 8230, 8255, 8263, 8461, 8933, 9071] : [
        [2] : 3,
        [3] : 1
    ]
],
[541] : [
    [8000..8005, 8010, 8013, 8020, 8041, 8070, 8154, 8240, 8244, 8246, 8249, 8310, 8323, 8382..8383, 8480, 8482, 8570, 8574, 8802..8803, 8890..8891, 8896, 8900, 8910, 8930..8931, 8951, 8980, 9100, 9104..9105, 9110..9111, 9120, 9140, 9364, 9473, 9540, 9542, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8011, 8014..8015, 8023, 8034..8035, 8042..8044, 8051, 8054, 8078, 8084..8085, 8090..8095, 8097..8098, 8100, 8102, 8110, 8121..8124, 8131, 8141..8142, 8145, 8147, 8150..8153, 8155..8156, 8158, 8160..8162, 8170..8175, 8190, 8200, 8214..8215, 8220..8221, 8231, 8241..8242, 8245, 8247, 8251..8252, 8254, 8256..8257, 8265, 8270, 8272..8273, 8280..8281, 8290, 8300, 8311..8320, 8330..8333, 8335, 8337, 8339..8347, 8350, 8360, 8370, 8390, 8400..8403, 8406..8408, 8410, 8413, 8420, 8430, 8452, 8462..8463, 8471, 8474, 8502, 8508, 8510, 8512..8514, 8521, 8523..8525, 8530, 8540..8543, 8550..8552, 8562, 8571..8573, 8576, 8580..8586, 8588..8591, 8600, 8620, 8630..8631, 8634, 8640, 8650, 8670, 8681..8682, 8690..8693, 8700, 8710, 8721..8723, 8728, 8730, 8740, 8743..8746, 8761, 8770..8774, 8780, 8812..8813, 8822, 8830, 8832, 8853, 8855, 8857, 8860, 8894..8895, 8902, 8934..8935, 8940..8941, 8959..8960, 8964, 8970..8973, 8981, 8983, 8991, 9000, 9014..9015, 9020, 9045, 9051..9053, 9062..9063, 9090, 9103, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9220..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9472, 9474..9478, 9480, 9490, 9501..9502, 9504..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8052, 8071, 8076, 8080..8081, 8148, 8262, 8470, 8519, 8560, 8720, 9064, 9070, 9080] : [
        [2] : 3
    ],
    [8120, 8130, 8163, 8180, 8201, 8211, 8213, 8250, 8253, 8261, 8322, 8384, 8409, 8453, 8455, 8460, 8500..8501, 8503..8504, 8507, 8509, 8520, 8522, 8741..8742, 8897, 9050, 9061] : [
        [2, 3] : 3
    ],
    [8140, 8380, 8441] : [
        [2, 3] : 1
    ],
    [8144, 8230, 8255, 8263, 8461, 8933, 9071] : [
        [2] : 3,
        [3] : 1
    ]
],
[542] : [
    [8000..8005, 8714, 8800..8803, 8805, 8810, 8890..8891, 8896, 8900, 8910, 8930..8931, 8951, 9104..9105, 9110..9111, 9120, 9140, 9364, 9473, 9540, 9542, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070..8071, 8076, 8080, 8120, 8130, 8140, 8144, 8163, 8201, 8210..8211, 8213, 8230, 8250, 8253, 8260..8261, 8263, 8323, 8380, 8382, 8384, 8409, 8441, 8453, 8455, 8460, 8470, 8480, 8500..8501, 8503..8504, 8507, 8509, 8520, 8522, 8720, 8741..8742, 8897, 9050, 9061, 9064] : [
        [2, 3] : 3
    ],
    [8011..8015, 8020..8023, 8030..8035, 8041..8046, 8051, 8054, 8072..8075, 8078, 8082..8086, 8090..8095, 8097..8098, 8100, 8102, 8110, 8121..8124, 8131, 8141..8143, 8145, 8147, 8150..8156, 8158, 8160..8162, 8170..8175, 8180, 8190, 8200, 8214..8215, 8220..8221, 8231, 8240..8247, 8249, 8251..8252, 8254..8257, 8262, 8265, 8270, 8272..8273, 8280..8281, 8290, 8300, 8310..8320, 8322, 8330..8333, 8335, 8337, 8339..8347, 8350, 8370, 8381, 8383, 8390, 8400..8403, 8406..8408, 8410, 8413, 8420, 8430, 8440, 8450, 8452, 8461..8462, 8474, 8481..8482, 8490, 8502, 8508, 8510, 8512..8514, 8521, 8523..8525, 8530, 8540..8543, 8550..8552, 8560, 8562, 8570..8576, 8580..8586, 8588..8590, 8600, 8620, 8630..8631, 8634, 8640, 8650, 8670, 8680..8682, 8690..8693, 8700, 8710, 8721..8723, 8728, 8730, 8740, 8743..8746, 8761, 8770..8774, 8780, 8812..8813, 8822, 8830, 8832, 8853, 8855, 8857, 8894..8895, 8902, 8934..8935, 8940..8941, 8950, 8959..8960, 8964, 8970..8973, 8980..8981, 8983, 8991, 9000, 9014..9015, 9020, 9045, 9051..9053, 9062..9063, 9065, 9090, 9103, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9220..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9472, 9474..9478, 9480, 9490, 9500..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8077, 8081, 8148, 8519, 9070..9071, 9080] : [
        [2] : 3
    ],
    [8933] : [
        [2] : 3,
        [3] : 1
    ]
],
[559] : [
    [8000..8005, 8010, 8013, 8020, 8041, 8070, 8154, 8240, 8244, 8246, 8249, 8323, 8382..8383, 8480, 8482, 8570, 8574, 8714, 8800..8803, 8805, 8810, 8890..8891, 8896, 8900, 8910, 8930..8931, 8951, 8980, 9100, 9104..9105, 9110..9111, 9120, 9140, 9364, 9473, 9540, 9542, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8011, 8014..8015, 8023, 8034..8035, 8042..8044, 8051, 8054, 8078, 8084..8085, 8090..8095, 8097..8098, 8100, 8102, 8110, 8121..8124, 8131, 8141..8142, 8145, 8147, 8150..8153, 8155..8156, 8158, 8160..8162, 8170..8175, 8190, 8200, 8214..8215, 8220..8221, 8231, 8241..8242, 8245, 8247, 8251..8252, 8254, 8256..8257, 8265, 8270, 8272..8273, 8280..8281, 8290, 8300, 8312..8320, 8330..8333, 8335, 8337, 8339..8347, 8350, 8360, 8370, 8390, 8400..8403, 8406..8408, 8410, 8413, 8420, 8430, 8452, 8462..8463, 8471, 8474, 8502, 8508, 8510, 8512..8514, 8521, 8523..8525, 8530, 8540..8543, 8550..8552, 8562, 8571..8573, 8576, 8580..8586, 8588..8591, 8600, 8620, 8630..8631, 8634, 8640, 8650, 8670, 8681..8682, 8690..8693, 8700, 8710, 8721..8723, 8728, 8730, 8740, 8743..8746, 8761, 8770..8774, 8780, 8812..8813, 8822, 8830, 8832, 8853, 8855, 8857, 8860, 8894..8895, 8902, 8934..8935, 8940..8941, 8959..8960, 8964, 8970..8973, 8981, 8983, 8991, 9000, 9014..9015, 9020, 9045, 9051..9053, 9062..9063, 9090, 9103, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9220..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9472, 9474..9478, 9480, 9490, 9501..9502, 9504..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8071, 8076, 8081, 8148, 8262, 8470, 8519, 8560, 8720, 9064, 9070, 9080] : [
        [2] : 3
    ],
    [8080, 8120, 8130, 8163, 8180, 8201, 8211, 8213, 8250, 8253, 8261, 8322, 8384, 8409, 8453, 8455, 8460, 8500..8501, 8503..8504, 8507, 8509, 8520, 8522, 8741..8742, 8897, 9050, 9061] : [
        [2, 3] : 3
    ],
    [8140, 8380, 8441] : [
        [2, 3] : 1
    ],
    [8144, 8230, 8255, 8263, 8461, 8933, 9071] : [
        [2] : 3,
        [3] : 1
    ],
    [8311] : [
        [3] : 1
    ]
],
[569] : [
    [8000..8005, 8013..8014, 8020..8022, 8030..8033, 8035, 8041, 8044..8045, 8140, 8240..8242, 8244, 8246, 8249, 8255, 8260, 8310, 8313, 8320, 8323, 8382..8383, 8450, 8462, 8471, 8474, 8480, 8570, 8572..8574, 8576, 8590, 8621, 8630..8632, 8634, 8670, 8800..8803, 8805, 8890..8891, 8896, 8900, 8910, 8930..8931, 8933, 8950..8951, 8980, 9000, 9060, 9081, 9084..9085, 9091, 9100..9101, 9105, 9110..9111, 9120, 9140, 9364, 9391, 9540, 9542, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8460, 8470] : [
        [2, 3] : 1
    ],
    [8011, 8015, 8034, 8040, 8042..8043, 8051, 8054, 8073, 8078, 8083..8086, 8090..8095, 8097..8098, 8100, 8102, 8110, 8121, 8124, 8131, 8142..8143, 8145, 8147, 8150..8153, 8155..8156, 8158, 8160..8162, 8170..8175, 8180, 8190, 8200..8201, 8214..8215, 8220..8221, 8231, 8247, 8251..8252, 8254, 8256..8257, 8262, 8265, 8270, 8272..8273, 8280..8281, 8300, 8311..8312, 8314..8319, 8331..8333, 8339, 8342..8346, 8350, 8370, 8390, 8400, 8402..8403, 8406..8407, 8413, 8430, 8451, 8502, 8508, 8512..8514, 8521, 8523..8525, 8530, 8540..8543, 8551..8552, 8562, 8571, 8580..8586, 8588..8589, 8600, 8680..8682, 8690..8692, 8700, 8710, 8721..8723, 8728, 8730, 8743..8746, 8761, 8770..8774, 8780, 8812..8813, 8832, 8841, 8853, 8855, 8857, 8894..8895, 8902, 8934..8935, 8940..8941, 8959, 8964, 8970..8973, 8983, 8991, 9020, 9045, 9051..9053, 9062..9063, 9072, 9104, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9220..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9470..9472, 9474..9478, 9480, 9502..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8050, 8052, 8071, 8076..8077, 8080..8081, 8120, 8148, 8230, 8263, 8384, 8442, 8472..8473, 8519, 8720, 9061] : [
        [2] : 3
    ],
    [8130, 8163, 8210..8211, 8213, 8250, 8253, 8261, 8409, 8453, 8455, 8500..8501, 8503, 8507, 8509, 8520, 8522, 8741..8742, 8830, 9050] : [
        [2, 3] : 3
    ],
    [8380, 8461, 8481..8482, 8620, 9014..9015, 9064, 9070..9071, 9080, 9090] : [
        [2] : 3,
        [3] : 1
    ]
],
[570] : [
    [8000..8005, 8010, 8013, 8070, 8086, 8240, 8246, 8249, 8255, 8310, 8323, 8481..8482, 8800..8803, 8805, 8890..8891, 8896, 8900, 8910, 8933, 8950..8951, 8980..8981, 9014, 9100, 9105, 9111, 9120, 9140, 9364, 9540, 9542, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8030..8031, 8034..8035, 8042..8044, 8051, 8054, 8072..8075, 8078, 8082..8085, 8090..8095, 8097..8098, 8100, 8102, 8110, 8121..8122, 8124, 8131, 8142..8143, 8145, 8147, 8150..8156, 8158, 8160..8162, 8170..8175, 8180, 8190, 8200, 8214..8215, 8220..8221, 8231, 8241..8245, 8247, 8251..8252, 8254, 8256..8257, 8262, 8265, 8270, 8272..8273, 8280..8281, 8290, 8300, 8311..8320, 8322, 8331..8333, 8335, 8337, 8339..8347, 8350, 8370, 8381, 8384, 8390, 8400..8403, 8406, 8408, 8413, 8420, 8430, 8450, 8452, 8471, 8502, 8508, 8510, 8512..8514, 8521, 8523..8525, 8530, 8540..8543, 8550..8552, 8562, 8576, 8580..8586, 8588..8589, 8600, 8620, 8630..8631, 8634, 8640, 8650, 8670, 8680..8682, 8690..8693, 8700, 8710, 8721..8723, 8728, 8730, 8740, 8743..8746, 8761, 8770..8774, 8780, 8812..8813, 8830, 8832, 8853, 8855, 8857, 8894..8895, 8902, 8934..8935, 8940..8941, 8959..8960, 8964, 8970..8973, 8983, 8991, 9000, 9015, 9020, 9045, 9051..9053, 9062..9063, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9220..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9478, 9480, 9490, 9500..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8050, 8052, 8071, 8080..8081, 8120, 8144, 8148, 8211, 8260, 8444, 8519, 9060, 9064] : [
        [2] : 3
    ],
    [8076, 8130, 8163, 8201, 8210, 8213, 8230, 8250, 8253, 8261, 8263, 8330, 8409..8410, 8453, 8455, 8500..8501, 8503..8504, 8507, 8509, 8520, 8522, 8720, 8741..8742, 9050, 9061] : [
        [2, 3] : 3
    ],
    [8380, 8470, 8480] : [
        [2] : 3,
        [3] : 1
    ],
    [8441] : [
        [2] : 1
    ],
    [8460..8461] : [
        [2, 3] : 1
    ]
],
[571..574, 577] : [
    [8000..8005, 8020, 8070, 8072..8074, 8310, 8382..8383, 8460..8461, 8480, 8800..8803, 8805, 8890..8891, 8896, 8900, 8910, 8933, 8951, 9052..9053, 9085, 9100..9101, 9105, 9110, 9120, 9140, 9364, 9391, 9540, 9542, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8011, 8014..8015, 8021..8022, 8030..8032, 8034..8035, 8042..8045, 8051, 8054, 8075, 8078, 8082..8086, 8090..8095, 8097..8098, 8100, 8102, 8110, 8121..8124, 8131, 8141..8143, 8145, 8147, 8150..8156, 8158, 8160..8162, 8170..8175, 8180, 8190, 8214..8215, 8220..8221, 8231, 8241..8245, 8247, 8251..8252, 8254, 8256..8257, 8262, 8265, 8270, 8272..8273, 8280..8281, 8290, 8300, 8311..8312, 8314..8320, 8322, 8330..8333, 8335, 8337, 8339..8347, 8350, 8370, 8381, 8400..8403, 8406..8408, 8410, 8413, 8420, 8430, 8450, 8452, 8474, 8481..8482, 8490, 8502, 8508, 8510, 8512..8514, 8521, 8523..8525, 8530, 8540..8543, 8550..8552, 8562, 8571..8576, 8580..8586, 8588..8589, 8600, 8630..8631, 8634, 8640, 8650, 8670, 8680..8682, 8690..8692, 8700, 8710, 8721..8723, 8728, 8730, 8740, 8743..8746, 8761, 8770..8774, 8780, 8812..8813, 8830, 8832, 8853, 8855, 8857, 8894..8895, 8902, 8934..8935, 8940..8941, 8959..8960, 8964, 8970..8973, 8981, 8983, 8991, 9014..9015, 9020, 9045, 9051, 9060, 9062..9063, 9104, 9111, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9220..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390, 9392..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9472, 9474..9478, 9480, 9490, 9500..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8050, 8052, 8077, 8080..8081, 8120, 8130, 8140, 8148, 8441, 8519, 8720, 9064, 9070..9071] : [
        [2] : 3
    ],
    [8071, 8076, 8144, 8163, 8201, 8210..8211, 8213, 8230, 8250, 8253, 8261, 8263, 8409, 8453, 8455, 8470, 8500..8501, 8503..8504, 8507, 8509, 8520, 8522, 8741..8742, 9061] : [
        [2, 3] : 3
    ],
    [8380, 9050, 9080] : [
        [2] : 3,
        [3] : 1
    ]
],
[578..579] : [
    [8000..8005, 8013..8015, 8020..8022, 8031..8033, 8035, 8041, 8044..8045, 8074..8075, 8078, 8082, 8084..8086, 8092..8095, 8097..8098, 8100, 8102, 8110, 8120, 8122, 8124, 8144, 8154, 8200..8201, 8230, 8240..8242, 8244, 8246..8247, 8249, 8255, 8260, 8263, 8265, 8310, 8313, 8320, 8323, 8382..8383, 8400..8401, 8406, 8410, 8413, 8430, 8450, 8462, 8471, 8474, 8480, 8490, 8500, 8560, 8562, 8570, 8572..8574, 8576, 8590, 8621, 8630..8632, 8634, 8670, 8714, 8730, 8741, 8745, 8771..8772, 8800..8805, 8810, 8832, 8841, 8890..8891, 8896, 8900, 8910, 8930..8931, 8940, 8950..8951, 8980..8981, 9000, 9020, 9052..9053, 9070..9071, 9080..9081, 9084..9085, 9091, 9100..9101, 9104..9105, 9110..9111, 9120, 9140, 9364, 9391, 9473, 9540, 9542, 9580, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8030, 8051..8052, 8070..8073, 8076, 8081, 8083, 8090..8091, 8123, 8140, 8261..8262, 8380, 8384, 8409, 8441, 8460..8461, 8470, 8483..8484, 8542, 8720, 8723, 8740, 8742..8743, 8746] : [
        [2, 3] : 1
    ],
    [8034, 8042..8043, 8121, 8142, 8145, 8150..8153, 8155..8156, 8158, 8160..8162, 8170..8175, 8190, 8214..8215, 8220..8221, 8251..8252, 8254, 8256..8257, 8272..8273, 8280..8281, 8300, 8311..8312, 8314..8319, 8325, 8331..8333, 8339, 8342..8346, 8350, 8360, 8370, 8451, 8507, 8512..8513, 8521, 8530, 8551..8552, 8580..8586, 8588..8589, 8600, 8690..8692, 8710, 8728, 8773..8774, 8812..8813, 8821..8823, 8826, 8833, 8853, 8855, 8857, 8892, 8894..8895, 8902, 8934..8935, 8959, 8964, 8970..8973, 8991, 9045, 9051, 9062..9063, 9103, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9220..9222, 9230, 9242..9243, 9250, 9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365, 9370..9372, 9380..9382, 9385, 9390, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9470..9472, 9474..9478, 9480, 9502, 9504..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571] : [
        [3] : 3
    ],
    [8077] : [
        [2] : 1
    ],
    [8080, 8163, 8180, 8213, 8231, 8250, 8253, 8453, 8455, 8540..8541, 8543, 8744, 8830, 8897] : [
        [2, 3] : 3
    ],
    [8211, 8473, 8761, 9061] : [
        [2] : 3
    ],
    [8481..8482, 8620, 8721, 8933, 9014..9015, 9050, 9060, 9064, 9090] : [
        [2] : 3,
        [3] : 1
    ]
],
[589] : [
    [8000..8005, 9101, 9103..9105, 9699, 9823] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070..8071, 8076, 8120, 8130, 8140, 8144, 8163, 8201, 8210..8211, 8213, 8230, 8250, 8253, 8261, 8263, 8380, 8409, 8441, 8453, 8455, 8460, 8470, 8480, 8500..8501, 8503..8504, 8507, 8509, 8520, 8522, 8720, 8741..8742, 9050] : [
        [2, 3] : 3
    ],
    [8011..8015, 8020..8023, 8030..8035, 8041..8046, 8051, 8054, 8072..8075, 8078, 8082..8086, 8090..8095, 8097..8098, 8100, 8102, 8110, 8121..8124, 8131, 8141..8143, 8145, 8147, 8150..8156, 8158, 8160..8162, 8170..8175, 8180, 8190, 8200, 8214..8215, 8220..8221, 8231, 8240..8247, 8249, 8251..8252, 8254..8257, 8260, 8262, 8265, 8270, 8272..8273, 8280..8281, 8290, 8300, 8310..8320, 8322..8323, 8330..8333, 8335, 8337, 8339..8347, 8350, 8370, 8381..8384, 8390, 8400..8403, 8406..8408, 8410, 8413, 8420, 8430, 8440, 8450, 8452, 8461, 8474, 8481..8482, 8490, 8502, 8508, 8510, 8512..8514, 8521, 8523..8525, 8530, 8540..8543, 8550..8552, 8560, 8562, 8570..8576, 8580..8586, 8588..8589, 8600, 8620, 8630..8631, 8634, 8640, 8650, 8670, 8680..8682, 8690..8693, 8700, 8710..8711, 8714, 8721..8723, 8728, 8730, 8740, 8743..8746, 8761, 8770..8774, 8780, 8801..8806, 8810..8815, 8825, 8830, 8832, 8840, 8842, 8850..8855, 8857..8859, 8890..8891, 8894..8896, 8900..8902, 8912, 8920..8921, 8934..8936, 8940..8941, 8950..8951, 8959..8960, 8963..8964, 8970..8973, 8980..8983, 8990..8991, 9000, 9014..9015, 9020, 9040..9045, 9051..9053, 9110..9111, 9124, 9130, 9133, 9137, 9170, 9174, 9180..9187, 9192..9195, 9220..9222, 9230..9231, 9240, 9242..9243, 9250..9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9364..9368, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9478, 9480, 9490, 9500..9505, 9508..9513, 9520..9523, 9530, 9538..9540, 9542, 9560..9561, 9571, 9580..9581] : [
        [3] : 3
    ],
    [8077, 8080..8081, 8148, 8519, 9061, 9070..9071, 9080] : [
        [2] : 3
    ],
    [9100] : [
        [2] : 3,
        [3] : 1
    ]
],
[600..602, 608..609] : [
    [8000..8005, 8012..8014, 8020..8022, 8051, 8054, 8074, 8082, 8084..8086, 8091..8095, 8098, 8102, 8110, 8122, 8240, 8246..8247, 8255, 8260, 8262, 8390, 8400, 8410, 8413, 8430, 8560, 8570..8573, 8575, 8721..8723, 8730, 8740, 8743, 8745..8746, 8771..8772, 8800..8801, 8890..8891, 8896, 8900, 8910, 9140, 9597, 9699..9701, 9708..9709, 9718, 9725..9726, 9823] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070..8071, 8083, 8120, 8140, 8261, 8263, 8542, 8720, 8742] : [
        [2, 3] : 1
    ],
    [8011, 8015, 8030..8031, 8034..8035, 8042..8043, 8100, 8121, 8124, 8131, 8141..8143, 8145, 8147, 8150..8156, 8158, 8160..8162, 8170..8175, 8180, 8190, 8200, 8214..8215, 8220..8221, 8231, 8241..8244, 8251..8252, 8254, 8256..8257, 8265, 8270, 8272..8273, 8280..8281, 8290, 8300, 8310..8320, 8322..8323, 8330..8333, 8335, 8337, 8339..8347, 8350, 8370, 8381..8384, 8406, 8408, 8420, 8440, 8450, 8452, 8461, 8474, 8482, 8490, 8502, 8508, 8510, 8512..8514, 8521, 8523..8525, 8530, 8540..8541, 8550..8552, 8576, 8580..8586, 8588..8589, 8600, 8620, 8630..8631, 8634, 8640, 8650, 8670, 8680..8682, 8690..8692, 8700, 8710, 8728, 8744, 8773..8774, 8812..8813, 8820, 8853, 8855, 8857, 8894..8895, 8902, 8930..8931, 8933..8934, 8936, 8940..8941, 8950..8951, 8959..8960, 8964, 8970..8973, 8981..8983, 8991, 9000, 9014..9015, 9020, 9044..9045, 9051..9053, 9060, 9062..9063, 9065, 9072, 9081..9086, 9090, 9100..9102, 9104..9105, 9110..9111, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9221..9222, 9230, 9242..9243, 9250..9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365..9366, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9478, 9480, 9490, 9500..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571, 9580] : [
        [3] : 3
    ],
    [8032, 8201, 8409, 8480, 8519] : [
        [2] : 3
    ],
    [8076..8077] : [
        [2] : 1
    ],
    [8090, 8097, 8123] : [
        [2] : 3,
        [3] : 1
    ],
    [8130, 8144, 8163, 8210..8211, 8213, 8230, 8250, 8253, 8380, 8441, 8453, 8455, 8460, 8470, 8500..8501, 8503..8504, 8507, 8509, 8520, 8522, 8543, 9050, 9061, 9064, 9070..9071, 9080] : [
        [2, 3] : 3
    ],
    [8741] : [
        [2] : 1,
        [3] : 3
    ]
],
[619] : [
    [8000..8005, 8010, 8013, 8020, 8041, 8045, 8122, 8140, 8147, 8200, 8255, 8490, 8552, 8560, 8574, 8800..8801, 8890..8891, 8896, 8900, 8910, 8935, 9040..9043, 9688, 9699, 9712, 9715, 9724, 9735, 9737..9738, 9749, 9751, 9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8011, 8015, 8030..8031, 8034, 8040, 8043, 8051, 8054, 8073..8074, 8078, 8084..8086, 8090..8093, 8095, 8097..8098, 8100, 8102, 8110, 8121, 8123..8124, 8142, 8145, 8150..8153, 8155..8156, 8158, 8160..8162, 8170..8175, 8180, 8190, 8214, 8220..8221, 8231, 8241..8243, 8245, 8247, 8251..8252, 8254, 8256..8257, 8262, 8270, 8272..8273, 8280..8281, 8290, 8300, 8311..8320, 8322, 8330..8333, 8335, 8337, 8339..8347, 8350, 8370, 8381..8384, 8390, 8400..8403, 8406..8408, 8410, 8413, 8420, 8430, 8452, 8461, 8474, 8482, 8502, 8508, 8510, 8512..8513, 8524..8525, 8530, 8540..8543, 8550, 8562, 8573, 8575, 8580..8586, 8588..8589, 8600, 8620, 8630..8631, 8634, 8640, 8650, 8670, 8680, 8682, 8690..8692, 8710, 8721, 8728, 8740, 8743..8744, 8746, 8761, 8770, 8773..8774, 8812..8813, 8830, 8853, 8855, 8857, 8894..8895, 8902, 8930..8931, 8933..8934, 8936, 8940..8941, 8950..8951, 8959, 8964, 8970..8973, 8981..8983, 8991, 9000, 9014..9015, 9044..9045, 9051..9053, 9062..9063, 9072, 9081..9083, 9086, 9090, 9102, 9104..9105, 9110..9111, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9221..9222, 9230, 9242..9243, 9250..9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365..9366, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9478, 9480, 9490, 9500..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571, 9580] : [
        [3] : 3
    ],
    [8050, 8052, 8071, 8077, 8080..8081, 8144, 8211, 8503, 8519, 8720, 9061, 9064, 9070..9071, 9080] : [
        [2] : 3
    ],
    [8070, 8201, 8246, 8480] : [
        [2] : 3,
        [3] : 1
    ],
    [8076, 8163, 8210, 8213, 8215, 8250, 8253, 8261, 8263, 8380, 8409, 8441, 8453, 8455, 8460, 8470, 8504, 8507, 8509, 8520, 8522, 8551, 8741..8742, 9050] : [
        [2, 3] : 3
    ],
    [8120, 8148] : [
        [2] : 1
    ],
    [8500] : [
        [2, 3] : 1
    ]
],
[620..621, 629] : [
    [8000..8005, 8013, 8020, 8022, 8260, 8630..8631, 8634, 8640, 8642, 8800..8801, 9060, 9062..9063, 9065, 9072, 9081..9085, 9100..9102, 9104..9105, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 9061, 9064, 9070..9071, 9080] : [
        [2, 3] : 1
    ],
    [8011..8012, 8014..8015, 8021, 8030..8031, 8034..8035, 8044..8045, 8051, 8054, 8073..8075, 8078, 8082..8086, 8090..8095, 8097..8098, 8100, 8102, 8110, 8121..8124, 8131, 8141..8143, 8145, 8147, 8150..8156, 8158, 8160..8162, 8170..8175, 8180, 8190, 8200, 8214..8215, 8220..8221, 8231, 8241..8245, 8247, 8251..8252, 8254..8257, 8262, 8265, 8270, 8272..8273, 8280..8281, 8290, 8300, 8311..8320, 8322, 8330..8333, 8335, 8337, 8339..8347, 8350, 8370, 8381..8384, 8390, 8400..8403, 8406..8408, 8410, 8413, 8420, 8430, 8452, 8474, 8482, 8490, 8502, 8508, 8510, 8512..8514, 8521, 8523..8525, 8530, 8540..8543, 8550..8552, 8560, 8562, 8570..8576, 8580..8586, 8588..8589, 8600, 8670, 8681..8682, 8690..8692, 8700, 8710, 8721..8723, 8728, 8730, 8740, 8743..8746, 8761, 8770..8774, 8780, 8812..8813, 8835, 8853, 8855, 8857, 8894, 8930..8931, 8933..8934, 8936, 8940..8941, 8950..8951, 8959, 8964, 8970..8973, 8980..8983, 8991, 9000, 9014..9015, 9020, 9044..9045, 9051..9053, 9110..9111, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9221..9222, 9230, 9242..9243, 9250..9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365..9366, 9370..9372, 9381..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9472, 9474..9478, 9480, 9490, 9501..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571, 9580] : [
        [3] : 3
    ],
    [8050, 8052, 8076, 8120, 8130, 8163, 8201, 8210..8211, 8213, 8230, 8250, 8253, 8261, 8263, 8409, 8453, 8455, 8500..8501, 8503..8504, 8507, 8509, 8520, 8522, 8741..8742, 9050] : [
        [2, 3] : 3
    ],
    [8070..8071, 8077, 8080..8081, 8144, 8148, 8380, 8441, 8460, 8470, 8480, 8519, 8720] : [
        [2] : 3
    ],
    [8140, 8650] : [
        [2] : 3,
        [3] : 1
    ]
],
[630..631, 637] : [
    [8000..8005, 8011..8015, 8020..8022, 8051, 8071..8075, 8078, 8121..8124, 8141, 8143, 8147, 8255, 8260, 8262, 8401, 8542, 8570..8575, 8800..8806, 8810..8811, 8813..8815, 8825, 8830, 8850..8855, 8857..8858, 8890..8891, 8894..8896, 8900..8902, 8910, 8912, 8920..8921, 8950..8951, 8980..8982, 8990..8991, 9140, 9699, 9823] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8120, 8140, 8261, 8263] : [
        [2, 3] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[632] : [
    [8000..8005, 8011..8015, 8020..8022, 8051, 8071..8075, 8078, 8082..8084, 8090..8095, 8097..8098, 8102, 8110, 8121..8124, 8141, 8143, 8147, 8255, 8260, 8262, 8390, 8400..8401, 8410, 8413, 8542, 8570..8575, 8721..8723, 8730, 8740, 8743, 8745..8746, 8761, 8770..8772, 8780, 8800..8806, 8810..8811, 8813..8815, 8825, 8830, 8850..8855, 8857..8858, 8890..8891, 8894..8896, 8900..8902, 8910, 8912, 8920..8921, 8950..8951, 8980..8982, 8990..8991, 9140, 9597, 9699..9701, 9708..9709, 9718, 9725..9726, 9823] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8120, 8140, 8261, 8263, 8720, 8741..8742] : [
        [2, 3] : 1
    ],
    [8080..8081] : [
        [2] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[638..639] : [
    [8000..8005, 8012..8014, 8020..8022, 8041, 8045, 8051, 8054, 8074, 8082, 8084..8086, 8091..8095, 8098, 8102, 8110, 8122, 8147, 8200, 8240, 8247, 8255, 8260, 8262, 8390, 8400, 8410, 8413, 8430, 8490, 8552, 8560, 8570..8575, 8640, 8642, 8721..8723, 8730, 8740, 8743, 8745..8746, 8771..8772, 8800..8801, 8890..8891, 8896, 8900, 8910, 8935, 9040..9043, 9063, 9065, 9072, 9084..9085, 9100..9101, 9104..9105, 9140, 9699, 9823] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070..8071, 8083, 8120, 8140, 8261, 8263, 8500, 8542, 8720, 8742, 9061, 9064, 9070..9071, 9080] : [
        [2, 3] : 1
    ],
    [8011, 8015, 8030..8031, 8034, 8040, 8043, 8100, 8121, 8124, 8142, 8145, 8150..8153, 8155..8156, 8158, 8160..8162, 8170..8175, 8180, 8190, 8214, 8220..8221, 8231, 8241..8243, 8251..8252, 8254, 8256..8257, 8270, 8272..8273, 8280..8281, 8290, 8300, 8311..8320, 8322, 8330..8333, 8335, 8337, 8339..8347, 8350, 8370, 8381..8384, 8406, 8408, 8420, 8452, 8461, 8474, 8482, 8502, 8508, 8510, 8512..8513, 8524..8525, 8530, 8540..8541, 8550, 8580..8586, 8588..8589, 8600, 8620, 8630..8631, 8634, 8670, 8682, 8690..8692, 8710, 8728, 8744, 8773..8774, 8812..8813, 8820, 8835, 8853, 8855, 8857, 8894, 8930..8931, 8933..8934, 8936, 8940..8941, 8950..8951, 8959, 8964, 8970..8973, 8981..8983, 8991, 9000, 9014..9015, 9044..9045, 9051..9053, 9062, 9081..9083, 9086, 9090, 9102, 9110..9111, 9124, 9130, 9137, 9170, 9174, 9181..9187, 9192..9195, 9221..9222, 9230, 9242..9243, 9250..9252, 9261, 9270, 9290, 9302, 9310, 9330, 9341..9342, 9362, 9365..9366, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9478, 9480, 9490, 9500..9505, 9508..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571, 9580] : [
        [3] : 3
    ],
    [8032, 8144, 8211, 8409, 8503, 8519] : [
        [2] : 3
    ],
    [8076..8077, 8148] : [
        [2] : 1
    ],
    [8090, 8097, 8123, 8201, 8246, 8480, 8650] : [
        [2] : 3,
        [3] : 1
    ],
    [8163, 8210, 8213, 8215, 8250, 8253, 8380, 8441, 8453, 8455, 8460, 8470, 8504, 8507, 8509, 8520, 8522, 8543, 8551, 9050] : [
        [2, 3] : 3
    ],
    [8741] : [
        [2] : 1,
        [3] : 3
    ]
],
[649] : [
    [8000..8005, 8011..8014, 8020..8022, 8030..8035, 8041, 8043, 8051, 8072..8074, 8122, 8131, 8231, 8240, 8255, 8260, 8311..8312, 8316..8320, 8323, 8481, 8510, 8800..8801, 8890..8891, 8896, 8900, 8910, 8959..8960, 8963..8964, 8980..8981, 9040..9043, 9364, 9500, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140] : [
        [2, 3] : 1
    ],
    [8015, 8054, 8075, 8078, 8085..8086, 8090..8095, 8097..8098, 8100, 8102, 8110, 8121, 8123..8124, 8141..8143, 8145, 8147, 8160..8162, 8170..8175, 8180, 8190, 8200, 8214..8215, 8220..8221, 8243, 8251..8252, 8254, 8256..8257, 8313, 8315, 8322, 8325, 8330..8333, 8335, 8337, 8339..8341, 8343..8344, 8346..8347, 8350, 8373, 8381..8384, 8390, 8400..8403, 8406..8408, 8410, 8413, 8430, 8440, 8444, 8450, 8452, 8461, 8474, 8482, 8502, 8508, 8512..8514, 8521, 8523..8525, 8530, 8540..8543, 8550..8552, 8562, 8570, 8573, 8580..8586, 8588..8589, 8600, 8620, 8630, 8710, 8721..8723, 8728, 8730, 8740, 8743..8744, 8746, 8761, 8770..8771, 8812..8814, 8822, 8853, 8855, 8857, 8893, 8902, 8930..8931, 8933..8934, 8936, 8941, 8950..8951, 8973, 8982..8983, 8990..8991, 9000, 9014..9015, 9020, 9044..9045, 9104, 9111, 9124, 9130, 9137, 9161, 9170, 9174, 9181..9187, 9192..9195, 9221..9222, 9230, 9242..9243, 9250..9252, 9261, 9290, 9330, 9362, 9365..9366, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9472, 9474..9478, 9480, 9501..9505, 9509..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571, 9580] : [
        [3] : 3
    ],
    [8071, 8230, 8310, 8480] : [
        [2] : 3,
        [3] : 1
    ],
    [8077, 8080..8081, 8144, 8148, 8380, 8500, 8519, 8720, 9050, 9061, 9070..9071, 9080] : [
        [2] : 3
    ],
    [8163, 8201, 8211, 8213, 8250, 8253, 8409, 8441, 8453, 8455, 8460, 8470, 8501, 8503..8504, 8507, 8509, 8520, 8522, 8741..8742] : [
        [2, 3] : 3
    ],
    [8261] : [
        [2] : 1
    ]
],
[659, 669] : [
    [8000..8005, 8011..8015, 8020..8022, 8030..8035, 8041, 8043, 8051, 8071..8075, 8078, 8121..8124, 8131, 8141, 8143, 8147, 8190, 8211, 8231, 8255, 8260, 8310, 8320, 8323, 8440, 8480..8481, 8560, 8562, 8800..8806, 8810..8811, 8813..8815, 8825, 8830, 8850..8855, 8857..8858, 8890..8891, 8894..8896, 8900..8902, 8910, 8912, 8950..8951, 8959, 8964, 8980..8982, 8990..8991, 9500..9505, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140, 8230] : [
        [2, 3] : 1
    ],
    [8261] : [
        [2] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[670..679] : [
    [8000..8005, 8011..8015, 8020..8022, 8030..8035, 8041, 8043, 8051, 8071..8075, 8078, 8121..8124, 8131, 8141, 8143, 8147, 8231, 8255, 8260, 8310, 8320, 8323, 8480..8481, 8490, 8510, 8576, 8680, 8800..8806, 8810..8811, 8813..8815, 8825, 8830, 8890..8891, 8894..8896, 8900..8902, 8910, 8912, 8920..8921, 8950..8951, 8980..8982, 8990..8991, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140, 8230, 8261] : [
        [2, 3] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[680..681] : [
    [8000..8005, 8011..8015, 8020..8022, 8030..8035, 8041, 8043, 8051, 8071..8075, 8078, 8121..8124, 8131, 8141, 8143, 8147, 8190, 8231, 8255, 8260, 8262, 8310, 8320, 8323, 8380, 8440, 8480..8481, 8560, 8562, 8721..8723, 8730, 8743, 8745..8746, 8770..8772, 8800..8806, 8810..8811, 8813..8815, 8825, 8850..8855, 8857..8858, 8890..8891, 8894..8896, 8900..8902, 8910, 8912, 8950..8951, 8964, 8980..8982, 8990..8991, 9070..9072, 9080..9085, 9110, 9500..9505, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140, 8230, 8261, 8263, 8720] : [
        [2, 3] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[688..689] : [
    [8000..8005, 8011..8014, 8020..8022, 8030..8035, 8041, 8043, 8051, 8072..8074, 8122, 8131, 8231, 8255, 8260, 8262, 8311..8312, 8316..8320, 8323, 8481, 8510, 8745, 8772, 8800..8801, 8890..8891, 8896, 8900, 8910, 8960, 8963..8964, 8980..8981, 9040..9043, 9072, 9081..9085, 9110, 9364, 9500, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140, 8261, 8263] : [
        [2, 3] : 1
    ],
    [8015, 8054, 8075, 8078, 8085..8086, 8090..8095, 8097..8098, 8100, 8102, 8110, 8121, 8123..8124, 8141..8143, 8145, 8147, 8160..8162, 8170..8175, 8180, 8190, 8200, 8214..8215, 8220..8221, 8243, 8251..8252, 8254, 8256..8257, 8313, 8315, 8322, 8325, 8330..8333, 8335, 8337, 8339..8341, 8343..8344, 8346..8347, 8350, 8373, 8381..8384, 8390, 8400..8403, 8406..8408, 8410, 8413, 8430, 8440, 8444, 8450, 8452, 8461, 8474, 8482, 8502, 8508, 8512..8514, 8521, 8523..8525, 8530, 8540..8543, 8550..8552, 8562, 8570, 8573, 8580..8586, 8588..8589, 8600, 8620, 8630, 8710, 8721..8723, 8728, 8730, 8740, 8743..8744, 8746, 8761, 8770..8771, 8812..8814, 8822, 8853, 8855, 8857, 8893, 8902, 8930..8931, 8933..8934, 8936, 8941, 8950..8951, 8973, 8982..8983, 8990..8991, 9000, 9014..9015, 9020, 9044..9045, 9104, 9111, 9124, 9130, 9137, 9161, 9170, 9174, 9181..9187, 9192..9195, 9221..9222, 9230, 9242..9243, 9250..9252, 9261, 9290, 9330, 9362, 9365..9366, 9370..9372, 9380..9382, 9385, 9390..9393, 9395..9396, 9400..9401, 9410..9411, 9420..9421, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9460, 9470..9472, 9474..9478, 9480, 9501..9505, 9509..9513, 9520..9523, 9530, 9538..9539, 9560..9561, 9571, 9580] : [
        [3] : 3
    ],
    [8071, 8230, 8310, 8480, 8720, 9070..9071, 9080] : [
        [2] : 3,
        [3] : 1
    ],
    [8077, 8080..8081, 8144, 8148, 8380, 8500, 8519, 9050, 9061] : [
        [2] : 3
    ],
    [8163, 8201, 8211, 8213, 8250, 8253, 8409, 8441, 8453, 8455, 8460, 8470, 8501, 8503..8504, 8507, 8509, 8520, 8522, 8741..8742] : [
        [2, 3] : 3
    ]
],
[690..691, 693..696, 698] : [
    [8000..8005, 8011..8015, 8020..8022, 8051, 8071..8075, 8078, 8082..8084, 8121..8124, 8131, 8141, 8143, 8147, 8200, 8255, 8290, 8430, 8721..8723, 8730, 8743, 8745..8746, 8770..8774, 8810..8811, 8813..8815, 8825, 8890..8891, 8894..8896, 8900..8902, 8910, 8912, 8920..8921, 8940..8941, 8990..8991, 9150, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140, 8201, 8720] : [
        [2, 3] : 1
    ],
    [8081] : [
        [2] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[692] : [
    [8000..8005, 8011..8015, 8020..8022, 8051, 8071..8075, 8078, 8082..8084, 8121..8124, 8131, 8141, 8143, 8147, 8200, 8255, 8290, 8430, 8721..8723, 8730, 8743, 8745..8746, 8770..8772, 8810..8811, 8813..8815, 8825, 8890..8891, 8894..8896, 8900..8902, 8910, 8912, 8920..8921, 8940..8941, 8990..8991, 9150, 9510..9513, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140, 8201, 8720] : [
        [2, 3] : 1
    ],
    [8081] : [
        [2] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[699] : [
    [8000..8005, 8011..8015, 8020..8022, 8051, 8071..8075, 8078, 8121..8124, 8131, 8141, 8143, 8147, 8200, 8255, 8290, 8430, 8721..8723, 8730, 8743, 8745..8746, 8770..8772, 8810..8811, 8813..8815, 8825, 8890..8891, 8894..8896, 8900..8902, 8910, 8912, 8920..8921, 8940..8941, 8990..8991, 9150, 9510..9513, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140, 8201, 8720] : [
        [2, 3] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[700..701, 709] : [
    [8000..8001, 8728, 9080, 9150, 9530] : [
        [0, 1, 3] : 1
    ],
    [8005, 8720, 8801, 8805..8806, 8825, 8890, 8910, 9240, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8040, 8050, 8103, 8120..8121, 8140, 8250, 8260, 8270, 8272, 8290, 8323, 8330, 8380..8381, 8400, 8408, 8452, 8474, 8480, 8550, 8580, 8631, 8650] : [
        [0, 1, 2, 3] : 3
    ],
    [8011, 8054, 8060, 8100..8102, 8110, 8146, 8149, 8151, 8161, 8172, 8190, 8251, 8264, 8280..8281, 8300, 8325, 8333, 8361, 8373, 8392, 8403, 8405, 8420, 8443, 8572, 8600, 8610] : [
        [0, 3] : 3
    ],
    [8012..8014, 8020, 8022, 8030, 8032..8033, 8041, 8046, 8073..8076, 8078, 8080..8081, 8083, 8085..8086, 8091, 8094, 8097, 8122..8124, 8131, 8143, 8145, 8154, 8162, 8180, 8201, 8215, 8230..8231, 8243..8244, 8246..8247, 8249, 8252..8256, 8262, 8312, 8319..8320, 8340, 8342..8345, 8382, 8384, 8413, 8455, 8481..8484, 8490, 8500..8502, 8507..8510, 8514, 8520..8525, 8540..8543, 8551, 8562, 8570, 8573..8575, 8941] : [
        [2, 3] : 3
    ],
    [8015, 8021, 8023, 8031, 8034..8035, 8042..8045, 8082, 8092..8093, 8095, 8098, 8141..8142, 8171, 8173..8175, 8214, 8241, 8257, 8265, 8273, 8314..8315, 8317..8318, 8331..8332, 8337, 8339, 8346..8347, 8350, 8383, 8512..8513, 8530, 8552, 8571, 8576, 8586, 8588..8589, 9441] : [
        [3] : 3
    ],
    [8051..8053, 8070..8072, 8077, 8084, 8144, 8147..8148, 8160, 8163, 8170, 8200, 8210..8213, 8220..8221, 8261, 8263, 8310, 8322, 8341, 8370, 8390, 8401..8402, 8406..8407, 8409..8410, 8440..8441, 8450, 8453, 8460..8461, 8470..8471, 8503..8504, 8560..8561, 8670, 8940] : [
        [0, 2, 3] : 3
    ],
    [8090, 8130, 8240, 8245, 8316, 8335, 8430, 8442, 8444, 8462, 8472..8473, 8581..8582, 8584, 8620, 8632, 8640] : [
        [1, 2, 3] : 3
    ],
    [8096, 8104, 8191, 8202, 8204, 8321, 8324, 8334, 8371..8372, 8374..8375, 8391, 8404, 8454, 8505..8506, 8563, 8587, 8601..8602, 8641, 8660, 8671] : [
        [0] : 3
    ],
    [8150, 8242, 8271, 8313, 8336, 8590, 8622, 8630, 9440, 9442] : [
        [0, 1, 3] : 3
    ],
    [8152..8153, 8155..8158, 8248, 8311, 8360, 8451, 8463, 8583, 8585, 8591..8593, 8621, 8623, 8633..8634, 8642] : [
        [1, 3] : 3
    ],
    [8348..8349, 8594, 8643] : [
        [1] : 3
    ],
    [8519] : [
        [2] : 3
    ],
    [8800, 8810, 9084] : [
        [0, 3] : 1
    ],
    [8815, 8850..8851, 8861, 9120..9121, 9531..9534, 9537] : [
        [0] : 1
    ],
    [9161] : [
        [1] : 1
    ],
    [9538..9539] : [
        [1, 3] : 1
    ]
],
[710..714, 717..719] : [
    [8000..8001, 9080, 9505, 9540, 9560] : [
        [0, 1, 3] : 1
    ],
    [8002..8005, 8720, 8801, 8805..8806, 9060, 9064, 9070..9071, 9081, 9085, 9100, 9370..9372, 9380..9382, 9385, 9392..9393, 9396, 9400..9401, 9410..9411, 9420, 9423..9425, 9430, 9440..9441, 9445, 9450..9451, 9460, 9473, 9475..9478, 9500..9503, 9508, 9561, 9590..9591, 9596, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9930, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8040, 8050, 8103, 8120..8121, 8140, 8250, 8260, 8270, 8272, 8290, 8323, 8330, 8380..8381, 8400, 8408, 8452, 8474, 8480, 8550, 8580, 8631, 8650] : [
        [0, 1, 2, 3] : 3
    ],
    [8011, 8054, 8060, 8100..8102, 8110, 8146, 8149, 8151, 8161, 8172, 8190, 8251, 8264, 8280..8281, 8300, 8325, 8333, 8361, 8373, 8392, 8403, 8405, 8420, 8443, 8572, 8600, 8610] : [
        [0, 3] : 3
    ],
    [8012..8014, 8020, 8022, 8030, 8032..8033, 8041, 8046, 8073..8076, 8078, 8080..8081, 8083, 8085..8086, 8091, 8094, 8097, 8122..8124, 8131, 8143, 8145, 8154, 8162, 8180, 8201, 8215, 8230..8231, 8243..8244, 8246..8247, 8249, 8252..8256, 8262, 8312, 8319..8320, 8340, 8342..8345, 8382, 8384, 8413, 8455, 8481..8484, 8490, 8500..8502, 8507..8510, 8514, 8520..8525, 8540..8543, 8551, 8562, 8570, 8573..8575, 8941] : [
        [2, 3] : 3
    ],
    [8015, 8021, 8023, 8031, 8034..8035, 8042..8045, 8082, 8092..8093, 8095, 8098, 8141..8142, 8171, 8173..8175, 8214, 8241, 8257, 8265, 8273, 8314..8315, 8317..8318, 8331..8332, 8337, 8339, 8346..8347, 8350, 8383, 8512..8513, 8530, 8552, 8571, 8576, 8586, 8588..8589] : [
        [3] : 3
    ],
    [8051..8053, 8071..8072, 8077, 8084, 8144, 8147..8148, 8160, 8163, 8170, 8200, 8210..8213, 8220..8221, 8261, 8263, 8310, 8322, 8341, 8370, 8390, 8401..8402, 8406..8407, 8409..8410, 8440..8441, 8450, 8453, 8460..8461, 8470..8471, 8503..8504, 8560..8561, 8670, 8940] : [
        [0, 2, 3] : 3
    ],
    [8090, 8130, 8240, 8245, 8316, 8335, 8430, 8442, 8444, 8462, 8472..8473, 8581..8582, 8584, 8620, 8632, 8640] : [
        [1, 2, 3] : 3
    ],
    [8096, 8104, 8191, 8202, 8204, 8321, 8324, 8334, 8371..8372, 8374..8375, 8391, 8404, 8454, 8505..8506, 8563, 8587, 8601..8602, 8641, 8660, 8671] : [
        [0] : 3
    ],
    [8150, 8242, 8271, 8313, 8336, 8590, 8622, 8630] : [
        [0, 1, 3] : 3
    ],
    [8152..8153, 8155..8158, 8248, 8311, 8360, 8451, 8463, 8583, 8585, 8591..8593, 8621, 8623, 8633..8634, 8642] : [
        [1, 3] : 3
    ],
    [8348..8349, 8594, 8643] : [
        [1] : 3
    ],
    [8519] : [
        [2] : 3
    ],
    [8680, 9150, 9161, 9383..9384, 9394, 9412, 9431, 9444, 9509] : [
        [1] : 1
    ],
    [8800, 8851, 9490, 9571] : [
        [0, 3] : 1
    ],
    [8815, 9391, 9421, 9442] : [
        [1, 3] : 1
    ],
    [8850, 9120..9122, 9131, 9413, 9492, 9541, 9550, 9562, 9570] : [
        [0] : 1
    ]
],
[715] : [
    [8000..8001, 9390] : [
        [0, 1, 3] : 1
    ],
    [8005, 9085, 9370..9372, 9380..9382, 9385, 9391..9393, 9396, 9400..9401, 9410..9411, 9420, 9423..9425, 9430, 9440..9442, 9445, 9450..9451, 9473, 9475..9478, 9500..9503, 9508, 9590..9591, 9596, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9750..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8040, 8050, 8103, 8120..8121, 8140, 8250, 8260, 8270, 8272, 8290, 8323, 8330, 8380..8381, 8400, 8408, 8452, 8474, 8480, 8550, 8580, 8631, 8650] : [
        [0, 1, 2, 3] : 3
    ],
    [8011, 8054, 8060, 8100..8102, 8110, 8146, 8149, 8151, 8161, 8172, 8190, 8251, 8264, 8280..8281, 8300, 8325, 8333, 8361, 8373, 8392, 8403, 8405, 8420, 8443, 8572, 8600, 8610] : [
        [0, 3] : 3
    ],
    [8012..8014, 8020, 8022, 8030, 8032..8033, 8041, 8046, 8073..8076, 8078, 8080..8081, 8083, 8085..8086, 8091, 8094, 8097, 8122..8124, 8131, 8143, 8145, 8154, 8162, 8180, 8201, 8215, 8230..8231, 8243..8244, 8246..8247, 8249, 8252..8256, 8262, 8312, 8319..8320, 8340, 8342..8345, 8382, 8384, 8413, 8455, 8481..8484, 8490, 8500..8502, 8507..8510, 8514, 8520..8525, 8540..8543, 8551, 8562, 8570, 8573..8575, 8941] : [
        [2, 3] : 3
    ],
    [8015, 8021, 8023, 8031, 8034..8035, 8042..8045, 8082, 8092..8093, 8095, 8098, 8141..8142, 8171, 8173..8175, 8214, 8241, 8257, 8265, 8273, 8314..8315, 8317..8318, 8331..8332, 8337, 8339, 8346..8347, 8350, 8383, 8512..8513, 8530, 8552, 8571, 8576, 8586, 8588..8589] : [
        [3] : 3
    ],
    [8051..8053, 8071..8072, 8077, 8084, 8144, 8147..8148, 8160, 8163, 8170, 8200, 8210..8213, 8220..8221, 8261, 8263, 8310, 8322, 8341, 8370, 8390, 8401..8402, 8406..8407, 8409..8410, 8440..8441, 8450, 8453, 8460..8461, 8470..8471, 8503..8504, 8560..8561, 8670, 8940] : [
        [0, 2, 3] : 3
    ],
    [8090, 8130, 8240, 8245, 8316, 8335, 8430, 8442, 8444, 8462, 8472..8473, 8581..8582, 8584, 8620, 8632, 8640] : [
        [1, 2, 3] : 3
    ],
    [8096, 8104, 8191, 8202, 8204, 8321, 8324, 8334, 8371..8372, 8374..8375, 8391, 8404, 8454, 8505..8506, 8563, 8587, 8601..8602, 8641, 8660, 8671] : [
        [0] : 3
    ],
    [8150, 8242, 8271, 8313, 8336, 8590, 8622, 8630] : [
        [0, 1, 3] : 3
    ],
    [8152..8153, 8155..8158, 8248, 8311, 8360, 8451, 8463, 8583, 8585, 8591..8593, 8621, 8623, 8633..8634, 8642] : [
        [1, 3] : 3
    ],
    [8348..8349, 8594, 8643] : [
        [1] : 3
    ],
    [8519] : [
        [2] : 3
    ],
    [9383..9384, 9431, 9444, 9506, 9509] : [
        [1] : 1
    ],
    [9421, 9505, 9749] : [
        [1, 3] : 1
    ],
    [9490] : [
        [0, 3] : 1
    ],
    [9492] : [
        [0] : 1
    ]
],
[716] : [
    [8000..8001, 9080, 9509] : [
        [0, 1, 3] : 1
    ],
    [8005, 8805..8806, 8810, 8825, 9370..9372, 9380..9382, 9385, 9391..9393, 9396, 9400..9401, 9410..9411, 9420, 9424..9425, 9430, 9440..9442, 9445, 9450..9451, 9470..9478, 9480, 9500..9503, 9508, 9590..9591, 9596, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8040, 8050, 8103, 8120..8121, 8140, 8250, 8260, 8270, 8272, 8290, 8323, 8330, 8380..8381, 8400, 8408, 8452, 8474, 8480, 8550, 8580, 8631, 8650] : [
        [0, 1, 2, 3] : 3
    ],
    [8011, 8054, 8060, 8100..8102, 8110, 8146, 8149, 8151, 8161, 8172, 8190, 8251, 8264, 8280..8281, 8300, 8325, 8333, 8361, 8373, 8392, 8403, 8405, 8420, 8443, 8572, 8600, 8610] : [
        [0, 3] : 3
    ],
    [8012..8014, 8020, 8022, 8030, 8032..8033, 8041, 8046, 8073..8076, 8078, 8080..8081, 8083, 8085..8086, 8091, 8094, 8097, 8122..8124, 8131, 8143, 8145, 8154, 8162, 8180, 8201, 8215, 8230..8231, 8243..8244, 8246..8247, 8249, 8252..8256, 8262, 8312, 8319..8320, 8340, 8342..8345, 8382, 8384, 8413, 8455, 8481..8484, 8490, 8500..8502, 8507..8510, 8514, 8520..8525, 8540..8543, 8551, 8562, 8570, 8573..8575, 8941] : [
        [2, 3] : 3
    ],
    [8015, 8021, 8023, 8031, 8034..8035, 8042..8045, 8082, 8092..8093, 8095, 8098, 8141..8142, 8171, 8173..8175, 8214, 8241, 8257, 8265, 8273, 8314..8315, 8317..8318, 8331..8332, 8337, 8339, 8346..8347, 8350, 8383, 8512..8513, 8530, 8552, 8571, 8576, 8586, 8588..8589] : [
        [3] : 3
    ],
    [8051..8053, 8071..8072, 8077, 8084, 8144, 8147..8148, 8160, 8163, 8170, 8200, 8210..8213, 8220..8221, 8261, 8263, 8310, 8322, 8341, 8370, 8390, 8401..8402, 8406..8407, 8409..8410, 8440..8441, 8450, 8453, 8460..8461, 8470..8471, 8503..8504, 8560..8561, 8670, 8940] : [
        [0, 2, 3] : 3
    ],
    [8090, 8130, 8240, 8245, 8316, 8335, 8430, 8442, 8444, 8462, 8472..8473, 8581..8582, 8584, 8620, 8632, 8640] : [
        [1, 2, 3] : 3
    ],
    [8096, 8104, 8191, 8202, 8204, 8321, 8324, 8334, 8371..8372, 8374..8375, 8391, 8404, 8454, 8505..8506, 8563, 8587, 8601..8602, 8641, 8660, 8671] : [
        [0] : 3
    ],
    [8150, 8242, 8271, 8313, 8336, 8590, 8622, 8630] : [
        [0, 1, 3] : 3
    ],
    [8152..8153, 8155..8158, 8248, 8311, 8360, 8451, 8463, 8583, 8585, 8591..8593, 8621, 8623, 8633..8634, 8642] : [
        [1, 3] : 3
    ],
    [8348..8349, 8594, 8643] : [
        [1] : 3
    ],
    [8519] : [
        [2] : 3
    ],
    [8800, 9490] : [
        [0, 3] : 1
    ],
    [8815, 8850, 9084, 9120, 9131, 9492..9493] : [
        [0] : 1
    ],
    [9150, 9161, 9383, 9431, 9505..9506] : [
        [1] : 1
    ],
    [9421] : [
        [1, 3] : 1
    ]
],
[720..725] : [
    [8000..8001, 9080, 9505, 9540, 9560] : [
        [0, 1, 3] : 1
    ],
    [8002..8005, 8720, 8801, 8805..8806, 9060, 9064, 9070..9071, 9081, 9085, 9100, 9370..9372, 9380..9382, 9385, 9392..9393, 9396, 9400..9401, 9410..9411, 9420, 9423..9425, 9430, 9440..9441, 9445, 9450..9451, 9460, 9473, 9475..9478, 9500..9503, 9508, 9561, 9590..9591, 9596, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9930, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8040, 8050, 8103, 8120..8121, 8140, 8250, 8260, 8270, 8272, 8290, 8323, 8330, 8380..8381, 8400, 8408, 8452, 8474, 8480, 8550, 8580, 8631, 8650] : [
        [0, 1, 2, 3] : 3
    ],
    [8011, 8054, 8060, 8100..8102, 8110, 8146, 8149, 8151, 8161, 8172, 8190, 8251, 8264, 8280..8281, 8300, 8325, 8333, 8361, 8373, 8392, 8403, 8405, 8420, 8443, 8572, 8600, 8610] : [
        [0, 3] : 3
    ],
    [8012..8014, 8020, 8022, 8030, 8032..8033, 8041, 8046, 8073..8076, 8078, 8080..8081, 8083, 8085..8086, 8091, 8094, 8097, 8122..8124, 8131, 8143, 8145, 8154, 8162, 8180, 8201, 8215, 8230..8231, 8243..8244, 8246..8247, 8249, 8252..8256, 8262, 8312, 8319..8320, 8340, 8342..8345, 8382, 8384, 8413, 8455, 8481..8484, 8490, 8500..8502, 8507..8510, 8514, 8520..8525, 8540..8543, 8551, 8562, 8570, 8573..8575, 8941] : [
        [2, 3] : 3
    ],
    [8015, 8021, 8023, 8031, 8034..8035, 8042..8045, 8082, 8092..8093, 8095, 8098, 8141..8142, 8171, 8173..8175, 8214, 8241, 8257, 8265, 8273, 8314..8315, 8317..8318, 8331..8332, 8337, 8339, 8346..8347, 8350, 8383, 8512..8513, 8530, 8552, 8571, 8576, 8586, 8588..8589] : [
        [3] : 3
    ],
    [8051..8053, 8070..8072, 8077, 8084, 8144, 8147..8148, 8160, 8163, 8170, 8200, 8210..8213, 8220..8221, 8261, 8263, 8310, 8322, 8341, 8370, 8390, 8401..8402, 8406..8407, 8409..8410, 8440..8441, 8450, 8453, 8460..8461, 8470..8471, 8503..8504, 8560..8561, 8670, 8940] : [
        [0, 2, 3] : 3
    ],
    [8090, 8130, 8240, 8245, 8316, 8335, 8430, 8442, 8444, 8462, 8472..8473, 8581..8582, 8584, 8620, 8632, 8640] : [
        [1, 2, 3] : 3
    ],
    [8096, 8104, 8191, 8202, 8204, 8321, 8324, 8334, 8371..8372, 8374..8375, 8391, 8404, 8454, 8505..8506, 8563, 8587, 8601..8602, 8641, 8660, 8671] : [
        [0] : 3
    ],
    [8150, 8242, 8271, 8313, 8336, 8590, 8622, 8630] : [
        [0, 1, 3] : 3
    ],
    [8152..8153, 8155..8158, 8248, 8311, 8360, 8451, 8463, 8583, 8585, 8591..8593, 8621, 8623, 8633..8634, 8642] : [
        [1, 3] : 3
    ],
    [8348..8349, 8594, 8643] : [
        [1] : 3
    ],
    [8519] : [
        [2] : 3
    ],
    [8680, 9150, 9161, 9383..9384, 9394, 9412, 9431, 9444, 9509] : [
        [1] : 1
    ],
    [8800, 8851, 9490, 9571] : [
        [0, 3] : 1
    ],
    [8815, 9391, 9421, 9442] : [
        [1, 3] : 1
    ],
    [8850, 9120..9122, 9131, 9413, 9492, 9541, 9550, 9562, 9570] : [
        [0] : 1
    ]
],
[728..729] : [
    [8000..8001, 8850, 8890, 9130, 9150, 9540] : [
        [0, 1, 3] : 1
    ],
    [8002..8005, 8801..8806, 8910, 8920, 9064, 9082, 9140, 9260, 9370..9372, 9500..9503, 9508, 9561, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9827, 9831, 9837, 9861, 9930, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8040, 8050, 8103, 8120..8121, 8140, 8250, 8260, 8270, 8272, 8290, 8323, 8330, 8380..8381, 8400, 8408, 8452, 8474, 8480, 8550, 8580, 8631, 8650] : [
        [0, 1, 2, 3] : 3
    ],
    [8011, 8054, 8060, 8100..8102, 8110, 8146, 8149, 8151, 8161, 8172, 8190, 8251, 8264, 8280..8281, 8300, 8325, 8333, 8361, 8373, 8392, 8403, 8405, 8420, 8443, 8572, 8600, 8610] : [
        [0, 3] : 3
    ],
    [8012..8014, 8020, 8022, 8030, 8032..8033, 8041, 8046, 8073..8076, 8078, 8080..8081, 8083, 8085..8086, 8091, 8094, 8097, 8122..8124, 8131, 8143, 8145, 8154, 8162, 8180, 8201, 8215, 8230..8231, 8243..8244, 8246..8247, 8249, 8252..8256, 8262, 8312, 8319..8320, 8340, 8342..8345, 8382, 8384, 8413, 8455, 8481..8484, 8490, 8500..8502, 8507..8510, 8514, 8520..8525, 8540..8543, 8551, 8562, 8570, 8573..8575, 8941] : [
        [2, 3] : 3
    ],
    [8015, 8021, 8023, 8031, 8034..8035, 8042..8045, 8082, 8092..8093, 8095, 8098, 8141..8142, 8171, 8173..8175, 8214, 8241, 8257, 8265, 8273, 8314..8315, 8317..8318, 8331..8332, 8337, 8339, 8346..8347, 8350, 8383, 8512..8513, 8530, 8552, 8571, 8576, 8586, 8588..8589, 9441] : [
        [3] : 3
    ],
    [8051..8053, 8070..8072, 8077, 8084, 8144, 8147..8148, 8160, 8163, 8170, 8200, 8210..8213, 8220..8221, 8261, 8263, 8310, 8322, 8341, 8370, 8390, 8401..8402, 8406..8407, 8409..8410, 8440..8441, 8450, 8453, 8460..8461, 8470..8471, 8503..8504, 8560..8561, 8670, 8940] : [
        [0, 2, 3] : 3
    ],
    [8090, 8130, 8240, 8245, 8316, 8335, 8430, 8442, 8444, 8462, 8472..8473, 8581..8582, 8584, 8620, 8632, 8640] : [
        [1, 2, 3] : 3
    ],
    [8096, 8104, 8191, 8202, 8204, 8321, 8324, 8334, 8371..8372, 8374..8375, 8391, 8404, 8454, 8505..8506, 8563, 8587, 8601..8602, 8641, 8660, 8671] : [
        [0] : 3
    ],
    [8150, 8242, 8271, 8313, 8336, 8590, 8622, 8630, 9440, 9442] : [
        [0, 1, 3] : 3
    ],
    [8152..8153, 8155..8158, 8248, 8311, 8360, 8451, 8463, 8583, 8585, 8591..8593, 8621, 8623, 8633..8634, 8642] : [
        [1, 3] : 3
    ],
    [8348..8349, 8594, 8643] : [
        [1] : 3
    ],
    [8519] : [
        [2] : 3
    ],
    [8800, 8900, 9084, 9120, 9560, 9571] : [
        [0, 3] : 1
    ],
    [8861, 9121, 9541, 9550, 9562, 9570] : [
        [0] : 1
    ],
    [8897, 9161] : [
        [1] : 1
    ],
    [9080] : [
        [1, 3] : 1
    ]
],
[739] : [
    [8000..8005, 8011..8015, 8020..8022, 8030..8035, 8041, 8043, 8071..8075, 8078, 8141, 8143, 8147, 8190, 8231, 8251, 8255, 8260, 8262, 8290, 8310, 8330..8333, 8335, 8337, 8339..8342, 8344..8347, 8350, 8450, 8510, 8550..8551, 8830, 8980..8982, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9680, 9684, 9687..9688, 9690..9691, 9695, 9698..9699, 9701..9702, 9705, 9712, 9714..9715, 9719, 9724, 9727..9729, 9731, 9734..9735, 9737..9738, 9740..9741, 9749..9751, 9754..9759, 9766, 9811..9819, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [8010, 8050, 8070, 8076, 8140, 8230, 8261, 8263, 8343] : [
        [2, 3] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[740..741, 749] : [
    [8000..8005, 8011..8015, 8020..8022, 8141, 8143, 8147, 8255, 8290, 8310, 8320, 8323, 8370, 8680, 8693, 8700, 9060, 9064..9065, 9070..9072, 9080..9085, 9370..9372, 9490, 9500..9505, 9699, 9823] : [
        [3] : 1
    ],
    [8010, 8140] : [
        [2, 3] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[750] : [
    [8000..8005, 8011..8015, 8020..8022, 8141, 8143, 8147, 8255, 8290, 8310, 8320, 8322..8323, 8680, 8693, 9060, 9064..9065, 9070..9072, 9080..9085, 9370..9372, 9490, 9500..9505, 9699, 9823] : [
        [3] : 1
    ],
    [8010, 8140] : [
        [2, 3] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[751] : [
    [8000..8001, 9080] : [
        [0, 1, 3] : 1
    ],
    [8005, 8270, 8272, 8280..8281, 8290, 8300, 8323, 8800] : [
        [0, 3] : 1
    ],
    [8010, 8140] : [
        [0, 2, 3] : 1
    ],
    [8146, 8260, 8271, 8310, 8850, 9580, 9582] : [
        [0] : 1
    ],
    [8273, 8320, 9060, 9064..9065, 9070..9072, 9081..9085, 9370..9372, 9500..9503, 9505, 9699, 9823] : [
        [3] : 1
    ],
    [9350..9352, 9432] : [
        [1] : 1
    ]
],
[752] : [
    [8000..8001, 9080] : [
        [0, 1, 3] : 1
    ],
    [8005, 8270, 8272, 8280..8281, 8290, 8300, 8323, 8800] : [
        [0, 3] : 1
    ],
    [8010, 8140] : [
        [0, 2, 3] : 1
    ],
    [8146, 8260, 8271, 8310, 8850, 9580, 9582] : [
        [0] : 1
    ],
    [8273, 8320, 9060, 9064..9065, 9070..9072, 9081..9085, 9370..9372, 9500..9503, 9505, 9699, 9823] : [
        [3] : 1
    ],
    [9350..9352, 9432] : [
        [1] : 1
    ],
    [9440, 9442] : [
        [0, 1, 3] : 3
    ],
    [9441] : [
        [3] : 3
    ]
],
[753] : [
    [8000..8001] : [
        [0, 1, 3] : 1
    ],
    [8010, 9492] : [
        [0] : 1
    ],
    [9060, 9064..9065, 9070..9072, 9081..9083, 9085, 9362, 9370..9372, 9395, 9473, 9490, 9500..9503, 9680, 9699, 9823] : [
        [3] : 1
    ],
    [9080, 9084] : [
        [0, 3] : 1
    ],
    [9360..9361] : [
        [1] : 1
    ],
    [9505] : [
        [1, 3] : 1
    ]
],
[754..755, 758..759] : [
    [8000..8005, 8011..8015, 8020..8022, 8141, 8143, 8147, 8255, 8290, 8310, 8320, 8323, 8680..8682, 8690..8693, 9060, 9064..9065, 9070..9072, 9080..9085, 9370..9372, 9490, 9500..9505, 9699, 9823] : [
        [3] : 1
    ],
    [8010, 8140] : [
        [2, 3] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[760..765, 767..768] : [
    [8000..8005, 8010, 8020..8022, 8046, 8051..8052, 8070..8074, 8082..8084, 8121, 8141, 8143, 8147, 8200, 8255, 8310, 8430, 8450, 8480..8481, 8525, 8550, 8562, 9500, 9699, 9823] : [
        [3] : 1
    ],
    [8140] : [
        [2, 3] : 1
    ],
    [8720..8723, 8727..8728, 8730, 8740..8746, 8760..8761, 8770..8772, 8774, 8780, 8815, 8825, 8830, 8890, 8897, 8940..8941] : [
        [2, 3] : 3
    ],
    [8726, 8750, 8773, 8790, 8800..8806, 8810..8811, 8813..8814, 8820..8824, 8826, 8840..8842, 8850..8860, 8880, 8891..8896, 8900..8902, 8910, 8912, 8920..8921, 8990..8991, 9040..9044, 9120..9121, 9124..9125, 9130..9131, 9133, 9136..9137, 9140, 9150, 9160..9161, 9170, 9240..9243, 9250..9252, 9440..9442, 9540, 9542, 9550, 9560, 9580..9581] : [
        [3] : 3
    ]
],
[770..775, 778..779] : [
    [8000..8005, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9678..9680, 9684, 9687..9691, 9695, 9698..9699, 9702, 9705, 9708, 9712, 9714..9717, 9719, 9724, 9727..9729, 9735, 9737..9738, 9751, 9755, 9759, 9761..9762, 9811..9818, 9823, 9831, 9837, 9965, 9967, 9971, 9975] : [
        [3] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
],
[809] : [
    [8000..8005, 8011..8015, 8020..8022, 8030..8035, 8041, 8043, 8051, 8071..8075, 8078, 8082..8084, 8121..8124, 8131, 8141, 8143, 8147, 8152..8153, 8156..8157, 8190, 8200, 8211, 8231, 8240..8246, 8249, 8251, 8255, 8260, 8262, 8290, 8310, 8320, 8323, 8380, 8401, 8430, 8440, 8480..8481, 8490, 8510, 8521, 8542, 8550..8551, 8560, 8562, 8570..8575, 8630, 8650, 8680, 8693, 8710, 8800..8806, 8810..8811, 8813..8815, 8825, 8830, 8840, 8850..8855, 8857..8858, 8890..8891, 8894..8896, 8900..8902, 8910, 8912, 8920..8921, 8934..8935, 8940..8941, 8950..8951, 8980..8982, 8990..8991, 9040..9044, 9060, 9064..9065, 9070..9072, 9080..9085, 9100..9102, 9105, 9110, 9120, 9130, 9133, 9140, 9150, 9170, 9310, 9370..9372, 9490, 9500..9505, 9520, 9540, 9560..9561, 9571, 9580..9581, 9590..9591, 9596, 9650..9655, 9659, 9661..9665, 9667, 9670..9671, 9673, 9675, 9678..9680, 9684, 9687, 9689..9691, 9695, 9698..9699, 9702, 9705, 9708, 9714, 9716..9717, 9719, 9727..9729, 9731..9732, 9734, 9823] : [
        [3] : 1
    ],
    [8010, 8050, 8052, 8070, 8076, 8120, 8130, 8140, 8201, 8210, 8230, 8261, 8263] : [
        [2, 3] : 1
    ],
    [9440..9442] : [
        [3] : 3
    ]
]
]]]></entry>
        <entry id="IFN7046_SchemaId_List" type="java"><![CDATA[['00161','00169','00170','00200','00290','09290','00330','09330','00360','00370','00400','00410','00421','00430','00450', '00459','00470','00480']]]></entry>
        <entry id="IFN7048_SchemaId_List" type="java"><![CDATA[['00071','00072','00073','00074','00075','00076','00077','00111','00112','00118','00119','00121','00122','00128','00131','00132','00133','00140','00150']]]></entry>
        <entry id="IFN_6129_SchemaId_List" type="java"><![CDATA[['00161','00169','00170','00200','00290','00330','00360','00370','00400','00410','00421','00430','00450', '00459','00470','00480']]]></entry>
        <entry id="IFN_6130_SchemaId_List" type="java"><![CDATA[['00458','00671','00672','00790','00795','00821','00822','00830']]]></entry>
        <entry id="IFN_6135_SchemaId_List" type="java"><![CDATA[['00071','00072','00073','00074','00075','00076','00077','00111','00112','00118','00119','00121','00122',
        '00128','00131','00132','00133','00140','00150']]]></entry>
        <entry id="IFN_6140_Table" type="java"><![CDATA[[
['2'] :
    [
        ['00480'] : [
            'eodPrimaryTumor' : ['eq' : ['000','050','070']],
            'eodRegionalNodes' : ['eq' : ['000','030','050','070']],
            'eodMets' : ['eq' : ['00','05']]
        ],
        ['00553'] : [
            'eodPrimaryTumor' : ['eq' : ['000','050','070','080']],
            'eodRegionalNodes' : ['eq' : ['000','050']],
            'eodMets' : ['eq' : ['00']]
        ],
        ['00530','00551'] : [
            'eodPrimaryTumor' : ['eq' : ['000','050']],
            'eodRegionalNodes' : ['eq' : ['000','050']],
            'eodMets' : ['eq' : ['00']]
        ],
        ['00723','09723'] : [
            'eodPrimaryTumor' : ['eq' : ['000']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_1 : [
            'eodPrimaryTumor' : ['eq' : ['000','050']],
            'eodRegionalNodes' : ['eq' : ['000']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_2 : [
            'eodPrimaryTumor' : ['eq' : ['000']],
            'eodRegionalNodes' : ['eq' : ['000']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_3 : [
            'eodPrimaryTumor' : ['eq' : ['000']],
            'eodRegionalNodes' : ['eq' : ['000','040','050']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_4 : [
            'eodPrimaryTumor' : ['eq' : ['000']],
            'eodRegionalNodes' : ['eq' : ['000','050','070']],
            'eodMets' : ['eq' : ['00']]
        ]
    ],
['3'] :
    [
        ['00480'] : [
            'eodPrimaryTumor' : ['ne' : ['000']],
            'eodRegionalNodes' : ['ne' : ['000','030','050','070']],
            'eodMets' : ['ne' : ['00','05']]
        ],
        ['00553'] : [
            'eodPrimaryTumor' : ['ne' : ['000','050','070','080']],
            'eodRegionalNodes' : ['ne' : ['000','050']],
            'eodMets' : ['ne' : ['00']]
        ],
        ['00530','00551'] : [
            'eodPrimaryTumor' : ['ne' : ['000','050']],
            'eodRegionalNodes' : ['ne' : ['000','050']],
            'eodMets' : ['ne' : ['00']]
        ],
        ['00723','09723'] : [
            'eodPrimaryTumor' : ['ne' : ['000','050']],
            'eodMets' : ['ne' : ['00']]
        ],
        EOD_SchemaId_List_1 : [
            'eodPrimaryTumor' : ['ne' : ['000','050']],
            'eodRegionalNodes' : ['ne' : ['000']],
            'eodMets' : ['ne' : ['00']]
        ],
        EOD_SchemaId_List_2 : [
            'eodPrimaryTumor' : ['ne' : ['000']],
            'eodRegionalNodes' : ['ne' : ['000']],
            'eodMets' : ['ne' : ['00']]
        ],
        EOD_SchemaId_List_3 : [
            'eodPrimaryTumor' : ['ne' : ['000']],
            'eodRegionalNodes' : ['ne' : ['000','040','050']],
            'eodMets' : ['ne' : ['00']]
        ],
        EOD_SchemaId_List_4 : [
            'eodPrimaryTumor' : ['ne' : ['000']],
            'eodRegionalNodes' : ['ne' : ['000','050','070']],
            'eodMets' : ['ne' : ['00']]
        ],
        EOD_SchemaId_List_8 : [
            'eodPrimaryTumor' : ['ne' : ['050']],
            'eodMets' : ['ne' : ['00']]
        ]
    ]
                ]]]></entry>
        <entry id="IFN_6148_SchemaId_List" type="java"><![CDATA[['00071','00072','00073','00074','00075','00076','00077','00080','00090','00100','00111','00112','00118','00119','00121','00122',
        '00128','00130','00131','00132','00133','00140','00150','00161','00169','00170','00180','00060','00210','00220','00241','00242','00250','00260','00270','00278','00288','00358','00370','00378',
        '00400','00410','00421','00422','00430','00440','00450','00478','00480','00500','09500','00510','00541','00542','09520','00520','00530','00558','00559','00570','00598','00600','00610','00631',
        '00633','00638','00730','00750','00640','00650','00660','00690','00698','00700','00718','00721','00722','00723','00760','00778','00812','00740','00459','09210','09721','09722','09723']]]></entry>
        <entry id="IFN_6149_SchemaId_List" type="java"><![CDATA[['00060', '00071', '00072',  '00073', '00074', '00075', '00076', '00077', '00080', '00090', '00100', '00111', '00112', '00118', '00119', '00121', '00122',
         '00128', '00130', '00131', '00132', '00133', '00140', '00150', '00161', '00169', '00170', '00180', '00210', '00220', '00241', '00242', '00250', '00260', '00270', '00278', '00288', '00358', '00370', '00378', '00400',
          '00410', '00421', '00422', '00430', '00440', '00450', '00459', '00478', '00480', '00500', '00510', '00520', '00528', '09520', '00530', '00541', '00542', '00558', '00559', '00570', '00598', '00600', '00610', '00631', '00633', '00638',
          '00640', '00650', '00660', '00690', '00698', '00700', '00718', '00721', '00722', '00723', '00730', '00740', '00750', '00760', '00778', '00812', '09210', '09721', '09722', '09723', '09500']]]></entry>
        <entry id="IFN_6259_SchemaId_List" type="java"><![CDATA[['00060', '00071','00072','00073','00074','00075','00076','00077','00080', '00090', '00100', '00111','00112','00121','00122','00130','00131','00132','00133','00140']]]></entry>
        <entry id="IFN_6286_SchemaId_List" type="java"><![CDATA[['00060', '00071', '00072', '00073', '00074', '00075', '00076', '00077', '00080', '00090', '00100', '00111', '00112', '00121', '00122', '00130', '00131', '00132', '00133', '00140']]]></entry>
        <entry id="IFN_6292_SchemaId_List" type="java"><![CDATA[['00071','00072','00073','00074','00075','00076','00077','00080', '00090', '00100', '00111', '00112', '00121', '00122', '00130', '00131', '00132', '00133', '00140']]]></entry>
        <entry id="IFN_6293_SchemaId_List" type="java"><![CDATA[['00071', '00072', '00073', '00074', '00075', '00076', '00077', '00080', '00090', '00100', '00111', '00112', '00121', '00122', '00130', '00131', '00132', '00133', '00140']]]></entry>
        <entry id="IFN_6294_SchemaId_List" type="java"><![CDATA[['00060', '00071', '00072', '00073', '00074', '00075', '00076', '00077', '00080', '00090', '00100', '00111', '00112', '00121', '00122', '00130', '00131', '00132', '00133', '00140']]]></entry>
        <entry id="IFN_SS2018_Table" type="java"><![CDATA[[['00060']: ['3', '7', '9'],
['00381', '00382', '00383', '00400', '00410', '00421', '00422', '00440', '00450', '00459', '00458', '00528', '00541', '00542', '00680', '00700', '00710', '00811', '00812']: ['1', '2', '3', '4', '7', '9'],
['00721', '00722', '09721', '09722', '09724']: ['1', '2', '7', '8', '9'],
['00723', '09723']: ['0', '1', '2', '7', '8', '9'],
['00790', '00795']: ['1', '2', '7', '9'],
['00821']: ['7', '9'],
['00822']: ['1', '3', '7', '9'],
['00830']: ['1', '7', '9'],
['09520']: ['0', '1', '2', '3', '4', '7', '9'],
['99999']: ['9']]]]></entry>
        <entry id="InvalidInsituSites" type="java"><![CDATA[[269,399,559,579,639,689,729,759..768,809]]]></entry>
        <entry id="IR09_NOS_SPEC_Table" type="java"><![CDATA[[
    'C260' : [150..259, 480..488],
    'C268' : [150..259, 480..488],
    'C269' : [150..259, 480..488],
    'C390' : [300..349, 384],
    'C398' : [300..349, 380..388],
    'C399' : [300..349, 384],
    'C579' : [510..578, 589],
    'C639' : [600..638],
    'C689' : [649..688],
    'C758' : [379, 739..749],
    'C759' : [379, 739..749]
]]]></entry>
        <entry id="IR09_PAIRED_ORGAN_Table" type="java"><![CDATA[[
    79..81, 90..91, 99, 301, 310, 312, 341..349, 384, 400..403, 441..443, 445..447, 471, 472, 491, 492,
    500..509, 569, 570, 620..631, 649, 659, 669, 690..699, 740..749, 754
]]]></entry>
        <entry id="IR13A_Histologies" type="java"><![CDATA[[8022, 8031, 8082, 8120..8131]]]></entry>
        <entry id="LymphExcepHist2010To2017" type="java"><![CDATA[[9590..9726,9728..9732,9734..9740,9750..9762,9811..9831,9940,9948,9971]]]></entry>
        <entry id="LymphNodesLymphoidTIS_IF2613DG" type="java"><![CDATA[[24,98..99,142,379,422,770..775,778..779]]]></entry>
        <entry id="Lymphoma_IF2613DG" type="java"><![CDATA[[9590..9698,9702..9714,9727]]]></entry>
        <entry id="Lymphomas" type="java"><![CDATA[[9590..9699,9702..9729]]]></entry>
        <entry id="MaligMelanoma_IF2613DG" type="java"><![CDATA[[8720..8799]]]></entry>
        <entry id="Morph" type="java"><![CDATA[[
    2 : [
            8000..8004,8010..8012,8020..8022,8030..8034,8040..8045,8050..8053,8060,8070..8077,8080..8082,8090..8096,8100..8102,8110,8120..8124,
            8130,8140..8147,8150..8155,8160..8162,8170..8171,8180,8190..8191,8200..8202,8210..8211,8220..8221,8230..8231,8240..8241,8243..8248,
            8250..8251,8260..8263,8270..8271,8280..8281,8290,8300,8310..8315,8320..8324,8330..8334,8340,8350,8360..8361,8370..8375,8380..8381,
            8390,8400..8408,8410,8420,8430,8440..8442,8450..8452,8460..8462,8470..8473,8480..8481,8490,8500..8506,8510..8512,8520..8522,8530,
            8540..8543,8550,8560..8562,8570..8573,8580,8590,8600..8602,8610,8620..8623,8630..8632,8640..8641,8650,8660,8670..8671,8680..8683,
            8690..8693,8700,8710..8713,8720..8727,8730,8740..8745,8750,8760..8761,8770..8774,8780,8790,8800..8804,8810..8814,8820..8824,8830,
            8832..8833,8840..8841,8850..8858,8860..8861,8870,8880..8881,8890..8897,8900..8904,8910,8920,8930..8933,8940..8941,8950..8951,8960,
            8963..8964,8970..8972,8980..8982,8990..8991,9000,9010..9016,9020,9030,9040..9044,9050..9055,9060..9064,9070..9073,9080..9085,
            9090..9091,9100..9104,9110,9120..9126,9130..9134,9140..9142,9150,9160..9161,9170..9175,9180..9185,9190..9191,9200,9210,9220..9221,
            9230..9231,9240..9241,9250..9251,9260..9262,9270..9275,9280..9282,9290,9300..9302,9310..9312,9320..9322,9330,9340,9350,9360..9364,
            9370,9380..9384,9390..9394,9400..9401,9410..9411,9420..9424,9430,9440..9443,9450..9451,9460,9470..9473,9480..9481,9490..9491,
            9500..9507,9510..9512,9520..9523,9530..9541,9550,9560..9562,9570,9580..9581,9590..9595,9650,9652..9655,9657..9667,9670..9677,
            9680..9688,9690..9698,9700..9717,9720,9722..9723,9731..9732,9740..9741,9760..9768,9800..9804,9820..9828,9830,9840..9842,9850,
            9860..9864,9866..9868,9870..9874,9880,9890..9894,9900,9910,9930..9932,9940..9941,9950,9960..9962,9970,9980..9984,9989
        ],
    3 : [
            8000..8004,8010..8012,8020..8022,8030..8034,8041..8045,8050..8052,8070..8077,8080..8082,8090..8095,8110,8120..8124,8130,
            8140..8145,8147,8150..8155,8160..8162,8170..8171,8180,8190,8200..8201,8210..8211,8220..8221,8230..8231,8240..8241,8243..8247,
            8250..8251,8260..8263,8270,8280..8281,8290,8300,8310,8312,8314..8315,8320,8322..8323,8330..8332,8340,8350,8370,8380..8381,8390,
            8400..8401,8410,8420,8430,8440..8442,8450..8451,8460..8462,8470..8473,8480..8481,8490,8500..8504,8510..8512,8520..8522,8530,
            8540..8543,8550,8560,8562,8570..8573,8580,8600,8620,8630,8640,8650,8680,8693,8700,8710,8720..8723,8730,8740..8745,8761,
            8770..8774,8780,8800..8804,8810..8814,8830,8832..8833,8840,8850..8855,8858,8890..8891,8894..8896,8900..8902,8910,8920,8930,
            8933,8940..8941,8950..8951,8960,8963..8964,8970..8972,8980..8981,8990..8991,9000,9020,9040..9044,9050..9053,9060..9064,9070..9072,
            9080..9085,9090,9100..9102,9110,9120,9124,9130,9133,9140,9150,9170,9180..9185,9190,9220..9221,9230..9231,9240,9250..9251,
            9260..9261,9270,9290,9310,9330,9362,9364,9370,9380..9382,9390..9392,9400..9401,9410..9411,9420..9424,9430,9440..9443,9450..9451,
            9460,9470..9473,9480..9481,9490,9500..9504,9510..9512,9520..9523,9530,9539..9540,9560..9561,9580..9581,9590..9595,9650,9652..9655,
            9657..9667,9670..9677,9680..9688,9690..9698,9700..9717,9720,9722..9723,9731..9732,9740..9741,9760..9764,9800..9804,9820..9828,9830,
            9840..9842,9850,9860..9864,9866..9868,9870..9874,9880,9890..9894,9900,9910,9930..9932,9940..9941
        ]
]]]></entry>
        <entry id="Morph_ICD03_Grade_Hists" type="java"><![CDATA[[
    '8020' : '4',
    '8021' : '4',
    '8331' : '1',
    '9082' : '4',
    '9083' : '2',
    '9511' : '1',
    '9512' : '4'
]]]></entry>
        <entry id="Morph_ICDO3_2010" type="java"><![CDATA[[9597,9688,9712,9724,9725,9726,9735,9737,9738,9759,9806,9807,9808,9809,9811,9812,9813,9814,9815,9816,9817,9818,9865,9869,9898,9911,9965,9966,9967,9971,9991,9992]]]></entry>
        <entry id="Morph_ICDO3_2018" type="java"><![CDATA[[8023,8054,8085,8086,8158,8163,8256,8257,8265,8339,8474,8509,8519,8552,8594,8714,8975,9045,9086,9137,9385,9395,9396,9425,9431,9432,9445,9475,9476,9477,9478,9509,9542]]]></entry>
        <entry id="Morph_ICDO3_2021" type="java"><![CDATA[[8104,8273,8348,8349,8483,8484,8563,8643,8816,8817,8818,8828,8992,9126,9138,9211,9212,9213,9222,9563,9715,9749,9819,9877,9878,9879,9912,9968,9993]]]></entry>
        <entry id="Morph_ICDO3_2022" type="java"><![CDATA[[8455,8859,8976,9111,9366,9367,9368]]]></entry>
        <entry id="Mucosal_Melanoma_Head_Neck_Schemas" type="java"><![CDATA[['melanoma_lip_upper','melanoma_lip_lower','melanoma_lip_other','melanoma_tongue_anterior','melanoma_gum_upper','melanoma_gum_lower','melanoma_gum_other','melanoma_floor_mouth','melanoma_palate_hard','melanoma_mouth_other','melanoma_buccal_mucosa','melanoma_tongue_base','melanoma_palate_soft','melanoma_oropharynx','melanoma_nasopharynx','melanoma_hypopharynx','melanoma_pharynx_other','melanoma_epiglottis_anterior','melanoma_larynx_glottic','melanoma_larynx_supraglottic','melanoma_larynx_subglottic','melanoma_larynx_other','melanoma_nasal_cavity','melanoma_sinus_maxillary','melanoma_sinus_ethmoid','melanoma_sinus_other']]]></entry>
        <entry id="Odd_Histologies" type="java"><![CDATA[[9731..9734,9740..9758,9760..9989,9590..9699,9702..9729]]]></entry>
        <entry id="Primary_Site_Table" type="java"><![CDATA[[
    0..6,8..9,19..24,28..31,39..41,48..52,58..62,68..69,79..81,88..91,98..104,108..113,118..119,129..132,138..140,142,148,150..155,158..166,168..173,178..189,199,
    209..212,218,220..221,239..241,248..254,257..260,268..269,300..301,310..313,318..323,328..329,339..343,348..349,379..384,388,390,398..403,408..414,418..424,440..449,
    470..476,478..482,488,490..496,498..506,508..512,518..519,529..531,538..543,548..549,559,569..574,577..579,589,600..602,608..609,619..621,629..632,637..639,649,659,
    669..681,688..696,698..701,709..725,728..729,739..741,749..755,758..765,767..768,770..775,778..779,809
]]]></entry>
        <entry id="registry_county" type="java"><![CDATA[[
    1501 : [1,13,41,75,81,999],
    1502 : [1,3,5,7,9,11,13,15,999],
    1520 : [99,125,163,999],
    1521 : [1,3,5,7,9,999],
    1522 : [1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71,73,75,77,79,81,83,85,87,89,91,93,95,97,99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,129,131,133,135,137,139,141,143,145,147,149,151,153,155,157,159,161,163,165,167,169,171,173,175,177,179,181,183,185,187,189,191,193,195,197,999],
    1523 : [1,3,5,6,7,9,11,13,15,17,19,21,23,25,27,28,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,999],
    1525 : [9,27,29,31,33,35,45,53,55,57,61,67,73,999],
    1526 : [1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,999],
    1527 : [63,67,89,121,135,999],
    1529 : [13,16,20,50,60,63,66,68,70,90,100,105,110,122,130,150,158,164,170,180,185,188,195,198,201,220,230,232,240,261,270,275,280,282,290,999],
    1531 : [53,69,85,87,999],
    1533 : [1,3,5,7,9,11,12,13,15,17,19,21,23,25,27,999],
    1535 : [37,999],
    1537 : [125,133,141,159,163,211,237,265,301,303,999],
    1541 : [3,5,7,9,11,15,17,19,21,23,25,27,29,31,33,35,39,43,45,47,49,51,55,57,59,61,63,65,67,71,73,77,79,83,89,91,93,95,97,99,101,103,105,107,109,111,113,115,999],
    1542 : [1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71,73,75,77,79,81,83,85,87,89,91,93,95,97,99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,129,131,133,135,137,139,141,143,145,147,149,151,153,155,157,159,161,163,165,167,169,171,173,175,177,179,181,183,185,187,189,191,193,195,197,199,201,203,205,207,209,211,213,215,217,219,221,223,225,227,229,231,233,235,237,239,999],
    1543 : [1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71,73,75,77,79,81,83,85,87,89,91,93,95,97,99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,999],
    1544 : [1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,999],
    1547 : [1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,43,45,47,49,51,53,55,57,59,61,65,69,71,73,75,77,79,81,83,85,87,91,93,95,97,99,101,103,105,107,109,111,113,115,117,119,123,127,129,131,137,139,143,145,147,149,151,153,155,157,161,165,167,169,171,173,175,177,179,181,183,185,187,189,191,193,195,197,199,201,205,207,209,213,215,217,219,221,223,225,227,229,231,233,235,239,241,243,245,247,249,251,253,255,257,259,261,263,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,305,307,309,311,313,315,317,319,321,999],
    1551 : [1,21,35,37,41,91,97,101,105,115,131,135,143,145,147,999],
    1561 : [1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71,73,75,77,79,81,83,85,87,999],
    1562 : [1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71,73,75,77,79,81,83,85,87,89,91,93,95,97,99,101,103,105,107,109,111,113,115,117,119,121,123,999],
    1563 : [1,3,5,7,9,11,13,15,17,19,21,23,25,27,999],
    1564 : [1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71,73,75,77,78,79,81,83,85,87,89,91,93,95,97,99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,129,131,133,135,137,139,141,999],
    1565 : [1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71,73,75,77,79,81,83,85,87,89,91,93,95,97,99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,129,131,133,135,137,139,141,143,145,147,149,151,153,155,157,159,161,163,165,167,169,171,173,175,177,179,181,183,185,187,189,191,193,195,197,199,201,203,999],
    1566 : [1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71,73,75,77,79,81,83,85,87,89,91,93,95,97,99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,129,131,133,135,137,139,141,143,145,147,149,151,153,155,157,159,161,163,165,167,169,171,173,175,177,179,181,183,185,187,189,191,193,195,197,199,201,203,205,207,209,211,213,215,217,219,221,223,225,227,229,231,233,235,237,239,241,243,245,247,249,251,253,255,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,311,313,315,317,319,321,323,325,327,329,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,377,379,381,383,385,387,389,391,393,395,397,399,401,403,405,407,409,411,413,415,417,419,421,423,425,427,429,431,433,435,437,439,441,443,445,447,449,451,453,455,457,459,461,463,465,467,469,471,473,475,477,479,481,483,485,487,489,491,493,495,497,499,501,503,505,507,999]
]]]></entry>
        <entry id="registry_county_census2000" type="java"><![CDATA[[
    'CA' : census2000_ca,
    'CT' : census2000_ct,
    'MI' : census2000_mi,
    'HI' : census2000_hi,
    'IA' : census2000_ia,
    'NM' : census2000_nm,
    'WA' : census2000_wa,
    'UT' : census2000_ut,
    'GA' : census2000_ga,
    'AK' : census2000_ak,
    'AZ' : census2000_az,
    'KY' : census2000_ky,
    'LA' : census2000_la,
    'NJ' : census2000_nj,
    'ID' : census2000_id,
    'NY' : census2000_ny,
    'MA' : census2000_ma,
    'WI' : census2000_wi,
    'IL' : census2000_il,
    'TX' : census2000_tx
    ]]]></entry>
        <entry id="registry_county_census2010" type="java"><![CDATA[[
    'CA' : census2010_ca,
    'CT' : census2010_ct,
    'MI' : census2010_mi,
    'HI' : census2010_hi,
    'IA' : census2010_ia,
    'NM' : census2010_nm,
    'WA' : census2010_wa,
    'UT' : census2010_ut,
    'GA' : census2010_ga,
    'AK' : census2010_ak,
    'AZ' : census2010_az,
    'KY' : census2010_ky,
    'LA' : census2010_la,
    'NJ' : census2010_nj,
    'ID' : census2010_id,
    'NY' : census2010_ny,
    'MA' : census2010_ma,
    'WI' : census2010_wi,
    'IL' : census2010_il,
    'TX' : census2010_tx
    ]]]></entry>
        <entry id="registry_county_census2020" type="java"><![CDATA[[
    'CA' : census2020_ca,
    'CT' : census2020_ct,
    'MI' : census2020_mi,
    'HI' : census2020_hi,
    'IA' : census2020_ia,
    'NM' : census2020_nm,
    'WA' : census2020_wa,
    'UT' : census2020_ut,
    'GA' : census2020_ga,
    'AK' : census2020_ak,
    'AZ' : census2020_az,
    'KY' : census2020_ky,
    'LA' : census2020_la,
    'NJ' : census2020_nj,
    'ID' : census2020_id,
    'NY' : census2020_ny,
    'MA' : census2020_ma,
    'IL' : census2020_il,
    'TX' : census2020_tx
    ]]]></entry>
        <entry id="registry_county_censusTract" type="java"><![CDATA[[
    'CA' : census_ca,
    'CT' : census_ct,
    'MI' : census_mi,
    'HI' : census_hi,
    'IA' : census_ia,
    'NM' : census_nm,
    'WA' : census_wa,
    'UT' : census_ut,
    'GA' : census_ga,
    'AZ' : census_az,
    'KY' : census_ky,
    'LA' : census_la,
    'NJ' : census_nj,
    'NY' : census_ny,
    'MA' : census_ma,
    'WI' : census_wi,
    'IL' : census_il,
    'TX' : census_tx
]]]></entry>
        <entry id="Registry_ID_Table" type="java"><![CDATA[[
    200,300,400,500,580..581,600,700,800,1100,1180,1400,1480,1500..1502,1520..1523,1525..1527,1529..1533,1535,1537,1540..1544,1547,1551,1561..1574,1599,1680,1700,1801,1900,2100,
    2200,2300,2400,2500,2600..2601,3100,3300..3303,3500,3700,3900,4100..4101,4300..4301,4500,4700,5100,5200,5300,5400,5600,6100,6300,6500,6700,7100,7300..7310,7500,
    7580,7700,8100,8200,8300,8400,8500,8600..8601,8700,9100,9180,9300..9302,9380,9500,9580,9700..9712,9900,10100000,22000000,22001000,22001100,22001200,22001300,
    22002400,22003500,22004600,22004700,22004800,22005900,22006000,22006100
]]]></entry>
        <entry id="SchemaDiscriminator2_Esophagus" type="java"><![CDATA[[
['1', '9'] : ['00161', '16.1'],
['2'] : ['00169', '16.2']
]]]></entry>
        <entry id="SchemaDiscriminator2_Esophagus_SD1" type="java"><![CDATA[[
['1', '2', '9'] : ['00161', '16.1', '00169', '16.2']
]]]></entry>
        <entry id="SchemaDiscriminator2_Oropharynx" type="java"><![CDATA[[
['2'] : ['00100', '10'],
['1', '9'] : ['00111', '11.1']
]]]></entry>
        <entry id="SchemaDiscriminator2_Oropharynx_SD1" type="java"><![CDATA[[
['2', '1', '9'] : ['00100', '10', '00111', '11.1']
]]]></entry>
        <entry id="SchemaDiscriminator2_SoftTissue" type="java"><![CDATA[[
['1'] : ['00410','41'],
['2', '8'] : ['00421','42'],
['9'] : ['00459']
]]]></entry>
        <entry id="SchemaDiscriminator2Table" type="java"><![CDATA[[
['C019','C024','C051','C052','C090','C091','C098','C099','C100','C102','C103','C104','C108','C109'] : [[8000..8700] : SchemaDiscriminator2_Oropharynx],
['C111'] : [[8000..8700] : SchemaDiscriminator2_Oropharynx_SD1],
['C150', 'C151', 'C152', 'C153', 'C154', 'C155', 'C158', 'C159'] : [[8020] : SchemaDiscriminator2_Esophagus],
['C160'] : [[8020] : SchemaDiscriminator2_Esophagus_SD1],
['C473', 'C475', 'C493', 'C494', 'C495'] : [[8000..8803,8810..8921,8932..8934,8940..8990,9000..9016,9030..9043,9045..9138, 9141..9230,9240..9580,9582] : SchemaDiscriminator2_SoftTissue]
]]]></entry>
        <entry id="SchemaIdAjccIdTable" type="java"><![CDATA[[
['00060']: ['6', 'XX'],
['00071', '00072', '00073', '00074', '00075', '00076', '00077']: ['7', 'XX'],
['00080']: ['8', 'XX'],
['00090']: ['9', 'XX'],
['00100']: ['10', 'XX'],
['00111']: ['11.1', 'XX'],
['00112']: ['11.2', 'XX'],
['00118', '00119', '00128', '00278', '00288', '00358', '00378', '00459', '00478', '00558', '00559', '00598', '00638', '00698', '00718', '00778', '99999']: ['XX'],
['00121']: ['12.1', 'XX'],
['00122']: ['12.2', 'XX'],
['00130']: ['13.0', 'XX'],
['00131']: ['13.1', 'XX'],
['00132']: ['13.2', 'XX'],
['00133']: ['13.3', 'XX'],
['00140']: ['14', 'XX'],
['00150']: ['15', 'XX'],
['00161']: ['16.1', 'XX'],
['00169']: ['16.2', '16.3', 'XX'],
['00170']: ['17', 'XX'],
['00180']: ['18.1', '18.2', 'XX'],
['00190']: ['19', 'XX'],
['00200']: ['20', 'XX'],
['00210']: ['21', 'XX'],
['00220']: ['22', 'XX'],
['00230']: ['23', 'XX'],
['00241', '00242']: ['24', 'XX'],
['00250']: ['25', 'XX'],
['00260']: ['26', 'XX'],
['00270']: ['27', 'XX'],
['00280']: ['28', 'XX'],
['00290']: ['29', 'XX'],
['00301', '00302']: ['30', 'XX'],
['00310']: ['31', 'XX'],
['00320']: ['32', 'XX'],
['00330']: ['33', 'XX'],
['00340']: ['34', 'XX'],
['00350']: ['35', 'XX'],
['00360']: ['36', 'XX'],
['00370']: ['37', 'XX'],
['00381']: ['38.1', 'XX'],
['00382']: ['38.2', 'XX'],
['00383']: ['38.3', 'XX'],
['00400']: ['40', 'XX'],
['00410']: ['41', 'XX'],
['00421', '00422']: ['42', 'XX'],
['00430']: ['43.1', '43.2', 'XX'],
['00440']: ['44', 'XX'],
['00450', '00458']: ['45', 'XX'],
['00460']: ['46', 'XX'],
['00470']: ['47', 'XX'],
['00480']: ['48.1', '48.2', 'XX'],
['00500']: ['50', 'XX'],
['00510']: ['51', 'XX'],
['00520']: ['52', 'XX'],
['00528', '00541']: ['54.1', 'XX'],
['00530']: ['53', 'XX'],
['00542']: ['54.2', 'XX'],
['00551', '00552', '00553']: ['55', 'XX'],
['00560']: ['56', 'XX'],
['00570']: ['57', 'XX'],
['00580']: ['58', 'XX'],
['00590']: ['59', 'XX'],
['00600']: ['60', 'XX'],
['00610']: ['61.1', '61.2', 'XX'],
['00620']: ['62.1', '62.2', 'XX'],
['00631']: ['63.1', '63.2', 'XX'],
['00633']: ['63.3', '63.4', 'XX'],
['00640']: ['64', 'XX'],
['00650']: ['65', 'XX'],
['00660']: ['66', 'XX'],
['00671']: ['67.1', 'XX'],
['00672']: ['67.2', 'XX'],
['00680']: ['68', 'XX'],
['00690']: ['69', 'XX'],
['00700']: ['70', 'XX'],
['00710']: ['71', 'XX'],
['00721', '00722', '00723']: ['72', 'XX'],
['00730']: ['73.1', '73.2', 'XX'],
['00740']: ['74', 'XX'],
['00750']: ['75', 'XX'],
['00760']: ['76', 'XX'],
['00770']: ['77', 'XX'],
['00790']: ['79.0', '79.1', '79.2', '79.3', '79.4', '79.6', '79.7', 'XX'],
['00795']: ['79.5', 'XX'],
['00811']: ['81.1', 'XX'],
['00812']: ['81.2', 'XX'],
['00821']: ['82.1', 'XX'],
['00822']: ['82.2', 'XX'],
['00830']: ['83.0', '83.1', '83.2', '83.3', '83.4', 'XX'],
['09190']: ['9002', 'XX'],
['09210']: ['9003', 'XX'],
['09290']: ['9007', 'XX'],
['09301', '09302']: ['9008', 'XX'],
['09310']: ['9009', 'XX'],
['09320']: ['9010', 'XX'],
['09330']: ['9011', 'XX'],
['09340']: ['9012', 'XX'],
['09500']: ['9006', 'XX'],
['09520']: ['9001', 'XX'],
['09721', '09722', '09723']: ['9004', 'XX'],
['09724']: ['9004', '9005', 'XX']
]]]></entry>
        <entry id="SEER_IR03A_Filter" type="groovy"><![CDATA[return  {lines ->
    List filteredLines = []
    lines.each() { line ->
        if (Functions.matches(line.ageAtDiagnosis, /\d+/) && line.ageAtDiagnosis != '999' && Functions.matches(line.sequenceNumberCentral, /\d\d/) && Functions.between(line.sequenceNumberCentral, '00', '59'))
            filteredLines.add(line)
    }
    return filteredLines }]]></entry>
        <entry id="SEER_IR03B_Filter" type="groovy"><![CDATA[return  {lines ->
    List filteredLines = []
    lines.each() { line ->
        if (Functions.matches(line.ageAtDiagnosis, /\d+/) && line.ageAtDiagnosis != '999' && Functions.matches(line.sequenceNumberCentral, /\d\d/) && Functions.between(line.sequenceNumberCentral, '60', '87'))
            filteredLines.add(line)
    }
    return filteredLines }]]></entry>
        <entry id="SEER_IR06A_Filter" type="groovy"><![CDATA[return  {lines ->
    List filteredLines = []
    lines.each() { line ->
        if (Functions.matches(line.sequenceNumberCentral, /\d\d/) && Functions.between(line.sequenceNumberCentral, '00', '59') && Functions.matches(line.dateOfDiagnosisYear, /\d\d\d\d/))
            filteredLines.add(line)
    }
    return filteredLines }]]></entry>
        <entry id="SEER_IR06B_Filter" type="groovy"><![CDATA[return  {lines ->
    List filteredLines = []
    lines.each() { line ->
        if (Functions.matches(line.sequenceNumberCentral, /\d\d/) && Functions.between(line.sequenceNumberCentral, '60', '87') && Functions.matches(line.dateOfDiagnosisYear, /\d\d\d\d/))
            filteredLines.add(line)
    }
    return filteredLines }]]></entry>
        <entry id="SEER_IR07A_Filter" type="groovy"><![CDATA[return  {lines ->
    List filteredLines = []
    lines.each() { line ->
        if (Functions.matches(line.sequenceNumberCentral, /\d\d/) && !Functions.between(line.sequenceNumberCentral, '60', '98') )
            filteredLines.add(line)
    }
    return filteredLines }]]></entry>
        <entry id="SEER_IR07B_Filter" type="groovy"><![CDATA[return  {lines ->
    List filteredLines = []
    lines.each() { line ->
        if (Functions.matches(line.sequenceNumberCentral, /\d\d/) && Functions.between(line.sequenceNumberCentral, '60', '88') )
            filteredLines.add(line)
    }
    return filteredLines }]]></entry>
        <entry id="seqComparator" type="groovy"><![CDATA[// compares lines (tumors) by sequence number (missing sequences go to the end of the list)

    return [compare : { line1, line2 ->

        Integer seq1 = Functions.asInt(line1.sequenceNumberCentral)
        Integer seq2 = Functions.asInt(line2.sequenceNumberCentral)

        if (seq1 == null)
            return 1
        else if (seq2 == null)
            return -1
        else
            return seq1 - seq2
}] as Comparator]]></entry>
        <entry id="Skin_IF2613DG" type="java"><![CDATA[[440..447,510..512,518..519,600..601,608..609]]]></entry>
        <entry id="Skin_IF262DIG" type="java"><![CDATA[[440..447,510..519,600..601,608..609]]]></entry>
        <entry id="SmallInstToRectum_IF262DIG" type="java"><![CDATA[[171..172,180..189,199,209]]]></entry>
        <entry id="SpecInSituEdit" type="java"><![CDATA[[
    'Invalid_Histology_for_In_Situ_(Morph)' : [8000..8004,8020..8021,8331..8332,8523..8524,8800..9054,9062,9082..9083,9110..9491,9501..9989],
    'Invalid_ICD_O_3_Histology_for_In_Situ_(Morph_3)' : [8000..8005,8020..8021,8331..8332,8800..9055,9062,9082..9083,9110..9491,9501..9989],
    'Invalid_Oldhist_for_In_Situ_(OldMorph)' : [8000..8004,8020..8021,8331..8332,8523..8524,8543,8800..9054,9062,9082..9083,9110..9491,9501..9960]
]]]></entry>
        <entry id="State" type="java"><![CDATA[['AA': 63,'AB': 99,'AE': 64,'AK': 58,'AL': 25,'AP': 65,'AR': 45,'AS': 72,'AZ': 56,'BC': 105,'CA': 61,'CD': 90,'CO': 52,'CT': 8,'DC': 16,'DE': 13,'FL': 24,'FM': 74,'GA': 23,'GU': 77,'HI': 62,'IA': 35,'ID': 50,'IL': 40,'IN': 30,'KS': 42,'KY': 31,'LA': 46,'MA': 6,'MB': 100,'MD': 15,'ME': 3,'MH': 80,'MI': 28,'MM': 91,'MN': 34,'MO': 41,'MP': 79,'MS': 26,'MT': 38,'NB': 92,'NC': 19,'ND': 36,'NE': 43,'NH': 4,'NJ': 9,'NL': 93,'NM': 55,'NN': 2,'NS': 94,'NT': 103,'NU': 106,'NV': 54,'NY': 11,'OH': 29,'OK': 47,'ON': 97,'OR': 60,'PA': 12,'PE': 95,'PP': 98,'PR': 67,'PW': 87,'QC': 96,'RI': 7,'SC': 20,'SD': 37,'SK': 101,'TN': 22,'TX': 48,'UM': 78,'UM': 78,'UM': 78,'UM': 78,'US': 1,'UT': 53,'VA': 17,'VI': 68,'VT': 5,'WA': 59,'WI': 33,'WV': 18,'WY': 51,'XX': 70,'YN': 102,'YT': 104,'YY': 66,'ZZ': 391]]]></entry>
        <entry id="Summary_Stage_EOD_Table" type="java"><![CDATA[[
['0'] :
    [
        ['00480'] : [
            'eodPrimaryTumor' : ['eq' : ['000','050','070']],
            'eodRegionalNodes' : ['eq' : ['000','030','050','070']],
            'eodMets' : ['eq' : ['00','05']]
        ],
        ['00553'] : [
            'eodPrimaryTumor' : ['eq' : ['000','050','070','080']],
            'eodRegionalNodes' : ['eq' : ['000','050']],
            'eodMets' : ['eq' : ['00']]
        ],
        ['00530','00551'] : [
            'eodPrimaryTumor' : ['eq' : ['000','050']],
            'eodRegionalNodes' : ['eq' : ['000','050']],
            'eodMets' : ['eq' : ['00']]
        ],
        ['00723','09723'] : [
            'eodPrimaryTumor' : ['eq' : ['000']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_1 : [
            'eodPrimaryTumor' : ['eq' : ['000','050']],
            'eodRegionalNodes' : ['eq' : ['000']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_2 : [
            'eodPrimaryTumor' : ['eq' : ['000']],
            'eodRegionalNodes' : ['eq' : ['000']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_3 : [
            'eodPrimaryTumor' : ['eq' : ['000']],
            'eodRegionalNodes' : ['eq' : ['000','040','050']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_4 : [
            'eodPrimaryTumor' : ['eq' : ['000']],
            'eodRegionalNodes' : ['eq' : ['000','050','070']],
            'eodMets' : ['eq' : ['00']]
        ]
    ],
['1', '2'] :
    [
        ['00480'] : [
            'eodPrimaryTumor' : ['ne' : ['000','800','900']],
            'eodRegionalNodes' : ['eq' : ['000','030','050','070','999']],
            'eodMets' : ['eq' : ['00','05']]
        ],
        ['00553'] : [
            'eodPrimaryTumor' : ['ne' : ['000','050','070','080','800','999']],
            'eodRegionalNodes' : ['eq' : ['000','050','999']],
            'eodMets' : ['eq' : ['00']]
        ],
        ['00530','00551'] : [
            'eodPrimaryTumor' : ['ne' : ['000','050','800','999']],
            'eodRegionalNodes' : ['eq' : ['000','050','999']],
            'eodMets' : ['eq' : ['00']]
        ],
        ['00723','09723'] : [
            'eodPrimaryTumor' : ['ne' : ['000','050','800','999']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_1 : [
            'eodPrimaryTumor' : ['ne' : ['000','050','800','999']],
            'eodRegionalNodes' : ['eq' : ['000','999']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_2 : [
            'eodPrimaryTumor' : ['ne' : ['000','800','999']],
            'eodRegionalNodes' : ['eq' : ['000','999']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_3 : [
            'eodPrimaryTumor' : ['ne' : ['000','800','999']],
            'eodRegionalNodes' : ['eq' : ['000','040','050','999']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_4 : [
            'eodPrimaryTumor' : ['ne' : ['000','800','999']],
            'eodRegionalNodes' : ['eq' : ['000','050','070','999']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_5 : [
            'eodPrimaryTumor' : ['ne' : ['800','999']],
            'eodRegionalNodes' : ['eq' : ['000','999']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_6 : [
            'eodPrimaryTumor' :  ['ne' : ['800','999']],
            'eodRegionalNodes' : ['eq' : ['000','050','999']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_7 : [
            'eodPrimaryTumor' :  ['ne' : ['800','999']],
            'eodRegionalNodes' : ['eq' : ['000','987','999']]
        ],
        EOD_SchemaId_List_8 : [
            'eodPrimaryTumor' :  ['ne' : ['050','800','999']],
            'eodMets' : ['eq' : ['00']]
        ]
    ],
['3'] :
    [
        ['00480'] : [
            'eodRegionalNodes' : ['ne' : ['000','030','050','070','999']],
            'eodMets' : ['eq' : ['00','05']]
        ],
        EOD_SchemaId_List_1 : [
            'eodRegionalNodes' : ['ne' : ['000','999']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_2 : [
            'eodRegionalNodes' : ['ne' : ['000','999']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_5 : [
            'eodRegionalNodes' : ['ne' : ['000','999']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_9 : [
            'eodRegionalNodes' : ['ne' : ['000','999']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_3 : [
            'eodRegionalNodes' : ['ne' : ['000','040','050','999']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_6 : [
            'eodRegionalNodes' : ['ne' : ['000','040','050','999']],
            'eodMets' : ['eq' : ['00']]
        ],
        ['00530','00551','00553'] : [
            'eodRegionalNodes' : ['ne' : ['000','040','050','999']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_4 : [
            'eodRegionalNodes' : ['ne' : ['000','050','070','999']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_7 : [
            'eodRegionalNodes' : ['ne' : ['000','700','987','999']]
        ]
    ],
['4'] :
    [
        ['00480'] : [
            'eodPrimaryTumor' : ['ne' : ['000','800','999']],
            'eodRegionalNodes' : ['ne' : ['000','030','050','070','999']],
            'eodMets' : ['eq' : ['00','05']]
        ],
        ['00530','00551'] : [
            'eodPrimaryTumor' : ['ne' : ['000','050','800','999']],
            'eodRegionalNodes' : ['ne' : ['000','050','999']],
            'eodMets' : ['eq' : ['00']]
        ],
        ['00553'] : [
            'eodPrimaryTumor' : ['ne' : ['000','050','070','080','800','999']],
            'eodRegionalNodes' : ['ne' : ['000','050','999']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_1 : [
            'eodPrimaryTumor' : ['ne' : ['000','050','800','999']],
            'eodRegionalNodes' : ['ne' : ['000','999']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_2 : [
            'eodPrimaryTumor' : ['ne' : ['000','800','999']],
            'eodRegionalNodes' : ['ne' : ['000','999']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_3 : [
            'eodPrimaryTumor' : ['ne' : ['000','800','999']],
            'eodRegionalNodes' : ['ne' : ['000','040','050','999']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_4 : [
            'eodPrimaryTumor' : ['ne' : ['000','800','999']],
            'eodRegionalNodes' : ['ne' : ['000','050','070','999']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_5 : [
            'eodPrimaryTumor' : ['ne' : ['800','999']],
            'eodRegionalNodes' : ['ne' : ['000','999']],
            'eodMets' : ['eq' : ['00']]
        ],
        EOD_SchemaId_List_6 : [
            'eodPrimaryTumor' : ['ne' : ['800','999']],
            'eodRegionalNodes' : ['ne' : ['000','050','999']],
            'eodMets' : ['eq' : ['00']]
        ],
        ['00458'] : [
            'eodPrimaryTumor' : ['ne' : ['800','999']],
            'eodRegionalNodes' : ['ne' : ['000','700','999']]
        ]
    ]
        ]]]></entry>
        <entry id="SurgeryCodeTable_01" type="java"><![CDATA[[0,1,2,3,4,5,6,7,9,10,15,18,20,28,30,38,40,48,50,58,60,68,70,78,80,88,90,98]]]></entry>
        <entry id="SurgeryCodeTable_02" type="java"><![CDATA[[0,1,2,3,4,5,6,7,9,10,18,20,28,30,31,38,40,41,48,50,51,58,80,88,90,98]]]></entry>
        <entry id="SurgeryCodeTable_03" type="java"><![CDATA[[0,1,2,3,4,5,6,7,9,10,18,20,28,30,35,38,40,48,50,55,58,60,68,80,88,90,98]]]></entry>
        <entry id="SurgeryCodeTable_04" type="java"><![CDATA[[0,1,2,3,4,5,6,7,9,10,18,20,28,30,38,40,45,48,50,58,60,68,70,78,80,88,90,98]]]></entry>
        <entry id="SurgeryCodeTable_05" type="java"><![CDATA[[0,1,2,3,4,5,6,7,9,10,18,20,28,30,38,40,48,50,51,52,58,60,68,70,78,80,88,90,98]]]></entry>
        <entry id="SurgeryCodeTable_06" type="java"><![CDATA[[0,1,2,3,4,5,6,7,9,10,18,20,28,30,38,40,48,50,58,60,68,70,78,80,88,90,98]]]></entry>
        <entry id="SurgeryCodeTable_07" type="java"><![CDATA[[0,1,2,3,4,5,6,7,9,10,18,20,28,30,38,40,48,50,58,60,68,80,88,90,98]]]></entry>
        <entry id="SurgeryCodeTable_08" type="java"><![CDATA[[0,1,2,3,4,5,6,7,9,10,18,20,28,30,38,40,48,50,58,70,78,80,88,90,98]]]></entry>
        <entry id="SurgeryCodeTable_09" type="java"><![CDATA[[0,1,2,3,4,5,6,7,9,10,18,20,28,30,38,40,48,50,58,80,88,90,98]]]></entry>
        <entry id="SurgeryCodeTable_10" type="java"><![CDATA[[9,10,20,30,40,50,60,70,80,90]]]></entry>
        <entry id="SurgeryCodeTable_11" type="java"><![CDATA[[9,10,20,30,49,50,60,70,80,90]]]></entry>
        <entry id="SurgeryCodeTable_12" type="java"><![CDATA[[9,19,29,30,40,50,60,70,80,90]]]></entry>
        <entry id="SurgeryCodeTable_13" type="java"><![CDATA[[9,90]]]></entry>
        <entry id="TNM_Clin_M_All_Table" type="java"><![CDATA[['cX', 'c0','c0I+','c1','c1A','c1B','c1C','c1D','c1E','p1','p1A','p1B','p1C','p1D','p1E','X','0','0I+','1','1A','1B','1C','1D','1E','88']]]></entry>
        <entry id="TNM_Clin_M_Table" type="java"><![CDATA[['c0','c0I+','c1','c1A','c1B','c1C','c1D','c1E','p1','p1A','p1B','p1C','p1D','p1E','X','0','0I+','1','1A','1B','1C','1D','1E','88']]]></entry>
        <entry id="TNM_Clin_N_Table" type="java"><![CDATA[['cX','c0','c0I-','c0I+','c0M-','c0M+','c1MI','c0A','c0B','c1','c1A','c1B','c1C','c2','c2A','c2B','c2C','c3','c3A','c3B','c3C','c4','X','0','0I-','0I+','0M-','0M+','1MI','0A','0B','1','1A','1B','1C','2','2A','2B','2C','3','3A','3B','3C','4','88']]]></entry>
        <entry id="TNM_Clin_T_Table" type="java"><![CDATA[['cX','c0','pA','pIS','pISU','pISD','c1MI','c1','c1A','c1A1','c1A2','c1B','c1B1','c1B2','c1C','c1D','c2','c2A','c2A1','c2A2','c2B','c2C','c2D','c3','c3A','c3B','c3C','c3D','c4','c4A','c4B','c4C','c4D','c4E','X','0','A','IS','ISPU','ISPD','1MI','1','1A','1A1','1A2','1B','1B1','1B2','1C','1D','2','2A','2A1','2A2','2B','2C','2D','3','3A','3B','3C','3D','4','4A','4B','4C','4D','4E','88']]]></entry>
        <entry id="TNM_Clin_T_Tumor_Size_Table" type="java"><![CDATA[[['003', '053'] : ['c1' : [1..20], 'c2' : [21..40], 'c3' : [41..989]],
['04A', '04D', '007'] : ['c1' : [1..20], 'c2' : [21..40]],
['04E', '029'] : ['c1' : [1..20]],
['08A', '08B', '08C', '08D'] : ['c1' : [1..20], 'c1A' : [1..10], 'c1B' : [11..20], 'c2' : [21..40]],
['13B'] : ['c1' : [1..20], 'c1A' : [1..10], 'c1B' : [11..20]],
['015', '030'] : ['c1' : [1..20], 'c2' : [21..50], 'c3' : [51..989]],
['16A', '16B'] : ['c1' : [1..20], 'c2' : [21..50], 'c3' : [51..100], 'c4' : [101..989]],
['17A', '17B'] : ['c1' : [1..10]],
['17D'] : ['c1' : [1..10], 'c2' : [11..989]],
['024'] : ['c1' : [1..20], 'c2' : [21..989]],
['025'] : ['c1' : [1..30], 'c1A' : [1..20], 'c1B' : [21..30], 'c2A' : [1..50,990], 'c2B' : [51..70]],
['027'] : ['c1' : [1..80], 'c2' : [81..989]],
['028', '47A', '47B'] : ['c1' : [1..50], 'c2' : [51..989]],
['032'] : ['c1' : [1..20], 'c1MI' : [1], 'c1A' : [1..5], 'c1B' : [5..10], 'c1C' : [11..20], 'c2' : [21..50], 'c3' : [51..989]],
['043'] : ['c1' : [1..70], 'c1A' : [1..40], 'c1B' : [41..70], 'c2' : [71..989], 'c2A' : [71..100], 'c2B' : [101..989]],
['049'] : ['c1' : [1..5], 'c2' : [6..989]],
['054'] : ['c1' : [1..15], 'c2' : [16..989]]]]]></entry>
        <entry id="TNM_Path_M_All_Table" type="java"><![CDATA[['cX','c0','c0I+','c1','c1A','c1B','c1C','c1D','c1E','pX','p0','p1','p1M','p1M1','p1A','p1B','p1C','p1D','p1E','X','0','0I+','1','1M','1M1','1A','1B','1C','1D','1E','88']]]></entry>
        <entry id="TNM_Path_M_Table" type="java"><![CDATA[['c0','c0I+','c1','c1A','c1B','c1C','c1D','c1E','p1','p1A','p1B','p1C','p1D','p1E','X','0','1','1A','1B','1C','1D','1E','88']]]></entry>
        <entry id="TNM_Path_N_Table" type="java"><![CDATA[['pX','p0','p0I-','p0I+','p0M-','p0M+','p1MI','p0A','p0B','p1','p1A','p1B','p1C','p2','p2A','p2B','p2C','p3','p3A','p3B','p3C','p4','cX','c0','c0A','c0B','c1','c1A','c1B','c1C','c2','c2A','c2B','c2C','c3','c3A','c3B','c3C','c4','X','0','0I-','0I+','0M-','0M+','1MI','0A','0B','1','1A','1B','1C','2','2A','2B','2C','3','3A','3B','3C','4','88']]]></entry>
        <entry id="TNM_Path_T_Table" type="java"><![CDATA[['pX','p0','pA','pIS','pISU','pISD','p1MI','p1','p1A','p1A1','p1A2','p1B','p1B1','p1B2','p1C','p1D','p2','p2A','p2A1','p2A2','p2B','p2C','p2D','p3','p3A','p3B','p3C','p3D','p4','p4A','p4B','p4C','p4D','p4E','cX','c0','c1','c1A','c1A1','c1A2','c1B','c1B1','c1B2','c1C','c1D','c1MI','c2','c2A','c2A1','c2A2','c2B','c2C','c2D','c3','c3A','c3B','c3C','c3D','c4','c4A','c4B','c4C','c4D','c4E','X','0','A','IS','ISPU','ISPD','1MI','1','1A','1A1','1A2','1B','1B1','1B2','1C','1D','2','2A','2A1','2A2','2B','2C','2D','3','3A','3B','3C','3D','4','4A','4B','4C','4D','4E','88']]]></entry>
        <entry id="TNM_Path_T_Tumor_Size_Table" type="java"><![CDATA[[['003', '053'] : ['p1' : [1..20], 'p2' : [21..40], 'p3' : [41..989]],
['04A', '04D', '007'] : ['p1' : [1..20], 'p2' : [21..40]],
['04E', '029'] : ['p1' : [1..20]],
['08A', '08B', '08C', '08D'] : ['p1' : [1..20], 'p1A' : [1..10], 'p1B' : [11..20], 'p2' : [21..40]],
['13B'] : ['p1' : [1..20], 'p1A' : [1..10], 'p1B' : [11..20]],
['015', '030'] : ['p1' : [1..20], 'p2' : [21..50], 'p3' : [51..989]],
['16A', '16B'] : ['p1' : [1..20], 'p2' : [21..50], 'p3' : [51..100], 'p4' : [101..989]],
['17A', '17B'] : ['p1' : [1..10]],
['17D'] : ['p1' : [1..10], 'p2' : [11..989]],
['024'] : ['p1' : [1..20], 'p2' : [21..989]],
['025'] : ['p1' : [1..30], 'p1A' : [1..20], 'p1B' : [21..30], 'p2A' : [1..50,990], 'p2B' : [51..70]],
['027'] : ['p1' : [1..80], 'p2' : [81..989]],
['028', '47A', '47B'] : ['p1' : [1..50], 'p2' : [51..989]],
['032'] : ['p1' : [1..20], 'p1MI' : [1], 'p1A' : [1..5], 'p1B' : [5..10], 'p1C' : [11..20], 'p2' : [21..50], 'p3' : [51..989]],
['043'] : ['p1' : [1..70], 'p1A' : [1..40], 'p1B' : [41..70], 'p2' : [71..989], 'p2A' : [71..100], 'p2B' : [101..989]],
['049'] : ['p1' : [1..5], 'p2' : [6..989]],
['054'] : ['p1' : [1..15], 'p2' : [16..989]]]]]></entry>
        <entry id="TNM_Stage_Group_Table" type="java"><![CDATA[['0','0A','0S','0IS','1','1A','1A1','1A2','1B','1B1','1B2','1C','1S','2','2A','2A1','2A2','2B','2C','3','3A','3B','3C','3C1','3C2','4','4A','4A1','4A2','4B','4C','88','99','OC']]]></entry>
    </context>
    <categories>
        <category id="field" name="Field">
            <description><![CDATA[All SEER Field edits.]]></description>
        </category>
        <category id="inter-field" name="Inter-Field">
            <description><![CDATA[All SEER Inter-Field edits.]]></description>
        </category>
        <category id="inter-record" name="Inter-Record">
            <description><![CDATA[All SEER Inter-Record edits.]]></description>
        </category>
        <category id="submission" name="Submission">
            <description><![CDATA[All SEER Submission edits.]]></description>
        </category>
    </categories>
    <rules>
        <rule id="Address_at_DX_State" name="Addr at DX--State (NAACCR)" tag="N0122" java-path="lines.line" category="field">
            <expression><![CDATA[return ((Map)Context.Diagnosis_State).containsKey(line.addrAtDxState)]]></expression>
            <message>Addr at DX--State is not valid.</message>
            <description><![CDATA[Field must contain valid US postal code for state or Canadian province.

Special Codes:
    CD  Resident of Canada, NOS, and province, territory, commonwealth
        or possession is unknown
    US  Resident of United States, NOS, and state, territory,
        commonwealth or possession is unknown
    XX  Resident of country other than United States (including its
        territories, commonwealths, or possessions) or Canada, and
        country known
    YY  Resident of country other than United States (including its
        territories, commonwealths, or possessions) or Canada, and
        country unknown
    ZZ  Residence unknown]]></description>
            <history>
                <event version="SE16-016-02" user="kirbyk" date="2017-03-01" ref="67641">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Age_at_Diagnosis" name="Age at Diagnosis (SEER AGEDX)" tag="N0026" java-path="lines.line" category="field">
            <expression><![CDATA[return Functions.matches(line.ageAtDiagnosis, /^(999|0\d\d|1[0-1]\d|120)$/)]]></expression>
            <message>Age at diagnosis is not valid.</message>
            <description><![CDATA[Valid codes for Age at diagnosis[230] are 000-120,999.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-21" ref="67227">Age at Diagnosis must be 3 digits.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="AJCC_TNM_Post_Therapy_Clin_Stage_Group" name="AJCC TNM Post Therapy Clin (yc) Stage Group (COC)" tag="N6330" java-path="lines.line" category="field">
            <expression><![CDATA[return line.ajccTnmPostTherapyClinStageGrp == null]]></expression>
            <message>AJCC TNM Post Therapy Clin (yc) Stage Group must be blank. Codes are not defined for this data item.</message>
            <description><![CDATA[This edit verifies that AJCC TNM Post Therapy Clin (yc) Stage Group is
blank.  Codes for this data item have not been defined.]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-30" ref="68622">Edit created.</event>
            </history>
        </rule>
        <rule id="Behavior_Code_ICD-O-3" name="Behavior ICDO3 (COC)" tag="N0469" java-path="lines.line" category="field">
            <expression><![CDATA[return line.behaviorCodeIcdO3 == null || Functions.matches(line.behaviorCodeIcdO3, /^[0123]$/)]]></expression>
            <message>Behavior Code ICD-O-3 is not valid.</message>
            <description><![CDATA[Must be a valid code for Behavior Code ICD-O-3[523]:

0 = Benign
1 = Borderline
2 = In situ
3 = Malignant
Blank]]></description>
            <history>
                <event version="SE11-001-19" user="greend" date="2005-01-26">Behavior Code &apos;0&apos; (benign) is now valid.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Behavior_Code_ICD-O-3_Submission" name="SEER Submission Edit 01 (SEER)" tag="N0810" java-path="lines.line" category="submission">
            <expression><![CDATA[return  line.behaviorCodeIcdO3 != null]]></expression>
            <message>Behavior Code ICD-O-3 is required.</message>
            <history>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Behavior_ICDO3_Submission" name="SEER Submission Edit 02 (SEER)" tag="N0850" java-path="lines.line" category="submission">
            <expression><![CDATA[if (    line.dateOfDiagnosisYear >= '2001'
     && line.dateOfDiagnosisYear <= '2003'
     && line.behaviorCodeIcdO3 != '2'
     && line.behaviorCodeIcdO3 != '3'
   )
    return false
return true]]></expression>
            <message>Behavior ICD-O-3 must be 2 or 3.</message>
            <history>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Birthplace_Country" name="Birthplace--Country (NAACCR)" tag="N1668" java-path="lines.line" category="field">
            <expression><![CDATA[return ((Map)Context.Country_State).containsKey(line.birthplaceCountry)]]></expression>
            <message>Birthplace--Country is not valid</message>
            <description><![CDATA[Birthplace--Country must contain a valid ISO code or standard custom code for country.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE13-009-02" user="murphyr" date="2013-03-05" ref="66841">Changed to use Country_State table instead of Country table.</event>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-09" ref="67121">Country_State table updated.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Birthplace_State" name="Birthplace--State (NAACCR)" tag="N1671" java-path="lines.line" category="field">
            <expression><![CDATA[return ((Map)Context.State).containsKey(line.birthplaceState)]]></expression>
            <message>Birthplace--State is not valid</message>
            <description><![CDATA[Birthplace--State must contain a valid ISO code or standard custom code for state.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Cancer_Status" name="Cancer Status (NAACCR)" tag="N1228" java-path="lines.line" category="field">
            <expression><![CDATA[return line.cancerStatus == null || Functions.matches(line.cancerStatus, /^[129]$/)]]></expression>
            <message>Cancer Status is not valid.</message>
            <description><![CDATA[Must be a valid Cancer Status code (1,2,9) or blank.

1   No evidence of this tumor
2   Evidence of this tumor
9   Unknown, indeterminate whether this tumor is present, not
stated in patient record]]></description>
            <history>
                <event version="SE23-023-04" user="cooki" date="2023-06-13" ref="69275">Edit created.</event>
            </history>
        </rule>
        <rule id="Cause_of_Death" name="Cause of Death (SEER COD)" tag="N0091" java-path="lines.line" category="field">
            <expression><![CDATA[return Functions.matches(line.causeOfDeath, /^[A-Z0-9][0-9][0-9][0-9]?$/)]]></expression>
            <message>Cause of death is not valid.</message>
            <description><![CDATA[Must be a valid code for Cause of death[1910]:
0000 (Patient alive at last contact)
7777 (State death certificate not available)
7797 (State death certificate available but underlying cause of death is
      not coded)
ICDA-8, ICD-9, or ICD-10 underlying cause of death code.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-13" user="kirbyk" date="2019-02-19" ref="68115">Edit allows 3-digit Cause of Death codes.</event>
            </history>
        </rule>
        <rule id="Census_Cod_Sys_1970-80-90" name="Census Cod Sys 1970/80/90 (SEER RESSYST)" tag="N0041" java-path="lines.line" category="field">
            <expression><![CDATA[if ( line.censusCodSys19708090 != null
     && !(Functions.matches(line.censusCodSys19708090, /^[0-3\s]$/))
   )
    return false
return true]]></expression>
            <message>Census cod sys 1970/80/90 is not valid.</message>
            <description><![CDATA[Valid codes for Census cod sys 1970/80/90[120] are:

        0 = Not tracted
        1 = 1970 Census tract (1973-1977)
        2 = 1980 Census tract (1978-1987)
        3 = 1990 Census tract (1988+)
        Blank]]></description>
            <history>
                <event version="SE11-001-05" user="greend" date="1989-07-10">Census tract code &quot;3&quot; (1990 census tract definitions 1988+) is now valid.</event>
                <event version="SE11-001-17" user="greend" date="2003-01-30">Blank is now valid.</event>
                <event version="SE11-001-17" user="greend" date="2003-03-14">Changed name of item to match the NAACCR version 10 record layout.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Census_Tr_Cert_1970-80-90" name="Census Tr Cert 1970/80/90 (SEER CENSCERT)" tag="N0309" java-path="lines.line" category="field">
            <expression><![CDATA[if ( line.censusTrCert19708090 != null && !(Functions.matches(line.censusTrCert19708090, /^[1234569\s]$/)))
    return false
return true]]></expression>
            <message>Census tr cert 1970/80/90 is not valid.</message>
            <description><![CDATA[Valid codes for Census tr cert 1970/80/90[364] are:

    1 = Based on complete and valid street address of residence
    2 = Based on residence ZIP+4
    3 = Based on residence ZIP+2
    4 = Based on residence ZIP only
    5 = Based on ZIP of post office box
    6 = based on residence city where city has only one census tract,
        or based on residence ZIP code where ZIP code has only one census tract
    9= Unknown
    Blank]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-03-14">Changed name of item to match the NAACCR version 10 record layout.</event>
                <event version="SE11-001-19" user="greend" date="2005-03-23">Code 6 is now a valid code.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Census_Tr_Certainty_2000" name="Census Tr Certainty 2000 (SEER)" tag="N0540" java-path="lines.line" category="field">
            <expression><![CDATA[return  line.censusTrCertainty2000 == null || Functions.matches(line.censusTrCertainty2000, /^[1234569\s]$/)]]></expression>
            <message>Census Tr Certainty 2000 is not valid.</message>
            <description><![CDATA[Valid codes for Census tr certainty 2000[130] are:

1 = Based on complete and valid street address of residence
2 = Based on residence ZIP+4
3 = Based on residence ZIP+2
4 = Based on residence ZIP only
5 = Based on ZIP of post office box
6 = based on residence city where city has only one census tract, or based on residence ZIP code where ZIP code has only one census tract
9 = Unknown
Blank]]></description>
            <history>
                <event version="SE11-001-19" user="greend" date="2005-03-23">Code 6 is now a valid code.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Census_Tr_Certainty_2010" name="Census Tr Certainty 2010 (SEER)" tag="N1374" java-path="lines.line" category="field">
            <expression><![CDATA[return  line.censusTrCertainty2010 == null || Functions.matches(line.censusTrCertainty2010, /^[1234569\s]$/)]]></expression>
            <message>Census Tr Certainty 2010 is not valid.</message>
            <description><![CDATA[Valid codes for Census tr certainty 2010[367] are:

1 = Census tract based on complete and valid street address of residence
2 = Census tract based on residence ZIP + 4
3 = Census tract based on residence ZIP + 2
4 = Census tract based on residence ZIP code only
5 = Census tract based on ZIP code of P.O. Box
6 = Census tract/BNA based on residence city where city has only one census tract, or based on residence ZIP code where ZIP code has only one census tract
9 = Not assigned, geocoding attempted
Blank = Not assigned, geocoding not attempted]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2010-12-15">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Census_Tr_Certainty_2020" name="Census Tr Certainty 2020 (NAACCR)" tag="N2853" java-path="lines.line" category="field">
            <expression><![CDATA[return  line.censusTractCertainty2020 == null || Functions.matches(line.censusTractCertainty2020, /^[1234569\s]$/)]]></expression>
            <message>Census Tr Certainty 2020 is not valid.</message>
            <description><![CDATA[Must be a valid Census Tr Certainty 2020 (1-6, 9) or blank.

Codes
1  Census tract based on complete and valid street address of residence
2  Census tract based on residence ZIP + 4
3  Census tract based on residence ZIP + 2
4  Census tract based on residence ZIP code only
5  Census tract based on ZIP code of P.O. Box
6  Census tract/BNA based on residence city where city has only one census tract,
    or based on residence ZIP code where ZIP code has only one census tract
9  Not assigned, geocoding attempted
Blank Not assigned, geocoding not attempted]]></description>
            <history>
                <event version="SE23-023-04" user="cooki" date="2023-05-31" ref="69277">Edit created.</event>
            </history>
        </rule>
        <rule id="Census_Tract_1970-80-90" name="Census Tract 1970/80/90 (SEER TRACT)" tag="N0040" java-path="lines.line" category="field">
            <expression><![CDATA[if (line.censusTract19708090 != null && line.censusTract19708090 != '000000' && line.censusTract19708090 != '999999'
        && (!(Functions.matches(line.censusTract19708090, /^[0-9]{6}$/)) || !Functions.between(line.censusTract19708090, '000100', '9999998')))
      return false
return true]]></expression>
            <message>Census tract 1970/80/90 is not valid.</message>
            <description><![CDATA[Valid codes for Census tract 1970/80/90[110] are 000000, 000100-999998, 999999 or blank.]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-01-30">Blank is now valid.</event>
                <event version="SE11-001-17" user="greend" date="2003-03-14">Changed name of item to match the NAACCR version 10 record layout.</event>
                <event version="SE11-001-21" user="greend" date="2007-08-02">Valid values for census tract were changed from 000000-999999 to 000000,000100-949999,950100-998999,999999.</event>
                <event version="SE16-016-04" user="kirbyk" date="2017-06-15" ref="67657">Valid values were changed to 000000, 000100-999998, or 999999.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Census_Tract_2000" name="Census Tract 2000 (SEER)" tag="N0176" java-path="lines.line" category="field">
            <expression><![CDATA[return line.censusTract2000 == null || line.censusTract2000 == '000000' || (Functions.matches(line.censusTract2000, /^[0-9]{6}$/) && Functions.between(line.censusTract2000, '000100', '999999'))]]></expression>
            <message>Census Tract 2000 is not valid.</message>
            <description><![CDATA[Valid codes for Census tract 2000[130] are 000000, 000100-999999, or blank.]]></description>
            <history>
                <event version="SE11-001-18" user="greend" date="2004-07-08">The value of 000100 was added as a valid census tract 2000 code.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Census_Tract_2010" name="Census Tract 2010 (SEER)" tag="N1375" java-path="lines.line" category="field">
            <expression><![CDATA[return line.censusTract2010 == null || line.censusTract2010 == '000000' || (Functions.matches(line.censusTract2010, /^[0-9]{6}$/) && Functions.between(line.censusTract2010, '000100', '999999'))]]></expression>
            <message>Census Tract 2010 is not valid.</message>
            <description><![CDATA[Valid codes for Census tract 2010[135] are 000000, 000100-999999, or blank.]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2010-12-15">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Census_Tract_2020" name="Census Tract 2020 (NAACCR)" tag="N2575" java-path="lines.line" category="field">
            <expression><![CDATA[return line.censusTract2020 == null || line.censusTract2020 == '000000' || (Functions.matches(line.censusTract2020, /^[0-9]{6}$/) && Functions.between(line.censusTract2020, '000100', '999999'))]]></expression>
            <message>Census Tract 2020 is not valid.</message>
            <description><![CDATA[This is a derived (geocoded) variable based on the Census Boundary files for 2020.

Must be a valid Census tract code (000100-999998, 000000, 999999) or blank.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-04" ref="67779">Edit created.</event>
            </history>
        </rule>
        <rule id="Census_Tract_Block_Group_2000" name="Census Block Group 2000 (NAACCR)" tag="N0918" java-path="lines.line" category="field">
            <expression><![CDATA[return line.censusBlockGroup2000 == null || Functions.matches(line.censusBlockGroup2000, /^[0-9]$/)]]></expression>
            <message>Census Tract Block Group 2000 is not valid.</message>
            <description><![CDATA[Valid codes for Census Tract Block Group 2000 are 0-9 or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Census_Tract_Block_Group_708090" name="Census Block Grp 1970-90 (NAACCR)" tag="N0919" java-path="lines.line" category="field">
            <expression><![CDATA[return line.censusBlockGrp197090 == null || Functions.matches(line.censusBlockGrp197090, /^[0-9]$/)]]></expression>
            <message>Census Tract Block Group 70/80/90 is not valid.</message>
            <description><![CDATA[Valid codes for Census Tract Block Group 70/80/90 are 0-9 or blank.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-20" ref="66776">Updated edit name.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="CoC_Accredited_Flag" name="CoC Accredited Flag (NPCR)" tag="N2810" java-path="lines.line" category="field">
            <expression><![CDATA[return line.cocAccreditedFlag == null || Functions.matches(line.cocAccreditedFlag, /^[012]$/)]]></expression>
            <message>CoC Accredited Flag is not valid.</message>
            <description><![CDATA[Must be a valid CoC Accredited Flag:

    0: Abstract prepared at facility WITHOUT CoC accreditation of its cancer
      program
    1: ANALYTIC abstract prepared at facility WITH CoC accreditation of its
      cancer program (includes Class of Case codes 10-22)
    2: NON-ANALYTIC abstract prepared at facility WITH CoC accreditation of its
      cancer program (includes Class of Case codes 30-43 and 99, plus code 00
      which CoC considers analytic but does not require to be staged)
    blank: Not applicable; DCO]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-04" ref="67779">Edit created.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-16" ref="68215">Description updated. No behavior change.</event>
            </history>
        </rule>
        <rule id="Coding_System_for_EOD" name="Coding System for EOD (SEER EODSYST)" tag="N0121" java-path="lines.line" category="field">
            <expression><![CDATA[return line.codingSystemForEod == null || Functions.matches(line.codingSystemForEod, /^[0-4\s]$/)]]></expression>
            <message>Coding system for EOD is not valid.</message>
            <description><![CDATA[Valid codes for Coding system for EOD[870] are:

0 = Two-digit non-specific EOD (1973-1982)
1 = Two-digit site-specific EOD (1973-1982)
2 = Thirteen-digit (expanded) site-specific EOD (1973-1982)
3 = Four-digit EOD (1983-1987)
4 = Ten-digit EOD (1988+)
Blank]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-09-22">Blank is now a valid value.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="County_at_DX_Analysis" name="County at DX Analysis (NAACCR)" tag="N2569" java-path="lines.line" category="field">
            <expression><![CDATA[return line.countyAtDxAnalysis == null || Functions.matches(line.countyAtDxAnalysis, /^\d\d[1-9]|\d[1-9]0|[1-9]\d0$/)]]></expression>
            <message>County at DX Analysis is not valid.</message>
            <description><![CDATA[Must be a valid three-digit number (001-997, 998, 999) or blank.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-04" ref="67779">Edit created.</event>
            </history>
        </rule>
        <rule id="County_at_DX_Geocode1990" name="County at DX Geocode 1970/80/90 (NAACCR)" tag="N2042" java-path="lines.line" category="field">
            <expression><![CDATA[return line.countyAtDxGeocode1990 == null || (Functions.matches(line.countyAtDxGeocode1990, /^\d\d\d$/) && line.countyAtDxGeocode1990 != '000')]]></expression>
            <message>County at DX Geocode1990 is not valid.</message>
            <description><![CDATA[Must be a valid three-digit number (001-997, 998, 999) or blank.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-11" ref="67383">Edit created.</event>
                <event version="SE16-016-04" user="kirbyk" date="2017-06-15" ref="67650">Valid values changed from (000-840,998,999) to (001-997,998,999).</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="County_at_DX_Geocode2000" name="County at DX Geocode2000 (NAACCR)" tag="N2060" java-path="lines.line" category="field">
            <expression><![CDATA[return line.countyAtDxGeocode2000 == null || (Functions.matches(line.countyAtDxGeocode2000, /^\d\d\d$/) && line.countyAtDxGeocode2000 != '000')]]></expression>
            <message>County at DX Geocode2000 is not valid.</message>
            <description><![CDATA[Must be a valid three-digit number (001-997, 998, 999) or blank.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-12" ref="67384">Edit created.</event>
                <event version="SE16-016-04" user="kirbyk" date="2017-06-15" ref="67651">Valid values changed from (000-840,998,999) to (001-997,998,999).</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="County_at_DX_Geocode2010" name="County at DX Geocode2010 (NAACCR)" tag="N2061" java-path="lines.line" category="field">
            <expression><![CDATA[return line.countyAtDxGeocode2010 == null || (Functions.matches(line.countyAtDxGeocode2010, /^\d\d\d$/) && line.countyAtDxGeocode2010 != '000')]]></expression>
            <message>County at DX Geocode2010 is not valid.</message>
            <description><![CDATA[Must be a valid three-digit number (001-997, 998, 999) or blank.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-12" ref="67385">Edit created.</event>
                <event version="SE16-016-04" user="kirbyk" date="2017-06-15" ref="67652">Valid values changed from (000-840,998,999) to (001-997,998,999).</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="County_at_DX_Geocode2020" name="County at DX Geocode2020 (NAACCR)" tag="N2062" java-path="lines.line" category="field">
            <expression><![CDATA[return line.countyAtDxGeocode2020 == null || (Functions.matches(line.countyAtDxGeocode2020, /^\d\d\d$/) && line.countyAtDxGeocode2020 != '000')]]></expression>
            <message>County at DX Geocode2020 is not valid.</message>
            <description><![CDATA[Must be a valid three-digit number (001-997, 998, 999) or blank.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-12" ref="67386">Edit created.</event>
                <event version="SE16-016-04" user="kirbyk" date="2017-06-15" ref="67653">Valid values changed from (000-840,998,999) to (001-997,998,999).</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="County_Submission" name="SEER Submission Edit 01 (SEER)" tag="N0810" java-path="lines.line" category="submission">
            <expression><![CDATA[return line.countyAtDxAnalysis != null]]></expression>
            <message>County at diagnosis analysis is required.</message>
            <history>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE23-023-06" user="cooki" date="2023-07-31" ref="69294">Updated countyAtDx to countyAtDxAnalysis.</event>
            </history>
        </rule>
        <rule id="Covid_19_Antibody_Test" name="Covid-19 Antibody Test and Date" tag="S054" java-path="lines.line" category="inter-field">
            <expression><![CDATA[return line.covid19AntibodyTest != '1' || line.covid19AntibodyTestDateYear != null]]></expression>
            <message>Covid-19 Antibody Test conflicts with Covid-19 Antibody Test Date</message>
            <description><![CDATA[If Covid-19 Antibody Test is 1 (Positive), Covid-19 Antibody Test Date must be a non-blank value.]]></description>
            <history>
                <event version="SE22-022-01" user="kirbyk" date="2022-03-04" ref="68757">Edit created.</event>
            </history>
        </rule>
        <rule id="Covid_19_Antibody_Test_Date" name="Covid-19 Antibody Test Date" tag="S050" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.covid19AntibodyTestDateYear == null)
   return (line.covid19AntibodyTestDateMonth == null && line.covid19AntibodyTestDateDay == null)

if (line.covid19AntibodyTestDateYear < '2019')
    return false

Integer year = Functions.asInt(line.covid19AntibodyTestDateYear)
Integer month = Functions.asInt(line.covid19AntibodyTestDateMonth)
Integer day = Functions.asInt(line.covid19AntibodyTestDateDay)

Integer yearCur  = Functions.getCurrentYear()
Integer monthCur = Functions.getCurrentMonth()
Integer dayCur = Functions.getCurrentDay()

if ((line.covid19AntibodyTestDateMonth == null && line.covid19AntibodyTestDateDay != null) || (month > 12 || (line.covid19AntibodyTestDateMonth != null && month < 1)))
   return false

if (!Functions.between(year, 1930, yearCur))
    return false

if (line.covid19AntibodyTestDateMonth == null) //by now year fits and day is null if month is null
    return true

if (year == yearCur && month > monthCur)
    return false

if (line.covid19AntibodyTestDateDay == null) //by now year and month fit
    return true

if (year == yearCur && month == monthCur && day > dayCur)
    return false

Calendar cal = new GregorianCalendar(year, month - 1, 1)
return cal != null && day <= cal.getActualMaximum(Calendar.DAY_OF_MONTH)]]></expression>
            <message>Not a valid value for Covid-19 Antibody Test Date</message>
            <description><![CDATA[This edit checks valid values for Covid-19 Antibody Test Date.  The
data item may be blank.
The date must not be invalid or before 2019.

Valid values:
  CCYYMMDD  Date the patient had an antibody test for the novel coronavirus disease (COVID-19), as documented by a medical provider.
  Blank -   Date of test is unknown or unknown if patient received antibody test.]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-03-01" ref="68898">Edit created.</event>
                <event version="SE22-022-13" user="kirbyk" date="2022-10-18" ref="69045">Fixing edit behavior for future dates.</event>
            </history>
        </rule>
        <rule id="Covid_19_Decision_To_Delay_Date" name="Covid-19 Decision to Delay Date" tag="S052" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.covid19DecisionToDelayDateYear == null)
   return (line.covid19DecisionToDelayDateMonth == null && line.covid19DecisionToDelayDateDay == null)

if (line.covid19DecisionToDelayDateYear < '2019')
    return false

Integer year = Functions.asInt(line.covid19DecisionToDelayDateYear)
Integer month = Functions.asInt(line.covid19DecisionToDelayDateMonth)
Integer day = Functions.asInt(line.covid19DecisionToDelayDateDay)

Integer yearCur  = Functions.getCurrentYear()
Integer monthCur = Functions.getCurrentMonth()
Integer dayCur = Functions.getCurrentDay()

if ((line.covid19DecisionToDelayDateMonth == null && line.covid19DecisionToDelayDateDay != null) || (month > 12 || (line.covid19DecisionToDelayDateMonth != null && month < 1)))
   return false

if (!Functions.between(year, 1930, yearCur))
    return false

if (line.covid19DecisionToDelayDateMonth == null) //by now year fits and day is null if month is null
    return true

if (year == yearCur && month > monthCur)
    return false

if (line.covid19DecisionToDelayDateDay == null) //by now year and month fit
    return true

if (year == yearCur && month == monthCur && day > dayCur)
    return false

Calendar cal = new GregorianCalendar(year, month - 1, 1)
return cal != null && day <= cal.getActualMaximum(Calendar.DAY_OF_MONTH)]]></expression>
            <message>Not a valid value for Covid-19 Decision to Delay Date</message>
            <description><![CDATA[This edit checks valid values for Covid-19 Decision to Delay Date.  The
data item may be blank.
The date must not be invalid or before 2019.

Valid values:
  CCYYMMDD  Date the patient decided to delay treatment because of the novel coronavirus disease (COVID-19), as documented by a medical provider.
  Blank -   Date of decision to delay unknown or unknown if patient decided to delay treatment.]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-03-01" ref="68898">Edit created.</event>
                <event version="SE22-022-13" user="kirbyk" date="2022-10-18" ref="69045">Fixing edit behavior for future dates.</event>
            </history>
        </rule>
        <rule id="Covid_19_Delayed_CA_Events" name="Covid-19 Delayed CA Events and Decision to Delay Date" tag="S056" java-path="lines.line" category="inter-field">
            <expression><![CDATA[return line.covid19DelayedCAEvents != '1' || line.covid19DecisionToDelayDateYear != null]]></expression>
            <message>Covid-19 Delayed CA Events conflicts with Covid-19 Decision to Delay Date</message>
            <description><![CDATA[If Covid-19 Delayed CA Events is 1 (Yes), Covid-19 Decision to Delay Date must be a non-blank value.]]></description>
            <history>
                <event version="SE22-022-01" user="kirbyk" date="2022-03-04" ref="68757">Edit created.</event>
            </history>
        </rule>
        <rule id="Covid_19_Diagnosed" name="Covid-19 Diagnosis and Date" tag="S053" java-path="lines.line" category="inter-field">
            <expression><![CDATA[return line.covid19Diagnosed != '1' || line.covid19DxDateYear != null]]></expression>
            <message>Covid-19 Diagnosed conflicts with Covid-19 Dx Date</message>
            <description><![CDATA[If Covid-19 Diagnosed is 1 (Yes), Covid-19 Dx Date must be a non-blank value.]]></description>
            <history>
                <event version="SE22-022-01" user="kirbyk" date="2022-03-04" ref="68757">Edit created.</event>
            </history>
        </rule>
        <rule id="Covid_19_Diagnosis_Date" name="Covid-19 Diagnosis Date" tag="S051" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.covid19DxDateYear == null)
   return (line.covid19DxDateMonth == null && line.covid19DxDateDay == null)

if (line.covid19DxDateYear < '2019')
    return false

Integer year = Functions.asInt(line.covid19DxDateYear)
Integer month = Functions.asInt(line.covid19DxDateMonth)
Integer day = Functions.asInt(line.covid19DxDateDay)

Integer yearCur  = Functions.getCurrentYear()
Integer monthCur = Functions.getCurrentMonth()
Integer dayCur = Functions.getCurrentDay()

if ((line.covid19DxDateMonth == null && line.covid19DxDateDay != null) || (month > 12 || (line.covid19DxDateMonth != null && month < 1)))
   return false

if (!Functions.between(year, 1930, yearCur))
    return false

if (line.covid19DxDateMonth == null) //by now year fits and day is null if month is null
    return true

if (year == yearCur && month > monthCur)
    return false

if (line.covid19DxDateDay == null) //by now year and month fit
    return true

if (year == yearCur && month == monthCur && day > dayCur)
    return false

Calendar cal = new GregorianCalendar(year, month - 1, 1)
return cal != null && day <= cal.getActualMaximum(Calendar.DAY_OF_MONTH)]]></expression>
            <message>Not a valid value for Covid-19 Diagnosis Date</message>
            <description><![CDATA[This edit checks valid values for Covid-19 Diagnosis Date.  The
data item may be blank.
The date must not be invalid or before 2019.

Valid values:
  CCYYMMDD  Date the patient received a positive diagnosis for the novel coronavirus disease (COVID-19), as documented by a medical provider.
  Blank -   Date of diagnosis is unknown or unknown if patient was positively diagnosed.]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-03-01" ref="68898">Edit created.</event>
                <event version="SE22-022-13" user="kirbyk" date="2022-10-18" ref="69045">Fixing edit behavior for future dates.</event>
            </history>
        </rule>
        <rule id="Covid_19_Viral_Test" name="Covid-19 Viral Test and Date" tag="S055" java-path="lines.line" category="inter-field">
            <expression><![CDATA[return line.covid19ViralTest != '1' || line.covid19ViralTestDateYear != null]]></expression>
            <message>Covid-19 Viral Test conflicts with Covid-19 Viral Test Date</message>
            <description><![CDATA[If Covid-19 Viral Test is 1 (Positive), Covid-19 Viral Test Date must be a non-blank value.]]></description>
            <history>
                <event version="SE22-022-01" user="kirbyk" date="2022-03-04" ref="68757">Edit created.</event>
            </history>
        </rule>
        <rule id="Covid_19_Viral_Test_Date" name="Covid-19 Viral Test Date" tag="S049" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.covid19ViralTestDateYear == null)
   return (line.covid19ViralTestDateMonth == null && line.covid19ViralTestDateDay == null)

if (line.covid19ViralTestDateYear < '2019')
    return false

Integer year = Functions.asInt(line.covid19ViralTestDateYear)
Integer month = Functions.asInt(line.covid19ViralTestDateMonth)
Integer day = Functions.asInt(line.covid19ViralTestDateDay)

Integer yearCur  = Functions.getCurrentYear()
Integer monthCur = Functions.getCurrentMonth()
Integer dayCur = Functions.getCurrentDay()

if ((line.covid19ViralTestDateMonth == null && line.covid19ViralTestDateDay != null) || (month > 12 || (line.covid19ViralTestDateMonth != null && month < 1)))
   return false

if (!Functions.between(year, 1930, yearCur))
    return false

if (line.covid19ViralTestDateMonth == null) //by now year fits and day is null if month is null
    return true

if (year == yearCur && month > monthCur)
    return false

if (line.covid19ViralTestDateDay == null) //by now year and month fit
    return true

if (year == yearCur && month == monthCur && day > dayCur)
    return false

Calendar cal = new GregorianCalendar(year, month - 1, 1)
return cal != null && day <= cal.getActualMaximum(Calendar.DAY_OF_MONTH)]]></expression>
            <message>Not a valid value for Covid-19 Viral Test Date</message>
            <description><![CDATA[This edit checks valid values for Covid-19 Viral Test Date.  The
data item may be blank.
The date must not be invalid or before 2019.

Valid values:
  CCYYMMDD  Date patient had a viral test for the novel coronavirus disease (COVID-19), as documented by a medical provider.
  Blank -   Date of test is unknown or unknown if patient received viral test.]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-03-01" ref="68898">Edit created.</event>
                <event version="SE22-022-13" user="kirbyk" date="2022-10-18" ref="69045">Fixing edit behavior for future dates.</event>
            </history>
        </rule>
        <rule id="CS_Extension" name="CS Extension (CS)" tag="N0656" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csExtension == null || Functions.matches(line.csExtension, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS extension is not valid.</message>
            <description><![CDATA[Valid codes for CS extension[2810] are 000-999 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2009-12-30">Changed to 3 digits.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Lymph_Nodes" name="CS Lymph Nodes (CS)" tag="N0657" java-path="lines.line" category="field">
            <expression><![CDATA[return  line.csLymphNodes == null || Functions.matches(line.csLymphNodes, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS lymph nodes is not valid.</message>
            <description><![CDATA[Valid codes for CS lymph nodes[2830] are 000-999 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2009-12-30">Changed to 3 digits.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Mets_at_DX" name="CS Mets at DX (CS)" tag="N0658" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csMetsAtDx == null || Functions.matches(line.csMetsAtDx, /(^[0-9][0-9]$)|(^\s\s$)/)]]></expression>
            <message>CS mets at dx is not valid.</message>
            <description><![CDATA[Valid codes for CS mets at dx[2850] are 00-99 and blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Mets_at_DX_Bone" name="CS Mets at DX-Bone (CS)" tag="N0987" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csMetsAtDxBone == null || Functions.matches(line.csMetsAtDxBone, /^[0189]$/)]]></expression>
            <message>CS Mets at DX-Bone is not valid.</message>
            <description><![CDATA[Must be a valid CS Mets at DX-Bone[2851] code: 0 (none: no bone metastases), 1 (yes), 8 (not applicable), 9 (unknown whether bone is involved metastatic site) or blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit added.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-17" ref="66828">Changed allowable codes to just 0, 1, 8, 9 and blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Mets_at_DX_Brain" name="CS Mets at DX-Brain (CS)" tag="N0988" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csMetsAtDxBrain == null || Functions.matches(line.csMetsAtDxBrain, /^[0189]$/)]]></expression>
            <message>CS Mets at DX-Brain is not valid.</message>
            <description><![CDATA[Must be a valid CS Mets at DX-Brain[2852] code: 0 (none: no brain metastases), 1 (yes), 8 (not applicable), 9 (unknown whether brain is involved metastatic site) or blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit added.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-17" ref="66828">Changed allowable codes to just 0, 1, 8, 9 and blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Mets_at_DX_Liver" name="CS Mets at DX-Liver (CS)" tag="N0989" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csMetsAtDxLiver == null || Functions.matches(line.csMetsAtDxLiver, /^[0189]$/)]]></expression>
            <message>CS Mets at DX-Liver is not valid.</message>
            <description><![CDATA[Must be a valid CS Mets at DX-Liver[2853] code: 0 (none: no liver metastases), 1 (yes), 8 (not applicable), 9 (unknown whether liver is involved metastatic site) or blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit added.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-17" ref="66828">Changed allowable codes to just 0, 1, 8, 9 and blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Mets_at_DX_Lung" name="CS Mets at DX-Lung (CS)" tag="N0990" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csMetsAtDxLung == null || Functions.matches(line.csMetsAtDxLung, /^[0189]$/)]]></expression>
            <message>CS Mets at DX-Lung is not valid.</message>
            <description><![CDATA[Must be a valid CS Mets at DX-Lung[2854] code: 0 (none: no lung metastases), 1 (yes), 8 (not applicable), 9 (unknown whether lung is involved metastatic site) or blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit added.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-17" ref="66828">Changed allowable codes to just 0, 1, 8, 9 and blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Mets_Eval" name="CS Mets Eval (CS)" tag="N0661" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csMetsEval == null || Functions.matches(line.csMetsEval, /^[01235689\s]$/)]]></expression>
            <message>CS Mets Eval is not valid.</message>
            <description><![CDATA[Valid values for CS Tumor Size/Ext Eval [282] are 0-3, 5-6, 8-9, or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Reg_Node_Eval" name="CS Lymph Nodes Eval (CS)" tag="N0660" java-path="lines.line" category="field">
            <expression><![CDATA[return  line.csLymphNodesEval == null || Functions.matches(line.csLymphNodesEval, /^[01235689\s]$/)]]></expression>
            <message>CS Reg Node Eval is not valid.</message>
            <description><![CDATA[Valid values for CS Tumor Size/Ext Eval [282] are 0-3, 5-6, 8-9, or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Site-Specific_Factor_1" name="CS Site-Specific Factor 1 (CS)" tag="N0662" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csSiteSpecificFactor1 == null || Functions.matches(line.csSiteSpecificFactor1, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS site-specific factor 1 is not valid.</message>
            <description><![CDATA[Valid codes for CS site-specific factor 1[2880] are 000-999 and blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Site-Specific_Factor_2" name="CS Site-Specific Factor 2 (CS)" tag="N0663" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csSiteSpecificFactor2 == null || Functions.matches(line.csSiteSpecificFactor2, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS site-specific factor 2 is not valid.</message>
            <description><![CDATA[Valid codes for CS site-specific factor 2[2890] are 000-999 and blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Site-Specific_Factor_3" name="CS Site-Specific Factor 3 (CS)" tag="N0664" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csSiteSpecificFactor3 == null || Functions.matches(line.csSiteSpecificFactor3, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS site-specific factor 3 is not valid.</message>
            <description><![CDATA[Valid codes for CS site-specific factor 3[2900] are 000-999 and blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Site-Specific_Factor_4" name="CS Site-Specific Factor 4 (CS)" tag="N0665" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csSiteSpecificFactor4 == null || Functions.matches(line.csSiteSpecificFactor4, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS site-specific factor 4 is not valid.</message>
            <description><![CDATA[Valid codes for CS site-specific factor 4[2910] are 000-999 and blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Site-Specific_Factor_5" name="CS Site-Specific Factor 5 (CS)" tag="N0666" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csSiteSpecificFactor5 == null || Functions.matches(line.csSiteSpecificFactor5, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS site-specific factor 5 is not valid.</message>
            <description><![CDATA[Valid codes for CS site-specific factor 5[2920] are 000-999 and blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Site-Specific_Factor_6" name="CS Site-Specific Factor 6 (CS)" tag="N0667" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csSiteSpecificFactor6 == null || Functions.matches(line.csSiteSpecificFactor6, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS site-specific factor 6 is not valid.</message>
            <description><![CDATA[Valid codes for CS site-specific factor 6[2930] are 000-999 and blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Site-Specific_Factor_7" name="CS Site-Specific Factor 7 (CS)" tag="N0995" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csSiteSpecificFactor7 == null || Functions.matches(line.csSiteSpecificFactor7, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS site-specific factor 7 is not valid.</message>
            <description><![CDATA[Valid codes for CS site-specific factor 7[2861] are 000-999 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Site-Specific_Factor_8" name="CS Site-Specific Factor 8 (CS)" tag="N0996" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csSiteSpecificFactor8 == null || Functions.matches(line.csSiteSpecificFactor8, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS site-specific factor 8 is not valid.</message>
            <description><![CDATA[Valid codes for CS site-specific factor 8 [2862] are 000-999 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Site-Specific_Factor_9" name="CS Site-Specific Factor 9 (CS)" tag="N0997" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csSiteSpecificFactor9 == null || Functions.matches(line.csSiteSpecificFactor9, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS site-specific factor 9 is not valid.</message>
            <description><![CDATA[Valid codes for CS site-specific factor 9 [2863] are 000-999 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Site-Specific_Factor_10" name="CS Site-Specific Factor10 (CS)" tag="N0998" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csSiteSpecificFactor10 == null || Functions.matches(line.csSiteSpecificFactor10, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS site-specific factor 10 is not valid.</message>
            <description><![CDATA[Valid codes for CS site-specific factor 10 [2864] are 000-999 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Site-Specific_Factor_11" name="CS Site-Specific Factor11 (CS)" tag="N0999" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csSiteSpecificFactor11 == null || Functions.matches(line.csSiteSpecificFactor11, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS site-specific factor 11 is not valid.</message>
            <description><![CDATA[Valid codes for CS site-specific factor 11 [2865] are 000-999 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Site-Specific_Factor_12" name="CS Site-Specific Factor12 (CS)" tag="N1000" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csSiteSpecificFactor12 == null || Functions.matches(line.csSiteSpecificFactor12, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS site-specific factor 12 is not valid.</message>
            <description><![CDATA[Valid codes for CS site-specific factor 12 [2866] are 000-999 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Site-Specific_Factor_13" name="CS Site-Specific Factor13 (CS)" tag="N1001" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csSiteSpecificFactor13 == null || Functions.matches(line.csSiteSpecificFactor13, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS site-specific factor 13 is not valid.</message>
            <description><![CDATA[Valid codes for CS site-specific factor 13 [2867] are 000-999 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Site-Specific_Factor_14" name="CS Site-Specific Factor14 (CS)" tag="N1002" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csSiteSpecificFactor14 == null || Functions.matches(line.csSiteSpecificFactor14, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS site-specific factor 14 is not valid.</message>
            <description><![CDATA[Valid codes for CS site-specific factor 14 [2868] are 000-999 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Site-Specific_Factor_15" name="CS Site-Specific Factor15 (CS)" tag="N1003" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csSiteSpecificFactor15 == null || Functions.matches(line.csSiteSpecificFactor15, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS site-specific factor 15 is not valid.</message>
            <description><![CDATA[Valid codes for CS site-specific factor 15 [2869] are 000-999 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Site-Specific_Factor_16" name="CS Site-Specific Factor16 (CS)" tag="N1004" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csSiteSpecificFactor16 == null || Functions.matches(line.csSiteSpecificFactor16, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS site-specific factor 16 is not valid.</message>
            <description><![CDATA[Valid codes for CS site-specific factor 16 [2870] are 000-999 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Site-Specific_Factor_17" name="CS Site-Specific Factor17 (CS)" tag="N1005" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csSiteSpecificFactor17 == null || Functions.matches(line.csSiteSpecificFactor17, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS site-specific factor 17 is not valid.</message>
            <description><![CDATA[Valid codes for CS site-specific factor 17 [2871] are 000-999 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Site-Specific_Factor_18" name="CS Site-Specific Factor18 (CS)" tag="N1006" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csSiteSpecificFactor18 == null || Functions.matches(line.csSiteSpecificFactor18, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS site-specific factor 18 is not valid.</message>
            <description><![CDATA[Valid codes for CS site-specific factor 18 [2872] are 000-999 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Site-Specific_Factor_19" name="CS Site-Specific Factor19 (CS)" tag="N1007" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csSiteSpecificFactor19 == null || Functions.matches(line.csSiteSpecificFactor19, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS site-specific factor 19 is not valid.</message>
            <description><![CDATA[Valid codes for CS site-specific factor 19 [2873] are 000-999 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Site-Specific_Factor_20" name="CS Site-Specific Factor20 (CS)" tag="N1008" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csSiteSpecificFactor20 == null || Functions.matches(line.csSiteSpecificFactor20, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS site-specific factor 20 is not valid.</message>
            <description><![CDATA[Valid codes for CS site-specific factor 20 [2874] are 000-999 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Site-Specific_Factor_21" name="CS Site-Specific Factor21 (CS)" tag="N1009" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csSiteSpecificFactor21 == null || Functions.matches(line.csSiteSpecificFactor21, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS site-specific factor 21 is not valid.</message>
            <description><![CDATA[Valid codes for CS site-specific factor 21 [2875] are 000-999 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Site-Specific_Factor_22" name="CS Site-Specific Factor22 (CS)" tag="N1010" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csSiteSpecificFactor22 == null || Functions.matches(line.csSiteSpecificFactor22, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS site-specific factor 22 is not valid.</message>
            <description><![CDATA[Valid codes for CS site-specific factor 22 [2876] are 000-999 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Site-Specific_Factor_23" name="CS Site-Specific Factor23 (CS)" tag="N1011" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csSiteSpecificFactor23 == null || Functions.matches(line.csSiteSpecificFactor23, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS site-specific factor 23 is not valid.</message>
            <description><![CDATA[Valid codes for CS site-specific factor 23 [2877] are 000-999 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Site-Specific_Factor_24" name="CS Site-Specific Factor24 (CS)" tag="N1012" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csSiteSpecificFactor24 == null || Functions.matches(line.csSiteSpecificFactor24, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS site-specific factor 24 is not valid.</message>
            <description><![CDATA[Valid codes for CS site-specific factor 24 [2878] are 000-999 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Site-Specific_Factor_25" name="CS Site-Specific Factor25 (CS)" tag="N1013" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csSiteSpecificFactor25 == null || Functions.matches(line.csSiteSpecificFactor25, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS site-specific factor 25 is not valid.</message>
            <description><![CDATA[Valid codes for CS site-specific factor 25 [2879] are 000-999 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Tumor_Size" name="CS Tumor Size (CS)" tag="N0655" java-path="lines.line" category="field">
            <expression><![CDATA[return  line.csTumorSize == null || Functions.matches(line.csTumorSize, /(^[0-9][0-9][0-9]$)|(^\s\s\s$)/)]]></expression>
            <message>CS tumor size is not valid.</message>
            <description><![CDATA[Valid codes for CS tumor size[2800] are 000-990,999 and blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Tumor_Size_Ext_Eval" name="CS Tumor Size/Ext Eval (CS)" tag="N0659" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csTumorSizeExtEval == null || Functions.matches(line.csTumorSizeExtEval, /^[0-5689\s]$/)]]></expression>
            <message>CS Tumor Size/Ext Eval is not valid.</message>
            <description><![CDATA[Valid values for CS Tumor Size/Ext Eval [282] are 0-6, 8-9, or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Version_Derived" name="CS Version Derived (CS)" tag="N0695" java-path="lines.line" category="field">
            <expression><![CDATA[return line.csVersionDerived == null || (Functions.matches(line.csVersionDerived, /^0205\d\d$/) && line.csVersionDerived <= Functions.getCsVersion())]]></expression>
            <message>CS Version Derived is not valid.</message>
            <description><![CDATA[Must be a six-digit number or blank. If not blank, the first four digits must = 0205.

CS Version Derived must also be less than or equal to the CS version that is returned
from a function call to the CS DLL. (The CS DLL always contains the most current CS
version number.)]]></description>
            <history>
                <event version="SE11-001-20" user="greend" date="2006-09-07">Version 0103 added as allowable code.</event>
                <event version="SE11-001-21" user="greend" date="2007-02-01">Only the two latest versions are allowable codes.</event>
                <event version="SE11-001-22" user="greend" date="2007-12-15">Added &apos;0104&apos; to the allowable codes.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-11">Changed name, id, and error message.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-02-03">Changed logic.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-04-29">Added newest dll version (0202).</event>
                <event version="SE12-002-01" user="murphyr" date="2010-05-26">Edit now only checks first two digits.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-24">Added that CS Version Derived must be less than or equal to the CS version that is returned from a function call to the CS DLL.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-22" ref="66643">Changed range from 02-Current to 0204-Current</event>
                <event version="SE14-011-01" user="murphyr" date="2013-10-25" ref="67025">Updated for CS version 0205.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Version_Input_Current" name="CS Version Input Current (CS)" tag="N1212" java-path="lines.line" category="field">
            <expression><![CDATA[if (line.csVersionInputCurrent == null)
    return true

if (line.csVersionInputCurrent <= Functions.getCsVersion()) {
    Integer version = Functions.asInt(line.csVersionInputCurrent)
    return ['020550','020540','020530','020520','020510'].contains(line.csVersionInputCurrent) ||
        version > 20550
}

return false]]></expression>
            <message>CS Version Input Current.</message>
            <description><![CDATA[Must be a six-digit number or blank.  If not blank, the full six-digit number must be one of the following numbers:
020550 or higher (see next paragraph)
020540
020530
020520
020510

CS Version Input Current must be less than or equal to the CS version that is returned from a function call to the CS DLL]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-11">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-04-29">Added newest dll version (0202).</event>
                <event version="SE12-002-01" user="murphyr" date="2010-05-26">Edit now only checks first two digits.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-24">Added that CS Version Input Current must be less than or equal to the CS version that is returned from a function call to the CS DLL.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-10-25" ref="67026">Updated for 0205</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="CS_Version_Input_Original" name="CS Version Input Original (CS)" tag="N0696" java-path="lines.line" category="field">
            <expression><![CDATA[if (line.csVersionInputOriginal == null)
    return true

if (['020440','020302','020200','020100','020001','010401','010400','010300','010200','010100','010005','010004','010003','010002','010000','000937'].contains(line.csVersionInputOriginal))
    return true

Integer version = Functions.asInt(line.csVersionInputOriginal)
if (version > Functions.asInt(Functions.getCsVersion()))
    return false

if (line.csVersionInputOriginal.startsWith('0205'))
   return version >= 20550

return false]]></expression>
            <message>CS Version Input Original is not valid.</message>
            <description><![CDATA[Must be a six-digit number or blank.

If not blank, the full six-digit number must be one of the following numbers:
020550 or higher (see next paragraph)
020440
020302
020200
020100
020001
010401
010400
010300
010200
010100
010005
010004
010003
010002
010000
000937

If the first 4 digits are 0205, then the full six-digit number must be greater than or equal to 020550. Codes less than 020550 are either reserved for converted cases or invalid and are never used in CS Version Input Original.

CS Version Input Original must also be less than or equal to the CS version that is returned from a function call to the CS DLL. (The most current CS DLL always contains the most current CS version number.)]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2007-12-15">Added new CS version &quot;0104&quot; to the allowable codes.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-11">Changed name, id, and error message.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-02-03">Changed logic.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-04-29">Added newest dll version (0202).</event>
                <event version="SE12-002-01" user="murphyr" date="2010-05-26">Edit now only checks first two digits.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-24">Added codes 020300 and 020301 as invalid codes and added that CS Version Input Original must also be less than or equal to the CS version that is returned from a function call to the CS DLL.</event>
                <event version="SE12-008-05" user="murphyr" date="2012-11-28" ref="66770">Added &apos;If the first 4 digits are 0204, then the full six-digit number must be greater than or equal to 020440. Codes less than 020440 are either reserved for converted cases or invalid and are never used in CS Version Input Original.&apos;</event>
                <event version="SE14-011-01" user="murphyr" date="2013-10-25" ref="67027">Updated for 0205.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="DateBirthEdit" name="Date of Birth (NAACCR)" tag="N1034" java-path="lines.line" category="inter-field" depends="Day_of_Birth,Month_of_Birth,Year_of_Birth">
            <expression><![CDATA[Integer year = Functions.asInt(line.dateOfBirthYear)
Integer month = Functions.asInt(line.dateOfBirthMonth)
Integer day = Functions.asInt(line.dateOfBirthDay)

Integer yearCur = Functions.getCurrentYear()
Integer monthCur = Functions.getCurrentMonth()
Integer dayCur = Functions.getCurrentDay()

if (line.dateOfBirthYear == null)
    return line.dateOfBirthMonth == null && line.dateOfBirthDay == null

if ((line.dateOfBirthMonth == null && line.dateOfBirthDay != null) || (month > 12 || (month != null && month < 1)))
    return false

if (!Functions.between(year, 1810, yearCur))
    return false

if (line.dateOfBirthMonth == null) //by now year fits and day is null if month is null
    return true

if (year == yearCur && month > monthCur)
    return false

if (line.dateOfBirthDay == null) //by now year and month fit
    return true

if (year == yearCur && month == monthCur && day > dayCur)
    return false

// check for day of the month too big (need to check leap years too)
Calendar cal = new GregorianCalendar(year, month - 1, 1)
return cal != null && day <= cal.getActualMaximum(Calendar.DAY_OF_MONTH)]]></expression>
            <message>Date of Birth is not valid.</message>
            <description><![CDATA[Birth Date checks are performed in this order:

  A)  If the year is blank, month and day must also be blank.

  B)  If the month is blank, the day must be blank.

  C)  If day of birth is blank, the year of birth and month
      of birth can not be greater than the current system year/month.

  D)  Year of birth must be between 1810 and the current system year.

  E)  If day is known, then entire date of birth is verified.  The date
      must be a valid date (leap years checked) and must be less than
      or equal to the current system date.]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2008-01-21">Edit now uses Day of Birth.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-03">9 filled dates no longer allowed.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-23">Fixed parenthesis error, and fixed edit to correctly check for blank string instead of blank int.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-20" ref="67425">Fixed documentation.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-13" user="kirbyk" date="2022-10-18" ref="69045">Fixing edit behavior for future dates.</event>
            </history>
        </rule>
        <rule id="DateDiagnosisEdit" name="Date of Diagnosis (NAACCR DATEEDIT)" tag="N0021" java-path="lines.line" category="inter-field" depends="Day_of_Diagnosis,Month_of_Diagnosis,Year_of_Diagnosis">
            <expression><![CDATA[Integer year = Functions.asInt(line.dateOfDiagnosisYear)
Integer month = Functions.asInt(line.dateOfDiagnosisMonth)
Integer day = Functions.asInt(line.dateOfDiagnosisDay)

Integer yearCur  = Functions.getCurrentYear()
Integer monthCur = Functions.getCurrentMonth()
Integer dayCur = Functions.getCurrentDay()

if (line.dateOfDiagnosisYear == null)
   return line.dateOfDiagnosisMonth == null && line.dateOfDiagnosisDay == null

if ((line.dateOfDiagnosisMonth == null && line.dateOfDiagnosisDay != null) || (month > 12 || (line.dateOfDiagnosisMonth != null && month < 1)))
   return false

if (!Functions.between(year, 1930, yearCur))
    return false

if (line.dateOfDiagnosisMonth == null) //by now year fits and day is null if month is null
    return true

if (year == yearCur && month > monthCur)
    return false

if (line.dateOfDiagnosisDay == null) //by now year and month fit
    return true

if (year == yearCur && month == monthCur && day > dayCur)
    return false

Calendar cal = new GregorianCalendar(year, month - 1, 1)
return cal != null && day <= cal.getActualMaximum(Calendar.DAY_OF_MONTH)]]></expression>
            <message>Date of Diagnosis is not valid.</message>
            <description><![CDATA[The Date of Diagnosis checks are performed in this order:

  A)  If the year is blank, month and day must also be blank

  B)  If the month is blank, the day must be blank.

  C)  If day of diagnosis is blank, the year of diagnosis and
      month of diagnosis can not be greater than the current system
      year/month.

  D)  Year of Diagnosis must be between 1930 and the current system year.

  E)  If day is known, then entire date of diagnosis is verified.  The
      date must be a valid date (leap years checked) and must be less than
      or equal to the current system date.]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2008-01-21">Edit now uses Day of Diagnosis.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-03">9 filled is no longer allowed.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-23">Fixed edit to correctly check for blank string instead of blank int.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-20" ref="67425">Fixed documentation.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE22-022-13" user="kirbyk" date="2022-10-18" ref="69045">Fixing edit behavior for future dates.</event>
            </history>
        </rule>
        <rule id="DateFollowUpEdit" name="Date of Last Contact (NAACCR DATEEDIT)" tag="N0022" java-path="lines.line" category="inter-field" depends="Day_of_Last_Contact,Month_of_Last_Contact,Year_of_Last_Contact">
            <expression><![CDATA[Integer year = Functions.asInt(line.dateOfLastContactYear)
Integer month = Functions.asInt(line.dateOfLastContactMonth)
Integer day = Functions.asInt(line.dateOfLastContactDay)

Integer yearCur  = Functions.getCurrentYear()
Integer monthCur = Functions.getCurrentMonth()
Integer dayCur = Functions.getCurrentDay()

if (line.dateOfLastContactYear == null)
    return (line.dateOfLastContactMonth == null && line.dateOfLastContactDay == null)

if ((line.dateOfLastContactMonth == null && line.dateOfLastContactDay != null) || (month > 12 || (line.dateOfLastContactMonth != null && month < 1)))
    return false

if (!Functions.between(year, 1930, yearCur))
    return false

if (line.dateOfLastContactMonth == null) //by now year fits and day is null if month is null
    return true

if (year == yearCur && month > monthCur)
    return false

if (line.dateOfLastContactDay == null) //by now year and month fit
    return true

if (year == yearCur && month == monthCur && day > dayCur)
    return false

 Calendar cal = new GregorianCalendar(year, month - 1, 1)
 return cal != null && day <= cal.getActualMaximum(Calendar.DAY_OF_MONTH)]]></expression>
            <message>Date of Last Contact is not valid.</message>
            <description><![CDATA[The Date of Follow-up checks are performed in this order:

  A)  If the year is blank, month and day must also be blank.

  B)  If the month is blank, the day must be blank.

  C)  If day of Follow-up is blank, the year of Follow-up and
      month of Follow-up can not be greater than the current system
      year/month.

  D)  Year of Follow-up must be between 1930 and the current system year.

  E)  If day is known, then entire Date of Follow-up is verified.  The
      date must be a valid date (leap years checked) and must be less than
      or equal to the current system date.]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2008-01-21">Edit now uses Day of Last Contact.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-03">9 filled dates no longer allowed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-20" ref="67425">Fixed documentation.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE22-022-13" user="kirbyk" date="2022-10-18" ref="69045">Fixing edit behavior for future dates.</event>
            </history>
        </rule>
        <rule id="DateRegionalLymphNodeDissectionEdit" name="Date Regional Lymph Node Dissection (COC)" tag="N2518" java-path="lines.line" category="inter-field" depends="Day_Regional_Lymph_Node_Dissection,Month_Regional_Lymph_Node_Dissection,Year_Regional_Lymph_Node_Dissection">
            <expression><![CDATA[Integer year = Functions.asInt(line.dateRegionalLNDissectionYear)
Integer month = Functions.asInt(line.dateRegionalLNDissectionMonth)
Integer day = Functions.asInt(line.dateRegionalLNDissectionDay)

Integer yearCur  = Functions.getCurrentYear()
Integer monthCur = Functions.getCurrentMonth()
Integer dayCur = Functions.getCurrentDay()

if (line.dateRegionalLNDissectionYear == null)
    return (line.dateRegionalLNDissectionMonth == null && line.dateRegionalLNDissectionDay == null)

if ((line.dateRegionalLNDissectionMonth == null && line.dateRegionalLNDissectionDay != null) || (month > 12 || (line.dateRegionalLNDissectionMonth != null && month < 1)))
    return false

if (!Functions.between(year, 1930, yearCur))
    return false

if (line.dateRegionalLNDissectionMonth == null) //by now year fits and day is null if month is null
    return true

if (year == yearCur && month > monthCur)
    return false

if (line.dateRegionalLNDissectionDay == null) //by now year and month fit
    return true

if (year == yearCur && month == monthCur && day > dayCur)
    return false

Calendar cal = new GregorianCalendar(year, month - 1, 1)
return cal != null && day <= cal.getActualMaximum(Calendar.DAY_OF_MONTH)]]></expression>
            <message>Date Regional Lymph Node Dissection is not valid.</message>
            <description><![CDATA[This data item records the date non-sentinel regional node dissection was
performed. This data item is collected for all cases.

This edit checks for valid date only. Other edits check that the item is
recorded according to standard setter requirements by date of diagnosis.

The data item may be blank.

General Date Editing Rules:

Date fields are recorded in the D1 date format of year, month, day (CCYYMMDD).
Month and day must have leading zeros for values 01...09.

The following date formats are allowed:

CCYYMMDD    Century+Year, Month and Day are provided.
CCYYMM      Century+Year and Month. Day consists of two blank spaces.
CCYY        Century+Year. Month and Day consist of four blank spaces.

Dates are checked first to ensure they conform to one of these formats, then for
errors in the components. Checking stops on the first non-valid situation.

Range checking:
    Lowest allowed value:  January 1, 1930 (or in D1 format: 19300101)
    Highest allowed value: current system date
    When month is known, it is checked to ensure it falls within range 01...12.
    When month and day are known, day is checked to ensure it falls within range
    for that specific month. Accommodation is made for leap years.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-10" ref="67779">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-13" user="kirbyk" date="2022-10-18" ref="69045">Fixing edit behavior for future dates.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-01-20" ref="69080">Remove reference to date flags from description. No logic updated.</event>
            </history>
        </rule>
        <rule id="DateSentinelLymphNodeBiopsyEdit" name="Date of Sentinel Lymph Node Biopsy (COC)" tag="N2512" java-path="lines.line" category="inter-field" depends="Day_Sentinel_Lymph_Node_Biopsy,Month_Sentinel_Lymph_Node_Biopsy,Year_Sentinel_Lymph_Node_Biopsy">
            <expression><![CDATA[Integer year = Functions.asInt(line.dateSentinelLymphNodeBiopsyYear)
Integer month = Functions.asInt(line.dateSentinelLymphNodeBiopsyMonth)
Integer day = Functions.asInt(line.dateSentinelLymphNodeBiopsyDay)

Integer yearCur  = Functions.getCurrentYear()
Integer monthCur = Functions.getCurrentMonth()
Integer dayCur = Functions.getCurrentDay()

if (line.dateSentinelLymphNodeBiopsyYear == null)
    return (line.dateSentinelLymphNodeBiopsyMonth == null && line.dateSentinelLymphNodeBiopsyDay == null)

if ((line.dateSentinelLymphNodeBiopsyMonth == null && line.dateSentinelLymphNodeBiopsyDay != null) || (month > 12 || (line.dateSentinelLymphNodeBiopsyMonth != null && month < 1)))
    return false

if (!Functions.between(year, 1930, yearCur))
    return false

if (line.dateSentinelLymphNodeBiopsyMonth == null) //by now year fits and day is null if month is null
    return true

if (year == yearCur && month > monthCur)
    return false

if (line.dateSentinelLymphNodeBiopsyDay == null) //by now year and month fit
    return true

if (year == yearCur && month == monthCur && day > dayCur)
    return false

Calendar cal = new GregorianCalendar(year, month - 1, 1)
return cal != null && day <= cal.getActualMaximum(Calendar.DAY_OF_MONTH)]]></expression>
            <message>Date of Sentinel Lymph Node Biopsy is not valid.</message>
            <description><![CDATA[This data item records the date of the sentinel lymph node(s) biopsy procedure.
The item is collected for Melanoma of Skin and Breast cases only (Schema IDs
00470 and 00480).

This edit checks for valid date only. Other edits check that the item is recorded
according to standard setter requirements by date of diagnosis and primary site.


The data item may be blank.

General Date Editing Rules:
Date fields are recorded in the D1 date format of year, month, day (CCYYMMDD).
Month and day must have leading zeros for values 01...09.

The following date formats are allowed:
CCYYMMDD    Century+Year, Month and Day are provided.
CCYYMM__    Century+Year and Month. Day consists of two blank spaces.
CCYY____    Century+Year. Month and Day consist of four blank spaces.

Dates are checked first to ensure they conform to one of these formats, then for
errors in the components. Checking stops on the first non-valid situation.

Range checking:
Lowest allowed value:  January 1, 1930 (or in D1 format: 19300101)
Highest allowed value: current system date
When month is known, it is checked to ensure it falls within range 01...12.
When month and day are known, day is checked to ensure it falls within range
for that specific month. Accommodation is made for leap years.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-10" ref="67779">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-13" user="kirbyk" date="2022-10-18" ref="69045">Fixing edit behavior for future dates.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-01-20" ref="69080">Remove reference to date flags from description. No logic updated.</event>
            </history>
        </rule>
        <rule id="DateTherapyEdit" name="Date Initial RX SEER (NAACCR)" tag="N0075" java-path="lines.line" category="inter-field" depends="Day_of_Initial_RX--SEER,Month_of_Initial_RX-SEER,Year_of_Diagnosis,Year_of_Initial_RX-SEER">
            <expression><![CDATA[Integer year = Functions.asInt(line.dateInitialRxSeerYear)
Integer month = Functions.asInt(line.dateInitialRxSeerMonth)
Integer day = Functions.asInt(line.dateInitialRxSeerDay)

Integer yearCur  = Functions.getCurrentYear()
Integer monthCur = Functions.getCurrentMonth()
Integer dayCur = Functions.getCurrentDay()

if (line.registryId == '0000001544' && line.dateOfDiagnosisYear < '2000')
    return true

if (line.dateInitialRxSeerYear == null)
   return (line.dateInitialRxSeerMonth == null && line.dateInitialRxSeerDay == null)

if ((line.dateInitialRxSeerMonth == null && line.dateInitialRxSeerDay != null) || (month > 12 || (line.dateInitialRxSeerMonth != null && month < 1)))
   return false

if (!Functions.between(year, 1930, yearCur))
    return false

if (line.dateInitialRxSeerMonth == null) //by now year fits and day is null if month is null
    return true

if (year == yearCur && month > monthCur)
    return false

if (line.dateInitialRxSeerDay == null) //by now year and month fit
    return true

if (year == yearCur && month == monthCur && day > dayCur)
    return false

Calendar cal = new GregorianCalendar(year, month - 1, 1)
return cal != null && day <= cal.getActualMaximum(Calendar.DAY_OF_MONTH)]]></expression>
            <message>Date of Init RX--SEER is not valid.</message>
            <description><![CDATA[Earliest year of diagnosis and current system date are determined by the user and entered as parameetes in the interface.

This edit is skipped for New Jersey cases diagnosed before 2000.

The Date of Therapy checks are performed in this order:

  A)  If the year is blank, month and day must also be blank.

  D)  Year of Therapy must be between 1930 and the current system year.

  B)  If the month is blank, the day must be blank.

  C)  If day of Therapy is blank, the year of Therapy and
      month of Therapy can not be greater than the current system
      year/month.

  E)  If day is known, then entire Date of Therapy is verified.  The
      date must be a valid date (leap years checked) and must be less than
      or equal to the current system date.]]></description>
            <history>
                <event version="SE11-001-02" user="greend" date="1986-07-10">A correction was made allowing month to be equal to zero only when year is equal to zero.</event>
                <event version="SE11-001-17" user="greend" date="2003-09-22">Edit modified to skip cases from New Jersey diagnosed before 2000.</event>
                <event version="SE11-001-22" user="greend" date="2008-01-21">Edit now uses Day of initial RX--SEER [1260].</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-03">0-filled and 9 filled no longer allowed.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-23">Fixed edit to correctly check for blank string instead of blank int.</event>
                <event version="SE12-003-03" user="murphyr" date="2011-02-10">Updated documentation.</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-20" ref="66776">Updated edit name.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-20" ref="67425">Fixed documentation.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-13" user="kirbyk" date="2022-10-18" ref="69045">Fixing edit behavior for future dates.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="Day_BRM" name="RX Date BRM (COC)" tag="N0071" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxDateBrmDay == null || Functions.matches(line.rxDateBrmDay, /^(0[1-9]|[12][0-9]|3[0-1])$/)]]></expression>
            <message>Day of BRM is not valid.</message>
            <description><![CDATA[Valid values for Day of BRM[1240] are 01-31 and blank.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-14" ref="67141">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Day_Chemo" name="RX Date Chemo (COC)" tag="N1046" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxDateChemoDay == null || Functions.matches(line.rxDateChemoDay, /^0[1-9]|[12][0-9]|3[0-1]$/)]]></expression>
            <message>Day of Chemo is not valid.</message>
            <description><![CDATA[Valid values for Day of Chemo[1220] are 01-31 and blank.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-12" ref="67142">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Day_Hormone" name="RX Date Hormone (COC)" tag="N0073" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxDateHormoneDay == null || Functions.matches(line.rxDateHormoneDay, /^(0[1-9]|[12][0-9]|3[0-1])$/)]]></expression>
            <message>Day of Hormone is not valid.</message>
            <description><![CDATA[Valid values for Day of Hormone[1230] are 01-31 and blank.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-14" ref="67143">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="Day_Most_Defin_Surg" name="RX Date Mst Defn Srg (COC)" tag="N0510" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxDateMostDefinSurgDay == null || Functions.matches(line.rxDateMostDefinSurgDay, /^(0[1-9]|[12][0-9]|3[01])$/)]]></expression>
            <message>Day of Mst Defn Srg is not valid.</message>
            <description><![CDATA[Valid values for Day of Mst Defn Srg[3170] are 01-31 and blank.]]></description>
            <history>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-12" ref="67577">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Day_of_Birth" name="Date of Birth (NAACCR)" tag="N1034" java-path="lines.line" category="field">
            <expression><![CDATA[return  line.dateOfBirthDay == null || line.dateOfBirthDay  ==~ /^(0[1-9]|[12][0-9]|3[01])$/]]></expression>
            <message>Day of birth is not valid.</message>
            <description><![CDATA[Valid values for Day of Birth[240] are 01-31 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2009-12-29">99 days removed.</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-20" ref="66804">Fixed edit to not allow one digit days and removed blanks from regex statement.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Day_of_Diagnosis" name="Date of Diagnosis (NAACCR DATEEDIT)" tag="N0021" java-path="lines.line" category="field">
            <expression><![CDATA[return line.dateOfDiagnosisDay == null || Functions.matches(line.dateOfDiagnosisDay, /^(0[1-9]|[12][0-9]|3[01])$/)]]></expression>
            <message>Day of diagnosis is not valid.</message>
            <description><![CDATA[Valid values for Day of Diagnosis[390] are 01-31 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="greend" date="2009-12-29">99 removed.</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-20" ref="66804">Removed blank check in regex.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Day_of_Initial_RX--SEER" name="Date Initial RX SEER (NAACCR)" tag="N0075" java-path="lines.line" category="field">
            <expression><![CDATA[return line.dateInitialRxSeerDay == null || Functions.matches(line.dateInitialRxSeerDay, /^(0[1-9]|[12][0-9]|3[0-1])$/)]]></expression>
            <message>Day of initial RX--SEER is not valid.</message>
            <description><![CDATA[Valid values for Day of Initial RX--SEER[1260] are 01-31 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2009-12-29">99 removed and range changed from 00-31 to 01-31.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Day_of_Last_Contact" name="Date of Last Contact (NAACCR DATEEDIT)" tag="N0022" java-path="lines.line" category="field">
            <expression><![CDATA[return line.dateOfLastContactDay == null || Functions.matches(line.dateOfLastContactDay, /^(0[1-9]|[12][0-9]|3[01])$/)]]></expression>
            <message>Day of last contact is not valid.</message>
            <description><![CDATA[Valid values for Day of Last Contact[1750] are 01-31 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2009-12-29">99 removed.</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-20" ref="66804">Fixed edit to not allow one digit days and removed blanks from regex statement.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Day_Other" name="RX Date Other (COC)" tag="N0074" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxDateOtherDay == null || Functions.matches(line.rxDateOtherDay, /^(0[1-9]|[12][0-9]|3[0-1])$/)]]></expression>
            <message>RX Day Other is not valid.</message>
            <description><![CDATA[Valid values for RX Day Other[1250] are 01-31 and blank.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-14" ref="67144">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Day_Radiation" name="RX Date Radiation (COC)" tag="N0549" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxDateRadiationDay == null || Functions.matches(line.rxDateRadiationDay, /^(0[1-9]|[12][0-9]|3[01])$/)]]></expression>
            <message>Day of Radiation is not valid.</message>
            <description><![CDATA[Valid values for Day of Radiation[1210] are 01-31 and blank.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-09" ref="67145">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Day_Recurrence_Date_1st" name="Recurrence Date--1st (COC)" tag="N0063" java-path="lines.line" category="field">
            <expression><![CDATA[return line.recurrenceDate1stDay == null || line.recurrenceDate1stDay  ==~ /^(0[1-9]|[12][0-9]|3[01])$/]]></expression>
            <message>Day of Recurrence Date--1st is not valid.</message>
            <description><![CDATA[Valid codes for Day of Recurrence Date--1st are 01-31 and blank.]]></description>
            <history>
                <event version="SE21-021-01" user="kirbyk" date="2021-01-15" ref="68551">Edit created.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
                <event version="SE22-022-05" user="kirbyk" date="2022-05-17" ref="68995">Replaced non-ASCII characters in message and description.</event>
            </history>
        </rule>
        <rule id="Day_Regional_Lymph_Node_Dissection" name="Date Regional Lymph Node Dissection (COC)" tag="N2518" java-path="lines.line" category="field">
            <expression><![CDATA[return line.dateRegionalLNDissectionDay == null || Functions.matches(line.dateRegionalLNDissectionDay, /^(0[1-9]|[12][0-9]|3[01])$/)]]></expression>
            <message>Day of Regional Lymph Node Dissection is not valid.</message>
            <description><![CDATA[Valid values for Day of Regional Lymph Node Dissection[832] are 01-31 and blank.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-08" ref="67779">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Day_Sentinel_Lymph_Node_Biopsy" name="Date of Sentinel Lymph Node Biopsy (COC)" tag="N2512" java-path="lines.line" category="field">
            <expression><![CDATA[return line.dateSentinelLymphNodeBiopsyDay == null || Functions.matches(line.dateSentinelLymphNodeBiopsyDay, /^(0[1-9]|[12][0-9]|3[01])$/)]]></expression>
            <message>Day of Sentinel Lymph Node Biopsy is not valid.</message>
            <description><![CDATA[Valid values for Day of Sentinel Lymph Node Biopsy[682] are 01-31 and blank.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-08" ref="67779">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Day_Surgery" name="RX Date Surgery (COC)" tag="N0356" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxDateSurgeryDay == null || Functions.matches(line.rxDateSurgeryDay, /^(0[1-9]|[12][0-9]|3[01])$/)]]></expression>
            <message>Day of Surgery is not valid.</message>
            <description><![CDATA[Valid values for Day of Surgery[1200] are 01-31 and blank.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-12" ref="67146">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-31" ref="68451">Changed edit name.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="Day_SurvDateActiveFollowup" name="Surv-Date Active Followup (SEER)" tag="N1979" java-path="lines.line" category="field">
            <expression><![CDATA[return line.survDateActiveFollowupDay == null || Functions.matches(line.survDateActiveFollowupDay, /^(0[1-9]|[12][0-9]|3[01])$/)]]></expression>
            <message>Day of Surv-Date Active Followup is not valid.</message>
            <description><![CDATA[Valid values for Day of Surv-Date Active Followup[1782] are 01-31 and blank.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-20" ref="67147">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Day_SurvDateDXRecode" name="Surv-Date DX Recode (SEER)" tag="N1981" java-path="lines.line" category="field">
            <expression><![CDATA[return line.survDateDxRecodeDay == null || Functions.matches(line.survDateDxRecodeDay, /^(0[1-9]|[12][0-9]|3[01])$/)]]></expression>
            <message>Day of Surv-Date DX Recode is not valid.</message>
            <description><![CDATA[Valid values for Day of Surv-Date DX Recode[1788] are 01-31 and blank.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-14" ref="67148">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Day_SurvDatePresumedAlive" name="Surv-Date Presumed Alive (SEER)" tag="N1980" java-path="lines.line" category="field">
            <expression><![CDATA[return line.survDatePresumedAliveDay == null || Functions.matches(line.survDatePresumedAliveDay, /^(0[1-9]|[12][0-9]|3[01])$/)]]></expression>
            <message>Day of Surv-Date Presumed Alive is not valid.</message>
            <description><![CDATA[Valid values for Day of Surv-Date Presumed Alive[1785] are 01-31 and blank.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-20" ref="67149">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Day_Systemic" name="RX Date Systemic (COC)" tag="N0567" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxDateSystemicDay == null || Functions.matches(line.rxDateSystemicDay, /^(0[1-9]|[12][0-9]|3[01])$/)]]></expression>
            <message>RX Date Systemic Day is not valid.</message>
            <description><![CDATA[Valid values for RX Date Systemic Day[3230] are 01-31 and blank.]]></description>
            <history>
                <event version="SE16-016-10" user="kirbyk" date="2018-01-16" ref="67682">Edit created.</event>
            </history>
        </rule>
        <rule id="Derived_AJCC_6_M" name="Derived AJCC-6 M (CS)" tag="N0670" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedAjcc6M == null || Functions.matches(line.derivedAjcc6M, /(^00$)|(^1[01239]$)|(^88$)|(^99$)|(^\s\s$)/)]]></expression>
            <message>Derived AJCC-6 M is not valid.</message>
            <description><![CDATA[Must be a valid two-digit Storage Code for Derived AJCC-6 M.  May be blank.

The following Storage Codes are valid:
00, 10-13, 19, 88, 99

This table shows the corresponding Display String for each Storage
Code:

Storage Code       Display String       Comments
99                 MX                   MX
00                 M0                   M0
10                 M1                   M1
11                 M1a                  M1a
12                 M1b                  M1b
13                 M1c                  M1c
19                 M1NOS                M1 NOS
88                 NA                   Not applicable]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Changed name, id, and message.  Added a 6 to distinguish AJCC editions.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Derived_AJCC_6_M_Descriptor" name="Derived AJCC-6 M Descriptor (CS)" tag="N0680" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedAjcc6MDescript == null || Functions.matches(line.derivedAjcc6MDescript, /^[cpayN\s]$/)]]></expression>
            <message>Derived AJCC-6 M Descriptor is not valid.</message>
            <description><![CDATA[The Derived AJCC-6 M Descriptor [2990] must be one of the following:

c = Clinical stage
p = Pathologic stage
a = Autopsy stage
y = Pathologic examination, extension based on pathologic evidence
N = Not Applicable
Blank]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Changed name, id, and message.  Added a 6 to distinguish AJCC editions.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Derived_AJCC_6_N" name="Derived AJCC-6 N (CS)" tag="N0669" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedAjcc6N == null || line.derivedAjcc6N==~ /(^0[01234]$)|(^1[012389]$)|(^[23][01239]$)|(^88$)|(^99$)|(^\s\s$)/]]></expression>
            <message>Derived AJCC-6 N is not valid.</message>
            <description><![CDATA[Must be a valid two-digit Storage Code for Derived AJCC-6 N.  May be blank.

The following Storage Codes are valid:
00-04, 10-13, 18-23, 29, 30-33, 39, 88, 99

This table shows the corresponding Display String for each Storage
Code:

Storage Code       Display String       Comments
99                 NX                   NX
00                 N0                   N0
01                 N0(i-)               N0(i-)
02                 N0(i+)               N0(i+)
03                 N0(mol-)             N0(mol-)
04                 N0(mol+)             N0(mol+)
10                 N1                   N1
19                 N1NOS                N1 NOS
11                 N1a                  N1a
12                 N1b                  N1b
13                 N1c                  N1c
18                 N1mi                 N1mi
20                 N2                   N2
29                 N2NOS                N2 NOS
21                 N2a                  N2a
22                 N2b                  N2b
23                 N2c                  N2c
30                 N3                   N3
39                 N3NOS                N3NOS
31                 N3a                  N3a
32                 N3b                  N3b
33                 N3c                  N3c
88                 NA                   Not applicable]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Changed name, id, and message.  Added a 6 to distinguish AJCC editions.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-02-03">Removed code 09.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-05-09" ref="66877">Change the display string &quot;N0(i?)&quot; to &quot;N0(i-)&quot; and &quot;N0(mol?)&quot; to &quot;N0(mol-)&quot;</event>
            </history>
        </rule>
        <rule id="Derived_AJCC_6_N_Descriptor" name="Derived AJCC-6 N Descriptor (CS)" tag="N0681" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedAjcc6NDescript == null || Functions.matches(line.derivedAjcc6NDescript, /^[cpayN\s]$/)]]></expression>
            <message>Derived AJCC-6 N Descriptor is not valid.</message>
            <description><![CDATA[The Derived AJCC N Descriptor [2970] must be one of the following:

c = Clinical stage
p = Pathologic stage
a = Autopsy stage
y = Lymph nodes removed,evaluation based on pathologic evidence
N = Not Applicable
Blank]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Changed name, id, and message.  Added a 6 to distinguish AJCC editions.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Derived_AJCC_6_Stage_Group" name="Derived AJCC-6 Stage Group (CS)" tag="N0671" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedAjcc6StageGrp == null || Functions.matches(line.derivedAjcc6StageGrp, /(^0[012]$)|(^[135][0-9]$)|(^[27][0-4]$)|(^[46][0-3]$)|(^88$)|(^9[09]$)|(^\s\s$)/)]]></expression>
            <message>Derived AJCC-6 Stage Group is not valid.</message>
            <description><![CDATA[Must be a valid Storage Code for Derived AJCC-6 Stage Group.
May be blank.

The following Storage Codes are valid:
00-02, 10-24, 30-43, 50-63, 70-74, 88, 90, 99

This table shows the corresponding Display String for each Storage
Code:

Storage Code       Display String       Comments
00                 0                    Stage 0
01                 0a                   Stage 0a
02                 0is                  Stage 0is
10                 I                    Stage I
11                 INOS                 Stage I NOS
12                 IA                   Stage IA
13                 IA1                  Stage IA1
14                 IA2                  Stage IA2
15                 IB                   Stage IB
16                 IB1                  Stage IB1
17                 IB2                  Stage IB2
18                 IC                   Stage IC
19                 IS                   Stage IS
23                 ISA                  Stage ISA (lymphoma only)
24                 ISB                  Stage ISB (lymphoma only)
20                 IEA                  Stage IEA (lymphoma only)
21                 IEB                  Stage IEB (lymphoma only)
22                 IE                   Stage IE (lymphoma only)
30                 II                   Stage II
31                 IINOS                Stage II NOS
32                 IIA                  Stage IIA
33                 IIB                  Stage IIB
34                 IIC                  Stage IIC
35                 IIEA                 Stage IIEA (lymphoma only)
36                 IIEB                 Stage IIEB (lymphoma only)
37                 IIE                  Stage IIE (lymphoma only)
38                 IISA                 Stage IISA (lymphoma only)
39                 IISB                 Stage IISB (lymphoma only)
40                 IIS                  Stage IIS (lymphoma only)
41                 IIESA                Stage IIESA (lymphoma only)
42                 IIESB                Stage IIESB (lymphoma only)
43                 IIES                 Stage IIES (lymphoma only)
50                 III                  Stage III
51                 IIINOS               Stage III NOS
52                 IIIA                 Stage IIIA
53                 IIIB                 Stage IIIB
54                 IIIC                 Stage IIIC
55                 IIIEA                Stage IIIEA (lymphoma only)
56                 IIIEB                Stage IIIEB (lymphoma only)
57                 IIIE                 Stage IIIE (lymphoma only)
58                 IIISA                Stage IIISA (lymphoma only)
59                 IIISB                Stage IIISB (lymphoma only)
60                 IIIS                 Stage IIIS (lymphoma only)
61                 IIIESA               Stage IIIESA (lymphoma only)
62                 IIIESB               Stage IIIESB (lymphoma only)
63                 IIIES                Stage IIIES (lymphoma only)
70                 IV                   Stage IV
71                 IVNOS                Stage IV NOS
72                 IVA                  Stage IVA
73                 IVB                  Stage IVB
74                 IVC                  Stage IVC
88                 NA                   Not applicable
90                 OCCULT               Stage Occult
99                 UNK Stage            Unknown]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Changed name, id, and message.  Added a 6 to distinguish AJCC editions.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Derived_AJCC_6_T" name="Derived AJCC-6 T (CS)" tag="N0668" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedAjcc6T == null || Functions.matches(line.derivedAjcc6T, /(^0[01567]$)|(^1[0-9]$)|(^[23][01239]$)|(^4[012349]$)|(^8[018]$)|(^9[09]$)|(^\s\s$)/)]]></expression>
            <message>Derived AJCC-6 T is not valid.</message>
            <description><![CDATA[Must be a valid two-digit Storage Code for Derived AJCC-6 T. May be
blank.

The following Storage Codes are valid:
00, 01, 05-07, 10-23, 29-33, 39-44, 49, 80-81, 88, 99

This table shows the corresponding Display String for each Storage
code:

Storage Code       Display String       Comments
99                 TX                   TX
00                 T0                   T0
01                 Ta                   Ta
05                 Tis                  Tis
06                 Tispu                Tispu (Urethra only)
07                 Tispd                Tispd (Urethra only)
10                 T1                   T1
11                 T1mic                T1mic
19                 T1NOS                T1 NOS
12                 T1a                  T1a
13                 T1a1                 T1a1
14                 T1a2                 T1a2
15                 T1b                  T1b
16                 T1b1                 T1b1
17                 T1b2                 T1b2
18                 T1c                  T1c
20                 T2                   T2
29                 T2NOS                T2 NOS
21                 T2a                  T2a
22                 T2b                  T2b
23                 T2c                  T2c
30                 T3                   T3
39                 T3NOS                T3 NOS
31                 T3a                  T3a
32                 T3b                  T3b
33                 T3c                  T3c
40                 T4                   T4
49                 T4NOS                T4NOS
41                 T4a                  T4a
42                 T4b                  T4b
43                 T4c                  T4c
44                 T4d                  T4d
80                 T1aNOS               T1 aNOS
81                 T1bNOS               T1 bNOS
88                 NA                   Not applicable]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Changed name, id, and message.  Added a 6 to distinguish AJCC editions.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-02-03">Added code 80 and 81.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Derived_AJCC_6_T_Descriptor" name="Derived AJCC-6 T Descriptor (CS)" tag="N0682" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedAjcc6TDescript == null || Functions.matches(line.derivedAjcc6TDescript, /^[cpayN\s]$/)]]></expression>
            <message>Derived AJCC-6 T Descriptor is not valid.</message>
            <description><![CDATA[The Derived AJCC-6 T Descriptor [2950] must be one of the following:

c = Clinical stage
p = Pathologic stage
a = Autopsy stage
y = Surgical resection performed, tumor size/extension based on pathologic evidence
N = Not Applicable
Blank]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Changed name, id, and message.  Added a 6 to distinguish AJCC editions.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Derived_AJCC_7_M" name="Derived AJCC-7 M (CS)" tag="N1019" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedAjcc7M == null || Functions.matches(line.derivedAjcc7M, /(^999$)|(^0[01]0$)|(^1[012345]0$)|(^199$)|(^888$)/)]]></expression>
            <message>Derived AJCC-7 M is not valid.</message>
            <description><![CDATA[Must be a valid two-digit Storage Code for Derived AJCC-7 M[3420]. May be
blank.

The following Storage Codes are valid:
000,010,100,110,120,130,140,150,199,888.

This table shows the corresponding Display String for each Storage
code:

Storage Code       Display String       Comments
999                MX                   MX
000                M0                   M0
010                M0(i+)               M0(i+)
100                M1                   M1
110                M1a                  M1a
120                M1b                  M1b
130                M1c                  M1c
140                M1d                  M1d
150                M1e                  M1e
199                M1NOS                M1 NOS
888                NA                   Not applicable]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-08">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Derived_AJCC_7_M_Descriptor" name="Derived AJCC-7 M Descriptor (CS)" tag="N1020" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedAjcc7MDescript == null || Functions.matches(line.derivedAjcc7MDescript, /^[cpayN\s]$/)]]></expression>
            <message>Derived AJCC-7 M Descriptor is not valid.</message>
            <description><![CDATA[Must be a valid value for Derived AJCC-7 M Descriptor (c,p,a,y,N). May be blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-08">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Derived_AJCC_7_N" name="Derived AJCC-7 N (CS)" tag="N1017" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedAjcc7N == null || Functions.matches(line.derivedAjcc7N, /(^999$)|(^0[01234]0$)|(^1[01238]0$)|(^199$)|(^2[0123]0$)|(^299$)|(^399$)|(^3[0123]0$)|(^400$)|(^499$)|(^888$)/)]]></expression>
            <message>Derived AJCC-7 N is not valid.</message>
            <description><![CDATA[Must be a valid two-digit Storage Code for Derived AJCC-7 N[3410]. May be
blank.

The following Storage Codes are valid:
000,010,020,030,040,100,110,120,130,180,199,200,210,220,230,299,300,310,320,330,399,400,888,999.

This table shows the corresponding Display String for each Storage
code:

Storage Code       Display String       Comments
999                NX                   NX
000                N0                   N0
010                N0(i-)               N0(i-)
020                N0(i+)               N0(i+)
030                N0(mol-)             N0(mol-)
040                N0(mol+)             N0(mol+)
100                N1                   N1
199                N1NOS                N1 NOS
110                N1a                  N1a
120                N1b                  N1b
130                N1c                  N1c
180                N1mi                 N1mi
200                N2                   N2
299                N2NOS                N2 NOS
210                N2a                  N2a
220                N2b                  N2b
230                N2c                  N2c
300                N3                   N3
399                N3NOS                N3 NOS
310                N3a                  N3a
320                N3b                  N3b
330                N3c                  N3c
400                N4                   N4
888                NA                   Not applicable]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-08">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Derived_AJCC_7_N_Descriptor" name="Derived AJCC-7 N Descript (CS)" tag="N1021" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedAjcc7NDescript == null || Functions.matches(line.derivedAjcc7NDescript, /^[cpayN\s]$/)]]></expression>
            <message>Derived AJCC-7 N Descriptor is not valid.</message>
            <description><![CDATA[Must be a valid value for Derived AJCC-7 N Descriptor (c,p,a,y,N). May be blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-08">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Derived_AJCC_7_Stage_Group" name="Derived AJCC-7 Stage Group (CS)" tag="N1022" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedAjcc7StageGrp == null || Functions.matches(line.derivedAjcc7StageGrp, /(^0[012]0$)|(^1[0-9]0$)|(^1[25]1$)|(^2[01234]0$)|(^3[0-9]0$)|(^32[123]$)|(^4[0123]0$)|(^5[0-9]0$)|(^54[12]$)|(^6[0123]0$)|(^7[01234]0$)|(^72[12]$)|(^888$)|(^900$)|(^999$)/)]]></expression>
            <message>Derived AJCC-7 Stage Group is not valid.</message>
            <description><![CDATA[Must be a valid Storage Code for Derived AJCC-7 Stage Group.
May be blank.

The following Storage Codes are valid:
000,010,020,100,110,120,130,140,121,150,160,170,151,180,190,230,240,200,210,220,300,310,320,321,322,323,330,340,350,360,370,380,390,400,410,420,430,500,510,520,530,540,541,542,550,560,570,580,590,600,610,620,630,700,710,720,721,722,730,740,888,900, and 999

This table shows the corresponding Display String for each Storage
Code:

Storage Code       Display String           Comments
000                    0                       Stage 0
010                    0a                      Stage 0a
020                    0is                     Stage 0is
100                    I                       Stage I
110                    INOS                    Stage I NOS
120                    IA                      Stage IA
130                    IA1                     Stage IA1
140                    IA2                     Stage IA2
121                    IANOS                   Stage IA NOS
150                    IB                      Stage IB
160                    IB1                     Stage IB1
170                    IB2                     Stage IB2
151                    IBNOS                   Stage IB NOS
180                    IC                      Stage IC
190                    IS                      Stage IS
230                    ISA                     Stage ISA (lymphoma only)
240                    ISB                     Stage ISB (lymphoma only)
200                    IEA                     Stage IEA (lymphoma only)
210                    IEB                     Stage IEB (lymphoma only)
220                    IE                      Stage IE (lymphoma only)
300                    II                      Stage II
310                    IINOS                   Stage II NOS
320                    IIA                     Stage IIA
321                    IIANOS                  Stage IIA NOS
322                    IIA1                    Stage IIA1
323                    IIA2                    Stage IIA2
330                    IIB                     Stage IIB
340                    IIC                     Stage IIC
350                    IIEA                    Stage IIEA (lymphoma only)
360                    IIEB                    Stage IIEB (lymphoma only)
370                    IIE                     Stage IIE (lymphoma only)
380                    IISA                    Stage IISA (lymphoma only)
390                    IISB                    Stage IISB (lymphoma only)
400                    IIS                     Stage IIS (lymphoma only)
410                    IIESA                   Stage IIESA (lymphoma only)
420                    IIESB                   Stage IIESB (lymphoma only)
430                    IIES                    Stage IIES (lymphoma only)
500                    III                     Stage III
510                    IIINOS                  Stage III NOS
520                    IIIA                    Stage IIIA
530                    IIIB                    Stage IIIB
540                    IIIC                    Stage IIIC
541                    IIIC1                   Stage IIIC1
542                    IIIC2                   Stage IIIC2
550                    IIIEA                   Stage IIIEA (lymphoma only)
560                    IIIEB                   Stage IIIEB (lymphoma only)
570                    IIIE                    Stage IIIE (lymphoma only)
580                    IIISA                   Stage IIISA (lymphoma only)
590                    IIISB                   Stage IIISB (lymphoma only)
600                    IIIS                    Stage IIIS (lymphoma only)
610                    IIIESA                  Stage IIIESA (lymphoma only)
620                    IIIESB                  Stage IIIESB (lymphoma only)
630                    IIIES                   Stage IIIES (lymphoma only)
700                    IV                      Stage IV
710                    IVNOS                   Stage IV NOS
720                    IVA                     Stage IVA
721                    IVA1                    Stage IVA1
722                    IVA2                    Stage IVA2
730                    IVB                     Stage IVB
740                    IVC                     Stage IVC
888                    NA                      Not applicable
900                    OCCULT                  Stage Occult
999                    UNK                     Stage Unknown]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-08">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Derived_AJCC_7_T" name="Derived AJCC-7 T (CS)" tag="N1015" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedAjcc7T == null || Functions.matches(line.derivedAjcc7T, /(^999$)|(^0[01567]0$)|(^1[0-9]0$)|(^1[259][12])|(^181$)|(^199$)|(^2[01234]0$)|(^20[12])|(^299$)|(^21[123]$)|(^399$)|(^3[01234]0$)|(^30[12])|(^4[012345]0$)|(^4[129][12])|(^499$)|(^8[01]0$)|(^888$)/)]]></expression>
            <message>Derived AJCC-7 T is not valid.</message>
            <description><![CDATA[Must be a valid two-digit Storage Code for Derived AJCC-7 T[3400]. May be
blank.

The following Storage Codes are valid:
000, 010, 050, 060, 070, 100, 110, 120-122, 130, 140, 150-152, 160, 170, 180-181, 191-192, 199-202, 210-213, 220, 230, 240, 299, 300-302, 310, 320, 330, 340, 399, 400, 410-412, 420-422, 430, 440, 450, 491-492, 499, 800, 810, 888, and 999.

This table shows the corresponding Display String for each Storage
code:

Storage Code       Display String       Comments
999                TX                   TX
000                T0                   T0
010                Ta                   Ta
050                Tis                  Tis
060                Tispu                Tispu (Urethra only)
070                Tispd                Tispd (Urethra only)
100                T1                   T1
110                T1mi                 T1mi
199                T1NOS                T1 NOS
120                T1a                  T1a
121                T1a(s)               T1a(s)
122                T1a(m)               T1a(m)
130                T1a1                 T1a1
140                T1a2                 T1a2
150                T1b                  T1b
151                T1b(s)               T1b(s)
152                T1b(m)               T1b(m)
160                T1b1                 T1b1
170                T1b2                 T1b2
180                T1c                  T1c
181                T1d                  T1d
191                T1NOS(s)             T1 NOS(s)
192                T1NOS(m)             T1 NOS(m)
200                T2                   T2
201                T2(s)                T2(s)
202                T2(m)                T2(m)
299                T2NOS                T2 NOS
210                T2a                  T2a
211                T2a1                 T2a1
212                T2a2                 T2a2
213                T2aNOS               T2a NOS
220                T2b                  T2b
230                T2c                  T2c
240                T2d                  T2d
300                T3                   T3
399                T3NOS                T3 NOS
301                T3(s)                T3(s)
302                T3(m)                T3(m)
310                T3a                  T3a
320                T3b                  T3b
330                T3c                  T3c
340                T3d                  T3d
400                T4                   T4
499                T4NOS                T4 NOS
410                T4a                  T4a
411                T4a(s)               T4a(s)
412                T4a(m)               T4a(m)
420                T4b                  T4b
421                T4b(s)               T4b(s)
422                T4b(m)               T4b(m)
430                T4c                  T4c
440                T4d                  T4d
450                T4e                  T4e
491                T4NOS(s)             T4 NOS(s)
492                T4NOS(m)             T4 NOS(m)
800                T1aNOS               T1a NOS
810                T1bNOS               T1b NOS
888                NA                   Not applicable]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-08">Edit created.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-15" ref="66605">Added the following codes to the list: 121, 122, 151, 152, 191, 192, 201, 202, 301, 302, 411, 412, 421, 422, 491, 492</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-18" ref="68125">Fixed list of Storage Codes in documentation.</event>
            </history>
        </rule>
        <rule id="Derived_AJCC_7_T_Descriptor" name="Derived AJCC-7 T Descript (CS)" tag="N1016" java-path="lines.line" category="field">
            <expression><![CDATA[return  line.derivedAjcc7TDescript == null || Functions.matches(line.derivedAjcc7TDescript, /^[cpayN\s]$/)]]></expression>
            <message>Derived AJCC-7 T Descriptor is not valid.</message>
            <description><![CDATA[Must be a valid value for Derived AJCC-7 T Descriptor (c,p,a,y,N). May be blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-08">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Derived_AJCC_Flag" name="Derived AJCC--Flag (CS)" tag="N0674" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedAjccFlag == null || Functions.matches(line.derivedAjccFlag, /^[12\s]$/)]]></expression>
            <message>Derived AJCC--Flag is not valid.</message>
            <description><![CDATA[Must be a valid value for Derived AJCC--Flag (1,2).  May be blank.

1 = AJCC Sixth Edition derived from Collaborative Stage
2 = AJCC Sixth Edition derived from EOD (prior to 2004)]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Derived_EOD_2018_M" name="Derived EOD 2018 M (SEER)" tag="N3016" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedEod2018M == null || ((List)Context.Derived_EOD_2018_M_Table).contains(line.derivedEod2018M)]]></expression>
            <message>Derived EOD 2018 M is not valid.</message>
            <description><![CDATA[Must be a valid code for Derived EOD 2018 M and must be left-justified.
M must be uppercase and subcategory letters must be lowercase.
Components in () must be entered as shown. May be blank.

Valid codes:

    M0
    M0(i+)
    M1
    M1a
    M1a(0)
    M1a(1)
    M1b
    M1b(0)
    M1b(1)
    M1c
    M1c(0)
    M1c(1)
    M1d
    M1d(0)
    M1d(1)
    88
    blank]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-08" ref="67779">Edit created.</event>
            </history>
        </rule>
        <rule id="Derived_EOD_2018_N" name="Derived EOD 2018 N (SEER)" tag="N3015" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedEod2018N == null || ((List)Context.Derived_EOD_2018_N_Table).contains(line.derivedEod2018N)]]></expression>
            <message>Derived EOD 2018 N is not valid.</message>
            <description><![CDATA[Must be a valid code for Derived EOD 2018 N and must be left justified. N must
be uppercase and subcategory letters must be lowercase.
Components in () must be entered as shown.  May be blank.

Valid codes:

N0
N0(i+)
N0(mol+)
N0a
N0b
N1
N1a
N1a(sn)
N1b
N1c
N1mi
N2
N2a
N2b
N2c
N2mi
N3
N3a
N3b
N3c
NX
88
blank]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-08" ref="67779">Edit created.</event>
            </history>
        </rule>
        <rule id="Derived_EOD_2018_Stage_Group" name="Derived EOD 2018 Stage Group (SEER)" tag="N3017" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.derivedEod2018StageGroup == null)
            return true

if (line.derivedEod2018StageGroup == '90' &&
    (line.derivedEod2018T == '88' || (['00410','00440'].contains(line.schemaId) && (line.gradeClinical == 'H' || line.gradePathological == 'H'))))
    return true

return ((List)Context.Derived_EOD_2018_Stage_Group_Table).contains(line.derivedEod2018StageGroup)]]></expression>
            <message>Derived EOD 2018 Stage Group is not valid.</message>
            <description><![CDATA[Must be a valid code for Derived EOD 2018 Stage Group and must be left-justified.
Letters (excluding 0a and 0is) must be uppercase. May be blank.


Valid codes:

    OC
    0
    0a
    0is
    1
    1A
    1A1
    1A2
    1A3
    1B
    1B1
    1B2
    1B3
    1C
    1E
    1S
    1:0
    1:1
    1:2
    1:3
    1:4
    1:5
    1:6
    1:7
    1:8
    1:9
    1:10
    1:11
    1:12
    1:13
    1:14
    1:15
    1:16
    1:17
    1:18
    1:19
    1:20
    1:21
    1:22
    1:23
    1:24
    1:25
    2
    2A
    2A1
    2A2
    2B
    2C
    2E
    2 bulky
    2:0
    2:1
    2:2
    2:3
    2:4
    2:5
    2:6
    2:7
    2:8
    2:9
    2:10
    2:11
    2:12
    2:13
    2:14
    2:15
    2:16
    2:17
    2:18
    2:19
    2:20
    2:21
    2:22
    2:23
    2:24
    2:25
    3
    3A
    3A1
    3A2
    3B
    3C
    3C1
    3C2
    3D
    3:0
    3:1
    3:2
    3:3
    3:4
    3:5
    3:6
    3:7
    3:8
    3:9
    3:10
    3:11
    3:12
    3:13
    3:14
    3:15
    3:16
    3:17
    3:18
    3:19
    3:20
    3:21
    3:22
    3:23
    3:24
    3:25
    4
    4A
    4A1
    4A2
    4B
    4C
    4:0
    4:1
    4:2
    4:3
    4:4
    4:5
    4:6
    4:7
    4:8
    4:9
    4:10
    4:11
    4:12
    4:13
    4:14
    4:15
    4:16
    4:17
    4:18
    4:19
    4:20
    4:21
    4:22
    4:23
    4:24
    4:25
    88
    99
    blank]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-08" ref="67779">Edit created.</event>
                <event version="SE21-021-08" user="beverung" date="2021-07-29" ref="68696">Add code 1B3.</event>
                <event version="SE23-023-04" user="shearerw" date="2023-06-14" ref="69287">Consider Derived EOD Stage Group value 90 valid in some cases.</event>
                <event version="SE23-023-08" user="cooki" date="2023-10-10" ref="69317">Removed Schema ID version condition from logic.</event>
            </history>
        </rule>
        <rule id="Derived_EOD_2018_T" name="Derived EOD 2018 T (SEER)" tag="N3014" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedEod2018T == null || ((List)Context.Derived_EOD_2018_T_Table).contains(line.derivedEod2018T)]]></expression>
            <message>Derived EOD 2018 T is not valid.</message>
            <description><![CDATA[Must be a valid code for Derived EOD 2018 T and must be left-justified. T must
be uppercase and subcategory letters must be lowercase.
Components in () must be entered as shown.  May be blank.

Valid codes:

TX
T0
Ta
Tis
Tis(DCIS)
Tis(LAMN)
Tis(Paget)
T1
T1a
T1a1
T1a2
T1b
T1b1
T1b2
T1b3
T1c
T1c1
T1c2
T1c3
T1d
T1mi
T2
T2a
T2a1
T2a2
T2b
T2c
T2d
T3
T3a
T3b
T3c
T3d
T3e
T4
T4a
T4b
T4c
T4d
T4e
88
blank]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-08" ref="67779">Edit created.</event>
                <event version="SE21-021-08" user="beverung" date="2021-07-29" ref="68695">Add T1b3 as valid code.</event>
            </history>
        </rule>
        <rule id="Derived_SEER_Clin_Stg_Grp" name="Derived SEER Clin Stg Grp (SEER)" tag="N2117" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedSeerClinStgGrp == null || ((List)Context.Derived_Stage_Group_Table).contains(line.derivedSeerClinStgGrp)]]></expression>
            <message>Must be a valid Derived SEER Clin Stg Grp code or blank.</message>
            <description><![CDATA[Must be a valid code for Derived SEER Clin Stg Group and must be left-justified. Letters must be uppercase. May be blank.

The following codes are valid:
0, 0A, 0IS,
1, 1A, 1A1, 1A2, 1B, 1B1, 1B2, 1C, 1S,
2, 2A, 2A1, 2A2, 2B, 2C,
3, 3A, 3B, 3C, 3C1, 3C2,
4, 4A, 4A1, 4A2, 4B, 4C,
88, 99, OC,
blank]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-14" ref="67307">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Derived_SEER_Cmb_M" name="Derived SEER Combined M (SEER)" tag="N2122" java-path="lines.line" category="field">
            <expression><![CDATA[if (line.derivedSeerCombinedM == null)
     return true

return Functions.matches(line.derivedSeerCombinedM, /^[cp].+|88$/) && (((List)Context.TNM_Clin_M_Table).contains(line.derivedSeerCombinedM) || ((List)Context.TNM_Path_M_Table).contains(line.derivedSeerCombinedM))]]></expression>
            <message>Derived SEER Cmb M is not valid.</message>
            <description><![CDATA[Must be a valid code for Derived SEER Combined M[3620] and must be left-justified. Subcategory letters must be uppercase, "c" and "p" codes must be lowercase. May be blank.

The following codes are valid:
c0, c0I+,
c1, c1A, c1B, c1C, c1D, c1E,
p1, p1A, p1B, p1C, p1D, p1E,
88
Blank]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-14" ref="67312">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Derived_SEER_Cmb_M_Src" name="Derived SEER Cmb M Src (SEER)" tag="N2118" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedSeerCmbMSrc == null || Functions.matches(line.derivedSeerCmbMSrc, /^[1239]$/)]]></expression>
            <message>Derived SEER Cmb M Src is not valid.</message>
            <description><![CDATA[Must be a valid value for Derived SEER Cmb M Src [3626] or blank

Codes:
1 Clinical
2 Pathologic
3 Clinical and Pathologic information used
9 Unknown
Blank]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-14" ref="67308">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Derived_SEER_Cmb_N" name="Derived SEER Combined N (SEER)" tag="N2123" java-path="lines.line" category="field">
            <expression><![CDATA[if (line.derivedSeerCombinedN == null)
     return true

return Functions.matches(line.derivedSeerCombinedN, /^[cp].+|88$/) && (((List)Context.TNM_Clin_N_Table).contains(line.derivedSeerCombinedN) || ((List)Context.TNM_Path_N_Table).contains(line.derivedSeerCombinedN))]]></expression>
            <message>Derived SEER Cmb N is not valid.</message>
            <description><![CDATA[Must be a valid code for Derived SEER Combined N[3618] and must be left-justified. Subcategory letters must be uppercase, "c" and "p" code should be lowercase. May be blank.

The following codes are valid:
cX, c0, c0I-, c0I+, c0M-, c0M+,
c1MI, c0A, c0B, c1, c1A, c1B, c1C,
c2, c2A, c2B, c2C,
c3, c3A, c3B, c3C,
c4,
pX, p0, p0I-, p0I+, p0M-, p0M+,
p1MI, p0A, p0B, p1, p1A, p1B, p1C,
p2, p2A, p2B, p2C,
p3, p3A, p3B, p3C,
p4,
88
Blank]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-14" ref="67313">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Derived_SEER_Cmb_N_Src" name="Derived SEER Cmb N Src (SEER)" tag="N2119" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedSeerCmbNSrc == null || Functions.matches(line.derivedSeerCmbNSrc, /^[1239]$/)]]></expression>
            <message>Derived SEER Cmb N Src is not valid.</message>
            <description><![CDATA[Must be a valid value for Derived SEER Cmb N Src [3624] or blank

Codes:
1 Clinical
2 Pathologic
3 Clinical and Pathologic information used
9 Unknown
Blank]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-14" ref="67309">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Derived_SEER_Cmb_Stg_Grp" name="Derived SEER Cmb Stg Grp (SEER)" tag="N2120" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedSeerCmbStgGrp == null || ((List)Context.Derived_Stage_Group_Table).contains(line.derivedSeerCmbStgGrp)]]></expression>
            <message>Must be a valid Derived SEER Cmb Stg Grp code or blank.</message>
            <description><![CDATA[Must be a valid code for Derived SEER Cmb Stg Group[3614] and must be left-justified. Letters must be uppercase. May be blank.

The following codes are valid:
0, 0A, 0IS,
1, 1A, 1A1, 1A2, 1B, 1B1, 1B2, 1C, 1S,
2, 2A, 2A1, 2A2, 2B, 2C,
3, 3A, 3B, 3C, 3C1, 3C2,
4, 4A, 4A1, 4A2, 4B, 4C,
88, 99, OC,
blank]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-14" ref="67311">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Derived_SEER_Cmb_T" name="Derived SEER Combined T (SEER)" tag="N2124" java-path="lines.line" category="field">
            <expression><![CDATA[if (line.derivedSeerCombinedT == null)
     return true

return Functions.matches(line.derivedSeerCombinedT, /^[cp].+|88$/) && (((List)Context.TNM_Clin_T_Table).contains(line.derivedSeerCombinedT) || ((List)Context.TNM_Path_T_Table).contains(line.derivedSeerCombinedT))]]></expression>
            <message>Derived SEER Cmb T is not valid.</message>
            <description><![CDATA[Must be a valid code for Derived SEER Combined T[3616] and must be left-justified. Subcategory letters must be uppercase, "c" and "p" codes must be lowercase. May be blank.

The following codes are valid:
cX, c0,
c1MI, c1, c1A, c1A1, c1A2, c1B, c1B1, c1B2, c1C, c1D,
c2, c2A, c2A1, c2A2, c2B, c2C, c2D,
c3, c3A, c3B, c3C, c3D,
c4, c4A, c4B, c4C, c4D, c4E,
pX, p0, pA, pIS, pISU, pISD,
p1MI, p1, p1A, p1A1, p1A2, p1B, p1B1, p1B2, p1C, p1D,
p2, p2A, p2A1, p2A2, p2B, p2C, p2D,
p3, p3A, p3B, p3C, p3D,
p4, p4A, p4B, p4C, p4D, p4E,
88
Blank]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-14" ref="67314">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Derived_SEER_Cmb_T_Src" name="Derived SEER Cmb T Src (SEER)" tag="N2121" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedSeerCmbTSrc == null || Functions.matches(line.derivedSeerCmbTSrc, /^[1239]$/)]]></expression>
            <message>Derived SEER Cmb T Src is not valid.</message>
            <description><![CDATA[Must be a valid value for Derived SEER Cmb T Src [3622] or blank

Codes:
1 Clinical
2 Pathologic
3 Clinical and Pathologic information used
9 Unknown
Blank]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-13" ref="67310">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Derived_SEER_Path_Stg_Grp" name="Derived SEER Path Stg Grp (SEER)" tag="N2125" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedSeerPathStgGrp == null || ((List)Context.Derived_Stage_Group_Table).contains(line.derivedSeerPathStgGrp)]]></expression>
            <message>Must be a valid Derived SEER Path Stg Grp code or blank.</message>
            <description><![CDATA[Must be a valid code for Derived SEER Path Stg Grp[3605] and must be left-justified. Letters must be uppercase. May be blank.

The following codes are valid:
0, 0A, 0IS,
1, 1A, 1A1, 1A2, 1B, 1B1, 1B2, 1C, 1S,
2, 2A, 2A1, 2A2, 2B, 2C,
3, 3A, 3B, 3C, 3C1, 3C2,
4, 4A, 4A1, 4A2, 4B, 4C,
88, 99, OC,
blank]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-14" ref="67315">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Derived_SS1977" name="Derived SS1977 (CS)" tag="N0672" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedSs1977 == null || Functions.matches(line.derivedSs1977, /^[012345789\s]$/)]]></expression>
            <message>Derived SS1977 is not valid.</message>
            <description><![CDATA[Must be a valid one-digit Storage Code for Derived SS1977.  May be
blank.

The following Storage Codes are valid:
0-5,7-9.

This table shows the corresponding Display String for each Storage
Code:

Storage Code       Display String       Comments
0                  IS                   In situ
1                  L                    Localized
2                  RE                   Regional, direct extension
3                  RN                   Regional, lymph nodes only
4                  RE+RN                Regional, extension and nodes
5                  RNOS                 Regional, NOS
7                  D                    Distant
8                  NA                   Not applicable
9                  U                    Unknown/unstaged]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Derived_SS1977_Flag" name="Derived SS1977--Flag (CS)" tag="N0675" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedSs1977Flag == null || Functions.matches(line.derivedSs1977Flag, /^[12\s]$/)]]></expression>
            <message>Derived SS1977--Flag is not valid.</message>
            <description><![CDATA[Must be a valid value for Derived SS1977--Flag (1,2).  May be blank.

1 = SS1977 derived from Collaborative Staging manual and coding instructions, version 1.0
2 = SS1977 derived from EOD (prior to 2004)]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Derived_SS2000" name="Derived SS2000 (CS)" tag="N0673" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedSs2000 == null || Functions.matches(line.derivedSs2000, /^[012345789\s]$/)]]></expression>
            <message>Derived SS2000 is not valid.</message>
            <description><![CDATA[Must be a valid one-digit Storage Code for Derived SS2000.  May be
blank.

The following Storage Codes are valid:
0-5,7-9.

This table shows the corresponding Display String for each Storage
Code:

Storage Code       Display String       Comments
0                  IS                   In situ
1                  L                    Localized
2                  RE                   Regional, direct extension
3                  RN                   Regional, lymph nodes only
4                  RE+RN                Regional, extension and nodes
5                  RNOS                 Regional, NOS
7                  D                    Distant
8                  NA                   Not applicable
9                  U                    Unknown/unstaged]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Derived_SS2000_Flag" name="Derived SS2000--Flag (CS)" tag="N0676" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedSs2000Flag == null || Functions.matches(line.derivedSs2000Flag, /^[12\s]$/)]]></expression>
            <message>Derived SS2000--Flag is not valid.</message>
            <description><![CDATA[Must be a valid value for Derived SS2000--Flag (1,2).  May be blank.

1 = SS2000 derived from Collaborative Stage
2 = SS2000 derived from EOD (prior to 2004)]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Derived_Summary_Grade_2018" name="Derived Summary Grade (NAACCR)" tag="N7065" java-path="lines.line" category="field">
            <expression><![CDATA[
return line.derivedSummaryGrade2018 == null || Functions.matches(line.derivedSummaryGrade2018, /^[1234589ABCDEHLMS]$/)
]]></expression>
            <message>Derived Summary Grade is invalid</message>
            <description><![CDATA[Must be a valid code for Derived Summary Grade:

    1
    2
    3
    4
    5
    8
    9
    A
    B
    C
    D
    E
    H
    L
    M
    S
    blank
]]></description>
            <history>
                <event version="SE24-024-03" user="beverung" date="2024-03-12" ref="69438">Edit created.</event>
            </history>
        </rule>
        <rule id="Derived_Summary_Stage_2018" name="Derived Summary Stage 2018 (SEER)" tag="N2813" java-path="lines.line" category="field">
            <expression><![CDATA[return line.derivedSummaryStage2018 == null || Functions.matches(line.derivedSummaryStage2018, /^[0-47-9]$/)]]></expression>
            <message>Derived Summary Stage 2018 is not valid.</message>
            <description><![CDATA[This field is allowed to be blank because the item was not required before 2018.
Another edit (Derived Summary Stage 2018, Date of Diagnosis) verifies that this
item is blank if the year of Date of Diagnosis is less than 2018,and verifies
that this item is not blank if the year of diagnosis is 2018 and later.

Must be a valid Derived Summary Stage 2018 code (0-4, 7-9) or blank.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-04" ref="67779">Edit created.</event>
            </history>
        </rule>
        <rule id="Diagnostic_confirmation" name="Diagnostic Confirmation (SEER DXCONF)" tag="N0003" java-path="lines.line" category="field">
            <expression><![CDATA[return  line.diagnosticConfirmation != null && Functions.matches(line.diagnosticConfirmation, /^[123456789]$/)]]></expression>
            <message>Diagnostic confirmation is not valid.</message>
            <description><![CDATA[Must be a valid Diagnostic Confirmation code (1-9).

Microscopically confirmed
1  Positive histology
2  Positive exfoliative cytology, no positive histology
3  Positive histoloy PLUS
     Positive immunophenotyping AND/OR
     Positive genetic studies
4  Positive microscopic confirm, method not specified

Not microscopically confirmed
5  Positive laboratory test/marker study
6  Direct visualization without microscopic confirmation
7  Radiography and other imaging techniques without microscopic confirm
8  Clinical diagnosis only (other than 5, 6, or 7)
9  Unknown whether or not microscopically confirmed]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2009-12-08">Added code 3 (positive histology PLUS positive immunophenotyping AND/OR positive genetic studies).  Also changed some wording in the existing description.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="EOD--Extension" name="EOD--Extension (SEER)" tag="N0232" java-path="lines.line" category="field">
            <expression><![CDATA[return line.eodExtension == null || Functions.matches(line.eodExtension, /(^\d{2}$)|(^\s\s$)/)]]></expression>
            <message>EOD--extension is not valid.</message>
            <description><![CDATA[Valid codes for EOD--extension[790] are 00-99 or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="EOD--Extension_Prost_Path" name="EOD--Extension Prost Path (SEER)" tag="N0615" java-path="lines.line" category="field">
            <expression><![CDATA[return line.eodExtensionProstPath == null || Functions.matches(line.eodExtensionProstPath, /(^[0-9][0-9]$)|(^\s\s$)/)]]></expression>
            <message>EOD--extension prost path is not valid.</message>
            <description><![CDATA[Valid codes for EOD--extension prost path[800] are 00-99 or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="EOD--Lymph_Node_Involv" name="EOD--Lymph Node Involv (SEER)" tag="N0233" java-path="lines.line" category="field">
            <expression><![CDATA[return line.eodLymphNodeInvolv == null || Functions.matches(line.eodLymphNodeInvolv, /^[0-9]$/)]]></expression>
            <message>EOD--lymph node involv is not valid.</message>
            <description><![CDATA[Valid codes for EOD--lymph node involv[810] are 0-9 or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="EOD--Old_2_Digit" name="EOD--Old 2 digit (SEER)" tag="N0617" java-path="lines.line" category="field">
            <expression><![CDATA[return line.eodOld2Digit == null || Functions.matches(line.eodOld2Digit, /^(\d|-|&|\s){2}$/)]]></expression>
            <message>EOD--old 2 digit is not valid.</message>
            <description><![CDATA[For EOD--old 2 digit[850], each column can be any digit 0-9 or & or - or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="EOD--Old_4_Digit_Extent" name="EOD-4 Extension (SEER)" tag="S001" java-path="lines.line" category="field">
            <expression><![CDATA[String eodOld4DigitExtent = null
if (line.eodOld4Digit != null && line.eodOld4Digit.length() > 2)
    eodOld4DigitExtent = line.eodOld4Digit.substring(2, 3)
return eodOld4DigitExtent == null || Functions.matches(eodOld4DigitExtent, /^[0-9\s]$/)]]></expression>
            <message>EOD--old 4 digit, extent is not valid.</message>
            <description><![CDATA[Valid codes for EOD--old 4 digit, extent[860] are 0-9 or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-07-27" ref="68443">Replaced EOD--Old 4 Digit Extent sub-field with EOD--Old 4 Digit parent field.</event>
            </history>
        </rule>
        <rule id="EOD--Old_4_Digit_Nodes" name="EOD-4 Lymph Nodes (SEER)" tag="S002" java-path="lines.line" category="field">
            <expression><![CDATA[String eodOld4DigitNodes = null
if (line.eodOld4Digit != null && line.eodOld4Digit.length() > 3)
    eodOld4DigitNodes = line.eodOld4Digit.substring(3, 4)
return eodOld4DigitNodes == null || Functions.matches(eodOld4DigitNodes, /^[0-9\s]$/)]]></expression>
            <message>EOD--old 4 digit, nodes is not valid.</message>
            <description><![CDATA[Valid codes for EOD--old 4 digit nodes[860] are 0-9 or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-07-27" ref="68443">Replaced EOD--Old 4 Digit Nodes sub-field with EOD--Old 4 Digit parent field.</event>
            </history>
        </rule>
        <rule id="EOD--Old_4_Digit_Size" name="EOD-4 Tumor Size (SEER)" tag="S003" java-path="lines.line" category="field">
            <expression><![CDATA[String eodOld4DigitSize = null
if (line.eodOld4Digit != null && line.eodOld4Digit.length() > 1)
    eodOld4DigitSize = line.eodOld4Digit.substring(0, 2)
if (line.eodOld4Digit?.length() == 1)
    eodOld4DigitSize = line.eodOld4Digit
return eodOld4DigitSize == null || Functions.matches(eodOld4DigitSize, /(^[0-9][0-9]$)|(^\s\s$)/)]]></expression>
            <message>EOD--old 4 digit, size is not valid.</message>
            <description><![CDATA[Valid codes for EOD--old 4 digit, size[860] are 00-99 or blanks.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-07-27" ref="68443">Replaced EOD--Old 4 Digit Size sub-field with EOD--Old 4 Digit parent field.</event>
            </history>
        </rule>
        <rule id="EOD--Old_13_Digit" name="EOD--Old 13 digit (SEER)" tag="N0616" java-path="lines.line" category="field">
            <expression><![CDATA[return line.eodOld13Digit == null || Functions.matches(line.eodOld13Digit, /^(\d|-|&|\s){13}$/)]]></expression>
            <message>EOD--old 13 digit is not valid.</message>
            <description><![CDATA[For EOD--old 13 digit[840], each column can be any digit 0-9 or & or - or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="EOD--Tumor_Size" name="EOD--Tumor Size (COC)" tag="N0370" java-path="lines.line" category="field">
            <expression><![CDATA[return line.eodTumorSize == null || Functions.matches(line.eodTumorSize, /(^[0-9]{3}$)|(^\s\s\s$)/)]]></expression>
            <message>EOD--tumor size is not valid.</message>
            <description><![CDATA[Valid codes for EOD--tumor size[780] are 000-999 or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="EOD_Mets" name="EOD Mets (SEER)" tag="N2995" java-path="lines.line" category="field">
            <expression><![CDATA[return line.eodMets == null || Functions.matches(line.eodMets, /^0[05]|[1-4]5|[1-7]0|88|99$/)]]></expression>
            <message>EOD Mets is not valid.</message>
            <description><![CDATA[Must be a valid code for EOD Mets. May be blank.

Valid codes:

    00
    05
    10
    15
    20
    25
    30
    35
    40
    45
    50
    60
    70
    88
    99
    blank]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-04" ref="67779">Edit created.</event>
                <event version="SE24-024-06" user="cooki" date="2024-06-26" ref="69471">Added codes 15, 25, 35, 45.</event>
            </history>
        </rule>
        <rule id="EOD_Primary_Tumor" name="EOD Primary Tumor (SEER)" tag="N2993" java-path="lines.line" category="field">
            <expression><![CDATA[return line.eodPrimaryTumor == null || ((List)Context.EOD_Primary_Tumor_Table).contains(line.eodPrimaryTumor)]]></expression>
            <message>EOD Primary Tumor is not valid.</message>
            <description><![CDATA[Must be a valid code for EOD Primary Tumor. May be blank.

Valid codes:

    000
    050
    070
    100
    110
    120
    125
    130
    150
    170
    175
    200
    210
    220
    225
    250
    275
    300
    325
    350
    370
    375
    400
    425
    450
    475
    500
    525
    550
    575
    600
    650
    675
    700
    720
    750
    800
    888
    980
    999
    blank]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-04" ref="67779">Edit created.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-16" ref="68174">Added &apos;675&apos; as a valid value.</event>
                <event version="SE23-023-02" user="shearerw" date="2023-04-14" ref="69244">Added &apos;575&apos; as a valid value.</event>
            </history>
        </rule>
        <rule id="EOD_Regional_Nodes" name="EOD Regional Nodes (SEER)" tag="N2994" java-path="lines.line" category="field">
            <expression><![CDATA[return line.eodRegionalNodes == null || Functions.matches(line.eodRegionalNodes, /^0[0357]0|[1-7][05]0|800|888|987|999$/)]]></expression>
            <message>EOD Regional Nodes is not valid.</message>
            <description><![CDATA[Must be a valid code for EOD Regional Nodes. May be blank.

Valid codes:

    000
    030
    050
    070
    100
    150
    200
    250
    300
    350
    400
    450
    500
    550
    600
    650
    700
    750
    800
    888
    987
    999
    blank]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-04" ref="67779">Edit created.</event>
            </history>
        </rule>
        <rule id="Grade" name="Grade (COC)" tag="N0373" java-path="lines.line" category="field">
            <expression><![CDATA[return line.grade == null || Functions.matches(line.grade, /^[1-9]$/)]]></expression>
            <message>Grade is not valid.</message>
            <description><![CDATA[Must be a valid code for Grade (1-9) or blank. This field is allowed to be
blank because it is not required for cases diagnosed 2018 and later.

Another edit, Grade, Date of Diagnosis (COC) checks that Grade is entered for
cases diagnosed before 2018 and blank for cases diagnosed 2018 and later.]]></description>
            <history>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of morphology code from ICD-O-1 to ICD-O-2.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67738">Edit modified to allow blank.</event>
            </history>
        </rule>
        <rule id="Grade_Clinical" name="Grade Clinical (NAACCR)" tag="N2610" java-path="lines.line" category="field">
            <expression><![CDATA[return  line.gradeClinical == null || Functions.matches(line.gradeClinical, /^[1-589A-EHLMS]$/)]]></expression>
            <message>Grade Clinical not valid.</message>
            <description><![CDATA[Must be a valid code for Grade Clinical:

    1
    2
    3
    4
    5
    8
    9
    A
    B
    C
    D
    E
    H
    L
    M
    S
   blank]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-04" ref="67779">Edit created.</event>
            </history>
        </rule>
        <rule id="Grade_Pathological" name="Grade Pathological (NAACCR)" tag="N2751" java-path="lines.line" category="field">
            <expression><![CDATA[return  line.gradePathological == null || Functions.matches(line.gradePathological, /^[1-589A-EHLMS]$/)]]></expression>
            <message>Grade Pathological not valid.</message>
            <description><![CDATA[Must be a valid code for Grade Pathological:

    1
    2
    3
    4
    5
    8
    9
    A
    B
    C
    D
    E
    H
    L
    M
    S
   blank]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-04" ref="67779">Edit created.</event>
            </history>
        </rule>
        <rule id="Grade_Post_Therapy" name="Grade Post Therapy Path (yp) (NAACCR)" tag="N2801" java-path="lines.line" category="field">
            <expression><![CDATA[return  line.gradePostTherapy == null || Functions.matches(line.gradePostTherapy, /^[1-589A-EHLMS]$/)]]></expression>
            <message>Grade Post Therapy not valid.</message>
            <description><![CDATA[Must be a valid code for Grade Post Therapy:

    1
    2
    3
    4
    5
    8
    9
    A
    B
    C
    D
    E
    H
    L
    M
    S
   blank]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-04" ref="67779">Edit created.</event>
                <event version="SE21-021-03" user="beverung" date="2021-02-26" ref="68576">Update edit name.</event>
            </history>
        </rule>
        <rule id="Grade_Post_Therapy_Clin" name="Grade Post Therapy Clin (yc) (NAACCR)" tag="N6332" java-path="lines.line" category="field">
            <expression><![CDATA[return line.gradePostTherapyClin == null || Functions.matches(line.gradePostTherapyClin, /^[1-589A-EHLMS]$/)]]></expression>
            <message>Grade Post Therapy Clin (yc) is invalid</message>
            <description><![CDATA[Must be a valid code for Grade Post Therapy Clin (yc):

    1
    2
    3
    4
    5
    8
    9
    A
    B
    C
    D
    E
    H
    L
    M
    S
    blank]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-29" ref="68625">Edit created.</event>
            </history>
        </rule>
        <rule id="Histologic_Type_ICD-O-3" name="Histologic Type ICDO3 (SEER)" tag="N0795" java-path="lines.line" category="field">
            <expression><![CDATA[return line.histologicTypeIcdO3 == null || ((List)Context.Histologic_Type_ICD_O_3_Table).contains(Functions.asInt(line.histologicTypeIcdO3))]]></expression>
            <message>Histologic Type ICD-O-3 is not valid.</message>
            <description><![CDATA[Must be one of the histology codes defined by the "International Classification of Diseases for Oncology, Third Edition."]]></description>
            <history>
                <event version="SE11-001-19" user="greend" date="2005-01-25">Blanks allowed prior to submission.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE16-016-11" user="kirbyk" date="2018-02-28" ref="67688">Added several valid codes.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-04" user="beverung" date="2020-05-13" ref="68343">Added several histologies for 2021.</event>
                <event version="SE22-022-06" user="secristc" date="2022-05-25" ref="69003">Added several histologies for 2022/2023.</event>
                <event version="SE22-022-11" user="secristc" date="2022-09-15" ref="69036">Added 9563 as a valid histology.</event>
                <event version="SE23-023-05" user="cooki" date="2023-07-05" ref="69293">Updated table of valid histologies.</event>
            </history>
        </rule>
        <rule id="Histologic_Type_ICD-O-3_Submission" name="SEER Submission Edit 01 (SEER)" tag="N0810" java-path="lines.line" category="submission">
            <expression><![CDATA[return  line.histologicTypeIcdO3 != null]]></expression>
            <message>Histologic Type ICD-O-3 is required.</message>
            <history>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="ICD_Revision_Number" name="ICD Revision Number (SEER ICDCODE)" tag="N0051" java-path="lines.line" category="field">
            <expression><![CDATA[return line.icdRevisionNumber == null || Functions.matches(line.icdRevisionNumber, /^[01789]$/)]]></expression>
            <message>ICD revision number is not valid.</message>
            <description><![CDATA[Valid codes for ICD revision number[1920] are 0,1,7-9 and blank.

0 = Patient is alive at last follow-up
1 = ICD-10
7 = Seventh ICD revision
8 = Eighth ICD revision
9 = Ninth ICD revision]]></description>
            <history>
                <event version="SE11-001-04" user="greend" date="1988-05-25">ICD-7 no longer valid.</event>
                <event version="SE11-001-11" user="greend" date="1995-10-01">Code &apos;7&apos; is valid.</event>
                <event version="SE11-001-19" user="greend" date="2005-01-25">Blanks allowed prior to submission.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-06-14" ref="66886">Fixed issue that didn&apos;t allow blanks.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="ICD_revision_number_Submission" name="SEER Submission Edit 01 (SEER)" tag="N0810" java-path="lines.line" category="submission">
            <expression><![CDATA[return  line.icdRevisionNumber != null]]></expression>
            <message>ICD revision number is required.</message>
        </rule>
        <rule id="IF01" name="EOD--Old 13 digit, Primary Site, Hist (SEER IF01)" tag="N0318" java-path="lines.line" category="inter-field" depends="County_at_DX_Analysis,Month_of_Diagnosis,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '1975' || line.dateOfDiagnosisYear > '1982'
       || line.registryId == '0000001544' || line.typeOfReportingSource == '7')
    return true

if (((line.dateOfDiagnosisYear == '1975' && ((line.registryId == '0000001501' && (Functions.asInt(line.countyAtDxAnalysis) >= 75) && Functions.asInt(line.countyAtDxAnalysis) <= 81)
       || line.registryId != '0000001501')) || line.dateOfDiagnosisYear > '1975') && Functions.matches(line.primarySite, /^C(18[02-7]|199|209|50\d)$/))
    return line.codingSystemForEod == '2'

if ((line.dateOfDiagnosisYear > '1977' || (line.dateOfDiagnosisYear == '1977' && (line.dateOfDiagnosisMonth != null && Functions.asInt(line.dateOfDiagnosisMonth) >= 5))) && ((Functions.matches(line.primarySite, /^C(024|099|111|142|379|422|77\d)$/) && Functions.between(line.histologicTypeIcdO3, '9590', '9698'))
       || (Functions.matches(line.primarySite, /^C(44[0-7]|51\d|60[0189])$/) && Functions.between(line.histologicTypeIcdO3, '8720', '8790'))))
    return line.codingSystemForEod == '2'

if ((line.dateOfDiagnosisYear > '1977' || (line.dateOfDiagnosisYear == '1977' && (line.dateOfDiagnosisMonth != null && Functions.asInt(line.dateOfDiagnosisMonth) >= 11))) && Functions.matches(line.primarySite, /^C(16[1-9]|34[1-9]|53\d|54[0-8]|619|67[0-689])$/))
   return line.codingSystemForEod == '2'

return true]]></expression>
            <message>Coding System for EOD, Year of Diagnosis, and Primary Site conflict</message>
            <description><![CDATA[This edit is skipped under the following conditions:
    1.  Year of Date of Diagnosis is blank
    2.  Registry ID is equal to 0000001544 (New Jersey)

The EOD--Old 13 digit is not required for any case that the:
1.  Date of Diagnosis is before 1975;
2.  Date of Diagnosis is after 1982; or
3.  Type of Reporting Source specifies a death certificate only case (7).

The EOD--Old 13 digit is required for all cases reported from San Mateo (081) and San Francisco (075) counties of the San Francisco/Oakland SMSA registry (0000001501) or from any other registry (0000001502, 0000001520-0000001523, 0000001525-0000001527, 0000001533, 0000001537) diagnosed in 1975 with Primary Site of breast (C500-C509); colon (C180, C182-C187); or rectum and rectosigmoid (C199,C209).

The EOD--Old 13 digit is required for all cases diagnosed in 1976-82 with a Primary Site of breast (C500-C509); colon (C180, C182-C187); or rectum and rectosigmoid (C199, C209).

The EOD--Old 13 digit is required for all cases diagnosed on or after May 1, 1977, with a diagnosis of lymphoma of lymphoid tissue (sites C770-C779, C024, C099, C111, C142, C379, C422 with histologies 9590-9698) or melanoma of skin (sites C440-C447, C510-C519, C600-C601, C608-C609 with histologies 8720-8790).

The EOD--Old 13 digit is required for all cases diagnosed on or after November 1, 1977, with a Primary Site of stomach (C161-C169), lung (C341-C349), cervix uteri (C530-C539), corpus uteri (C540-C548), prostate (C619), or bladder (C670-C676, C678-C679).

The Coding System for Extent of Disease is used to determine if the EOD--Old 13 digit has been submitted. That is, the field Coding System for EOD must = 2.]]></description>
            <history>
                <event version="SE11-001-01" user="greend" date="1985-06-15">Added code to bypass any case from New Jersey, registry 34 (New Jersey submits no SEER extended extent of disease codes for any year).</event>
                <event version="SE11-001-01" user="greend" date="1985-08-20">Diagnosis date is now a six digit field.</event>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Coversion of topography and morphology codes from ICD-O-1 to ICD-O-2.  This edit no longer refers to the New Jersey registry since NJ no longer participates in the SEER program.</event>
                <event version="SE11-001-17" user="greend" date="2003-09-22">Edit modified to skip cases from New Jersey.</event>
                <event version="SE11-001-19" user="greend" date="2005-06-20">Edit skipped if year of diagnosis is blank or 9-filled.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE23-023-06" user="cooki" date="2023-07-31" ref="69294">Updated countyAtDx to countyAtDxAnalysis.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69326">Removed some edit dependencies.</event>
                <event version="SE24-024-06" user="cooki" date="2024-07-18" ref="69509">Deleted deprecated dependency.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Switch from ICD-O-2 to ICD-O-3.</event>
            </history>
        </rule>
        <rule id="IF02" name="Type of Report Srce (AO), Date of Dx (SEER IF02)" tag="N0017" java-path="lines.line" category="inter-field" depends="DateDiagnosisEdit,DateFollowUpEdit">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfLastContactYear == null)
    return true

if (line.typeOfReportingSource == '6')
    return (line.dateOfDiagnosisYear == line.dateOfLastContactYear && line.dateOfDiagnosisMonth == line.dateOfLastContactMonth &&
        line.dateOfDiagnosisDay == line.dateOfLastContactDay)

return true]]></expression>
            <message>Type of Report Srce, Date of Diagnosis, Date of Last Contact conflict</message>
            <description><![CDATA[This edit is bypassed if any of the following inter-field edit flags have been triggered:
   1) Date of Diagnosis is not valid or blank.
   2) Date of Last Contact is not valid or blank.

The edit is skipped if Year of Diagnosis[390] or Year of Last Contact[1750] is blank.

If the Type of Reporting Source[500] specifies an autopsy only case (6), the Date of Last Contact[1750] must equal the Date of Diagnosis[390].]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2008-01-21">Edit now uses Day of Diagnosis and Day of Last Contact.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-06">Edit now skipped if year of diagnosis or year of last contact is blank.</event>
                <event version="SE12-003-03" user="murphyr" date="2011-02-10">Updated documentation.</event>
                <event version="SE12-005-04" user="murphyr" date="2011-10-06" ref="66505">Removed &apos;Date of Last Contact[1750] must equal the Date of Diagnosis[390]&apos; check for death certificate only cases.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF04_3" name="Type of Rep Srce(DC),Seq Num--Cent,ICDO3 (SEER IF04)" tag="N0457" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3">
            <expression><![CDATA[if (line.overRideReportSource != '1' && line.histologicTypeIcdO3 != null) {
    if (line.typeOfReportingSource == '7'  && Functions.between(line.histologicTypeIcdO3, '8000', '9589')
            && !(line.sequenceNumberCentral == '00' || line.sequenceNumberCentral == '60'))
        return false
}

return true]]></expression>
            <message>Type of Report Srce and Seq Num--Central conflict (ICD-O-3)</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1) Histologic Type ICD-O-3[522] is empty
  2) Over-ride Report Source[2050] = 1 (review complete).

If Type of Reporting Source[500] = 7 (Death certificate only) and Histologic Type ICD-O-3[522] < 9590 (not a lymphoma, leukemia, immunoproliferative or myeloproliferative disease), then Sequence Number--central[380] must = 00 or 60 (one primary only).]]></description>
            <history>
                <event version="SE11-001-20" user="greend" date="2006-10-05">Edit modified to allow sequence number 60 as well as 00 for DCO cases.  Edit logic changed in 7/05 but documentation was not updated.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-16" ref="69326">Removed several dependencies.</event>
            </history>
        </rule>
        <rule id="IF05" name="Type of Report Srce(DC/AO), Diag Conf (SEER IF05)" tag="N0018" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.typeOfReportingSource == '6')
    return line.diagnosticConfirmation ==~/^[16]$/

if (line.typeOfReportingSource == '7')
    return line.diagnosticConfirmation == '9'

return true]]></expression>
            <message>Type of Report Srce and Diagnostic Confirmation conflict</message>
            <description><![CDATA[1.     If Type of Reporting Source[500] = 6 (autopsy only), then
       Diagnostic Confirmation[490] must  = 1 (positive histology) or
       6 (direct visualization without microscopic confirmation).

2.     If Type of Reporting Source[500]  = 7 (death certificate only),
       then Diagnostic Confirmation[490] must = 9 (unknown, whether or
       not microscopically confirmed).]]></description>
            <history>
                <event version="SE11-001-01" user="greend" date="1985-08-20">For autopsy cases, diagnostic confirmation may be 1 or 6.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF08" name="Type of Report Srce(DC/AO), Vital Stat (SEER IF08)" tag="N0307" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.typeOfReportingSource ==~/^[67]$/)
   return line.vitalStatus == '0' || line.vitalStatus == '4'
return true]]></expression>
            <message>Type of Report Srce and Vital Status conflict</message>
            <description><![CDATA[If Type of Reporting Source[500] = 6 (autopsy only) or 7 (death certificate only case, then Vital Status[1760] must  = 0 or 4 (dead).]]></description>
            <history>
                <event version="SE11-001-11" user="greend" date="1995-01-10">Program modified to allow zero as a valid code for dead.  Zero was added to be consistent with NAACCR coding, however zero will still be flagged as an error in the Vital Status item edit.</event>
                <event version="SE18-017-01" user="schadega" date="2018-03-15" ref="67716">Removed 4 as a valid code for dead.</event>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-21" ref="67924">Re-added 4 as a valid code for &apos;dead&apos;.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF09" name="Type of Report Srce(DC/AO), COD (SEER IF09)" tag="N0094" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if ((line.typeOfReportingSource ==~/^[67]$/ && line.causeOfDeath == '0000') ||
    (line.typeOfReportingSource == '7' && line.causeOfDeath == '7777'))
    return false
return true]]></expression>
            <message>Type of Report Srce and Cause of Death conflict</message>
            <description><![CDATA[If Type of Reporting Source[500] = 6(autopsy only) or 7(Death certificate only), then Cause of Death[1910] must not = 0000 (alive).

If Type of Reporting Source[500] = 7 (death certificate only cases, then  Cause of Death[1910] must not = 7777 (death certificate not available).]]></description>
            <history>
                <event version="SE11-001-01" user="greend" date="1985-07-29">Added an edit:  if the reporting source is a death certificate, then the cause of death cannot be &apos;7777&apos;.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF11" name="Type of Report Srce(DC), EOD Coding Sys (SEER IF11)" tag="N0306" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear != null && line.dateOfDiagnosisYear < '1983' &&
    line.registryId != '0000001544' && line.typeOfReportingSource == '7')
    return line.codingSystemForEod == '0'
return true]]></expression>
            <message>Type of Report Srce and Coding System for EOD conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1) Registry ID = 0000001544 (New Jersey)
  2) Year of Diagnosis[390] is blank

For Year of Diagnosis[390] < 1983, if Type of Reporting Source[500] indicates a death certificate only case (7), the Coding System for EOD[870] must be '0' (SEER Nonspecific).]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-09-22">Edit modified to skip cases from New Jersey.</event>
                <event version="SE11-001-19" user="greend" date="2005-06-20">Edit skipped if year of diagnosis is blank.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF12" name="Date of Last Contact, Cause of Death (SEER IF12)" tag="N0312" java-path="lines.line" category="inter-field" depends="Year_of_Last_Contact">
            <expression><![CDATA[if (line.icdRevisionNumber == '9' && (line.vitalStatus == '0' || line.vitalStatus == '4') && line.causeOfDeath >= '0420' && line.causeOfDeath <= '0449')
    return (line.dateOfLastContactYear == null || line.dateOfLastContactYear > '1986')

    if (line.icdRevisionNumber == '1' && line.vitalStatus == '0' && ['U070', 'U071', 'U072'].contains(line.causeOfDeath))
        return (line.dateOfLastContactYear == null || line.dateOfLastContactYear > '2018')
return true]]></expression>
            <message>Date of Last Contact and Cause of Death conflict</message>
            <description><![CDATA[The ICD-9 Cause of Death codes for AIDS (0420-0449) cannot be used prior to 1987.

If ICD Revision Number[1920] is '9' (Ninth revision), Vital Status[1760] is dead (0 or 4), and Cause of Death[1910] is 0420-0449 (AIDS related causes), then Year of Last Contact[1750] can not be less than 1987, but it can be blank.

The ICD-10 Cause of Death codes for vaping related disorder (U070) and COVID 19 (U071, U072) cannot be used prior to 2019.

If ICD Revision Number[1920] is '1' (Tenth revision), Vital Status[1760] is dead (0), and Cause of Death[1910] is U070 (vaping related disorder), U071 (COVID-19, virus identified), or U072 (COVID-19, virus not identified) then Year of Last Contact[1750] can not be less than 2019, but it can be blank.]]></description>
            <history>
                <event version="SE18-017-01" user="schadega" date="2018-03-15" ref="67717">Updated vital status death code from 4 to 0</event>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-21" ref="67924">Re-added 4 as a valid code for &apos;dead&apos;.</event>
                <event version="SE18-020-04" user="beverung" date="2020-05-27" ref="68344">Updated to verify Year of Last Contact is after 2018 when Cause of Death is U070, U071, or U072.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF13" name="Age, Birth Date, Date of Diagnosis (NAACCR IF13)" tag="N0025" java-path="lines.line" category="inter-field" depends="Age_at_Diagnosis,DateBirthEdit,DateDiagnosisEdit">
            <expression><![CDATA[Integer age = Functions.asInt(line.ageAtDiagnosis)
Integer monthBirth = Functions.asInt(line.dateOfBirthMonth)
Integer yearBirth = Functions.asInt(line.dateOfBirthYear)
Integer monthDx = Functions.asInt(line.dateOfDiagnosisMonth)
Integer yearDx = Functions.asInt(line.dateOfDiagnosisYear)

if (age == 999)
    return (line.dateOfDiagnosisYear == null || line.dateOfBirthYear == null)
if (age == 0 && (line.overRideAgeSiteMorph == '2' || line.overRideAgeSiteMorph == '3'))
   return true
if (line.dateOfDiagnosisYear == null || line.dateOfBirthYear == null)
    return age == 999
if (line.dateOfDiagnosisMonth == null || line.dateOfBirthMonth == null)
   return ((yearDx - yearBirth) == age || ((yearDx - yearBirth) - 1) == age)
if ((((((yearDx * 12) + monthDx) - ((yearBirth * 12) + monthBirth))) / 12).intValue() < 0)
   return false
if (monthDx == monthBirth &&
     (line.dateOfDiagnosisDay == null || line.dateOfBirthDay == null))
   return ((((((((yearDx * 12) + monthDx) - ((yearBirth * 12) + monthBirth))) / 12).intValue() - 1) == age) ||
      ((((((yearDx * 12) + monthDx) - ((yearBirth * 12) + monthBirth))) / 12).intValue() == age))
if (monthDx == monthBirth && line.dateOfDiagnosisDay < line.dateOfBirthDay)
   return ((((((yearDx * 12) + monthDx) - ((yearBirth * 12) + monthBirth))) / 12).intValue() - 1) == age

return (((((yearDx * 12) + monthDx) - ((yearBirth * 12) + monthBirth))) / 12).intValue() == age]]></expression>
            <message>Age, Birth Date and Date of Diagnosis conflict</message>
            <description><![CDATA[The purpose of this edit is to determine whether there is a conflict among Birth Date[240], Date of Diagnosis[390], and Age at diagnosis[230].

This edit is bypassed if the following inter-field edit flags have been triggered:
   1.  Year of Diagnosis[390] is not valid
   2.  Year of Birth[240] is not valid

If the Age at Diagnosis is 000 and the Over-ride Age/Site/Morph code is 2 or 3, no further checking is done.  Over-ride Age/Site/Morph may be set to 2 or 3 to indicate a case has been diagnosed in utero.  Over-ride Age/Site/Morph code '2' means "Reviewed:  Case was diagnosed in utero".  '3' means "Reviewed:  Conditions 1 and 2 both apply".

If the Age at Diagnosis[230] is coded as 999, then the Year of Birth[240] must be coded as blank and the Birth Date Flag must equal 12.

If either month of birth or month of diagnosis is blank, then a working age is computed as year of diagnosis - year of birth.  Otherwise the working age is computed as the actual age:
     ((year of diagnosis * 12 + month of diagnosis) - (year of birth * 12 + month of birth))/12

If the month of diagnosis or month of birth is blank, or if the months of diagnosis and birth are known and equal and the day of diagnosis or day of birth is blank, then Age at Diagnosis must equal the working age or the working age - 1.

If the month of diagnosis and birth are known and equal, and the day of diagnosis is earlier than the day of birth, then 1 is subtracted from the working age, and Age at Diagnosis must equal the new working age.

For all other cases, Age at Diagnosis must equal the working age.]]></description>
            <history>
                <event version="SE11-001-01" user="greend" date="1985-11-29">The dates of birth and diagnosis now include month and year (4 digit, includes century); age at diagnosis is now 3 digits and specifies actual age.</event>
                <event version="SE11-001-02" user="greend" date="1986-06-18">The field which computes age from date of birth and date of diagnosis was changed in order to retain its sign.</event>
                <event version="SE11-001-04" user="greend" date="1988-05-25">The computation of age was corrected when unknown months are present.  The testing of the computed age was modified so that computed age may never be greater than the input age.</event>
                <event version="SE11-001-22" user="greend" date="2008-01-10">Edit is skipped if Year of Birth [240] is blank.</event>
                <event version="SE11-001-22" user="greend" date="2008-01-21">This edit now uses Day of birth and Day of Diagnosis.</event>
                <event version="SE11-001-23" user="greend" date="2009-04-03">If the age at diagnosis is 000 and the Over-Ride Age/Site/Morph code is 2 or 3, no further checking is done.  Over-ride Age/Site/Morph may be set to 2 or 3 to indicate a case has been diagnosed in utero.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-17">Added Birth Date Flag to edit.  If Age of Diagnosis is 999 then Birth Date Flag must equal 12.  9-filled dates no longer checked.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-06">Edit no longer skipped if year of diagnosis or year of birth are blank.  If year of diagnosis or year of birth are blank then age must be 999.</event>
                <event version="SE12-003-03" user="murphyr" date="2011-02-10">Updated documentation.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-25" ref="67053">Fixed edit to not fail if birth date is less than 12 months after diagnosis date.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-16" ref="69326">Removed several dependencies.</event>
            </history>
        </rule>
        <rule id="IF14" name="Marital Status at DX, Age at Diagnosis (SEER IF14)" tag="N0220" java-path="lines.line" category="inter-field" depends="Age_at_Diagnosis,Year_of_Diagnosis">
            <expression><![CDATA[if (line.registryId == '0000001542' &&
    (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2000') &&
    line.maritalStatusAtDx == null)
    return true

if (line.registryId == '0000001565' && (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023') && line.maritalStatusAtDx == null)
    return true
if (line.registryId == '0000001566' && (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2022') && line.maritalStatusAtDx == null)
    return true

if (Functions.asInt(line.ageAtDiagnosis) < 15)
   return (line.maritalStatusAtDx == '1')

return true]]></expression>
            <message>Marital Status at DX and Age at Diagnosis conflict</message>
            <description><![CDATA[If Registry ID = 0000001542 (Kentucky) and Year of Diagnosis[390] < 2000 or blank and Marital Status at DX[150] is blank, no further editing is performed.
If Registry ID = 0000001565 (Illinois) and Year of Diagnosis[390] < 2023 or blank and Marital Status at DX[150] is blank, no further editing is performed.
If Registry ID = 0000001566 (Texas) and Year of Diagnosis[390] < 2022 or blank and Marital Status at DX[150] is blank, no further editing is performed.

If Age at Diagnosis[230] < 15, Marital Status at DX[150] must = 1 (single, never married).]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-09-22">Edit modified to skip cases from Kentucky diagnosed before 2000 where marital status is blank.</event>
                <event version="SE12-002-01" user="greend" date="2009-12-17">Edit not longer skips for 9-filled year of diagnosis.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-04" ref="68701">Edit skipped for IL and TX for DX Year &lt; 2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-22" ref="68961">Edit skipped for IL for DX Year &lt; 2023, TX for DX Year &lt; 2022</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF15_3" name="Age, Primary Site, Morphology ICDO3 (SEER IF15)" tag="N0449" java-path="lines.line" category="inter-field" depends="Age_at_Diagnosis,Behavior_Code_ICD-O-3,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[Integer age = Functions.asInt(line.ageAtDiagnosis)

if (line.overRideAgeSiteMorph == '1' || line.overRideAgeSiteMorph == '3' || line.histologicTypeIcdO3 == null || line.dateOfDiagnosisYear >= '2001'
|| line.dateOfDiagnosisYear == null)
    return true
if (age < 20 && (Functions.matches(line.primarySite, /^C(15\d|17\d|199|209|21[0-8]|239|24\d|25\d|384|50\d|54\d|559)$/)
        || (Functions.matches(line.primarySite, /^C18\d$/) && !Functions.between(line.histologicTypeIcdO3,'8240','8245'))
        || (Functions.matches(line.primarySite, /^C(339|34\d)$/) && !Functions.between(line.histologicTypeIcdO3,'8240','8245'))
        || (Functions.matches(line.primarySite, /^C53\d$/) && line.behaviorCodeIcdO3 == '3')))
    return false
if (age < 15 && line.behaviorCodeIcdO3 == '2' && Functions.matches(line.primarySite, /^C53\d$/))
    return false
if ((age < 15 || age > 45) && line.primarySite == 'C589' && line.histologicTypeIcdO3 == '9100')
    return false
if (age < 30 && (line.primarySite == 'C609' || ['9732','9823','9863','9875','9876','9945'].contains(line.histologicTypeIcdO3)))
    return false
if (age < 40 && line.primarySite == 'C619' && line.histologicTypeIcdO3 == '8140')
    return false
if (age > 5 && Functions.matches(line.primarySite, /^C69\d$/) && Functions.between(line.histologicTypeIcdO3, '9510', '9514'))
    return false
if (age > 14 && (line.histologicTypeIcdO3 == '8960' || line.histologicTypeIcdO3 == '9946'))
    return false
return true]]></expression>
            <message>Age, Primary Site and Morphology ICD-O-3 conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1)  Histologic Type ICD-O-3[522] is blank
  2)  Over-ride Age/Site/Morph[1990] contains a '1' (review completed) or
       '3' (Reviewed: Conditions 1 and 2 above both apply)
  3)  Diagnosis year >= 2001
  4)  Diagnosis year is blank

For each specified age group in the following list, the Primary Site/Morphology combinations require review.

Age at Diagnosis < 015
  Cervix uteri C530-C539        | Any histology with in situ behavior 2
  Placenta C589                 | Choriocarcinoma 9100

Age at Diagnosis < 020
  Esophagus C150-C159           | Any morphology
  Small intestine C170-C179     | Any morphlogy
  Colon C180-C189               | Any other than carcinoid 8240-8245
  Rectosigmoid C199             | Any morphology
  Rectum C209                   | Any morphology
  Anus, anal canal C210-C218    | Any morphology
  Gallbladder C239              | Any morphology
  Other biliary tract C240-C249 | Any morphology
  Pancreas C250-C259            | Any morphology
  Trachea C339                  | Any other than carcinoid 8240-8245
  Lung and bronchus C340-C349   | Any other than carcinoid 8240-8245
  Pleura C384                   | Any morphology
  Breast C500-C509              | Any morphology
  Uterus, NOS C559              | Any morphology
  Cervix uteri C530-C539        | Any histology with malignant behavior 3
  Corpus uteri C540-C549        | Any morphology

Age at Diagnosis < 030
  Any site                      | Multiple myeloma 9732
  Any site                      | Chronic myeloid leukemia 9863, 9875,
                                  9876, 9945
  Any site                      | Chronic lymphocytic leukemia 9823
  Penis C609                    | Any morphology

Age at Diagnosis < 040
  Prostate C619                 | Adenocarcinoma, NOS 8140

Age at Diagnosis > 005
  Eye C690-C699                 | Retinoblastoma 9510-9514

Age > 014
  Any site                      | Wilms tumor 8960 or
                                |    9946

Age at Diagnosis > 045
  Placenta C589                 | Choriocarcinoma 9100]]></description>
            <history>
                <event version="SE11-001-20" user="greend" date="2005-09-21">Juvenile myelomoncytic leukema (9946) for ages &lt; 30 was removed from the group of age/histologies requiring review.</event>
                <event version="SE11-001-21" user="greend" date="2007-02-02">Edit skipped for cases diagnosed 2001+.</event>
                <event version="SE11-001-21" user="greend" date="2007-08-02">Juvenile myelomonocytic leukemia(9946) was added to the Age &gt; 14 group.</event>
                <event version="SE11-001-22" user="greend" date="2008-07-10">Edit is now bypassed if Over-ride Age/Site/Morph [1990] contains a &apos;3&apos; (Reviewed:  Conditions 1 and 2 above both apply).</event>
                <event version="SE11-001-23" user="greend" date="2009-01-06">Edit is now bypassed if year of diagnosis is blank</event>
                <event version="SE11-001-23" user="greend" date="2009-01-07">Edit changed to require review if age is &lt; 040 [instead of &lt; 045] and site is prostate (C619) and histology is Adenocarcinoma, NOS (8140).</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-16" ref="69326">Removed several dependencies.</event>
            </history>
        </rule>
        <rule id="IF17" name="Sex, Primary Site (SEER IF17)" tag="N0013" java-path="lines.line" category="inter-field" depends="Primary_Site,Sex">
            <expression><![CDATA[if (((line.sex == '2' || line.sex == '9') && Functions.matches(line.primarySite, /^C6[0-3]\d$/)) ||
    ((line.sex == '1' || line.sex == '9') && Functions.matches(line.primarySite, /^C5[1-8]\d$/)))
    return false
return true]]></expression>
            <message>Sex and Primary Site conflict</message>
            <description><![CDATA[If Primary site[400] = C510-C589 (female genital organs), then Sex[220] cannot = 1 (Male) or 9 (unknown)

If Primary site[400] = C600-C639 (male genital organs), then Sex[220] cannot = 2 (Female) or 9 (unknown).]]></description>
            <history>
                <event version="SE14-011-01" user="" date="2013-10-25" ref="67031">Added unknown sex as invalid for sex specific sites.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-12" ref="67323">Added 5 as invalid sex for female primary site, 6 as invalid sex for male primary site.</event>
                <event version="SE16-015-08" user="kirbyk" date="2016-10-04" ref="67536">Removed 5 and 6 as invalid codes.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="IF18" name="Date Initial RX SEER, Date of DX (NAACCR IF18)" tag="N0095" java-path="lines.line" category="inter-field" depends="DateDiagnosisEdit,DateTherapyEdit">
            <expression><![CDATA[Integer iRxDay   = Functions.asInt(line.dateInitialRxSeerDay)
Integer iRxMonth = Functions.asInt(line.dateInitialRxSeerMonth)
Integer iRxYear  = Functions.asInt(line.dateInitialRxSeerYear)
Integer iDxDay   = Functions.asInt(line.dateOfDiagnosisDay)
Integer iDxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
Integer iDxYear  = Functions.asInt(line.dateOfDiagnosisYear)

if (iDxYear == null || iRxYear == null || (line.registryId == '0000001544' && iDxYear < 2000))
    return true
if  (iRxDay == null && iRxMonth == null && iRxYear == null)
   return true
if  (iRxDay == 0 && iRxMonth == 0 && iRxYear == 0)
   return true
if (iRxYear < iDxYear)
    return false
if (iRxYear > iDxYear || iRxMonth == null || iDxMonth == null)
   return true
if (iRxMonth < iDxMonth)
    return false
if (iRxMonth > iDxMonth || iRxDay == null || iDxDay == null)
   return true
return (iRxDay >= iDxDay)]]></expression>
            <message>Date of Init RX--SEER and Date of Diagnosis conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions is true:
1.  Date Initial RX SEER is blank
2.  Date of Diagnosis is blank.
3.  If Registry ID = 0000001544 (New Jersey) and year of Date of Diagnosis is < 2000

Date Initial RX SEER must be greater than or equal to Date of Diagnosis. If both years are known, but either month is blank, then only the years are compared. If either day is blank, then only the years and months are compared.]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-09-22">Edit modified to skip cases from New Jersey diagnosed before 2000.</event>
                <event version="SE11-001-22" user="greend" date="2008-01-08">Edit no longer uses the &quot;Month of Initial RX--SEER is not valid.&quot;, &quot;Year of Initial RX--SEER is not valid.&quot;, and &quot;Date of Initial RX--SEER is not valid.&quot; flags.</event>
                <event version="SE11-001-22" user="greend" date="2008-01-21">Edit now uses Day of Diagnosis and Day of Initial Rx.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-17">Edit no longer accepts 9-filled dates.</event>
                <event version="SE12-003-03" user="murphyr" date="2011-02-10">Updated documentation.</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-20" ref="66776">Updated edit name.</event>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-07" ref="67157">Updated documentation.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF19" name="Date of Last Contact, Date of Diag (NAACCR IF19)" tag="N0024" java-path="lines.line" category="inter-field" depends="DateDiagnosisEdit,DateFollowUpEdit">
            <expression><![CDATA[if (line.dateOfLastContactYear == null || line.dateOfDiagnosisYear == null)
     return true
if (line.dateOfLastContactYear < line.dateOfDiagnosisYear)
    return false
if ((line.dateOfLastContactYear > line.dateOfDiagnosisYear) ||
     line.dateOfLastContactMonth == null || line.dateOfDiagnosisMonth == null)
    return true
if (line.dateOfLastContactMonth < line.dateOfDiagnosisMonth)
    return false
if ((line.dateOfLastContactMonth > line.dateOfDiagnosisMonth) ||
     line.dateOfLastContactDay == null || line.dateOfDiagnosisDay == null)
    return true
return (line.dateOfLastContactDay >= line.dateOfDiagnosisDay)]]></expression>
            <message>Date of Last Contact and Date of Diagnosis conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1)  Year of Last Contact[1750y] is blank.
  2)  Year of Diagnosis[390y] is blank.
  3)  Inter-Field edit flag "Date of Diagnosis is not valid." has been triggered.
  4)  Inter-Field edit flag "Date of Last Contact is not valid." has been triggered.

Date of Last Contact[1750] must not precede Date of Diagnosis[390].  If either month is blank, then only the years are compared.  If both months are known and either day blank, then only the years and months are compared.  Otherwise, the entired dates are compared.]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2008-01-21">Edit now used Day of Diagnosis and Day of Last Contact</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-19">Edit no longer recognizes 9-filled dates.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-03" ref="67739">Slight name change.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF22_3" name="Seq Num--Central, Prim Site, Morph ICDO3 (SEER IF22)" tag="N0448" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (Functions.matches(line.sequenceNumberCentral, /^([67]\d|8[0-8]|98)$/) || line.overRideIllDefineSite == '1' ||
   line.histologicTypeIcdO3 == null)
   return true

if ((Functions.matches(line.primarySite, /^C(76[0-8]|809)$/) && Functions.between(line.histologicTypeIcdO3,'8000','9589')) ||
    (Functions.matches(line.primarySite, /^C77\d$/) && !(Functions.between(line.histologicTypeIcdO3,'9590','9729') ||
                                        Functions.between(line.histologicTypeIcdO3,'9735','9738')  ||
                                        Functions.between(line.histologicTypeIcdO3,'9811','9819')  ||
                                        ['9823','9826','9827','9837'].contains(line.histologicTypeIcdO3))) ||
    (Functions.matches(line.primarySite, /^C42[0-4]$/) && ! Functions.between(line.histologicTypeIcdO3,'9590','9993')) ||
     Functions.between(line.histologicTypeIcdO3,'9740','9759'))
   return line.sequenceNumberCentral == '00'

return true]]></expression>
            <message>Seq Num--Central, Primary Site and Histologic Type ICD-O-3 conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1)  Over-ride Ill-define site[2060] = 1 (review complete)
  2)  Sequence number--central[380] is 60-88 or 98
  3)  Histologic Type ICD-O-3[522] is blank.

Multiple primaries require review for a person for whom the site or histology is ill-defined or unspecified.

If Sequence Number--Central[380] > 00 (more than one primary), then any case with one of the following Primary Site[400] /Histologic Type ICD-O-3[522] combinations requires review:

1. Unknown and ill-defined sites (C760-C768, C809) and Histologic Type ICD-O-3 < 9590

2.  C770-C779 (lymph nodes) and Histologic Type ICD-O-3 not in range 9590-9729,9735-9738,9811-9819,9823,9826-9827,9837

3.  C420-C424 and Histologic Type ICD-O-3 not in range 9590-9993

4.  Any site code and Histologic Type ICD-O-3 9740-9759.]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-03-17">Edit skipped if Sequence number--central is 60-88, or 98.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-27">Hematopoietic range changed from 9590-9989 to 9590-9992.</event>
                <event version="SE12-003-03" user="murphyr" date="2011-02-10">Updated documentation.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-26" ref="67058">Updated C770-C779 hsit ranges from 9590-9729 to 9590-9729,9735-9738,9811-9818,9823,9827,9837</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68002">Add date conditions to condition 1.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-27" ref="68140">Updated histology ranges requiring review; removed date conditions.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-04" user="beverung" date="2020-06-18" ref="68358">Update 2021 heme histologies.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF23" name="Diagnostic Confirm, Seq Num--Central (SEER IF23)" tag="N0217" java-path="lines.line" category="inter-field" depends="Primary_Site">
            <expression><![CDATA[if (line.overRideSeqnoDxconf == '1' || Functions.matches(line.sequenceNumberCentral, /^[6-9]\d$/) || Functions.matches(line.primarySite, /^C(76[0-8]|809)$/))
    return true
if (line.diagnosticConfirmation ==~/^[6789]$/)
    return line.sequenceNumberCentral == '00'
return true]]></expression>
            <message>Diagnostic Confirmation and Seq Num--Central conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1)  Sequence Number--central[380] = 60-99
  2)  Over-ride seqno/dxconf[2000] = 1 (review complete)
  3)  Primary Site[400] = C760-C768, C809 (ill-defined or unknown primary)

If a person has had multiple primaries, review is required for any case that is not histologically confirmed.

If Diagnostic Confirmation[490] > 5 and Sequence Number[380] > 00 (more than one primary), then review is required.]]></description>
            <history>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topography code from ICD-O-1 to ICD-O-2.</event>
                <event version="SE11-001-11" user="greend" date="1995-01-10">Review is required if diagnostic confirmation &gt;5 instead of four.</event>
                <event version="SE11-001-14" user="greend" date="1998-07-01">Edit is skipped if case is cervix insitu (98).</event>
                <event version="SE11-001-17" user="greend" date="2003-03-07">Edit is skipped is Sequence number--central is 60-88.</event>
                <event version="SE11-001-18" user="greend" date="2004-05-12">Edit is skipped if Sequence Number--Central is 60-99.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-16" ref="69326">Removed several dependencies.</event>
            </history>
        </rule>
        <rule id="IF24" name="Laterality, Primary Site, Date of Diag (SEER IF24)" tag="N0652" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear >= '2021' && line.primarySite == 'C444')
    return line.laterality != '0'

if (line.dateOfDiagnosisYear >= '2018' && Functions.matches(line.primarySite, /^C09[01]$/))
    return true

if (line.laterality == '5')
    return line.dateOfDiagnosisYear >= '2010' && Functions.matches(line.primarySite, /^C(700|71[0-4]|72[2-5]|443|445)$/)

if (Functions.matches(line.primarySite, /^C(079|080|09[189]|301|31[02]|34[1-9]|384|50\d|569|570|62\d|63[01]|6[456]9|69\d|74\d|754)$/))
    return line.laterality != '0'
else if (line.dateOfDiagnosisYear > '1978' && Functions.matches(line.primarySite, /^C(081|090|40[0-3]|44[123567]|47[12]|49[12])$/))
    return line.laterality != '0'
else if (line.dateOfDiagnosisYear > '2003' && Functions.matches(line.primarySite, /^C(700|71[0-4]|72[2-5])$/))
    return line.laterality != '0'

return true]]></expression>
            <message>Laterality and Primary Site conflict</message>
            <description><![CDATA[This edit is skipped if Date of Diagnosis is blank.

The following paired organ sites must have a code other than zero for Laterality:

    C079      Parotid gland
    C080      Submandibular gland
    C091      Tonsillar pillar
    CO98-C099 Tonsil, NOS
    C301      Middle ear
    C310      Maxillary sinus
    C312      Frontal sinus
    C341-C349 Lung
    C384      Pleura
    C500-C509 Breast
    C569      Ovary
    C570      Fallopian tube
    C620-C629 Testis
    C630      Epididymis
    C631      Spermatic cord
    C649      Kidney, NOS
    C659      Renal pelvis
    C669      Ureter
    C690-C699 Eye
    C740-C749 Adrenal gland
    C754      Carotid body

For cases diagnosed after 1978 or Date of Diagnosis is blank (unknown), and one of the
following sites, Laterality must not be zero:

    C081      Sublingual gland
    C090      Tonsillar fossa
    C400      Long bones of upper limb, scapula and associated joints
    C401      Short bones of upper limb and associated joints
    C402      Long bones of lower limb and associated joints
    C403      Short bones of lower limb and associated joints
    C441      Skin of eyelid
    C442      Skin of external ear
    C443      Skin of other and unspecified parts of face
              (midline code `9' for pre-2010, code '5' for 2010+)
    C445      Skin of trunk (midline code `9' for pre-2010, code '5' for 2010+)
    C446      Skin of upper limb and shoulder
    C447      Skin of lower limb and hip
    C471      Peripheral nerves and autonomic nervous system of upper
              limb and shoulder
    C472      Peripheral nerves and autonomic nervous system of lower
              limb and hip
    C491      Connective, subcutaneous, and other soft tissues of upper
              limb and shoulder
    C492      Connective, subcutaneous, and other soft tissues of lower
              limb and hip

For cases diagnosed after 2003 or Date of Diagnosis is blank (unknown), and one of the
following sites, Laterality must not be zero:

    C700      Cerebral meninges, NOS
    C710      Cerebrum
    C711      Frontal lobe
    C712      Temporal lobe
    C713      Parietal lobe
    C714      Occipital lobe
    C722      Olfactory nerve
    C723      Optic nerve
    C724      Acoustic nerve
    C725      Cranial nerve, NOS

Laterality code of 5 (paired site: midline tumor) is allowed only for cases
diagnosed 2010 or later and only for these paired brain and CNS sites: C700, C710-
C714, C722-C725, and these paired skin sites: C443 and C445.

For cases diagnosed 2018 and later, laterality is no longer required for C090 and C091.

For cases diagnosed 2021 and later, the following primary site must have a code other 
than zero for laterality.  Code 5 is allowed:

    C444    Skin of scalp and neck]]></description>
            <history>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topography code from ICD-O-1 to ICD-O-2.</event>
                <event version="SE11-001-10" user="greend" date="1994-05-02">Tonsil, NOS (C098) was added to list of paired organs.</event>
                <event version="SE11-001-18" user="greend" date="2004-05-12">For cases diagnosed after 2003, additional sites are added to those for which laterality must not be zero.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-17">Edit is now skipped if year of diagnosis is blank.  And edit no longer recognizes 9-filled year of diagnosis.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-31">Edit no longer skips for blank year of diagnosis.  Now checks for blanks if year is greater than 1978 or 2003.</event>
                <event version="SE12-004-01" user="murphyr" date="2010-12-13">Laterality code of 5 (paired site: midline tumor) is now allowed only for cases diagnosed 2010+ only for paired brain and CNS sites (C700, C710-C714, C722-C725) and paired skin sites (C441-C443, C445-C447).</event>
                <event version="SE12-003-02" user="murphyr" date="2011-01-10">Updated documentation.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-16">Removed some sites from list for code &apos;5&apos;.</event>
                <event version="SE12-008-06" user="murphyr" date="2013-01-10" ref="66817">Fixed an issue in laterality condition preventing the edit from failing for invalid laterality 5.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-27" ref="68130">Laterality is no longer required for primary site C090 and C091.</event>
                <event version="SE18-019-04" user="beverung" date="2019-08-29" ref="68245">Laterality is required again for primary site C090 and C091 for cases prior to 2018.</event>
                <event version="SE21-021-03" user="beverung" date="2021-03-02" ref="68570">Update edit with 2021+ logic.</event>
                <event version="SE22-022-17" user="beverung" date="2022-11-16" ref="69062">Removed histology restriction for site C444 with laterality = 5.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF25_3" name="Primary Site, Morphology-Type, Beh ICDO3 (SEER IF25)" tag="N1254" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear > '2023' || line.overRideSiteType == '1' || line.histologicTypeIcdO3 == null || line.behaviorCodeIcdO3 == null)
   return true

Integer siteNum = Functions.asInt(line.primarySite.substring(1))
Integer histNum = Functions.asInt(line.histologicTypeIcdO3)
Integer behNum = Functions.asInt(line.behaviorCodeIcdO3)

return ((List)((Map)((Map)Context.If25_3_SiteReferenceTable).getOrDefault(siteNum, [:])).getOrDefault(behNum, [])).contains(histNum)]]></expression>
            <message>Primary Site and Morphology ICD-O-3 conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1)  Diagnosis date > 2023
  2)  Over-ride site/type[2030] = 1 (review complete)
  3)  Histologic Type ICD-O-3 [522] is blank
  4)  Behavior Code ICD-O-3 [523] is blank

If Primary Site[400] is not in the range C000-C999, or if Histologic Type ICD-O-3[522] is not in the range 8000-9999, the message "Catastrophic error in IF25_3 is returned and no further editing is done.

The SEER Site/Histology Validation List designates all four-digit histologies (specified as in situ or malignant in ICD-O) that do not require review for each site.  Any site/histology combination not in the Site/Histology Validation List will be accepted only if the case has been reviewed, accepted as coded, and Over-ride Site/Type[2030] = 1.  Since basal and squamous cell carcinomas of non-genital skin sites are not reportable to SEER, these site/histology combinations do not appear on the validation list.

The Site/Histology Validation List contains those histologies commonly found in the specified primary site.  Histologies that occur only rarely or never may not be included.  Review of these rare combinations often results in changes to the primary site and/or morphology, rather than a decision that the combination is correct.  The over-ride flag should not be set to 1 if the primary site or histologic type are changed to a combination that will pass the edit.  However, if upon review the site/type combination is found to be accurate and in conformance with coding rules, it may be left as coded and the Over-ride--Site/Type flag coded to 1.]]></description>
            <history>
                <event version="SE11-001-16" user="greend" date="2002-09-16">The following site/histology combinations are now valid:
C210-C218 8077/2
C240      8160/3
          8161/3
C440-C449 9728/3
          9729/3
C700-C709 9240/3
C770-C779 9728/3
          9729/3

The histology 8255/3 was added to all sites where 8140/3 is valid.
The histology 9947/3 was changed to 9948/3.</event>
                <event version="SE11-001-17" user="greend" date="2003-10-10">The following site/histology combinations are now valid:
    C239-C249 8162/3
    C250-C259 8323/3
    C440-C449 8461/3
    C510-C518,C529 8323/3
    C519 8323/3
    C530-C539 8323/3
    C570-C579 8323/3
    C809 All lymphomas</event>
                <event version="SE11-001-18" user="greend" date="2004-06-01">Program now edits site/histology and behavior. Valid histology/behavior combinations were added for the benign brain tumors.</event>
                <event version="SE11-001-21" user="greend" date="2007-08-07">Edit modified to only allow site/histology/behavior combinations found in the ICD-O-3 Site/Type Validation list. The histology behavior combinations of 9530/0 and 9530/1 were removed from the Brain, etc site group.</event>
                <event version="SE11-001-22" user="greend" date="2008-01-15">Histology 8461/3 is now valid for site C480-C482,C488.

Histologies 9530-9539 with any behavior are no longer valid for the following site combinations :

    C710-C714,C717-C719,C720-C724
    C715
    C716
    C728-C729</event>
                <event version="SE11-001-23" user="greend" date="2009-03-21">Site/Histology 8144/3 is no longer valid for the following sites:

    C150-C155, C158-C159
    C170-C173, C178-C179
    C180-C189, C199
    C209
    C210-C212,C218

Site/histology 9582/0 is now valid for site C751.</event>
                <event version="SE12-003-02" user="depryf" date="2011-01-09">Updated context tables, some of them where out-of-date.</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-21" ref="66790">Now allow 9823/3 for all sites and 8441/3 and 8460/3 for C540-C543, C548-C549, C559.</event>
                <event version="SE15-013-02" user="kirbyk" date="2015-03-02" ref="67196">Added several valid site/histology combinations.</event>
                <event version="SE15-014-02" user="kirbyk" date="2015-08-24" ref="67208">Added valid histology 9930/3 for C470-C476, C478-C479, C490-C496, C498-C499 and 9837/3 for C440-C449.</event>
                <event version="SE15-014-03" user="kirbyk" date="2015-09-17" ref="67212">Added valid histology 8083/3 for C340-C349.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-03-27" ref="67721">Updated context tables for 2018.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-018-08" user="kirbyk" date="2018-10-31" ref="68049">Added valid histology and behavior combinations for breast cases.</event>
                <event version="SE18-019-03" user="kirbyk" date="2019-08-08" ref="68200">Added several valid histology and behavior combinations.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-13" ref="69119">Added many new valid histology and behavior combinations.</event>
                <event version="SE23-023-02" user="shearerw" date="2023-04-27" ref="69251">Added new valid histology and behavior combinations for C6XX sites.</event>
                <event version="SE24-024-01" user="cooki" date="2024-03-08" ref="69397">Added 2024 skip condition.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF26E98_3_P1" name="Extent of Disease 12-Digit ICDO3 (SEER IF26E98)" tag="N2365" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.codingSystemForEod != '4' || line.dateOfDiagnosisYear < '1998' || line.dateOfDiagnosisYear == null ||
    (line.histologicTypeIcdO3 == null && line.behaviorCodeIcdO3 == null))
  return true

Integer siteNum = Functions.asInt(line.primarySite.substring(1))

return (Functions.matches(line.primarySite, /^C[0-9][0-9][0-9]$/) &&
    Functions.matches(line.histologicTypeIcdO3, /^[0-9][0-9][0-9][0-9]$/) && Functions.matches(line.behaviorCodeIcdO3, /^[123]$/) &&
    siteNum <= 810)]]></expression>
            <message>Catastrophic Error in IF2610DG_3</message>
            <description><![CDATA[This edit is only performed if Coding System for EOD = 4, indicating that 10-digit EOD is coded and year of diagnosis after 1997.  However, the edit is skipped if any of the single field edits for Primary Site, Histologic Type ICD-O-3, Behavior Code ICD-O-3, Type of Reporting Source, or Date of Diagnosis have failed.

The edit is skipped if Morph--Type&Behav ICD-O-3 is blank.  The edit validates the Extent of Disease according to the 10-digit EOD for each site as defined in the "SEER Extent of Disease--1988:  Codes and Coding Instructions," 3rd ed., 1998.

The edit is skipped if year of diagnosis is blank.

The behavior code is checked against the extent of disease fields to verify validity (1, 2, or 3).  A behavior code of 1 is allowed because the behavior codes of some morphologies changed from 3 to 1 when converted from ICD-O-2 to ICD-O-3.)

If Death Certificate only case (Type of Reporting Source = '7') the SEER 10-digit Extent of Disease must be '999909999990' for prostate cases and '9999999999  ' for all other cases.

If Number of Regional Nodes Positive is 01-97, then Lymph Nodes must be = 1-8.  This check is not performed for the following sites and types.

Kaposi sarcoma, M-9140
Hematopoietic, M-9731-9989
Lymphomas, M-9590-9699,9702-9729
Mycosis fungoides, M-9700-9701
Brain, T-C70.0,C71._
Other CNS, T-C70.1,C70.9,C72.0-C72.5,C72.8
Other and ill-defined, T-C76.0-C76.8,C80.9,C42._,C77._

For the following sites and types, Regional Nodes Positive and Regional Nodes Examined must both be coded '99'.

Brain, T-C70.0,C71._
Other CNS, T-C70.1,C70.9,C72.0-C72.5,C72.8,C72.9
Other and ill-defined, T-C76.0-C76.5,C76.7,C76.8, C80.9,C42._,C77._
Hematopoietic, etc., M-9731-9989
Lymphomas, M-9590-9699,9702-9729

For site C77.8 the EOD--Extension[790] field cannot be 10 or 11.]]></description>
            <history>
                <event version="SE11-001-16" user="greend" date="2002-04-15">Tables modified to allow the following extensions for Breast (C50.0 - C50.9): 11,13-18,21,23-28,31,33-38.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">For site C77.8 the EOD--extension field cannot be 10 or 11.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-29">Edit is no longer skipped if year of diagnosis is 9-filled.  Instead it is skipped if year of diagnosis is blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF26E98_3_P10" name="EOD--Lymph Node Involv, Reg Nodes Pos,ICDO3 (NAACCR)" tag="N0462" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,IF26E98_3_P1,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.codingSystemForEod != '4' || line.dateOfDiagnosisYear < '1998' || line.dateOfDiagnosisYear == null
        || (line.histologicTypeIcdO3 == null && line.behaviorCodeIcdO3 == null) || line.typeOfReportingSource == '7'
        || line.regionalNodesPositive == null || line.regionalNodesExamined == null)
    return true

Integer histNum = Functions.asInt(line.histologicTypeIcdO3)

if (!(line.histologicTypeIcdO3 == '9140' || ((List)Context.Hematopoietic).contains(histNum) || ((List)Context.Lymphomas).contains(histNum) || line.histologicTypeIcdO3 == '9700' || line.histologicTypeIcdO3 == '9701'
        || Functions.matches(line.primarySite, /^C(700|71\d)$/) || Functions.matches(line.primarySite, /^C(70[19]|72[0-589])$/) || Functions.matches(line.primarySite, /^C(42\d|76[0-578]|77\d|809)$/))) {
    if (line.regionalNodesPositive >= '01' && line.regionalNodesPositive <= '97' && (line.eodLymphNodeInvolv < '1' || line.eodLymphNodeInvolv > '8'))
       return false
}

return true]]></expression>
            <message>Primary Site, EOD--lymph node involv and Regional nodes positive 98+ ICD-O-3 conflict</message>
            <description><![CDATA[This edit is only performed if Coding System for EOD = 4, indicating that 10-digit EOD is coded and year of diagnosis after 1997.  However, the edit is skipped if any of the single field edits for Primary Site, Histologic Type ICD-O-3, Behavior Code ICD-O-3, Type of Reporting Source, or Date of Diagnosis have failed.

The edit is skipped if Morph--Type&Behav ICD-O-3 is blank.  The edit validates the Extent of Disease according to the 10-digit EOD for each site as defined in the "SEER Extent of Disease--1988:  Codes and Coding Instructions," 3rd ed., 1998.

The edit is skipped if year of diagnosis is blank.

The behavior code is checked against the extent of disease fields to verify validity (1, 2, or 3).  A behavior code of 1 is allowed because the behavior codes of some morphologies changed from 3 to 1 when converted from ICD-O-2 to ICD-O-3.)

If Death Certificate only case (Type of Reporting Source = '7') the SEER 10-digit Extent of Disease must be '999909999990' for prostate cases and '9999999999  ' for all other cases.

If Number of Regional Nodes Positive is 01-97, then Lymph Nodes must be = 1-8.  This check is not performed for the following sites and types.

Kaposi sarcoma, M-9140
Hematopoietic, M-9731-9989
Lymphomas, M-9590-9699,9702-9729
Mycosis fungoides, M-9700-9701
Brain, T-C70.0,C71._
Other CNS, T-C70.1,C70.9,C72.0-C72.5,C72.8
Other and ill-defined, T-C76.0-C76.8,C80.9,C42._,C77._

For the following sites and types, Regional Nodes Positive and Regional Nodes Examined must both be coded '99'.

Brain, T-C70.0,C71._
Other CNS, T-C70.1,C70.9,C72.0-C72.5,C72.8,C72.9
Other and ill-defined, T-C76.0-C76.5,C76.7,C76.8, C80.9,C42._,C77._
Hematopoietic, etc., M-9731-9989
Lymphomas, M-9590-9699,9702-9729

For site C77.8 the EOD--Extension[790] field cannot be 10 or 11.]]></description>
            <history>
                <event version="SE11-001-16" user="greend" date="2002-04-15">Tables modified to allow the following extensions for Breast (C50.0 - C50.9): 11,13-18,21,23-28,31,33-38.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">For site C77.8 the EOD--extension field cannot be 10 or 11.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-29">Edit is no longer skipped if year of diagnosis is 9-filled.  Instead it is skipped if year of diagnosis is blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit tag changed.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF26E98_3_P11" name="Extent of Disease 12-Digit ICDO3 (SEER IF26E98)" tag="N2365" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,IF26E98_3_P1,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.codingSystemForEod != '4' ||
    line.dateOfDiagnosisYear < '1998' || line.dateOfDiagnosisYear == null ||
    (line.histologicTypeIcdO3 == null && line.behaviorCodeIcdO3 == null) ||
    line.typeOfReportingSource != '7')
    return true

if (line.primarySite == 'C619')
    return (line.eodTumorSize == '999' && line.eodExtension == '90' && line.eodLymphNodeInvolv == '9' &&
        line.regionalNodesPositive == '99' && line.regionalNodesExamined == '99' &&
        line.eodExtensionProstPath == '90')

return (line.eodTumorSize == '999' && line.eodExtension == '99' && line.eodLymphNodeInvolv == '9' &&
       line.regionalNodesPositive == '99' && line.regionalNodesExamined == '99' && line.eodExtensionProstPath == null)]]></expression>
            <message>Type of Report Srce and EOD fields 98+ ICD-O-3 conflict</message>
            <description><![CDATA[This edit is only performed if Coding System for EOD = 4, indicating that 10-digit EOD is coded and year of diagnosis after 1997.  However, the edit is skipped if any of the single field edits for Primary Site, Histologic Type ICD-O-3, Behavior Code ICD-O-3, Type of Reporting Source, or Date of Diagnosis have failed.

The edit is skipped if Morph--Type&Behav ICD-O-3 is blank.  The edit validates the Extent of Disease according to the 10-digit EOD for each site as defined in the "SEER Extent of Disease--1988:  Codes and Coding Instructions," 3rd ed., 1998.

The edit is skipped if year of diagnosis is blank.

The behavior code is checked against the extent of disease fields to verify validity (1, 2, or 3).  A behavior code of 1 is allowed because the behavior codes of some morphologies changed from 3 to 1 when converted from ICD-O-2 to ICD-O-3.)

If Death Certificate only case (Type of Reporting Source = '7') the SEER 10-digit Extent of Disease must be '999909999990' for prostate cases and '9999999999  ' for all other cases.

If Number of Regional Nodes Positive is 01-97, then Lymph Nodes must be = 1-8.  This check is not performed for the following sites and types.

Kaposi sarcoma, M-9140
Hematopoietic, M-9731-9989
Lymphomas, M-9590-9699,9702-9729
Mycosis fungoides, M-9700-9701
Brain, T-C70.0,C71._
Other CNS, T-C70.1,C70.9,C72.0-C72.5,C72.8
Other and ill-defined, T-C76.0-C76.8,C80.9,C42._,C77._

For the following sites and types, Regional Nodes Positive and Regional Nodes Examined must both be coded '99'.

Brain, T-C70.0,C71._
Other CNS, T-C70.1,C70.9,C72.0-C72.5,C72.8,C72.9
Other and ill-defined, T-C76.0-C76.5,C76.7,C76.8, C80.9,C42._,C77._
Hematopoietic, etc., M-9731-9989
Lymphomas, M-9590-9699,9702-9729

For site C77.8 the EOD--Extension[790] field cannot be 10 or 11.]]></description>
            <history>
                <event version="SE11-001-16" user="greend" date="2002-04-15">Tables modified to allow the following extensions for Breast (C50.0 - C50.9): 11,13-18,21,23-28,31,33-38.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">For site C77.8 the EOD--extension field cannot be 10 or 11.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-29">Edit is no longer skipped if year of diagnosis is 9-filled.  Instead it is skipped if year of diagnosis is blank.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF26E98_3_P12" name="EOD--Extension Prost Path, Prim Site, ICDO3 (NAACCR)" tag="N0474" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,IF26E98_3_P1,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.codingSystemForEod != '4' || line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '1998' || (line.histologicTypeIcdO3 == null && line.behaviorCodeIcdO3 == null))
    return true
if (line.primarySite != 'C619')
    return line.eodExtensionProstPath == null
else if (line.histologicTypeIcdO3 < '9590' && line.histologicTypeIcdO3 != '9140') {
    if (line.eodExtensionProstPath == null)
        return false
    if (line.typeOfReportingSource == '7' && line.eodExtensionProstPath != '90')
        return false
    if (line.behaviorCodeIcdO3 == '2' && !(line.eodExtensionProstPath == '00' || line.eodExtensionProstPath == '99'))
        return false
    if (line.behaviorCodeIcdO3 == '3' && !Functions.matches(line.eodExtensionProstPath, /^(2[03]|3[0-4]|4[0-358]|[567]0|85|9[089])$/))
        return false
}
return true]]></expression>
            <message>Primary Site and EOD--extension prost path 98+ ICD-O-3 conflict</message>
            <description><![CDATA[This edit is skipped for the following conditions
1) Eod Coding System is not equal 4
2) Year of Diagnosis is < 1998 or null
3) ICDO3 Histology and ICDO3 Behavior are null

If Primary Site is not = C619 then Pathologic Prostate Extension must be blank.

If Primary site = C619 and ICDO3 Histology is < 9590 and not 9140 then apply the following checks
1) Pathologic Prostate Extension cannot be blank
2) If Type Of Reporting Source = 7, Pathologic Prostate Extension must be 90
3) If ICDO3 Behavior = 2, Pathologic Prostate Extension must be 00, 99
4) If ICDO3 Behavor =3, Pathologic Prostate Extension must be 20, 23, 30-34, 40-43, 45, 48, 50, 60, 70, 85, 90, 98, 99]]></description>
            <history>
                <event version="SE11-001-16" user="greend" date="2002-04-15">Tables modified to allow the following extensions for Breast (C50.0 - C50.9): 11,13-18,21,23-28,31,33-38.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">For site C77.8 the EOD--extension field cannot be 10 or 11.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-29">Edit is no longer skipped if year of diagnosis is 9-filled.  Instead it is skipped if year of diagnosis is blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-25" ref="68231">Update description and logic.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit tag changed.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF26E98_3_P2" name="EOD--Extension, Primary Site, ICDO3 (NAACCR)" tag="N2362" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,IF26E98_3_P1,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.codingSystemForEod != '4' || line.dateOfDiagnosisYear < '1998' || line.dateOfDiagnosisYear == null ||
    (line.histologicTypeIcdO3 == null && line.behaviorCodeIcdO3 == null) ||
    line.typeOfReportingSource == '7' || line.behaviorCodeIcdO3 == '2')
    return true

if (!(Functions.matches(line.eodExtension, /^[0-9][0-9]$/)))
    return false

if (line.primarySite == 'C778' && Functions.matches(line.eodExtension, /^1[01]$/))
    return false

if (['9731','9734','9750','9751','9752'].contains(line.histologicTypeIcdO3) && line.eodExtension == '10')
    return true

Integer siteNum = Functions.asInt(line.primarySite.substring(1))
Integer histNum = Functions.asInt(line.histologicTypeIcdO3)
Integer eodExtNum = Functions.asInt(line.eodExtension)

List<Integer> histList = (List)((Map)Context.If26E98_3_HIST_MALIG_EXT).get(histNum)
if (histList != null)
    return histList.contains(eodExtNum)

List<Integer> histSiteList = (List)((Map)((Map)Context.If26E98_3_HIST_SITE_MALIG_EXT).getOrDefault(histNum, [:])).get(siteNum)
if (histSiteList != null)
   return histSiteList.contains(eodExtNum)

List<Integer> siteList = (List)((Map)Context.If26E98_3_SITE_MALIG_EXT).get(siteNum)
if (siteList != null)
   return siteList.contains(eodExtNum)

return false]]></expression>
            <message>Primary Site and Malig EOD--extension 98+ ICD-O-3 conflict</message>
            <description><![CDATA[This edit is only performed if Coding System for EOD = 4, indicating that 10-digit EOD is coded and year of diagnosis after 1997.  However, the edit is skipped if any of the single field edits for Primary Site, Histologic Type ICD-O-3, Behavior Code ICD-O-3, Type of Reporting Source, or Date of Diagnosis have failed.

The edit is skipped if Morph--Type&Behav ICD-O-3 is blank.  The edit validates the Extent of Disease according to the 10-digit EOD for each site as defined in the "SEER Extent of Disease--1988:  Codes and Coding Instructions," 3rd ed., 1998.

The edit is skipped if year of diagnosis is blank.

The behavior code is checked against the extent of disease fields to verify validity (1, 2, or 3).  A behavior code of 1 is allowed because the behavior codes of some morphologies changed from 3 to 1 when converted from ICD-O-2 to ICD-O-3.)

If Death Certificate only case (Type of Reporting Source = '7') the SEER 10-digit Extent of Disease must be '999909999990' for prostate cases and '9999999999  ' for all other cases.

If Number of Regional Nodes Positive is 01-97, then Lymph Nodes must be = 1-8.  This check is not performed for the following sites and types.

Kaposi sarcoma, M-9140
Hematopoietic, M-9731-9989
Lymphomas, M-9590-9699,9702-9729
Mycosis fungoides, M-9700-9701
Brain, T-C70.0,C71._
Other CNS, T-C70.1,C70.9,C72.0-C72.5,C72.8
Other and ill-defined, T-C76.0-C76.8,C80.9,C42._,C77._

For the following sites and types, Regional Nodes Positive and Regional Nodes Examined must both be coded '99'.

Brain, T-C70.0,C71._
Other CNS, T-C70.1,C70.9,C72.0-C72.5,C72.8,C72.9
Other and ill-defined, T-C76.0-C76.5,C76.7,C76.8, C80.9,C42._,C77._
Hematopoietic, etc., M-9731-9989
Lymphomas, M-9590-9699,9702-9729

For site C77.8 the EOD--Extension[790] field cannot be 10 or 11.]]></description>
            <history>
                <event version="SE11-001-16" user="greend" date="2002-04-15">Tables modified to allow the following extensions for Breast (C50.0 - C50.9): 11,13-18,21,23-28,31,33-38.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">For site C77.8 the EOD--extension field cannot be 10 or 11.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-29">Edit is no longer skipped if year of diagnosis is 9-filled.  Instead it is skipped if year of diagnosis is blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE23-023-02" user="shearerw" date="2023-05-02" ref="69276">Update tag from N2365 to N2362. Change edit name.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF26E98_3_P3" name="EOD--Extension, Primary Site, ICDO3 (NAACCR)" tag="N2362" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,IF26E98_3_P1,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.codingSystemForEod != '4' || line.dateOfDiagnosisYear < '1998' || line.dateOfDiagnosisYear == null ||
    (line.histologicTypeIcdO3 == null && line.behaviorCodeIcdO3 == null) ||
     line.typeOfReportingSource == '7' || line.behaviorCodeIcdO3 != '2')
    return true

if (! (Functions.matches(line.eodExtension, /^[0-9][0-9]$/)))
    return false

if (line.primarySite == 'C778' && Functions.matches(line.eodExtension, /^1[01]$/))
    return false

Integer siteNum = Functions.asInt(line.primarySite.substring(1))
Integer histNum = Functions.asInt(line.histologicTypeIcdO3)
Integer eodExtNum = Functions.asInt(line.eodExtension)

List<Integer> histList = (List)((Map)Context.If26E98_3_HIST_INSITU_EXT).get(histNum)
if (histList != null)
    return histList.contains(eodExtNum)

List<Integer> histSiteList = (List)((Map)((Map)Context.If26E98_3_HIST_SITE_INSITU_EXT).getOrDefault(histNum, [:])).get(siteNum)
if (histSiteList != null)
   return histSiteList.contains(eodExtNum)

List<Integer> siteList = (List)((Map)Context.If26E98_3_SITE_INSITU_EXT).get(siteNum)
if (siteList != null)
   return siteList.contains(eodExtNum)

return false]]></expression>
            <message>Primary Site and InSitu EOD--extension 98+ ICD-O-3 conflict</message>
            <description><![CDATA[This edit is only performed if Coding System for EOD = 4, indicating that 10-digit EOD is coded and year of diagnosis after 1997.  However, the edit is skipped if any of the single field edits for Primary Site, Histologic Type ICD-O-3, Behavior Code ICD-O-3, Type of Reporting Source, or Date of Diagnosis have failed.

The edit is skipped if Morph--Type&Behav ICD-O-3 is blank.  The edit validates the Extent of Disease according to the 10-digit EOD for each site as defined in the "SEER Extent of Disease--1988:  Codes and Coding Instructions," 3rd ed., 1998.

The edit is skipped if year of diagnosis is blank.

The behavior code is checked against the extent of disease fields to verify validity (1, 2, or 3).  A behavior code of 1 is allowed because the behavior codes of some morphologies changed from 3 to 1 when converted from ICD-O-2 to ICD-O-3.)

If Death Certificate only case (Type of Reporting Source = '7') the SEER 10-digit Extent of Disease must be '999909999990' for prostate cases and '9999999999  ' for all other cases.

If Number of Regional Nodes Positive is 01-97, then Lymph Nodes must be = 1-8.  This check is not performed for the following sites and types.

Kaposi sarcoma, M-9140
Hematopoietic, M-9731-9989
Lymphomas, M-9590-9699,9702-9729
Mycosis fungoides, M-9700-9701
Brain, T-C70.0,C71._
Other CNS, T-C70.1,C70.9,C72.0-C72.5,C72.8
Other and ill-defined, T-C76.0-C76.8,C80.9,C42._,C77._

For the following sites and types, Regional Nodes Positive and Regional Nodes Examined must both be coded '99'.

Brain, T-C70.0,C71._
Other CNS, T-C70.1,C70.9,C72.0-C72.5,C72.8,C72.9
Other and ill-defined, T-C76.0-C76.5,C76.7,C76.8, C80.9,C42._,C77._
Hematopoietic, etc., M-9731-9989
Lymphomas, M-9590-9699,9702-9729

For site C77.8 the EOD--Extension[790] field cannot be 10 or 11.]]></description>
            <history>
                <event version="SE11-001-16" user="greend" date="2002-04-15">Tables modified to allow the following extensions for Breast (C50.0 - C50.9): 11,13-18,21,23-28,31,33-38.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">For site C77.8 the EOD--extension field cannot be 10 or 11.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-29">Edit is no longer skipped if year of diagnosis is 9-filled.  Instead it is skipped if year of diagnosis is blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE23-023-02" user="shearerw" date="2023-05-02" ref="69276">Update tag from N2365 to N2362. Change edit name.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF26E98_3_P4" name="EOD--Tumor Size, Primary Site, ICDO3 (NAACCR)" tag="N2364" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,IF26E98_3_P1,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.codingSystemForEod != '4' || line.dateOfDiagnosisYear < '1998' || line.dateOfDiagnosisYear == null
        || (line.histologicTypeIcdO3 == null && line.behaviorCodeIcdO3 == null) || line.typeOfReportingSource == '7')
    return true

if (!(Functions.matches(line.eodTumorSize, /^[0-9][0-9][0-9]$/)))
    return false

Integer siteNum = Functions.asInt(line.primarySite.substring(1))
Integer histNum = Functions.asInt(line.histologicTypeIcdO3)
Integer eodExtNum = Functions.asInt(line.eodTumorSize)

if (((List)Context.ColoRectal).contains(siteNum) && line.eodTumorSize == '998' && !(line.histologicTypeIcdO3 == '8220' || line.histologicTypeIcdO3 == '8221'))
    return false

List<Integer> histList = (List)((Map)Context.If26E98_3_HIST_SIZE).get(histNum)
if (histList != null)
    return histList.contains(eodExtNum)

List<Integer> histSiteList = (List)((Map)((Map)Context.If26E98_3_HIST_SITE_SIZE).getOrDefault(histNum, [:])).get(siteNum)
if (histSiteList != null)
   return histSiteList.contains(eodExtNum)

List<Integer> siteList = (List)((Map)Context.If26E98_3_SITE_SIZE).get(siteNum)
if (siteList != null)
   return siteList.contains(eodExtNum)

return false]]></expression>
            <message>Primary Site and EOD--tumor size 98+ ICD-O-3 conflict</message>
            <description><![CDATA[This edit is only performed if Coding System for EOD = 4, indicating that 10-digit EOD is coded and year of diagnosis after 1997.  However, the edit is skipped if any of the single field edits for Primary Site, Histologic Type ICD-O-3, Behavior Code ICD-O-3, Type of Reporting Source, or Date of Diagnosis have failed.

The edit is skipped if Morph--Type&Behav ICD-O-3 is blank.  The edit validates the Extent of Disease according to the 10-digit EOD for each site as defined in the "SEER Extent of Disease--1988:  Codes and Coding Instructions," 3rd ed., 1998.

The edit is skipped if year of diagnosis is blank.

The behavior code is checked against the extent of disease fields to verify validity (1, 2, or 3).  A behavior code of 1 is allowed because the behavior codes of some morphologies changed from 3 to 1 when converted from ICD-O-2 to ICD-O-3.)

If Death Certificate only case (Type of Reporting Source = '7') the SEER 10-digit Extent of Disease must be '999909999990' for prostate cases and '9999999999  ' for all other cases.

If Number of Regional Nodes Positive is 01-97, then Lymph Nodes must be = 1-8.  This check is not performed for the following sites and types.

Kaposi sarcoma, M-9140
Hematopoietic, M-9731-9989
Lymphomas, M-9590-9699,9702-9729
Mycosis fungoides, M-9700-9701
Brain, T-C70.0,C71._
Other CNS, T-C70.1,C70.9,C72.0-C72.5,C72.8
Other and ill-defined, T-C76.0-C76.8,C80.9,C42._,C77._

For the following sites and types, Regional Nodes Positive and Regional Nodes Examined must both be coded '99'.

Brain, T-C70.0,C71._
Other CNS, T-C70.1,C70.9,C72.0-C72.5,C72.8,C72.9
Other and ill-defined, T-C76.0-C76.5,C76.7,C76.8, C80.9,C42._,C77._
Hematopoietic, etc., M-9731-9989
Lymphomas, M-9590-9699,9702-9729

For site C77.8 the EOD--Extension[790] field cannot be 10 or 11.]]></description>
            <history>
                <event version="SE11-001-16" user="greend" date="2002-04-15">Tables modified to allow the following extensions for Breast (C50.0 - C50.9): 11,13-18,21,23-28,31,33-38.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">For site C77.8 the EOD--extension field cannot be 10 or 11.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-29">Edit is no longer skipped if year of diagnosis is 9-filled.  Instead it is skipped if year of diagnosis is blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE23-023-02" user="shearerw" date="2023-05-02" ref="69276">Update tag from N2365 to N2364. Change edit name.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF26E98_3_P5" name="EOD--Lymph Node Involv, Prim Site, ICDO3 (NAACCR)" tag="N2363" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,IF26E98_3_P1,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.codingSystemForEod != '4' || line.dateOfDiagnosisYear < '1998' || line.dateOfDiagnosisYear == null ||
   (line.histologicTypeIcdO3 == null && line.behaviorCodeIcdO3 == null) ||
   line.typeOfReportingSource == '7' || line.behaviorCodeIcdO3 == '2')
   return true

if (! (Functions.matches(line.eodLymphNodeInvolv, /^[0-9]$/)))
   return false

Integer siteNum = Functions.asInt(line.primarySite.substring(1))
Integer histNum = Functions.asInt(line.histologicTypeIcdO3)
Integer eodLymphNodesNum = Functions.asInt(line.eodLymphNodeInvolv)

List<Integer> histList = (List)((Map)Context.If26E98_3_HIST_MALIG_LN).get(histNum)
if (histList != null)
    return histList.contains(eodLymphNodesNum)

List<Integer> histSiteList = (List)((Map)((Map)Context.If26E98_3_HIST_SITE_MALIG_LN).getOrDefault(histNum, [:])).get(siteNum)
if (histSiteList != null)
   return histSiteList.contains(eodLymphNodesNum)

List<Integer> siteList = (List)((Map)Context.If26E98_3_SITE_MALIG_LN).get(siteNum)
if (siteList != null)
   return siteList.contains(eodLymphNodesNum)

return false]]></expression>
            <message>Primary Site and Malig EOD--lymph node involv 98+ ICD-O-3 conflict</message>
            <description><![CDATA[This edit is only performed if Coding System for EOD = 4, indicating that 10-digit EOD is coded and year of diagnosis after 1997.  However, the edit is skipped if any of the single field edits for Primary Site, Histologic Type ICD-O-3, Behavior Code ICD-O-3, Type of Reporting Source, or Date of Diagnosis have failed.

The edit is skipped if Morph--Type&Behav ICD-O-3 is blank.  The edit validates the Extent of Disease according to the 10-digit EOD for each site as defined in the "SEER Extent of Disease--1988:  Codes and Coding Instructions," 3rd ed., 1998.

The edit is skipped if year of diagnosis is blank.

The behavior code is checked against the extent of disease fields to verify validity (1, 2, or 3).  A behavior code of 1 is allowed because the behavior codes of some morphologies changed from 3 to 1 when converted from ICD-O-2 to ICD-O-3.)

If Death Certificate only case (Type of Reporting Source = '7') the SEER 10-digit Extent of Disease must be '999909999990' for prostate cases and '9999999999  ' for all other cases.

If Number of Regional Nodes Positive is 01-97, then Lymph Nodes must be = 1-8.  This check is not performed for the following sites and types.

Kaposi sarcoma, M-9140
Hematopoietic, M-9731-9989
Lymphomas, M-9590-9699,9702-9729
Mycosis fungoides, M-9700-9701
Brain, T-C70.0,C71._
Other CNS, T-C70.1,C70.9,C72.0-C72.5,C72.8
Other and ill-defined, T-C76.0-C76.8,C80.9,C42._,C77._

For the following sites and types, Regional Nodes Positive and Regional Nodes Examined must both be coded '99'.

Brain, T-C70.0,C71._
Other CNS, T-C70.1,C70.9,C72.0-C72.5,C72.8,C72.9
Other and ill-defined, T-C76.0-C76.5,C76.7,C76.8, C80.9,C42._,C77._
Hematopoietic, etc., M-9731-9989
Lymphomas, M-9590-9699,9702-9729

For site C77.8 the EOD--Extension[790] field cannot be 10 or 11.]]></description>
            <history>
                <event version="SE11-001-16" user="greend" date="2002-04-15">Tables modified to allow the following extensions for Breast (C50.0 - C50.9): 11,13-18,21,23-28,31,33-38.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">For site C77.8 the EOD--extension field cannot be 10 or 11.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-29">Edit is no longer skipped if year of diagnosis is 9-filled.  Instead it is skipped if year of diagnosis is blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE23-023-02" user="shearerw" date="2023-05-02" ref="69276">Update tag from N2365 to N2363. Change edit name.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF26E98_3_P6" name="EOD--Lymph Node Involv, Prim Site, ICDO3 (NAACCR)" tag="N2363" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,IF26E98_3_P1,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.codingSystemForEod != '4' || line.dateOfDiagnosisYear < '1998' || line.dateOfDiagnosisYear == null ||
     (line.histologicTypeIcdO3 == null && line.behaviorCodeIcdO3 == null) ||
      line.typeOfReportingSource == '7' || line.behaviorCodeIcdO3 != '2')
   return true

if (!(Functions.matches(line.eodLymphNodeInvolv, /^[0-9]$/)))
   return false

Integer siteNum = Functions.asInt(line.primarySite.substring(1))
Integer histNum = Functions.asInt(line.histologicTypeIcdO3)
Integer eodLymphNodesNum = Functions.asInt(line.eodLymphNodeInvolv)

List<Integer> histList = (List)((Map)Context.If26E98_3_HIST_INSITU_LN).get(histNum)
if (histList != null)
    return histList.contains(eodLymphNodesNum)

List<Integer> histSiteList = (List)((Map)((Map)Context.If26E98_3_HIST_SITE_INSITU_LN).getOrDefault(histNum, [:])).get(siteNum)
if (histSiteList != null)
   return histSiteList.contains(eodLymphNodesNum)

List<Integer> siteList = (List)((Map)Context.If26E98_3_SITE_INSITU_LN).get(siteNum)
if (siteList != null)
   return siteList.contains(eodLymphNodesNum)

return false]]></expression>
            <message>Primary Site and InSitu EOD--lymph node involv 98+ ICD-O-3 conflict</message>
            <description><![CDATA[This edit is only performed if Coding System for EOD = 4, indicating that 10-digit EOD is coded and year of diagnosis after 1997.  However, the edit is skipped if any of the single field edits for Primary Site, Histologic Type ICD-O-3, Behavior Code ICD-O-3, Type of Reporting Source, or Date of Diagnosis have failed.

The edit is skipped if Morph--Type&Behav ICD-O-3 is blank.  The edit validates the Extent of Disease according to the 10-digit EOD for each site as defined in the "SEER Extent of Disease--1988:  Codes and Coding Instructions," 3rd ed., 1998.

The edit is skipped if year of diagnosis is blank.

The behavior code is checked against the extent of disease fields to verify validity (1, 2, or 3).  A behavior code of 1 is allowed because the behavior codes of some morphologies changed from 3 to 1 when converted from ICD-O-2 to ICD-O-3.)

If Death Certificate only case (Type of Reporting Source = '7') the SEER 10-digit Extent of Disease must be '999909999990' for prostate cases and '9999999999  ' for all other cases.

If Number of Regional Nodes Positive is 01-97, then Lymph Nodes must be = 1-8.  This check is not performed for the following sites and types.

Kaposi sarcoma, M-9140
Hematopoietic, M-9731-9989
Lymphomas, M-9590-9699,9702-9729
Mycosis fungoides, M-9700-9701
Brain, T-C70.0,C71._
Other CNS, T-C70.1,C70.9,C72.0-C72.5,C72.8
Other and ill-defined, T-C76.0-C76.8,C80.9,C42._,C77._

For the following sites and types, Regional Nodes Positive and Regional Nodes Examined must both be coded '99'.

Brain, T-C70.0,C71._
Other CNS, T-C70.1,C70.9,C72.0-C72.5,C72.8,C72.9
Other and ill-defined, T-C76.0-C76.5,C76.7,C76.8, C80.9,C42._,C77._
Hematopoietic, etc., M-9731-9989
Lymphomas, M-9590-9699,9702-9729

For site C77.8 the EOD--Extension[790] field cannot be 10 or 11.]]></description>
            <history>
                <event version="SE11-001-16" user="greend" date="2002-04-15">Tables modified to allow the following extensions for Breast (C50.0 - C50.9): 11,13-18,21,23-28,31,33-38.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">For site C77.8 the EOD--extension field cannot be 10 or 11.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-29">Edit is no longer skipped if year of diagnosis is 9-filled.  Instead it is skipped if year of diagnosis is blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE23-023-02" user="shearerw" date="2023-05-02" ref="69276">Update tag from N2365 to N2363. Change edit name.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF26E98_3_P7" name="Extent of Disease 12-Digit ICDO3 (SEER IF26E98)" tag="N2365" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,IF26E98_3_P1,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.codingSystemForEod != '4' || line.dateOfDiagnosisYear < '1998' ||
      line.dateOfDiagnosisYear == null ||
     (line.histologicTypeIcdO3 == null && line.behaviorCodeIcdO3 == null) ||
      line.typeOfReportingSource == '7')
    return true

if (!(Functions.matches(line.regionalNodesPositive, /^[0-9][0-9]$/)))
    return false

Integer siteNum = Functions.asInt(line.primarySite.substring(1))
Integer histNum = Functions.asInt(line.histologicTypeIcdO3)
Integer regNodesPosNum = Functions.asInt(line.regionalNodesPositive)

if (line.behaviorCodeIcdO3 == '2') {
    List<Integer> histList = (List)((Map)Context.If26E98_3_HIST_INSITU_POS_NODES).get(histNum)
    if (histList != null)
        return histList.contains(regNodesPosNum)

    List<Integer> histSiteList = (List)((Map)((Map)Context.If26E98_3_HIST_SITE_INSITU_POS_NODES).getOrDefault(histNum, [:])).get(siteNum)
    if (histSiteList != null)
       return histSiteList.contains(regNodesPosNum)

    List<Integer> siteList = (List)((Map)Context.If26E98_3_SITE_INSITU_POS_NODES).get(siteNum)
    if (siteList != null)
       return siteList.contains(regNodesPosNum)

    return false
}
else if (line.behaviorCodeIcdO3 == '3' || line.behaviorCodeIcdO3 == '1') {
    List<Integer> histList = (List)((Map)Context.If26E98_3_HIST_MALIG_POS_NODES).get(histNum)
    if (histList != null)
        return histList.contains(regNodesPosNum)

    List<Integer> histSiteList = (List)((Map)((Map)Context.If26E98_3_HIST_SITE_MALIG_POS_NODES).getOrDefault(histNum, [:])).get(siteNum)
    if (histSiteList != null)
       return histSiteList.contains(regNodesPosNum)

    List<Integer> siteList = (List)((Map)Context.If26E98_3_SITE_MALIG_POS_NODES).get(siteNum)
    if (siteList != null)
       return siteList.contains(regNodesPosNum)

    return false
}

return true]]></expression>
            <message>Primary Site and Regional nodes positive 98+ ICD-O-3 conflict</message>
            <description><![CDATA[This edit is only performed if Coding System for EOD = 4, indicating that 10-digit EOD is coded and year of diagnosis after 1997.  However, the edit is skipped if any of the single field edits for Primary Site, Histologic Type ICD-O-3, Behavior Code ICD-O-3, Type of Reporting Source, or Date of Diagnosis have failed.

The edit is skipped if Morph--Type&Behav ICD-O-3 is blank.  The edit validates the Extent of Disease according to the 10-digit EOD for each site as defined in the "SEER Extent of Disease--1988:  Codes and Coding Instructions," 3rd ed., 1998.

The edit is skipped if year of diagnosis is blank.

The behavior code is checked against the extent of disease fields to verify validity (1, 2, or 3).  A behavior code of 1 is allowed because the behavior codes of some morphologies changed from 3 to 1 when converted from ICD-O-2 to ICD-O-3.)

If Death Certificate only case (Type of Reporting Source = '7') the SEER 10-digit Extent of Disease must be '999909999990' for prostate cases and '9999999999  ' for all other cases.

If Number of Regional Nodes Positive is 01-97, then Lymph Nodes must be = 1-8.  This check is not performed for the following sites and types.

Kaposi sarcoma, M-9140
Hematopoietic, M-9731-9989
Lymphomas, M-9590-9699,9702-9729
Mycosis fungoides, M-9700-9701
Brain, T-C70.0,C71._
Other CNS, T-C70.1,C70.9,C72.0-C72.5,C72.8
Other and ill-defined, T-C76.0-C76.8,C80.9,C42._,C77._

For the following sites and types, Regional Nodes Positive and Regional Nodes Examined must both be coded '99'.

Brain, T-C70.0,C71._
Other CNS, T-C70.1,C70.9,C72.0-C72.5,C72.8,C72.9
Other and ill-defined, T-C76.0-C76.5,C76.7,C76.8, C80.9,C42._,C77._
Hematopoietic, etc., M-9731-9989
Lymphomas, M-9590-9699,9702-9729

For site C77.8 the EOD--Extension[790] field cannot be 10 or 11.]]></description>
            <history>
                <event version="SE11-001-16" user="greend" date="2002-04-15">Tables modified to allow the following extensions for Breast (C50.0 - C50.9): 11,13-18,21,23-28,31,33-38.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">For site C77.8 the EOD--extension field cannot be 10 or 11.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-29">Edit is no longer skipped if year of diagnosis is 9-filled.  Instead it is skipped if year of diagnosis is blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF26E98_3_P8" name="Extent of Disease 12-Digit ICDO3 (SEER IF26E98)" tag="N2365" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,IF26E98_3_P1,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.codingSystemForEod != '4' || line.dateOfDiagnosisYear < '1998' || line.dateOfDiagnosisYear == null
        || (line.histologicTypeIcdO3 == null && line.behaviorCodeIcdO3 == null) || line.typeOfReportingSource == '7')
    return true

if (! (Functions.matches(line.regionalNodesExamined, /^[0-9][0-9]$/)))
    return false

Integer siteNum = Functions.asInt(line.primarySite.substring(1))
Integer histNum = Functions.asInt(line.histologicTypeIcdO3)
Integer regNodesExNum = Functions.asInt(line.regionalNodesExamined)

if (line.behaviorCodeIcdO3 == '2') {
    List<Integer> histList = (List)((Map)Context.If26E98_3_HIST_INSITU_REG_EXAM).get(histNum)
    if (histList != null)
        return histList.contains(regNodesExNum)

    List<Integer> histSiteList = (List)((Map)((Map)Context.If26E98_3_HIST_SITE_INSITU_REG_EXAM).getOrDefault(histNum, [:])).get(siteNum)
    if (histSiteList != null)
       return histSiteList.contains(regNodesExNum)

    List<Integer> siteList = (List)((Map)Context.If26E98_3_SITE_INSITU_REG_EXAM).get(siteNum)
    if (siteList != null)
       return siteList.contains(regNodesExNum)

    return false
}
else if (line.behaviorCodeIcdO3 == '3' || line.behaviorCodeIcdO3 == '1') {
    List<Integer> histList = (List)((Map)Context.If26E98_3_HIST_MALIG_REG_EXAM).get(histNum)
    if (histList != null)
        return histList.contains(regNodesExNum)

    List<Integer> histSiteList = (List)((Map)((Map)Context.If26E98_3_HIST_SITE_MALIG_REG_EXAM).getOrDefault(histNum, [:])).get(siteNum)
    if (histSiteList != null)
       return histSiteList.contains(regNodesExNum)

    List<Integer> siteList = (List)((Map)Context.If26E98_3_SITE_MALIG_REG_EXAM).get(siteNum)
    if (siteList != null)
       return siteList.contains(regNodesExNum)

    return false
}

return true]]></expression>
            <message>Primary Site and Regional nodes examined 98+ ICD-O-3 conflict</message>
            <description><![CDATA[This edit is only performed if Coding System for EOD = 4, indicating that 10-digit EOD is coded and year of diagnosis after 1997.  However, the edit is skipped if any of the single field edits for Primary Site, Histologic Type ICD-O-3, Behavior Code ICD-O-3, Type of Reporting Source, or Date of Diagnosis have failed.

The edit is skipped if Morph--Type&Behav ICD-O-3 is blank.  The edit validates the Extent of Disease according to the 10-digit EOD for each site as defined in the "SEER Extent of Disease--1988:  Codes and Coding Instructions," 3rd ed., 1998.

The edit is skipped if year of diagnosis is blank.

The behavior code is checked against the extent of disease fields to verify validity (1, 2, or 3).  A behavior code of 1 is allowed because the behavior codes of some morphologies changed from 3 to 1 when converted from ICD-O-2 to ICD-O-3.)

If Death Certificate only case (Type of Reporting Source = '7') the SEER 10-digit Extent of Disease must be '999909999990' for prostate cases and '9999999999  ' for all other cases.

If Number of Regional Nodes Positive is 01-97, then Lymph Nodes must be = 1-8.  This check is not performed for the following sites and types.

Kaposi sarcoma, M-9140
Hematopoietic, M-9731-9989
Lymphomas, M-9590-9699,9702-9729
Mycosis fungoides, M-9700-9701
Brain, T-C70.0,C71._
Other CNS, T-C70.1,C70.9,C72.0-C72.5,C72.8
Other and ill-defined, T-C76.0-C76.8,C80.9,C42._,C77._

For the following sites and types, Regional Nodes Positive and Regional Nodes Examined must both be coded '99'.

Brain, T-C70.0,C71._
Other CNS, T-C70.1,C70.9,C72.0-C72.5,C72.8,C72.9
Other and ill-defined, T-C76.0-C76.5,C76.7,C76.8, C80.9,C42._,C77._
Hematopoietic, etc., M-9731-9989
Lymphomas, M-9590-9699,9702-9729

For site C77.8 the EOD--Extension[790] field cannot be 10 or 11.]]></description>
            <history>
                <event version="SE11-001-16" user="greend" date="2002-04-15">Tables modified to allow the following extensions for Breast (C50.0 - C50.9): 11,13-18,21,23-28,31,33-38.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">For site C77.8 the EOD--extension field cannot be 10 or 11.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-29">Edit is no longer skipped if year of diagnosis is 9-filled.  Instead it is skipped if year of diagnosis is blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF26E98_3_P9" name="EOD--Reg Nodes Ex,ReNodes Pos, Site, ICDO3 (NAACCR)" tag="N0461" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,IF26E98_3_P1,IF26E98_3_P7,IF26E98_3_P8,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '1998' || line.dateOfDiagnosisYear > '2003' || line.histologicTypeIcdO3 == null ||
            line.behaviorCodeIcdO3 == null || line.typeOfReportingSource == '7' || (line.registryId == '0000001544' && line.dateOfDiagnosisYear < '2000'))
    return true

if (Functions.matches(line.histologicTypeIcdO3, /^9(59\d|6\d\d|7(0[2-9]|[12]\d|3[1-4]|4\d|5[0-8]|[6789]\d)|8\d\d|9[0-8]\d)$/) &&
    !(line.regionalNodesPositive == '99' && line.regionalNodesExamined == '99'))
    return false

if (Functions.matches(line.primarySite, /^C(42\d|7(0[019]|1\d|2[0-589]|6[0-578]|7\d)|809)$/) && line.histologicTypeIcdO3 != '9140' &&
    !(line.regionalNodesPositive == '99' && line.regionalNodesExamined == '99'))
    return false

if (line.behaviorCodeIcdO3 == '2' && !(line.regionalNodesPositive == '00' || line.regionalNodesPositive == '98'))
    return false

if (line.regionalNodesExamined == '00' && line.regionalNodesPositive != '98')
    return false
if (Functions.matches(line.regionalNodesExamined, /^0[1-9]|[1-8]\d$/) &&
    !(line.regionalNodesPositive == '97' || line.regionalNodesPositive == '99' || line.regionalNodesPositive <= line.regionalNodesExamined))
    return false
if (Functions.matches(line.regionalNodesExamined, /^9[0678]$/) && !(Functions.matches(line.regionalNodesPositive, /^[0-8]\d|9[079]$/)))
    return false
if (line.regionalNodesExamined == '99' && line.regionalNodesPositive != '99')
    return false

if (line.regionalNodesPositive == '97' && !Functions.matches(line.regionalNodesExamined, /^0[2-9]|[1-8]\d|9[0-8]$/))
    return false
if (Functions.matches(line.regionalNodesPositive, /^[0-8]\d|9[0-6]$/) && line.regionalNodesPositive > line.regionalNodesExamined)
    return false
return true]]></expression>
            <message>Primary Site,Regional nodes positive, Regional nodes examined 98+ ICD-O-3 conflict</message>
            <description><![CDATA[This is edit is skipped if any of the following conditions are true
1) Year of Diagnosis < 1998 or > 2003 or invalid or blank
2) ICDO3 Histology is blank
3) ICDO3 Behavior is blank
4) Type of Reporting source = 7 (DCO)
5) Registry is New Jersey and Year of Diagnosis < 2000


For the following sites and histologies (ICD-O-3), Regional Nodes Positive and Regional Nodes Examined must both be coded '99'.

1. Hematopoietic: 9731-9734, 9740-9758, 9760-9989

2. Lymphomas: 9590-9699, 9702-9729

3. Brain (except for histology 9140 (Kaposi sarcoma)):
C700, C710-C719

4. Other CNS (except for histology 9140 (Kaposi sarcoma)):
C701, C709, C720-C725, C728, C729

5. Other and ill-defined (except for histology 9140 (Kaposi sarcoma)):
C420-C429, C760-C765, C767, C768, C770-C779, C809

If ICDO3 Behavior = 2 then, Regional Nodes Positive must be 00 or 98.

If Regional Nodes Examined = 00 , Regional Nodes Positive must = 98.

If Regional Nodes Examined = 01 - 89, Regional Nodes Positive must = 97 or 99, or be less than or equal to Regional Nodes Examined.

If Regional Nodes Examined = 90, 96, 97, or 98, Regional Nodes Positive must = 00 - 90, 97, or 99.

If Regional Nodes Examined = 99, then Regional Nodes Positive must = 99.

If Regional Nodes Positive = 97 then Regional Nodes Examined but be 02-98.

If Regional Nodes Positive = 0-96, then Regional Nodes Positive must be <= Regional Nodes Examined.]]></description>
            <history>
                <event version="SE11-001-16" user="greend" date="2002-04-15">Tables modified to allow the following extensions for Breast (C50.0 - C50.9): 11,13-18,21,23-28,31,33-38.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">For site C77.8 the EOD--extension field cannot be 10 or 11.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-29">Edit is no longer skipped if year of diagnosis is 9-filled.  Instead it is skipped if year of diagnosis is blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-19" ref="68229">Updated logic and behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit tag changed.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF26NSPC_P1" name="EOD--Old 2 digit, Morphology (SEER IF26NSPC)" tag="N0319" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.codingSystemForEod != '0')
    return true

return (Functions.matches(line.eodOld2Digit, /^[-&0456789][-]$/))]]></expression>
            <message>EOD--Old 2 digit NSPC and Primary Site conflict</message>
            <description><![CDATA[For cases coded using the SEER Nonspecific Extent of Disease coding scheme (Coding System for Extent of Disease = 0), this edit validates the Extent of Disease according to the Nonspecific EOD codes allowable for each Primary Site/Morphology as defined in the Extent of Disease - Codes and Coding Instructions Manual (1977).

If an in situ (Behavior 2), the Extent of Disease code must also indicate in situ (0-).  Similarly if the case is invasive (Behavior = 3), the extent of disease may not specify in situ (0-).]]></description>
            <history>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topography and morphology code from ICD-O-1 to ICD-O-2.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF26NSPC_P2" name="EOD--Old 2 digit, Morphology (SEER IF26NSPC)" tag="N0319" java-path="lines.line" category="inter-field" depends="IF26NSPC_P1">
            <expression><![CDATA[if (line.codingSystemForEod != '0')
   return true

if (line.behaviorCodeIcdO3 == '2')
   return line.eodOld2Digit == '0-'

if (line.behaviorCodeIcdO3 == '3')
   return line.eodOld2Digit != '0-'
return true]]></expression>
            <message>In Situ Behavior and EOD--Old 2 digit NSPC conflict</message>
            <description><![CDATA[For cases coded using the SEER Nonspecific Extent of Disease coding scheme (Coding System for Extent of Disease = 0), this edit validates the Extent of Disease according to the Nonspecific EOD codes allowable for each Primary Site/Morphology as defined in the Extent of Disease - Codes and Coding Instructions Manual (1977).

If an in situ (Behavior = 2), the Extent of Disease code must also indicate in situ (0-).  Similarly if the case is invasive (Behavior = 3), the extent of disease may not specify in situ (0-).]]></description>
            <history>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topography and morphology code from ICD-O-1 to ICD-O-2.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="cooki" date="2024-07-18" ref="69509">Deleted deprecated dependency.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Switch from ICD-O-2 to ICD-O-3.</event>
            </history>
        </rule>
        <rule id="IF29" name="RX Summ--Surgery Type, Site, RptSrc (SEER IF29)" tag="N0226" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Surgery_Type,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null
        || (line.registryId == '0000001544' && line.dateOfDiagnosisYear < '2000') || (line.registryId == '0000001541' && line.dateOfDiagnosisYear < '1998'))
    return true

if (line.registryId == '0000001562' || line.registryId == '0000001563')
    return true

if (line.dateOfDiagnosisYear < '1998' && line.typeOfReportingSource == '6')
    return line.rxSummSurgeryType == '00'

if (line.dateOfDiagnosisYear < '1998' && line.typeOfReportingSource == '7')
    return line.rxSummSurgeryType == '09'

if (line.dateOfDiagnosisYear > '1997')
    return line.rxSummSurgeryType == null

Integer siteNum = Functions.asInt(line.primarySite.substring(1))

if (siteNum < 0 || line.rxSummSurgeryType == null || line.rxSummSurgeryType < '00' || line.rxSummSurgeryType > '99')
    return false

if (Functions.between(siteNum,540,549) && line.dateOfDiagnosisYear > '1989' && line.rxSummSurgeryType == '35')
    return true

if (Functions.between(siteNum,530,539) && ((line.dateOfDiagnosisYear > '1989' && line.rxSummSurgeryType == '35')
        || (line.dateOfDiagnosisYear > '1990' && line.rxSummSurgeryType == '17')))
    return true

if (Functions.between(siteNum,440,449) && (line.histologicTypeIcdO3 < '8720' || line.histologicTypeIcdO3 > '8790')
        && line.dateOfDiagnosisYear < '1988' && line.registryId != '0000001529' && line.rxSummSurgeryType != '09' && line.rxSummSurgeryType != '90')
    return false

if (Functions.between(siteNum,530,539) && line.dateOfDiagnosisYear > '1987' && line.rxSummSurgeryType == '15' && line.behaviorCodeIcdO3 != '2')
    return false

Integer surgType = Functions.asInt(line.rxSummSurgeryType)

if (Functions.between(siteNum,500,509) && line.behaviorCodeIcdO3 == '2')
    return ((List)((Map)Context.IF29_Post1987).getOrDefault(siteNum, [])).contains(surgType)

if (Functions.between(siteNum,700,729) && line.dateOfDiagnosisYear >= '1992' && line.dateOfDiagnosisYear <= '1997' &&
       (line.rxSummSurgeryType == '35' || line.rxSummSurgeryType == '55'))
    return false

if (line.dateOfDiagnosisYear < '1983')
    return line.rxSummSurgeryType == '09' || line.rxSummSurgeryType == '90'

if (line.dateOfDiagnosisYear < '1988' && line.registryId != '0000001529')
    return ((List)((Map)Context.IF29_Pre1988).getOrDefault(siteNum, [])).contains(surgType)

return ((List)((Map)Context.IF29_Post1987).getOrDefault(siteNum, [])).contains(surgType)]]></expression>
            <message>RX Summ--Surgery Type and Primary Site conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions is true:

    1.  Year of Date of Diagnosis is blank.
    2.  Year of Date of Diagnosis is less than 2000 and Registry ID =
        0000001544 (New Jersey)).
    3.  Year of Date of Diagnosis is less than 1998 and Registry ID =
        0000001541 (California, except LA, SF-Oak, and San Jose/Montery).
    4.  Registry ID[40] = 0000001562 (New York) or 0000001563 (Massachusetts)

If year of Date of Diagnosis is less than 1998 and Type of Reporting Source equals 6 (autopsy only), then RX Summ--Surgery Type must equal 00.

If year of Date of Diagnosis is less than 1998 and Type of Reporting Source equals 7 (death certificate only), then RX Summ--Surgery Type must equal 09.

If year of Date of Diagnosis is greater than 1997, then RX Summ--Surgery Type must be blank.

If Primary Site = Brain and CNS (C700-C729) and Year of Diagnosis 1992-1997, then RX summ--Surgery Type must NOT be 35 or 55.

The valid RX Summ--Surgery Type codes for each Primary Site and time period are specified under in Appendix D of the SEER Program Code Manual,3rd Edition. The Date of Diagnosis is used to discriminate among changes to the codes over time.

NOTE:  The SEER Alaska registry follows the 1988+ coding rules regardless of diagnosis year.]]></description>
            <history>
                <event version="SE11-001-02" user="greend" date="1986-03-01">Add genital skin sites to pre-1983 site groupings.  Add site 887 as site to be edited in cases diagnosed 1983 and after.</event>
                <event version="SE11-001-04" user="greend" date="1988-05-25">Additional codes made valid due to 1988 SEER record changes.</event>
                <event version="SE11-001-04" user="greend" date="1988-11-01">Corrected code to allow for an &apos;8&apos; in 2nd digit of certain site-specific codes.</event>
                <event version="SE11-001-05" user="greend" date="1989-07-10">Two new categories added:  (1) BONE AND CONNECTIVE AND OTHER SOFT TISSUE (2) LYMPH NODES AND SPLEEN.  Site-specific surgery code &apos;15&apos; valid under site 800-809 (in situ only).  Site-specific surgery code &apos;55&apos; valid under &quot;All other sites&quot; category.</event>
                <event version="SE11-001-07" user="greend" date="1991-01-15">Added code &apos;35&apos; for Cervix Uteri (800-809) and Corpus Uteri (820-828).</event>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of morphology and topography codes from ICD-O-1 to ICD-O-2.  For cases diagnosed after 12/31/89, site-specific surgery code &apos;35&apos; is valid for sites C530-C539, C540-C549.  For cases diagnosed after 12/31/90, site-specific surgery code &apos;17&apos; is valid for sites C530-C539.</event>
                <event version="SE11-001-10" user="greend" date="1994-07-01">All cases diagnosed before 1983 must be coded 09,90.  Breast in situ cases will be coded using the 1988 coding scheme for all diagnosis years.</event>
                <event version="SE11-001-14" user="greend" date="1998-07-01">All cases diagnosed 1998+ must be blank.</event>
                <event version="SE11-001-16" user="greend" date="2002-10-07">Edit skipped for cases diagnosed before 1998 from California.</event>
                <event version="SE11-001-18" user="greend" date="2004-12-21">Edit modified to skip New Jersey cases diagnosed prior to 2000.</event>
                <event version="SE11-001-19" user="greend" date="2005-06-20">Edit is skipped if year of diagnosis is blank or 9999.</event>
                <event version="SE11-001-20" user="greend" date="2006-07-12">The following logic checks were added to the edit:
            If reporting source = 6 then surgery type must be 00.
            If reporting source = 7 then surgery type must be 09.</event>
                <event version="SE11-001-21" user="greend" date="2007-08-08">Modified to run for all years.</event>
                <event version="SE11-001-22" user="greend" date="2008-03-20">RX summ--surgery type codes of 35 and 55 are NOT valid for Brain and CNS (C700-C729) for years of diagnosis 1992 to 1997.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-03">Changed condition 1 to not recognize 9 filled year of diagnosis.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-12" user="kirbyk" date="2019-01-29" ref="68093">Edit is skipped for registries MA and NY.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE24-024-06" user="cooki" date="2024-07-18" ref="69509">Deleted deprecated dependency.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Switch from ICD-O-2 to ICD-O-3.</event>
            </history>
        </rule>
        <rule id="IF31_3" name="Diagnostic Confirmation, Behavior ICDO3 (SEER IF31)" tag="N0471" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.overRideHistology == '2' || line.overRideHistology == '3' ||
    line.behaviorCodeIcdO3 != '2' || line.dateOfDiagnosisYear == null)
   return true

if (line.histologicTypeIcdO3 == '8453' && line.dateOfDiagnosisYear >= '2024')
    return true

return line.diagnosticConfirmation ==~/^[124]$/]]></expression>
            <message>Diagnostic Confirmation and Behavior ICD-O-3 conflict</message>
            <description><![CDATA[This edit is skippped if Over-ride histology[2040] = 2 or 3 (review complete).

This edit is skipped for diagnosis date blank (unknown) or invalid.
This edit is skipped for 8453/2, diagnosis 2024+.

If Behavior Code ICD-O-3[523] = 2 (in situ), Diagnostic Confirmation[490] must be 1,2 or 4 (microscopic confirmation).]]></description>
            <history>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-03-07" ref="69394">Add skip conditions.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-16" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF33" name="Date of Diagnosis, EOD Coding Sys, EOD (SEER IF33)" tag="N2041" java-path="lines.line" category="inter-field" depends="IF2613DG_P2,IF262DIG_P2,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.dateOfDiagnosisYear < '1992' && line.registryId == '0000001535')
         || (line.registryId == '0000001544' && (line.dateOfDiagnosisYear == '1998' || line.dateOfDiagnosisYear == '1999') && line.codingSystemForEod == null))
    return true

if (line.registryId == '0000001541' && line.dateOfDiagnosisYear < '1994')
    return true

if (['0000001563', '0000001565', '0000001566'].contains(line.registryId))
    return true

if ((line.registryId == '0000001544' && line.dateOfDiagnosisYear < '1998') ||
    line.registryId == '0000001561' || line.registryId == '0000001562')
    return line.codingSystemForEod == null

if (line.dateOfDiagnosisYear < '1983') {
    if (line.codingSystemForEod == '0') {
        return (Functions.matches(line.eodOld2Digit, /^[-&04-9][-]$/) &&
         line.eodOld4Digit == null && line.eodOld13Digit == null &&
         line.eodTumorSize == null && line.eodExtension == null &&
         line.eodLymphNodeInvolv == null && line.regionalNodesPositive == null &&
         line.regionalNodesExamined == null && line.eodExtensionProstPath == null)
    }
    if (line.codingSystemForEod == '1') {
        return (line.eodOld4Digit == null && line.eodOld13Digit == null
             && line.eodTumorSize == null && line.eodExtension == null
             && line.eodLymphNodeInvolv == null && line.regionalNodesPositive == null
             && line.regionalNodesExamined == null && line.eodExtensionProstPath == null
             && Functions.matches(line.eodOld2Digit, /^[-&0-9][-&0-9]$/))
    }
    if (line.codingSystemForEod == '2' &&
       line.eodOld4Digit == null && line.eodOld2Digit == null &&
       line.eodTumorSize == null && line.eodExtension == null &&
       line.eodLymphNodeInvolv == null && line.regionalNodesPositive == null &&
       line.regionalNodesExamined == null && line.eodExtensionProstPath == null) {
        return Functions.matches(line.eodOld13Digit, /^[-&0-9]{13}$/)
   }
   return false
}

String eodOld4DigitNodes = null, eodOld4DigitSize = null, eodOld4DigitExtent = null
if (line.eodOld4Digit != null && line.eodOld4Digit.length() > 3)
    eodOld4DigitNodes = line.eodOld4Digit.substring(3, 4)
if (line.eodOld4Digit != null && line.eodOld4Digit.length() > 1)
    eodOld4DigitSize = line.eodOld4Digit.substring(0, 2)
if (line.eodOld4Digit != null && line.eodOld4Digit.length() > 2)
    eodOld4DigitExtent = line.eodOld4Digit.substring(2, 3)

if (line.dateOfDiagnosisYear > '1982' && line.dateOfDiagnosisYear < '1988' &&
    line.registryId != '0000001529') {
    if (line.codingSystemForEod == '3') {
       return (eodOld4DigitSize != null && eodOld4DigitExtent != null && eodOld4DigitNodes != null &&
          eodOld4DigitSize >= '00' && eodOld4DigitSize <= '99' &&
          eodOld4DigitExtent >= '0' && eodOld4DigitExtent <= '9' &&
          eodOld4DigitNodes >= '0' && eodOld4DigitNodes <= '9' &&
          line.eodOld2Digit == null && line.eodOld13Digit == null &&
          line.eodTumorSize == null && line.eodExtension == null &&
          line.eodLymphNodeInvolv == null && line.regionalNodesPositive == null &&
          line.regionalNodesExamined == null && line.eodExtensionProstPath == null)
    }
    return false
}
if ((line.dateOfDiagnosisYear >= '1988' && line.dateOfDiagnosisYear <= '2003') ||
     (line.registryId == '0000001529' && line.dateOfDiagnosisYear <= '2003')) {
    if (line.codingSystemForEod == '4')
        return (line.eodOld4Digit == null &&
          line.eodOld2Digit == null && line.eodOld13Digit == null &&
          line.eodTumorSize != null && line.eodExtension != null && line.eodLymphNodeInvolv != null &&
          line.regionalNodesPositive != null && line.regionalNodesExamined != null &&
          line.eodTumorSize >= '000' && line.eodTumorSize <= '999' &&
          line.eodExtension >= '00' && line.eodExtension <= '99' &&
          line.eodLymphNodeInvolv >= '0' && line.eodLymphNodeInvolv <= '9' &&
          line.regionalNodesPositive >= '00' && line.regionalNodesPositive <= '99' &&
          line.regionalNodesExamined >= '00' && line.regionalNodesExamined <= '99')
     return false
}
if (line.dateOfDiagnosisYear > '2003') {
   return (line.codingSystemForEod == null &&
      line.eodTumorSize == null && line.eodExtension == null && line.eodLymphNodeInvolv == null &&
      line.eodExtensionProstPath == null && line.eodOld4Digit == null &&
      line.eodOld2Digit == null && line.eodOld13Digit == null)
}
return true]]></expression>
            <message>Year of Diagnosis, Coding System for EOD, EOD fields conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1) Year of diagnosis is blank.
  2) Registry ID = 0000001544 (New Jersey), Year of Diagnosis is
     1998 or 1999 and Coding System for EOD is blank
  3) Registry ID = 0000001535 (Los Angeles) and Year of Diagnosis < 1992.
  4) Registry ID = 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)
  5) Registry ID = 0000001541 (Greater CA) and Year of Diagnosis < 1994.

Registry ID = 0000001544 (New Jersey) and Year of Diagnosis is < 1998 then Coding System for EOD must be blank.

If Registry ID = 0000001561 (Idaho) or 0000001562 (New York), then Coding System for EOD must be blank.

For Date of Diagnosis less than 1983:

    If either the SEER Nonspecific or Two-digit Site-specific Extent
    of Disease coding schemes (Coding System for Extent of Disease
    is '0' or '1') are used,the Expanded 13-digit Site-specific,
    SEER 4-digit, and SEER 10-digit Extent of Disease fields must
    be blank.

    If the SEER Expanded 13-digit Site-specific Extent of Disease
    (Coding System for Extent of Disease is '2') is used and the
    Nonspecific/Two-digit Site-specific, SEER 4-digit, and SEER
    10-digit Extent of Disease fields must be blank.

For Date of Diagnosis from 1983 to 1987 and Registry ID is not = 0000001529 (Alaska Native
Registry),the Coding System for EOD must be `3', the EOD--
Old 4 digit must be numeric and the EOD--Old 2 digit, EOD--Old
13 digit, SEER 12-digit Extent of Disease fields must be blank.

For Date of Diagnosis from 1988 to 2003, the SEER 10-digit Extent of Disease (Coding System for
Extent of Disease is '4') must be numeric and the Nonspecific/Two-digit Site-specific, Expanded
13-digit Site-specific, and SEER 4-digit Extent of Disease fields must be blank.

For Date of Diagnosis greater than 2003, the following fields must be blank:

    Coding System for EOD
    EOD--Old 2 Digit
    EOD-Old 13 Digit
    EOD--Old 4 Digit
    EOD--Tumor Size
    EOD--Extension
    EOD--Lymph Node Involv
    EOD--Extension Prost Path]]></description>
            <history>
                <event version="SE11-001-04" user="greend" date="1988-07-07">Code modified to include EOD10 coding scheme.</event>
                <event version="SE11-001-12" user="greend" date="1996-02-09">Program modified to not edit Los Angeles cases before 1992.</event>
                <event version="SE11-001-17" user="greend" date="2003-01-30">Updated to correctly flag 1988+ cases with an EOD scheme other than &apos;4&apos;.</event>
                <event version="SE11-001-17" user="greend" date="2003-09-22">Modified edit to verify that only New Jersey and Kentucky cases diagnosed before 2000 contain a blank value for Coding System for EOD[870].</event>
                <event version="SE11-001-18" user="greend" date="2004-06-02">Edit now forces EOD fields to be blank for cases diagnosed after 2003 with the exception of Regional nodes positive[820] and Regional nodes examined[830].</event>
                <event version="SE11-001-18" user="greend" date="2004-12-28">Edit modified to check for blanks in the CS fields prior to 2004 and to require non-blanks in the CS fields for 2004+ cases.</event>
                <event version="SE11-001-19" user="greend" date="2005-07-08">All references to the CS items was removed from the edit.  Those checks will be performed in a different edit.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-17">Edit no longer skipped for 9-filled dates.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-28">Changed code to better refelct documentation.  The 13-digit EOD cannot be blank if the EOD Coding system is coded to 2.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-26" ref="67744">Remove Kentucky specific logic.</event>
                <event version="SE18-018-07" user="kirbyk" date="2018-10-09" ref="68041">Added back Kentucky specific logic.</event>
                <event version="SE18-018-10" user="kirbyk" date="2018-12-06" ref="68070">Removed Kentucky-specific logic, added logic for Idaho and New York.</event>
                <event version="SE18-018-12" user="kirbyk" date="2019-01-28" ref="68092">Edit now skipped for Massachusetts.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-07-27" ref="68443">Replaced EOD--Old 4 Digit sub-fields with the parent field.</event>
                <event version="SE21-021-07" user="kirbyk" date="2021-07-20" ref="68693">Edit now skipped for IL and TX.</event>
                <event version="SE23-023-09" user="beverung" date="2023-11-13" ref="69320">Added skip condition for Greater CA for DX Year &lt; 1994</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF34" name="Date Initial RX SEER, Ca Dir RX Pre-98 (SEER IF34)" tag="N0894" java-path="lines.line" category="inter-field" depends="Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[Integer iDxYear = Functions.asInt(line.dateOfDiagnosisYear)

if (line.registryId == '0000001544' || line.registryId == '0000001541' || iDxYear == null ||  iDxYear >= 1998)
   return true

Boolean radToCnsNoUnk = line.rxSummRadToCns ==~/^[0789]$/
Boolean radToCnsYes = line.rxSummRadToCns == '1'
Boolean dateHasValue = (line.dateInitialRxSeerYear != null || line.dateInitialRxSeerMonth != null || line.dateInitialRxSeerDay != null)
Boolean rxSummBrmNoUnk = Functions.matches(line.rxSummBrm, /^(00|8[25-8]||99)$/)
Boolean rxSummBrmYes = line.rxSummBrm == '01'
Boolean rxSummRadNoUnk = Functions.matches(line.rxSummRadiation, /^[0789]$/)
Boolean rxSummRadYes = Functions.matches(line.rxSummRadiation, /^[1-6]$/)
Boolean rxSummSurgRadSeqNoUnk = line.rxSummSurgRadSeq == '0'
Boolean rxSummSurgRadSeqYes = Functions.matches(line.rxSummSurgRadSeq, /^[2-9]$/)
Boolean rxSummChemoNoUnk = Functions.matches(line.rxSummChemo, /^(00|8[25-8]|99)$/)
Boolean rxSummChemoYes = Functions.matches(line.rxSummChemo, /^0[123]$/)
Boolean rxSummHormoneNoUnk = Functions.matches(line.rxSummHormone, /^(00|8[25-8]|99)$/)
Boolean rxSummHormoneYes = line.rxSummHormone == '01'
Boolean rxSummOtherNoUnk = Functions.matches(line.rxSummOther, /^[0789]$/)
Boolean rxSummOtherYes = Functions.matches(line.rxSummOther, /^[1236]$/)
Boolean rxSummTransplntEndocrNoUnk = Functions.matches(line.rxSummTransplntEndocr, /^(00|8[25-8]|99)$/)
Boolean rxSummTransplntEndocrYes = Functions.matches(line.rxSummTransplntEndocr, /^1[012]|[234]0$/)
Boolean primSiteHistCheck = (Functions.matches(line.primarySite, /^C34\d$/) || Functions.between(line.histologicTypeIcdO3, '9800', '9941'))

if (iDxYear < 1988 && line.registryId != '0000001529') {
    if(dateHasValue &&
        (line.rxSummSurgeryType == '00' || (line.rxSummSurgeryType == '09' && line.reasonForNoSurgery ==~/^[68]$/) || (line.rxSummSurgeryType == '09' && line.reasonForNoSurgery == '9'))
        && rxSummRadNoUnk && rxSummSurgRadSeqNoUnk
        && rxSummChemoNoUnk && rxSummHormoneNoUnk
        && rxSummBrmNoUnk && rxSummOtherNoUnk
        && rxSummTransplntEndocrNoUnk) {
        return false
    }
    else if (dateHasValue &&
        (line.rxSummSurgeryType != null && Functions.matches(line.rxSummSurgeryType, /^([1-8]\d|9[0-8])$/))
        || line.reasonForNoSurgery == '0' || rxSummRadYes
        || rxSummSurgRadSeqYes || rxSummChemoYes
        || rxSummHormoneYes || rxSummBrmYes || rxSummOtherYes
        || rxSummTransplntEndocrYes) {
       return true
    }
}
else {
    if(dateHasValue &&
        ((line.rxSummSurgeryType != null && Functions.between(line.rxSummSurgeryType, '00', '09'))
        && Functions.matches(line.reasonForNoSurgery, /^[1-8]$/) || (line.rxSummSurgeryType == '09' && line.reasonForNoSurgery == '9'))
        && rxSummRadNoUnk && rxSummSurgRadSeqNoUnk
        && rxSummChemoNoUnk && rxSummHormoneNoUnk
        && rxSummBrmNoUnk && rxSummOtherNoUnk
        && rxSummTransplntEndocrNoUnk
        && ((!(primSiteHistCheck)) || radToCnsNoUnk)) {
        return false
    }
    else if (dateHasValue &&
        (line.rxSummSurgeryType != null && Functions.matches(line.rxSummSurgeryType, /^([1-8]\d|9[0-8])$/))
        || line.reasonForNoSurgery == '0' || rxSummRadYes
        || rxSummSurgRadSeqYes || rxSummChemoYes
        || rxSummHormoneYes || rxSummBrmYes || rxSummOtherYes
        || rxSummTransplntEndocrYes || (primSiteHistCheck && radToCnsYes)) {
        return true
    }
}

return true]]></expression>
            <message>Date of Init RX--SEER, Cancer-Directed Therapy pre-1998 conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
   1)  Year of Diagnosed is blank or 1998+
   2)  Registry is New Jersey or Greater California.
   3)  Inter-Field edit flag "Date of Initial RX--SEER is not valid." has been triggered

The purpose of this edit is to ensure that when a known Date Therapy Initiated is reported. When it is unknown if any cancer-directed therapy was performed, the Date Therapy Initiated is unknown (blank).

The following table specifies the values for each treatment field for known to have not been performed (NO), for known to have been performed (YES), and unknown if performed (UNK).

If all treatment fields specify NO or UNKNOWN Date Initial RX SEER must specify no therapy performed (Date Initial RX SEER is blank).
If Date Initial RX SEER is a known date (not blank), then at least ONE treatment field must indicate YES.

==========================================================================
RX Summ--Surgery Type

surgery not performed(NO)
    For cases < 1988
      Surgery Type = 00 OR
      Surgery Type = 09 and Reason No Surgery = 6,8
    For cases 1988+
      Surgery Type = 00-09 and Reason No Surgery = 1-8

surgery performed(YES)
    For all years
      Surgery Type = 10-98 or Reason No Surgery = 0

surgery unknown(UNK)
    For all years
      Surgery Type = 09 and Reason No Surgery = 9
==========================================================================
RX Summ--Radiation

  NO:      0,7,8
  YES:     1-6
  UNKNOWN: 9
==========================================================================
RX Summ--Rad to CNS

For cases diagnosed < 1988 or cases diagnosed 1988-1997 and
Primary site is not C340-C349 and histology is not 9800-9941 this
field should be coded 9.

     For cases diagnosed 1988-1997 and primary site = C340-C349 or
     histology 9800-9941
       NO:   0,7,8
       YES:  1
       UNK:  9

==========================================================================
RX Summ--Surg/Rad Seq

  NO:        0
  YES:       2-9
  UNK:       0
==========================================================================
RX Summ--Chemo

  NO:      0,82,85,86,87,88
  YES:     1-3
  UNKNOWN: 99
==========================================================================
RX Summ--Hormone

  NO:      0,82,85,86,87,88
  YES:     1
  UNKNOWN: 99
==========================================================================
RX Summ--BRM

  NO:      0,82,85,86,87,88
  YES:     1
  UNKNOWN: 99
==========================================================================
RX Summ--Other

  NO:      0,7,8
  YES:     1,2,3,6
  UNK:     9
==========================================================================
RX Summ--Transplant/Endocr

  NO:      0,82,85,86,87,88
  YES:     10-12,20,30,40
  UNK:     99]]></description>
            <history>
                <event version="SE11-001-04" user="greend" date="1988-05-25">Additional codes made valid due to 1988 SEER record changes.  Date of diagnosis, primary site, and morphology codes now used.</event>
                <event version="SE11-001-05" user="greend" date="1989-11-15">Histology codes 9867 and 9868 were included in the leukemia category.</event>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of morphology and topography codes from ICD-O-1 to ICD-O-2.</event>
                <event version="SE11-001-08" user="greend" date="1992-07-15">The date of therapy is now allowed to be 9 filled when therapy is given.  The combination of site-specific surgery = 09 and reason no cancer-directed therapy not equal to 9 is now considered Therapy know not to have been performed.</event>
                <event version="SE11-001-12" user="greend" date="1996-08-05">Program modified to correctly edit breast in situ cases.</event>
                <event version="SE11-001-13" user="greend" date="1997-07-15">Codes 2-5 in the RX Summ-BRM field indicates Cancer-Directed Therapy performed.</event>
                <event version="SE11-001-17" user="greend" date="2003-09-22">Edit modified to skip cases from New Jersey diagnosed before 2000.</event>
                <event version="SE11-001-20" user="greend" date="2006-07-21">Edit restricted to cases diagnosed prior to 1998.  Edit updated to include transplant/endocrine variable.</event>
                <event version="SE11-001-20" user="greend" date="2006-08-23">Edit modified to skip cases from Greater California.</event>
                <event version="SE11-001-22" user="greend" date="2008-01-09">Edit is skipped if year of diagnosis is blank.  AK records diagnosed prior to 1988 are not being edited.</event>
                <event version="SE11-001-22" user="greend" date="2008-01-22">Edit now uses the entire Date of Therapy [1260] (day, month, and year).</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-17">Date of Initial RX SEER Flag added.  0 and 9 filled dates removed and replaced with blanks and flags.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-06">Edit no longer checks for blank date of therapy for first two conditions.</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-20" ref="66776">Updated edit name.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE23-023-01" user="cooki" date="2023-02-02" ref="69076">Changed logic to pass on blank dates, aligning with 2023 changes.</event>
                <event version="SE24-024-06" user="cooki" date="2024-07-18" ref="69509">Deleted deprecated dependency.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Switch from ICD-O-2 to ICD-O-3.</event>
            </history>
        </rule>
        <rule id="IF35" name="Date Initial RX SEER, Date Last Cont (NAACCR IF35)" tag="N0096" java-path="lines.line" category="inter-field" depends="DateFollowUpEdit,DateTherapyEdit,Year_of_Diagnosis">
            <expression><![CDATA[Integer iLastContactYear = Functions.asInt(line.dateOfLastContactYear)
Integer iLastContactMonth = Functions.asInt(line.dateOfLastContactMonth)
Integer iLastContactDay = Functions.asInt(line.dateOfLastContactDay)
Integer iRxYear = Functions.asInt(line.dateInitialRxSeerYear)
Integer iRxMonth  = Functions.asInt(line.dateInitialRxSeerMonth)
Integer iRxDay = Functions.asInt(line.dateInitialRxSeerDay)

if ((line.registryId == '0000001544' && line.dateOfDiagnosisYear < '1995') || iRxYear == null
        || iLastContactYear == null)
    return true

if (iRxYear == null && iRxMonth == null && iRxDay == null)
    return true

if (iRxYear == 0 && iRxMonth == 0 && iRxDay == 0)
    return true

if (iRxYear > iLastContactYear)
   return false

if (iRxYear < iLastContactYear || iRxMonth == null || line.dateOfLastContactMonth == null)
   return true

if (iRxMonth > iLastContactMonth)
   return false

if (iRxMonth < iLastContactMonth || iRxDay == null ||
     line.dateOfLastContactDay == null)
   return true

return iRxDay <= iLastContactDay]]></expression>
            <message>Date of Init RX--SEER and Date of Last Contact conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions is true:
1.  Date Initial RX SEER is blank
2.  Date of Last Contact is blank.
3.  If Registry ID = 0000001544 (New Jersey) and year of Date of Diagnosis is < 2000

Date Initial RX SEER must be less than or equal to Date of Last Contact. If both years are known, but either month is blank, then only the years are compared. If either day is blank, then only the years and months are compared.]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-09-22">Edit modified to skip cases from New Jersey diagnosed before 2000.</event>
                <event version="SE11-001-22" user="greend" date="2008-01-21">Edit now uses Day of Initial RX--SEER and Day of Last Contact.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-17">Edit no longer accepts 9 filled dates.</event>
                <event version="SE12-003-03" user="murphyr" date="2011-02-10">Updated documentation.</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-20" ref="66776">Updated edit name.</event>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-07" ref="67156">Updated documentation.</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-11-29" ref="67544">Edit modified to only skip cases from New Jersey diagnosed before 1995.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF36" name="Vital Status, Cause of Death (SEER IF36)" tag="N0250" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.vitalStatus == '1')
   return line.causeOfDeath == '0000'

if (line.vitalStatus == '0')
   return line.causeOfDeath != '0000'

return true]]></expression>
            <message>Vital Status and Cause of Death conflict</message>
            <description><![CDATA[If Vital Status[1760] is 1 (alive), then Cause of Death[1910] must = 0000 (alive).

If Vital Status[1760] = 0 (dead), then Cause of Death[1910] must not = 0000 (alive).]]></description>
            <history>
                <event version="SE18-017-01" user="schadega" date="2018-03-15" ref="67718">Update death code from 4 to 0.</event>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-21" ref="67924">Re-added 4 as a valid code for &apos;dead&apos;.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-14" ref="68826">Removed 4 as a valid code for dead.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF37" name="ICD Revision Number, Cause of Death (SEER IF37)" tag="N0093" java-path="lines.line" category="inter-field">
            <expression><![CDATA[String cod = line.causeOfDeath
if (cod == '0000')
   return line.icdRevisionNumber == '0'

if (line.icdRevisionNumber == '0')
   return false

if (cod == '7777' || cod == '7797' || line.icdRevisionNumber == null)
   return true

if (line.icdRevisionNumber == '1') {
   if (cod != null && cod.length() == 4)
       return ((List)((Map)Context.ICD10_Table_3).getOrDefault(cod.substring(0,1), [])).contains(Functions.asInt(cod.substring(1)))
   else if (cod != null && cod.length() == 3)
       return ((List)((Map)Context.ICD10_Table_2).getOrDefault(cod.substring(0,1), [])).contains(Functions.asInt(cod.substring(1)))
   else
       return false
}

// if ICD Revision Number is not ICD-10, the length must be 4
if (cod != null && cod.length() != 4)
    return false

if (line.icdRevisionNumber == '7')
   return cod != null && ((List)Context.ICD7_Table).contains(Functions.asInt(cod))

if (line.icdRevisionNumber == '8')
   return cod != null && ((List)Context.ICD8_Table).contains(Functions.asInt(cod))

if (line.icdRevisionNumber == '9')
   return cod != null && ((List)Context.ICD9_Table).contains(Functions.asInt(cod))

return true]]></expression>
            <message>ICD Revision Number and Cause of Death conflict</message>
            <description><![CDATA[If Cause of Death[1910] = 0000 (alive), then ICD Revision Number[1920] must = 0 (alive)

If ICD Revision Number[1920] = 0 (alive), then Cause of Death[1910] must = 0000 (alive).

If ICD Revision Number[1920] is blank or if the Cause of Death[1910] is 7777 or 7797, then this edit is skipped.

If the ICD Revision Number is 7, 8, 9, or 1, the cause of death must be a valid code of the 7th, 8th, 9th or 10th revision of ICD.  The valid codes for each revision may be found in the appropriate volume published by the World Health Organization.  See the SEER Program Code Manual for special rules for coding Cause of Death[1910].]]></description>
            <history>
                <event version="SE11-001-01" user="greend" date="1985-12-29">&apos;7969&apos; is flagged as invalid for 8th and 9th revisions of ICD coding.  &apos;7797&apos; is now flagged as valid in all revisions.</event>
                <event version="SE11-001-02" user="greend" date="1986-03-01">The CODTABLE has been corrected for some codes and so the program must be recreated.  Also the code &apos;7969&apos; is no longer flagged as invalid; this is a valid code for cause of death.</event>
                <event version="SE11-001-02" user="greend" date="1986-10-01">CODTABLE has been updated to include new HTLV-3/LAV infection codes.</event>
                <event version="SE11-001-18" user="greend" date="2004-09-15">The following ICD-10 codes were added: E164, I272, K317, K635, K754, M726, Q315, U010-U019, U029, U030, U039.</event>
                <event version="SE11-001-21" user="greend" date="2007-10-05">The following ICD-10 codes were added:           B334,E164,G904,I150,I159,J099,K227,K850,K851,K852,K853,
            K858,K859,M317,M797,P916,R296,R502,R508,U049,W469,X590,
            X599</event>
                <event version="SE12-005-04" user="murphyr" date="2011-10-05" ref="66533">The following ICD-10 codes were added: A090,B179,D685,D686,D893,E883,G149,G214,H549,I725,J123,J211,K123,K352,K353,K358,K523,L890,L891,L892,L893,N181,N182,N183,N184,N185,N423,
            O142,O432,O960,O961,O970,O971,O987,R263,R636,X340,X341,X348</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-12" user="kirbyk" date="2019-01-28" ref="68086">Edit now allows 3-character Cause of Death values for ICD-10.</event>
                <event version="SE18-019-05" user="kirbyk" date="2019-09-24" ref="68252">Edit does not allow 3-character Cause of Death values for ICD-7, ICD-8, or ICD-9.</event>
                <event version="SE18-020-04" user="beverung" date="2020-05-27" ref="68344">The following ICD-10 code was added: U070, U071, U072.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF38_3" name="Primary Site, Morphology-Imposs ICDO3 (SEER IF38)" tag="N0446" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[Integer site = Functions.asInt(line.primarySite.substring(1))
Integer hist = Functions.asInt(line.histologicTypeIcdO3)

if (hist == null || line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear > '2023')
   return true

// check Glioblastomas
if (((site >= 0 && site <= 709) || (site >= 728 && site <= 750) || site == 752 || (site >= 754 && site <= 809)) && hist >= 9440 && hist <= 9442)
    return false

// check the rest
return !((List)((Map)Context.IF38_3Table).getOrDefault(site, [])).contains(hist)]]></expression>
            <message>Impossible Site and Histologic Type ICD-O-3 combination</message>
            <description><![CDATA[This edit is skipped if Histologic Type ICD-O-3 is empty.
This edit is skipped for diagnosis date blank (unknown), invalid, or greater than 2023.

The site/histology combinations on the following list are considered to be impossible:

C000-C709, C728-C750, C752, C754-C809
  9440, 9441, 9442 (glioblastomas)

C480-C488 (Retroperitoneum & peritoneum)
  8720-8790 (Melanomas)

C300 (Nasal cavity)
  9250-9342 (Osteosarcomas--Giant cell, Ewing's, odontogenic)

C301 (Middle ear)
  9250-9342 (Osteosarcomas--Giant cell, Ewing's, odontogenic)

C310-C319 (Accessary sinuses)
  9250-9342 (Osteosarcomas--Giant cell, Ewing's, odontogenic)

C381, C382, C384, C388 (Pleura and mediastinum)
  8010-8245,8247-8671,8940-8941 (Carcinomas)
  8720-8790 (Melanomas)

C383 (Mediastinum, NOS)
  8010-8231,8241-8245,8247-8671,8940-8941 (Carcinomas)
  8720-8790 (Melanomas)

C470-C479 (Peripheral nerves)
  8010-8671,8940-8941 (Carcinomas)
  8720-8790 (Melanomas)

C490-C499 (Connective tissue)
  8720-8790 (Melanomas)

C700-C709 (Meninges)
  8010-8671,8940-8941 (Carcinomas)

C710-C719 (Brain)
  8010-8060, 8071-8671,8940-8941 (Carcinomas)

C720-C729 (Other central nervous system)
  8010-8671,8940-8941 (Carcinomas)

C400-C419 (Bone)
  8010-8060,8075-8671,8940-8941 (Carcinomas, except squamous cell)
  8720-8790 (Melanomas)

C760-C768 (Ill-defined sites)
  8720-8790 (Melanomas)
  8800-8811,8813-8830,8840-8921,9040-9044 (Sarcomas, except
    periosteal fibrosarcoma, dermatofibrosarcoma)
  8990-8991 (Mesenchymoma)
  8940-8941 (Mixed tumor, salivary gland type)
  9120-9170 (Blood vessel tumor, lymphatic vessel tumor)
  9240-9252 (Mesenchymal chondrosarcoma,
    and giant cell tumors)
  9540-9560 (Nerve sheath tumor)
  9580-9582 (Granular cell tumor and alveolar soft part sarcoma)


Additional Information:

Combinations of site and type are designated as impossible by this edit because the combination is biologically impossible, i.e., the particular form of cancer does not arise in the specified site, or because standard cancer registry conventions have been established to code certain combinations in certain ways.

In reviewing these errors, it is important to understand the biology of the disease and the clinical picture and history of the individual case before deciding on a correct code.  It will often be useful to check medical references or to discuss specific problem cases with the registry's medical advisors.  The suggestions below are a starting point for analyzing an error, but are not a substitute for a medical decision.

Correction of these errors will usually require inspection of the abstracted text, either online or as recorded on a paper abstract.  Reference to the original medical record may also be required.

GENERAL

First review the case for the following:

1. Is the histologic type correctly coded?  If not, correct the histologic type code.  Note that the code for "Cancer" and "Malignancy" (8000/3) is NOT interchangeable with the code for "Carcinoma, NOS" (8010/3), which refers only to a malignancy of epithelial origin.

2. Is the primary site coded correctly?  Check whether the site coded as the primary site could be instead the site of metastatic spread or the site where a biopsy was performed.  If so, check for a more appropriate primary site.

SPECIFIC GUIDELINES
(The numbered categories refer to rows in the table of impossible combinations presented under "Description" in the documentation.)

1. Retroperitoneum/Peritoneum and Melanomas:  If melanoma is identified in peritoneal or retroperitoneal tissue, it is almost certainly metastatic to that site.  Try to identify the primary site of the melanoma.  If no primary can be determined, the standard convention in cancer registries is to code the primary site as skin, NOS, C44.9, which puts the case in the most likely site group for analysis.  Most histologic type codes for melanomas in ICD-O-3 list skin, C44._, as the appropriate primary site.

2. Nasal Cavity/Middle Ear/Accessory Sinuses and Osteosarcomas: Osteosarcomas arise in bone, and the specified site code in ICD-O-3 is C40._ or C41._.  Osteosarcomas arising in the areas of the nose, middle ear, and sinuses should be assumed to have arisen in the bones of the skull and their primary site coded C41.0.

3. Pleura/Mediastinum and Carcinomas or Melanomas:  If a carcinoma or melanoma is identified in the pleura or mediastinum, it is almost certainly metastatic to that site.  Try to identify the primary site of the carcinoma or melanoma.  For a carcinoma, if no primary can be determined, code unknown primary site, C80.9.  For a melanoma, if no primary can be determined, the standard convention in cancer registries is to code the primary site as skin, NOS, C44.9, which puts the case in the most likely site group for analysis.  Most histologic type codes for melanomas in ICD-O-3 list skin, C44._, as the appropriate primary site.

4. Peripheral Nerves and Carcinomas or Melanomas:  If a carcinoma or melanoma is identified in peripheral nerves, it is almost certainly metastatic to that site.  Try to identify the primary site of the carcinoma or melanoma.  For a carcinoma, if no primary can be determined, code unknown primary site, C80.9.  For a melanoma, if no primary can be determined, the standard convention in cancer registries is to code the primary site as skin, NOS, C44.9, which puts the case in the most likely site group for analysis.  Most histologic type codes for melanomas in ICD-O-3 list skin, C44._, as the appropriate primary site.

5. Connective Tissue and Melanomas:  If a melanoma is identified in connective tissue, it is almost certainly metastatic to that site.  Try to identify the primary site of melanoma.  For a melanoma, if no primary can be determined, the standard convention in cancer registries is to code the primary site as skin, NOS, C44.9, which puts the case in the most likely site group for analysis.  Most histologic type codes for melanomas in ICD-O-3 list skin, C44._, as the appropriate primary site.

6. Meninges/Brain/Other CNS and Carcinomas:  If a carcinoma is identified in the brain, meninges, or other central nervous system, it is almost certainly metastatic to that site.  Try to identify the primary site of the carcinoma.  Check that the tumor is indeed a carcinoma and not "Cancer" or "Malignancy" which would be coded 8000/3.  If it is a carcinoma and no primary can be determined, code "Unknown primary site", C80.9.

7. Bone and Carcinomas or Melanomas:  If a carcinoma or melanoma is identified in the bone, it is almost certainly metastatic to that site.  Try to identify the primary site of the carcinoma or melanoma.  For a carcinoma, if no primary can be determined, code unknown primary site, C80.9.  For a melanoma, if no primary can be determined, the standard convention in cancer registries is to code the primary site as skin, NOS, C44.9, which puts the case in the most likely site group for analysis.  Most histologic type codes for melanomas in ICD-O-3 list skin, C44._, as the appropriate primary site.

8. Ill-defined Sites and Various Histologies:  Some histologic types are by convention more appropriately coded to a code representing the tissue in which such tumors arise rather than the ill-defined region of the body, which contains multiple tissues.]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-06-09">The following site/histology combinations are no longer considered &apos;impossible&apos;: C000-C009/8090-8098; C199/8090-8098; C209/8090-8098; C210-C218/8090-8098</event>
                <event version="SE11-001-17" user="greend" date="2003-10-10">The following site/histology combinations are no longer considered impossible: C490-C499 8010-8671,8940-8941</event>
                <event version="SE11-001-18" user="greend" date="2004-10-05">The following site/histology combinations are no longer considered impossible: C381-C388 8246.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-05-13" ref="66879">Added impossible combo for glioblastomas</event>
                <event version="SE14-012-02" user="depryf" date="2014-07-23" ref="67096">The following combinations are no longer considered &apos;impossible&apos;: C383 with 8240 and C710-C719 with 8070.</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-11-02" ref="67543">Fixed the table to match the documentation for sites C710-C719 with histology 8071-8671.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-03-14" ref="69412">Add skip condition when diagnosis year is blank or greater than 2023.</event>
            </history>
        </rule>
        <rule id="IF39_3" name="Primary Site, Behavior Code ICDO3 (SEER IF39)" tag="N0476" java-path="lines.line" category="inter-field" depends="Primary_Site">
            <expression><![CDATA[if (line.behaviorCodeIcdO3 != '2' || line.overRideSiteBehavior == '1')
   return true

return !((List)Context.InvalidInsituSites).contains(Functions.asInt(line.primarySite.substring(1)))]]></expression>
            <message>Primary Site and Behavior Code ICD-O-3 conflict</message>
            <description><![CDATA[This edit is skipped if over-ride site/behavior[2071] = 1 (review complete).

If Behavior Code ICD-O-3[522] = 2 (in situ), the following Primary Sites[400] require review.

C269 Gastrointestinal tract, NOS
C399 Ill-defined sites within respiratory system
C559 Uterus, NOS
C579 Female genital tract, NOS
C639 Male genital tract, NOS
C689 Urinary system, NOS
C729 Nervous system, NOS
C759 Endocrine gland, NOS
C760-C768 Ill-defined sites
C809 Unknown primary site]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF40_3" name="Primary Site, EOD, ICDO3 (SEER IF40)" tag="N0464" java-path="lines.line" category="inter-field" depends="Coding_System_for_EOD,EOD--Extension,EOD--Old_2_Digit,EOD--Old_4_Digit_Extent,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.overRideSiteEodDxDt == '1' || line.histologicTypeIcdO3 == null ||
    (line.histologicTypeIcdO3 == '9140' && line.codingSystemForEod == '4') ||
    line.histologicTypeIcdO3 >= '9590' || line.behaviorCodeIcdO3 == '2' ||
    line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear == '9999' ||
    line.dateOfDiagnosisYear > '2003')
    return true

String eodOld4DigitExtent = null
if (line.eodOld4Digit != null && line.eodOld4Digit.length() > 2)
    eodOld4DigitExtent = line.eodOld4Digit.substring(2, 3)

if (line.primarySite == 'C189' &&  ! ['8210','8220','8261','8263'].contains(line.histologicTypeIcdO3)) {
   if (Functions.matches(line.codingSystemForEod, /^[01]$/) && line.eodOld2Digit == '4-')
      return false
   if (line.codingSystemForEod == '3' && Functions.matches(eodOld4DigitExtent, /^[123]$/))
      return false
   if (line.codingSystemForEod == '4' && Functions.matches(line.eodExtension, /^([12]\d|30)$/))
      return false
}
else if (Functions.matches(line.codingSystemForEod, /^[01]$/))
   return (!((Functions.matches(line.primarySite, /^C(069|26\d|39\d|4[0179]9|5[57]9|639|76[0-8]|809)$/) && line.eodOld2Digit == '4-') ||
         (Functions.matches(line.primarySite, /^C(76[0-8]|809)$/) && line.eodOld2Digit == '5-')))
else if (line.codingSystemForEod == '3' && Functions.matches(line.primarySite, /^C(069|26\d|39\d|4[0179]9|5[57]9|639|76[0-8]|809)$/) &&
         Functions.matches(eodOld4DigitExtent, /^[123]$/))
   return false
else if (line.codingSystemForEod == '4' && Functions.matches(line.primarySite, /^C(069|26\d|39\d|4[0179]9|5[57]9|639|76[0-8]|809)$/) &&
         Functions.matches(line.eodExtension, /^([12]\d|30)$/))
   return false

return true]]></expression>
            <message>Primary Site and Localized EOD conflict (ICD-O-3)</message>
            <description><![CDATA[The edit is skipped if any of the following conditions are true:

  1) Over-ride Site/EOD/Dx Dt[2072] contains a '1' (review complete)
  2) Histologic Type ICD-O-3[522] is empty
  3) Histologic Type ICD-O-3[522] = 9140 (Kaposi sarcoma) and
     SEER 10-digit Extent of Disease (Coding System for EOD[870] = 4)
     is used
  4) Histologic Type ICD-O-3[522] >=9590 (Lymphoma, leukemia, or other
     lymphoreticular neoplasm)
  5) Behavior Code ICD-O-3[523] = 2
  6) Year of Diagnosis[390] is blank or > 2003

Regardless of which extent of disease code system is used, the following may not be reported with localized disease unless the case has been reviewed and the Over-ride Site/EOD/Dx Dt[2072] contains a '1':

C069 Mouth, NOS
C189 Colon, NOS not histology 8210, 8220, 8261, 8263
C260-C269 Other and ill-defined digestive organs
C390-C399 Other and ill-defined respiratory or intrathoracic sites
C409,C419 Bone, NOS
C479 Peripheral nerves, NOS
C499 Connective tissue, NOS
C559 Uterus, NOS
C579 Female genital system, NOS
C639 Male genital organs, NOS
C760-C768 Other and ill-defined sites
C809 Unknown primary site

The definition of localized disease for each of the extent of disease coding system is:

Nonspecific Extent of Disease (Coding System for EOD = 0) uses the entire field.
  C760-C768,C809 localized disease is coded 4- or 5-.
  All other ill-defined sites localized disease is coded 4-.

Two-Digit Extent of Disease (Coding System for EOD = 1) uses the entire field.
  C760-C768,C809 localized disease is coded 4- or 5-.
  All other ill-defined sites localized disease is coded 4-.

EOD--Old 4 digit[860] (Coding System for EOD[870] = 3) uses the extension field.
  Localized disease is coded 1-3.

SEER 10-Digit Extent of Disease, 1988 (Coding System for EOD[870] = 4) uses the EOD--extension[790] field.
  Localized disease is coded 10-30.]]></description>
            <history>
                <event version="SE11-001-18" user="greend" date="2004-12-30">Edit modified to look at the CS Extension field for cases diagnosed 2004+.</event>
                <event version="SE11-001-19" user="greend" date="2005-07-12">CS Extension edit check was removed from edit.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-07-27" ref="68443">Replaced EOD--Old 4 Digit Extent sub-field with EOD--Old 4 Digit parent field.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF41_3" name="Primary Site, Laterality, EOD, ICDO3 (SEER IF41)" tag="N0465" java-path="lines.line" category="inter-field" depends="EOD--Extension,EOD--Old_2_Digit,EOD--Old_4_Digit_Extent,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[Integer site = Functions.asInt(line.primarySite.substring(1))

if (line.overRideSiteLatEod == '1' || line.histologicTypeIcdO3 == null || line.dateOfDiagnosisYear > '2003' || line.dateOfDiagnosisYear == null)
    return true

String eodOld4DigitExtent = null
if (line.eodOld4Digit != null && line.eodOld4Digit.length() > 2)
    eodOld4DigitExtent = line.eodOld4Digit.substring(2, 3)

if (Functions.matches(line.primarySite, /^C(079|080|09[189]|301|31[02]|34[1-9]|384|50\d|569|570|62\d|63[01]|6[456]9|69\d|74\d|754)$/)
       || (line.dateOfDiagnosisYear > '1978' &&
       [81,90,400,401,402,403,441,442,446,447,471,472,491,492].contains(site))) {
    if ((line.histologicTypeIcdO3 == '9140' && line.dateOfDiagnosisYear > '1987') ||
        Functions.between(line.histologicTypeIcdO3, '9590','9989'))
        return true
    if (line.codingSystemForEod == '0') {
        if (line.laterality == '9' && ['0-','4-','5-'].contains(line.eodOld2Digit))
            return false

        if (line.laterality == '4' && ['0-','4-','5-'].contains(line.eodOld2Digit) &&
             ! (site == 569 || (site == 649 && line.histologicTypeIcdO3 == '8960')
                || (site == 692 && ['9510','9511','9512','9513','9514'].contains(line.histologicTypeIcdO3))))
           return false
    }
    else if (line.codingSystemForEod == '1') {
        if (line.laterality == '9' && Functions.matches(line.eodOld2Digit, /^[01234][-&0-9\s]$/))
            return false

            if (line.laterality == '4' && Functions.matches(line.eodOld2Digit, /^[01234][-&0-9\s]$/) &&
               ! (site == 569 || (site == 649 && line.histologicTypeIcdO3 == '8960') ||
                 (site == 692 && ['9510','9511','9512','9513','9514'].contains(line.histologicTypeIcdO3))))
                return false
        }
        else if (line.codingSystemForEod == '3') {
            if (line.laterality == '9' && Functions.matches(eodOld4DigitExtent, /^[0123\s]$/))
                return false

            if (line.laterality == '4' && Functions.matches(eodOld4DigitExtent, /^[0123\s]$/) &&
                ! (site == 569 || (site == 649 && line.histologicTypeIcdO3 == '8960')
                  || (site == 692 && ['9510','9511','9512','9513','9514'].contains(line.histologicTypeIcdO3))))
                return false
        }
        else if (line.codingSystemForEod == '4') {
            if (line.laterality == '9' &&
              (Functions.between(site,500,509) && (Functions.matches(line.eodExtension, /^[01]\d$/)) ||
              (Functions.matches(line.primarySite, /^C(079|08[01]|09[0189]|301|31[02]|34[1-9]|384|40[0-3]|4[79][12]|569|570|62\d|63[01]|6[456]9|69\d|74\d|754)$/) &&
              Functions.matches(line.eodExtension, /^([012]\d|30)$/)) ||
              ([441,442,446,447].contains(site) && Functions.matches(line.eodExtension, /^([0-3]\d|40)$/))))
                return false
            if ([90,91,98,99,569].contains(site) ||
              (site == 649 && line.histologicTypeIcdO3 == '8960') ||
              (site == 692 && ['9510','9511','9512','9513','9514'].contains(line.histologicTypeIcdO3)))
                return true
            if (line.laterality == '4' &&
              ((Functions.between(site,500,509) && Functions.matches(line.eodExtension, /^[01]\d$/)) ||
              (Functions.matches(line.primarySite, /^C(079|08[01]|09[0189]|301|31[02]|34[1-9]|384|40[0-3]|4[79][12]|569|570|62\d|63[01]|6[456]9|69\d|74\d|754)$/)
              && Functions.matches(line.eodExtension, /^([012]\d|30)$/)) ||
              ([441,442,446,447].contains(site) && Functions.matches(line.eodExtension, /^([0-3]\d|40)$/))))
                return false
        }
}
return true]]></expression>
            <message>Primary Site, Laterality and EOD conflict (ICD-O-3)</message>
            <description><![CDATA[The edit is skipped if any of the following conditions are true:

  1) Over-ride Site/Lat/EOD contains a '1' (review complete)
  2) Inter-Field edit flag "Date of Diagnosis is not valid." has been triggered
  3) Histologic Type ICD-O-3[522] is empty
  4) Year of Diagnosis[390] > 2003 or blank
  5) Histologic Type ICD-O-3[522] =  9590-9989
  6) Histologic Type ICD-O-3[522] = 9140 and Year of Diagnosis[390]
      greater than 1987

For all diagnosis years, the following are considered paired organ sites for purposes of this edit:
  C079 Parotid gland
  C080 Submandibular gland
  C091 Tonsillar pillar
  C098-C099 Tonsil, NOS
  C301 Middle Ear
  C310 Maxillary sinus
  C312 Frontal sinus
  C341-C349 Lung
  C384 Pleura
  C500-C509 Breast
  C569 Ovary
  C570 Fallopian tube
  C620-C629 Testis
  C630 Epididymis
  C631 Spermatic cord
  C649 Kidney, NOS
  C659 Renal pelvis
  C669 Ureter
  C690-C699 Eye
  C740-C749 Adrenal gland
  C754 Carotid body

For cases with year of diagnosis[390] > 1978 but not 9999 the following are also considered paired organ sites for purposes of this edit:
  C081 Sublingual gland
  C090 Tonsillar fossa
  C400 Long bones of upper limb, scapula and associated joints
  C401 Short bones of upper limb and associated joints
  C402 Long bones of lower limb and associated joints
  C403 Short bones of lower limb and associated joints
  C441 Skin of eyelid
  C442 Skin of external ear
  C446 Skin of upper limb and shoulder
  C447 Skin of lower limb and hip
  C471 Peripheral nerves and autonomic nervous system of upper limb and
       shoulder
  C472 Peripheral nerves and autonomic nervous system of lower limb and hip
  C491 Connective, subcutaneous, and other soft tissues of upper limb and
       shoulder
  C492 Connective, subcutaneous, and other soft tissues of lower limb and
       hip

For the above paired organ sites, if Laterality[410] is bilateral involvement, lateral origin unknown (4) or unknown (9), the extent of disease should not specify in situ, localized or regional by direct extension only.  The follow are the criteria for each of the extent of disease coding systems.

1.  For Nonspecific Extent of Disease (Coding System for EOD[870] = 0):

  A.  If Laterality[410] is '9' (no information concerning laterality),
      EOD--Old 2 digit[850] cannot be coded '0-' (in situ carcinoma), '4-'
      (localized), or '5-' (regional by direct extension only.

  B.  If Laterality[410] is '4' (bilateral involvement; lateral origin
       unknown: stated to be a single primary), then EOD--Old 2 digit[850]
       cannot be coded '0-' (in situ carcinoma), '4-' (localized), or '5-'
       (regional direct extension only) for site/histology combinations
       other than:
          C569 Ovary
          C649 Kidney  8960 Wilms tumor
          C692 Retina  9510-9514 Retinoblastoma,


2.  For Two-Digit Extent of Disease (Coding System for EOD[870] = 1):

  A.  If Laterality[410] is '9' (no information concerning laterality),
      then the first digit of EOD--Old 2 digit[850] cannot be '0', '1',
      '2', '3', or '4'.

  B.  If Laterality[410] is '4' (bilateral involvement, lateral origin
      unknown: stated to be a single primary), then the first digit of
      EOD--Old 2 digit[850] cannot be '0', '1', '2', '3', or
      '4' for site histology combinations other than

          C569      Ovary
          C649      Kidney  8960 Wilms tumor
          C692      Retina  9510-9514 Retinoblastoma.

3.  For Four Digit Extent of Disease (Coding System for EOD[870] = 3):

  A.  If Laterality[410] is '9' (no information concerning laterality),
      then the third digit of EOD--Old 4 digit[860] must be greater than
      '3'.

  B.  If Laterality[410] is '4' (bilateral involvement, lateral origin
      unknown: stated to be a single primary), then the third digit of
      EOD--Old 4 digit[860] must be greater than '3' for site/histology
      combinations other than

          C569 Ovary
          C649 Kidney  8960 Wilms tumor
          C692 Retina  9510-9514 Retinoblastoma.


4.  For Ten Digit Site-specific Extent of Disease(Coding System for
    EOD[870]=4):

IF
  A.  Laterality[410] is '9' (no information concerning laterality)
OR
  B.  Laterality[410] is '4' (bilateral involvement, lateral origin
      unknown: stated to be a single primary), for site/histology
      combinations other than
          C090      Tonsillar fossa
          C091      Tonsillary pillar
          C098-C099 Tonsil, NOS
          C569 Ovary
          C649 Kidney  8960 Wilms tumor
          C692 Retina  9510-9514 Retinoblastoma,


THEN the EOD--extension[790] must not be:

          '00' thru '19' for sites C500-C509 Breast
          '00' thru '30' for all other paired organ sites
          '00' thru '40' for sites C441,C442,C446,C447 Skin.]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-10-10">For EOD coding system = &apos;4&apos;, the following sites are excluded from the edit. C090/Tonsillar fossa; C091/Tonsillar pillar; C098-C099/Tonsil, NOS</event>
                <event version="SE11-001-18" user="greend" date="2004-12-29">Edit modified to look at the CS Extension field for diagnosis years 2004+.</event>
                <event version="SE11-001-19" user="greend" date="2005-07-12">CS Extension edit check was removed from edit.</event>
                <event version="SE11-001-21" user="greend" date="2007-08-02">Definition of localized for breast 1988+ cases modified from 00-10 to 00-19.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-16">9-filled year of diagnosis no longer recognized.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-18">Edit now skipped if year of diagnosis is blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-07-27" ref="68443">Replaced EOD--Old 4 Digit Extent sub-field with EOD--Old 4 Digit parent field.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF42_3" name="Laterality, Primary Site, Morph ICDO3 (SEER IF42)" tag="N0445" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.overRideSiteLatMorph == '1' || line.histologicTypeIcdO3 == null || line.histologicTypeIcdO3 >= '9590' ||
    ((line.dateOfDiagnosisYear >= '1988' || line.dateOfDiagnosisYear == null) && line.histologicTypeIcdO3 == '9140'))
    return true
else if (line.dateOfDiagnosisYear >= '2018' && (line.primarySite == 'C090' || line.primarySite == 'C091') && line.laterality == '0')
    return true
else if (line.dateOfDiagnosisYear >= '2021' && Functions.matches(line.primarySite, /^C44[345]$/) && line.histologicTypeIcdO3 >= '8720' && line.histologicTypeIcdO3 <= '8790')
    return line.laterality != '0'

if (Functions.matches(line.primarySite, /^C(079|080|09[189]|301|31[02]|34[1-9]|384|50\d|569|570|62\d|63[01]|6[456]9|69\d|74\d|754)$/)
        || ((line.dateOfDiagnosisYear > '1978' || line.dateOfDiagnosisYear == null) && Functions.matches(line.primarySite, /^C(081|090|40[0-3]|44[1267]|4[79][12])$/)))
    return !(line.behaviorCodeIcdO3 == '2' && !(line.laterality ==~/^[1235]$/))

return true]]></expression>
            <message>Laterality, Primary Site and Behavior Code ICD-O-3 conflict</message>
            <description><![CDATA[This edit is skipped if any of the following is true:
1. Histologic Type ICD-O-3 is empty
2. Histologic Type ICD-O-3 >= 9590
3. Diagnosis year is greater than 1987 or is blank, and Histologic Type ICD-O-3 = 9140
4. Over-ride Site/Lat/Morph field contains a '1'(review complete)

If the Primary Site is a paired organ (see lists below) and the Behavior Code ICD-O-3 is in
situ (`2'), then Laterality must be `1', `2', '3', or `5', meaning right: origin of primary;
left: origin of primary; or only one side involved, right or left origin unspecified; paired
site: midline tumor.

For all diagnosis years the following are considered paired organ sites for purposes of this
edit:

    C079      Parotid gland
    C080      Submandibular gland
    C091      Tonsillar pillar
    C098-C099 Tonsil, NOS
    C301      Middle ear
    C310      Maxillary sinus
    C312      Frontal sinus
    C341-C349 Lung
    C384      Pleura
    C500-C509 Breast
    C569      Ovary
    C570      Fallopian tube
    C620-C629 Testis
    C630      Epididymis
    C631      Spermatic cord
    C649      Kidney, NOS
    C659      Renal pelvis
    C669      Ureter
    C690-C699 Eye
    C740-C749 Adrenal gland
    C754      Carotid body

For cases diagnosed after 1978 or if diagnosis date is blank, the following are also considered
paired organ sites for purposes of this edit:

    C081      Sublingual gland
    C090      Tonsillar fossa
    C400      Long bones of upper limb, scapula and associated joints
    C401      Short bones of upper limb and associated joints
    C402      Long bones of lower limb and associated joints
    C403      Short bones of lower limb and associated joints
    C441      Skin of eyelid
    C442      Skin of external ear
    C446      Skin of upper limb and shoulder
    C447      Skin of lower limb and hip
    C471      Peripheral nerves and autonomic nervous system of upper
              limb and shoulder
    C472      Peripheral nerves and autonomic nervous system of lower
              limb and hip
    C491      Connective, subcutaneous, and other soft tissues of upper
              limb and shoulder
    C492      Connective, subcutaneous, and other soft tissues of lower
              limb and hip

For cases diagnosed 2018 and later, laterality is no longer required for C090 and C091.

For cases diagnosed 2021 and later, the following primary site with histology 8720-
8790 must have a code other than zero for laterality.  Code 5 is allowed:

    C443        Skin of face
    C444        Skin of scalp and neck
    C445        Skin of trunk]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2009-12-16">9-filled year of diagnosis no longer recognized.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-18">Edit now skipped if year of diagnosis is blank.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-31">Modified to include laterality code &apos;5&apos;.  Edit now checks for blanks if year of dx is greater than 1987.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-06">Edit will now skip if year dx is greater than 1987 and not blank and if histology equals 9140.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-11" ref="68167">Edit modified to allow laterality code &apos;0&apos; for DX Year &gt;=2018 and primary site equals C090 or C091.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="beverung" date="2021-03-04" ref="68571">Require laterality not = 0 for sites C443-445 with histologies 8720-8790 for 2021+.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF43_3" name="Age, Histologic Type, COD, ICDO3 (SEER IF43)" tag="N0473" java-path="lines.line" category="inter-field" depends="Age_at_Diagnosis">
            <expression><![CDATA[Integer iAgeAtDiagnosis = Functions.asInt(line.ageAtDiagnosis)

return (line.histologicTypeIcdO3 == null || !(iAgeAtDiagnosis < 30
        && line.histologicTypeIcdO3 == '9800' && (line.causeOfDeath == '2040' || line.causeOfDeath == 'C910')))]]></expression>
            <message>Age, Histologic Type ICD-O-3, Cause of Death conflict</message>
            <description><![CDATA[This edit is skipped if Histologic Type ICD-O-3[522] is empty.

If the Age at diagnosis[230] is less than thirty and the Histologic Type ICD-O-3[522] field is 9800 Leukemia, NOS and the Cause of Death[1910] is 2040 or C910, acute lymphatic leukemia, then the diagnosis is to be verified as to cell type and whether acute or chronic.]]></description>
            <history>
                <event version="SE11-001-18" user="greend" date="2004-06-03">Modifed edit to check ICD-10 cause of death code C910 in addition to the ICD-9 code.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF44" name="RX Summ--Surgery Type, Radiation (SEER IF44)" tag="N0227" java-path="lines.line" category="inter-field" depends="RX_Summ--Surgery_Type">
            <expression><![CDATA[if (line.rxSummSurgeryType == null)
    return true

if (Functions.matches(line.rxSummSurgeryType, /^[1-9]\d$/) && (Functions.matches(line.rxSummRadiation, /^[1-6]$/) || line.rxSummRadToCns == '1'))
    return Functions.matches(line.rxSummSurgRadSeq, /^[2-69]$/)

if (line.rxSummSurgeryType < '10' || line.rxSummRadiation == '0')
    return line.rxSummSurgRadSeq == '0'

return true]]></expression>
            <message>RX Summ--Surgery Type, Rx Summ--Radiation, RX Summ--Surg/Rad Seq conflict</message>
            <description><![CDATA[If cancer-directed surgery was performed (RX Summ--Surgery Type > 09), and if radiation was given (RX Summ--Radiation = 1-6 or RX Summ--Rad to CNS = 1)
    then RX Summ--Surg/Rad Seq must specify sequence (codes 2-9).

If no cancer directed surgery or no radiation,
    then RX Summ--Surg/Rad Seq must specify no (0).]]></description>
            <history>
                <event version="SE11-001-04" user="greend" date="1988-05-25">Additional codes made valid due to 1988 SEER record changes.</event>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Radiaton code values indicating Radiation therapy performed, were changed from 1-6 to 1-5.</event>
                <event version="SE11-001-11" user="greend" date="1995-10-01">Radiation code values indicating Radiation therapy performed were changed from 1-5 to 1-6.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-12" ref="69326">Removed several dependencies.</event>
            </history>
        </rule>
        <rule id="IF45" name="Census Tract 1970/80/90, Census Cod Sys (SEER IF45)" tag="N0042" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if ((line.censusCodSys19708090 == '0' && line.censusTract19708090 != '000000') || line.censusCodSys19708090 != '0' && line.censusTract19708090 == '000000')
    return false

if ((line.censusCodSys19708090 == null && line.censusTract19708090 != null) || (line.censusCodSys19708090 != null && line.censusTract19708090 == null))
    return false

return true]]></expression>
            <message>Census Tract 1970/80/90 and Census Cod Sys 1970/80/90 conflict</message>
            <description><![CDATA[If the Census cod sys 1970/80/90[120] is '0', meaning not tracted, then the code in Census Tract 1970/80/90[110] must be '000000' (not tracted).

If Census Tract 1970/80/90[110] is coded as '000000' then the Census cod sys 1970/80/90[120] must be '0'.

If the Census cod sys 1970/80/90[120] is blank, then Census tract 1970/80/90[110] must be blank

If Census tract 1970/80/90[110] is blank then the Census cod sys[120] must be blank.]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-01-30">If Coding System for Census Tract is blank, then Census tract must be blank and vice versa.</event>
                <event version="SE11-001-17" user="greend" date="2003-03-14">Changed name of edit to read the field Census 1970/80/90 from the NAACCR 10 layout.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF46" name="RX Summ--Surgery Type, Diag Conf (SEER IF46)" tag="N0305" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.registryId == '0000001544' && (line.dateOfDiagnosisYear < '2000' || line.dateOfDiagnosisYear == null))
    return true
if (line.overRideSurgDxconf == '1')
    return true

return !Functions.matches(line.rxSummSurgeryType, /^(0[12567]|[1-8]\d|9[0-8])$/) || Functions.matches(line.diagnosticConfirmation, /^[1234]$/)
]]></expression>
            <message>RX Summ--Surgery Type, Diagnostic Confirmation conflict</message>
            <description><![CDATA[This edit is skipped under the following conditions:
    1.  Year of Date of Diagnosis is less than 2000 and Registry ID
        is equal to 0000001544 (New Jersey)

If the case was previously reviewed and accepted as coded (Over-ride Surg/Dx Conf = 1) no further checking is performed.

For anyone with a surgical procedure coded in the surgery field (RX Summ--Surgery Type = 01-02, 05-07, 10-98) the diagnosis should be histologically confirmed  (Diagnostic Confirmation < 5).

Additional Information:

If the patient had a surgical procedure, most likely there was a microscopic examination of the cancer.  This edit forces review of cases with a surgical procedure coded in the RX Summary--Surgery Type field but not a microscopic confirmation code in Diagnostic Confirmation.  Verify the surgery and diagnostic confirmation codes, and correct any errors.  Correction of errors may require inspection of the abstracted text, either online or as recorded on a paper abstract.  Review of the original medical record may be necessary.

Sometimes there are valid reasons why no microscopic confirmation is achieved with surgery, for example, the tissue removed may be inadequate for evaluation.  If upon review, the items are correct as coded, an over-ride flag may be set so that the case will not be considered in error when the edit is run again.  Enter a 1 in the field Over-ride Surg/DxConf to indicate that the coding is correct.

EXAMPLE

    RX SUMMARY--SURGERY TYPE    02, BX OF PRIMARY SITE
    DIAGNOSTIC CONFIRMATION     7, RADIOGRAPHY
    OVER-RIDE SURG/DXCONF       BLANK, NOT REVIEWED

Review of the abstract showed that this was a case of lung cancer diagnosed on x-ray.  A bronchial biopsy was done, but was negative for cancer.  Clinicians did not believe that malignancy was ruled out, but rather believed that the tumor had not been sampled by the biopsy.  Set the Over-ride flag to 1 to indicate that the case is correct as coded.]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-09-22">Edit modified to skip cases from New Jersey diagnosed before 2000.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-18">Edit modified to skip cases from New Jersey that have a blank year of diagnosis.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-28">Added &apos;3&apos; as a valid Diagnostic Confirmation code.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-16" ref="69326">Removed several dependencies.</event>
                <event version="SE24-024-06" user="beverung" date="2024-06-07" ref="69468">Fixed NJ skip condition.</event>
            </history>
        </rule>
        <rule id="IF47" name="Date of Birth, Date of Diagnosis (NAACCR IF47)" tag="N1048" java-path="lines.line" category="inter-field" depends="DateBirthEdit,DateDiagnosisEdit">
            <expression><![CDATA[Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)
Integer birthYear = Functions.asInt(line.dateOfBirthYear)
Integer birthMonth = Functions.asInt(line.dateOfBirthMonth)
Integer birthDay = Functions.asInt(line.dateOfBirthDay)

if (line.dateOfDiagnosisYear == null || line.dateOfBirthYear == null)
   return true

if (birthYear < dxYear)
   return true

if (line.dateOfDiagnosisMonth == null || line.dateOfBirthMonth == null) {
   if (birthYear == dxYear)
      return true
   if (birthYear - dxYear == 1) {
      if (line.dateOfDiagnosisMonth == null && line.dateOfBirthMonth != null) {
         if (birthMonth >= 8)
            return false
         return line.overRideAgeSiteMorph == '2' || line.overRideAgeSiteMorph == '3'
      }
      if (line.dateOfBirthMonth == null && line.dateOfDiagnosisMonth != null) {
         if (dxMonth <= 5)
            return false
         return line.overRideAgeSiteMorph == '2' || line.overRideAgeSiteMorph == '3'
      }
      return true
   }
   return false
}

Integer iDateDiff = (birthYear * 12 + birthMonth) - (dxYear * 12 + dxMonth)

if (iDateDiff < 0)
   return true
if (iDateDiff == 0) {
   if (line.dateOfDiagnosisDay == null || line.dateOfBirthDay == null || dxDay >= birthDay)
      return true
   return line.overRideAgeSiteMorph == '2' || line.overRideAgeSiteMorph == '3'
}
if (iDateDiff < 7)
   return line.overRideAgeSiteMorph == '2' || line.overRideAgeSiteMorph == '3'
if (iDateDiff == 7) {
   if (line.dateOfDiagnosisDay == null || line.dateOfBirthDay == null || dxDay >= birthDay)
      return line.overRideAgeSiteMorph == '2' || line.overRideAgeSiteMorph == '3'
   return false
}

return false]]></expression>
            <message>Date of Birth must not be later than Date of Diagnosis</message>
            <description><![CDATA[This edit verifies that Birth Date is not later than Date of Diagnosis unless the case was diagnosed in utero.

Otherwise, Birth Date must not be later than Date of Diagnosis.  If either year is blank the edit is skipped.  If either month is blank, then the edit will use the year values and either month value if it is known (1-12).  If either day is blank, then only the years and months are compared.

If Birth Date is later than Date of Diagnosis, the difference in months is calculated.  If the difference is no more than 7 full months AND the Over-ride Age/Site/Morph code is 2 or 3, no further checking is done.  (Over-ride Age/Site/Morph may be set to 2 or 3 to indicate a case has been diagnosed in utero.)

This edit is also skipped if any of the following conditions are true:
  1)  Inter-Field edit flag "Date of Birth not valid" has been triggered
  2)  Inter-Field edit flag "Date of Diagnosis not valid" has been triggered]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2008-01-10">Edit is skipped if Date of Birth is blank.  If Month of Diagnosis or Month of Birth is blank, then only the years are compared.</event>
                <event version="SE11-001-22" user="greend" date="2008-01-21">Edit now uses Day of Birth and Day of Diagnosis.</event>
                <event version="SE11-001-22" user="greend" date="2008-07-10">Edit is now bypassed if Over-ride age/site/morph contains a &apos;2&apos; (Reviewed: Case was diagnosed utero) or &apos;3&apos; (Reviewed: Conditions 1 and 2 above both apply).</event>
                <event version="SE11-001-23" user="greend" date="2009-04-20">if Birth Date is later than Date of Diagnosis, the difference is months is calculated.  If the difference is no more than 7 full months AND the Over-ride Age/Site/Morph code is 2 or 3, no further checking is done.  (Over-ride Age/Site/Morph may be set to 2 or 3 to indicate a case has been diagnosed in utero.)</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-18">9 filled dates removed and replace with blanks.  Stopped using ints for blank comparisons and used strings.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-27">Updated documentations</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-16" ref="69326">Removed several dependencies.</event>
            </history>
        </rule>
        <rule id="IF48_3" name="Diagnostic Confirmation, Histology ICDO3 (SEER IF48)" tag="N0444" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3">
            <expression><![CDATA[if (line.overRideLeukLymphoma == '1')
   return true
if (line.histologicTypeIcdO3 == null)
   return true
if (Functions.between(line.histologicTypeIcdO3, '9590', '9993') && line.diagnosticConfirmation == '6')
   return false
if (line.diagnosticConfirmation == '3')
   return Functions.between(line.histologicTypeIcdO3, '9590', '9993')

return true]]></expression>
            <message>Diagnostic Confirmation and Histologic Type ICD-O-3 conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:

1) Histologic Type ICD-O-3[522] is blank.
2) Over-ride Leuk,Lymphoma[2070] = 1 (review complete).

If Histologic Type ICD-O-3[522] = 9590-9993 then Diagnostic Confirmation[490] cannot be 6 (direct visualization).

If Diagnostic Confirmation[490] = 3, then Histologic Type ICD-O-3[522] must = 9590-9993.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-06">Removed if histology equals 9590-9729 then diagnostic confirmation cannot be 6 or 8.  Changed range to 9590-9992.  Added if diagnostic confirmation equals 3 then histollogy must equal 9590-9992.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-27">Now skipped if histology is blank.</event>
                <event version="SE12-003-03" user="murphyr" date="2011-02-10">Updated documentation.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-04" user="beverung" date="2020-06-18" ref="68354">Expand range 9590-9992 to 9590-9993.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-16" ref="69326">Removed several dependencies.</event>
            </history>
        </rule>
        <rule id="IF49" name="Census Cod Sys 1970/80/90, Date of Diag (SEER IF49)" tag="N0310" java-path="lines.line" category="inter-field" depends="County_at_DX_Analysis,Year_of_Diagnosis">
            <expression><![CDATA[Integer countyDxNumber = Functions.asInt(line.countyAtDxAnalysis)

    if ( line.censusCodSys19708090 != null && line.registryId >= '0000001500' && line.registryId <= '0000001599' && !(['0000001529','0000001533','0000001537','0000001542','0000001543','0000001544','0000001551','0000001561'].contains(line.registryId)) && line.dateOfDiagnosisYear != null) {
        if (line.registryId == '0000001522' && [17,49,181].contains(countyDxNumber)) {
            if (line.dateOfDiagnosisYear > '1972' && line.dateOfDiagnosisYear < '1978')
                return line.censusCodSys19708090 == '0'
            if (line.dateOfDiagnosisYear > '1977' && line.dateOfDiagnosisYear < '1988')
                return line.censusCodSys19708090 == '0' || line.censusCodSys19708090 == '2'
            if (line.dateOfDiagnosisYear > '1987')
                return line.censusCodSys19708090 == '3'
        }
        else if (line.registryId == '0000001523') {
            if (line.dateOfDiagnosisYear > '1972' && line.dateOfDiagnosisYear < '1978') {
               if ([1,43].contains(countyDxNumber))
                   return line.censusCodSys19708090 == '1'
               return line.censusCodSys19708090 == '0'
            }
            if (line.dateOfDiagnosisYear > '1977' && line.dateOfDiagnosisYear < '1988')
               return line.censusCodSys19708090 == '2'
            if (line.dateOfDiagnosisYear > '1987')
               return line.censusCodSys19708090 == '3'
        }
        else if (['0000001501','0000001502','0000001520','0000001521','0000001527','0000001531','0000001535'].contains(line.registryId)
                || (line.registryId == '0000001522' && [13,61,103,113,153,155,163,193].contains(countyDxNumber))
                || (line.registryId == '0000001525' && [33,35,53,61,67,73].contains(countyDxNumber))
                || (line.registryId == '0000001526' && [11,35,49,57].contains(countyDxNumber))
                || (line.registryId == '0000001526' && countyDxNumber == 45 && line.dateOfDiagnosisYear > '1977')) {
            if (line.censusCodSys19708090 == '0')
               return false
            if (line.dateOfDiagnosisYear > '1972' && line.dateOfDiagnosisYear < '1978') {
               if (line.registryId == '0000001525' && [35,67,73].contains(countyDxNumber))
                  return line.censusCodSys19708090 == '2'
               return line.censusCodSys19708090 == '1'
            }
            if (line.dateOfDiagnosisYear > '1977' && line.dateOfDiagnosisYear < '1988')
               return line.censusCodSys19708090 == '2'
            if (line.dateOfDiagnosisYear > '1987')
               return line.censusCodSys19708090 == '3'
        }
        else if (line.dateOfDiagnosisYear > '1987')
            return line.censusCodSys19708090 == '3'
        else if (line.dateOfDiagnosisYear != null)
            return line.censusCodSys19708090 == '0'
    }

return true]]></expression>
            <message>Census cod sys 1970/80/90 and Year of Diagnosis conflict</message>
            <description><![CDATA[The edit is skipped if any of the following conditions is true:
1.  Year of Date of Diagnosis is blank
2.  Census Cod Sys 1970/80/90 is blank
3.  Registry ID = 0000001529 (Alaska), 0000001533 (Arizona Indians), 0000001537 (Rural
Georgia), 0000001542 (Kentucky),0000001543 (Louisiana),0000001544 (New Jersey), or 0000001551
(Cherokee Nation) or 0000001561 (Idaho).

1.  If Registry ID = 0000001522 (Iowa) and County at DX Analysis = 049, 017,
    or 181:

    A.  If year of Date of Diagnosis = 1973-1977, then Census Cod Sys
        1970/80/90 must = 0 (not tracted)

    B.  If year of Date of Diagnosis = 1978-1987, then Census Cod Sys
        1970/80/90 must = 0 (not tracted) or 2 (1980 definitions)

    C.  If year of Date of Diagnosis = 1988+, then Census Cod Sys
        1970/80/90 must = 3 (1990 definitions).

2.  If Registry ID = 0000001523 (New Mexico):

    A.  If Year of diagnosis is 1973-1977 and County at DX Analysis
        001 or 043, Census Cod sys 1970/1980/1990 must specify 1970
        definitions (1). All other counties must specify no census tract (0).

    B.  If year of diagnosis 1978-1987 Census cod sys 1970/1980/1990
        must specify 1980 definitions (2).

    C.  If year of diagnosis 1988+, census cod sys 1970/1980/1990 must
        specify 1990 definitions (3).


3.  For any one of the following areas:

      San Francisco-Oakland, SMSA, Connecticut, Metropolitan Detroit,
      Hawaii,Metropolitan Atlanta, San Jose-Monterey, Los Angeles
      (Registry ID = 0000001501, 0000001502, 0000001520, 0000001521,
      0000001523, 0000001527, 0000001531, 0000001535, respectively)
      and any County at DX Analysis.

      Iowa (Registry ID = 0000001522) and County at DX Analysis = 013, 061,
      103, 113, 153, 155, 163, or 193

      Seattle Puget Sound (Registry = 0000001525) and County at
      DX Analysis = 033, 035, 053, 061, 067, or 073

      Utah (Registry ID = 0000001526) and County at DX Analysis = 011, 035,
      049, 057

      Year of Date of Diagnosis year > 1977 and
      Utah (Registry ID = 0000001526) and County at DX Analysis = 045

    Then

      A.  Census Cod Sys 1970/80/90 must not = 0

      B.  If Diagnosis Year 1973-1977:
          1.  If Seattle Puget Sound (Registry = 0000001525) and County
              at DX Analysis = 035,067, or 073, then Census Cod Sys 1970/80/90
              must = 2 (1980 definitions)
          2.  Otherwise, Census Cod Sys 1970/80/90 must = 1 (1970
              definitions)

      C.  If Diagnosis Year 1978-1987, Census Cod Sys 1970/80/90
          must = 2 (1980 definitions)

      D.  If Diagnosis Year > 1987, Census Cod Sys
          1970/80/90 must = 2 (1980 definitions) or 3 (1990
          definitions)

4.  For all areas, if Diagnosis Year > 1987, Census
    Cod Sys 1970/80/90 must = 3 (1990 definitions)

5.  Otherwise, Census Cod Sys 1970/80/90 must = 0 (not tracted)]]></description>
            <history>
                <event version="SE11-001-04" user="greend" date="1988-07-07">Corrected NM county code from 015 to 013.</event>
                <event version="SE11-001-04" user="greend" date="1988-08-01">PR may have 0 in residence system.</event>
                <event version="SE11-001-05" user="greend" date="1989-09-01">Residence system code 3 and date of diagnosis 1988 combination is now valid.</event>
                <event version="SE11-001-06" user="greend" date="1990-01-15">Residence system code 2 or 3 and date of diagnosis 1988+ combination is now valid.  WA county codes 035, 067, and 073 with date of diagnosis 1974-1977 must have census tract 1980 (&apos;2&apos;) code.</event>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Reference to the Puerto Rico registry was removed from the edit.</event>
                <event version="SE11-001-08" user="greend" date="1992-01-15">NM county code 013 with date of diagnosis &gt;= 1988 must have census tract 1990 (&apos;3&apos;) code, otherwise no coding system (&apos;0&apos;) code.  IA county codes 017 and 049 with date of diagnosis 1978-1987 can be coded as untracted (&apos;0&apos;) or coded as census tract 1980 (&apos;2&apos;).</event>
                <event version="SE11-001-08" user="greend" date="1992-12-15">IA county codes 181 is now grouped with the special counties that are partially tracted beginning with 1980 census.</event>
                <event version="SE11-001-10" user="greend" date="1994-01-10">Program updated to include the two new SEER registries.</event>
                <event version="SE11-001-11" user="greend" date="1995-10-01">Program modified to account for block numbering.</event>
                <event version="SE11-001-17" user="greend" date="2003-01-30">Edit is skipped if Census Tract Coding Sys is blank.</event>
                <event version="SE11-001-21" user="greend" date="2007-09-28">Only allow blanks for diagnosis years 1996+; Louisiana and Kentucky are skipped</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-08">Removed instances of year of diagnosis is not 9999.  Replaced last instance with year of diagnosis is not blank.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-21">Edit is now skipped if year of diagnosis is blank.</event>
                <event version="SE12-005-03" user="murphyr" date="2011-09-19" ref="66518">Fixed an issue with the blank year of diagnosis skip condition.</event>
                <event version="SE12-005-03" user="murphyr" date="2011-09-20" ref="66520">Added a skip condition for Arizona.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67754">Fixed name and updated description.</event>
                <event version="SE18-018-10" user="kirbyk" date="2018-12-05" ref="68072">Added skip condition for Idaho.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE23-023-06" user="cooki" date="2023-07-31" ref="69294">Updated countyAtDx to countyAtDxAnalysis.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF51" name="RX Summ--Surgery, Reason for No Surgery (SEER IF51)" tag="N0493" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear > '1997')
    return true
if (line.rxSummSurgeryType == '09' || line.rxSummSurgeryType == null)
    return true
if (Functions.matches(line.rxSummSurgeryType, /^0[1-7]$/))
    return Functions.matches(line.reasonForNoSurgery, /^[12678]$/)
if (Functions.matches(line.rxSummSurgeryType, /^[1-9]\d$/))
    return line.reasonForNoSurgery == '0'

return true]]></expression>
            <message>RX Summ--Surgery Type, Reason No Surgery conflict</message>
            <description><![CDATA[This edit is skipped if Year of Date of Diagnosis is 1998 or later.

If RX Summ--surgery type[1640] 01-07 (cancer directed surgery not performed), Reason for no surgery[1340] must be 1,2,6,7, or 8 (cancer-directed surgery was not performed).

If RX Summ--surgery type[1640] > 09 (cancer directed surgery performed), Reason for no surgery[1340] must be 0 (cancer-directed surgery performed).]]></description>
            <history>
                <event version="SE11-001-08" user="greend" date="1992-02-03">Reason No Surgery = 8 is acceptable in combination with non-definitive surgery.</event>
                <event version="SE11-001-08" user="greend" date="1992-07-15">Deleted test for valid reason if surgery = 09.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE21-021-09" user="beverung" date="2021-09-01" ref="68733">Added skip condition for DX Year 1998 and later.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF55" name="Diagnostic Confirmation, Date of Diag (SEER IF55)" tag="N0313" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.registryId == '0000001562')
  return true

if (line.dateOfDiagnosisYear < '1988' && Functions.matches(line.diagnosticConfirmation, /^[1246-9]$/))
    return true

if (line.dateOfDiagnosisYear > '1987' && line.dateOfDiagnosisYear < '2010' && Functions.matches(line.diagnosticConfirmation, /^[124-9]$/))
    return true

return line.dateOfDiagnosisYear > '2009' && Functions.matches(line.diagnosticConfirmation, /^[1-9]$/)]]></expression>
            <message>Diganostic Confirmation and Year of Diagnosis conflict</message>
            <description><![CDATA[This edit is skipped if:
  1) Inter-Field edit flag "Date of Diagnosis is not valid." has been triggered.
  2) Year of Diagnosis[390] is blank.
  3) Registry ID is equal to 0000001562 (New York)

1.  For Diagnosis Year[390] < 1988, Diagnostic Confirmation[490] may be
    1, 2, 4, 6-9.

2.  For Diagnosis Year[390] 1988-2010, Diagnostic Confirmation[490] may be 1,
    2, 4-9.

3.  For Diagnosis Year[390] 2010+, Diagnostic Confirmation may be 1-9.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2009-12-09">Edit changed to not recognize 9 filled year of diagnosis.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-21">Added a case and changed case 2 from 1988+ to 1988-2009.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-12" ref="68204">Edit modified to skip cases from New York.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF57" name="Reason for No Surgery, DateDX, RPTSRC (SEER IF57)" tag="N0834" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
if (line.registryId == '0000001544' && line.dateOfDiagnosisYear < '2000')
    return true
if (line.registryId == '0000001562' && line.dateOfDiagnosisYear < '2003')
    return true
if (line.registryId == '0000001565' && (line.dateOfDiagnosisYear == '2000' || line.dateOfDiagnosisYear == '2003'))
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2002' && line.dateOfDiagnosisYear < '2006')
    return true

if (line.dateOfDiagnosisYear < '1988') {
    if (line.typeOfReportingSource == '6')
        return line.reasonForNoSurgery == '2'
    if (line.typeOfReportingSource == '7')
        return line.reasonForNoSurgery == '9'
    if (line.registryId == '0000001529')
        return Functions.matches(line.reasonForNoSurgery, /^[0126-9]$/)

    return Functions.matches(line.reasonForNoSurgery, /^[0689]$/)
}
if (Functions.between(line.dateOfDiagnosisYear, '1988', '2002')) {
    if (line.typeOfReportingSource == '6')
        return line.reasonForNoSurgery == '2'
    if (line.typeOfReportingSource == '7')
        return line.reasonForNoSurgery == '9'

    return Functions.matches(line.reasonForNoSurgery, /^[0126-9]$/)
}
/* year must be 2003-2017 */
if (line.dateOfDiagnosisYear >= '2003' && line.dateOfDiagnosisYear <= '2017') {
    if (line.typeOfReportingSource == '6' || line.typeOfReportingSource == '7')
        return line.reasonForNoSurgery == '9'
    return Functions.matches(line.reasonForNoSurgery, /^[0125-9]$/)
}

/* year must be 2018+*/
if (line.dateOfDiagnosisYear >= '2018') {
    if (line.typeOfReportingSource == '6' || line.typeOfReportingSource == '7')
        return line.reasonForNoSurgery == '1' || line.reasonForNoSurgery == '9'
    return Functions.matches(line.reasonForNoSurgery, /^[0125-9]$/)
}

]]></expression>
            <message>Reason No Surgery and Year of Diagnosis conflict</message>
            <description><![CDATA[This edit is skipped for the following conditions:
    1.  Registry ID is equal to 0000001544 (New Jersey) and Year of Date of Diagnosis is less than 2000.
    2.  Registry ID is equal to 0000001562 (New York) and Year of Date of Diagnosis is less than 2003.
    3.  Registry ID is equal to 0000001565 (Illinois) and Year of Date of Diagnosis is 2000 or 2003.
    4.  Registry ID is equal to 0000001566 (Texas) and Year of Date of Diagnosis is 2003-2005.
    5.  Year of Date of Diagnosis is blank.

1.  If year of Date of Diagnosis is less than 1988 and Registry ID
    is not equal to 0000001529 (SEER Alaska Native Tumor):
    A.  If Type of Reporting Source is 6 (autopsy only), then Reason
        for No Surgery must equal 2
    B.  If Type of Reporting Source is 7 (death certificate only),
        then Reason for No Surgery must equal 9
    C.  For other values of Type of Reporting Source, the Reason
        for No Surgery may only be 0, 6, 8, 9

2.  If year of Date of Diagnosis is equal to 1988-2002 or (Registry
    ID is equal to 0000001529 (SEER Alaska Native Tumor) and year of
    Date of Diagnosis is equal to 1984-2002)):
    A.  If Type of Reporting Source is 6 (autopsy only), then Reason
        for No Surgery must equal 2
    B.  If Type of Reporting Source is 7 (death certificate only),
        then Reason for No Surgery must equal 9
    C.  For other values of Type of Reporting Source, the Reason for
        No Surgery may only be 0-2, 6-9

3.  If year of Date of Diagnosis is equal to 2003-2017:
    A.  If Type of Reporting Source is 6 (autopsy only) or 7 (death
        certificate only), then Reason for No Surgery must equal 9
    B.  For other values of Type of Reporting Source, the Reason for
        No Surgery may only be 0-2, 5-9

4.  If year of Date of Diagnosis is equal to 2018+:
    A. If Type of Reporting Source is 6 (autopsy only) or 7 (death
       certificate only), then Reason for No Surgery must equal 1 or 9
    B. For other values of Type of Reporting Source, the Reason for
       No Surgery may only be 0-2, 5-9]]></description>
            <history>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Edit now verifies that if reporting source is autopsy only, Reason for No Cancer-Directed Surgery must be 0, 6, 8, or 9.</event>
                <event version="SE11-001-17" user="greend" date="2003-06-04">For diagnosis years 2003+ the code 5 is valid.</event>
                <event version="SE11-001-17" user="greend" date="2003-09-22">Edit modified to skip cases from New Jersey diagnosed before 2000.</event>
                <event version="SE11-001-19" user="greend" date="2005-05-26">Edit checks for Type of reporting source was added to the edit.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-16">9-filled year of diagnosis no longer recognized.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-07" ref="68179">Edit now skipped for New York cases when DX Year &lt; 2003.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68709">Added skip condition for IL for DX Year 2003 and TX for DX Years 2003-2005.</event>
                <event version="SE21-021-09" user="secristm" date="2021-09-09" ref="68743">Added skip condition for IL for DX Year 2000.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-01" user="smithm" date="2022-02-16" ref="68803">Add logic for DX Year 2018+</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF58" name="RX Summ--Radiation, DateDX, RptSrc (SEER IF58)" tag="N0234" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear > '2017')
    return true
if (line.registryId == '0000001544' && line.dateOfDiagnosisYear < '2000')
    return true
if (line.registryId == '0000001562' && line.dateOfDiagnosisYear < '2003')
    return true
if (line.registryId == '0000001565' && Functions.matches(line.dateOfDiagnosisYear, /^20(0[36-9]|1\d)$/))
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear < '2012')
    return true

if (line.typeOfReportingSource == '6')
    return line.rxSummRadiation == '0'
if (line.typeOfReportingSource == '7')
    return line.rxSummRadiation == '9'
if (line.dateOfDiagnosisYear != null && line.dateOfDiagnosisYear < '1988')
    return Functions.matches(line.rxSummRadiation, /^[0145689]$/)
if (line.dateOfDiagnosisYear > '1987' && line.dateOfDiagnosisYear != null)
    return Functions.matches(line.rxSummRadiation, /^[0-5789]$/)

return true]]></expression>
            <message>RX Summ--Radiation and Year of Diagnosis conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1.  Year of Date of Diagnosis is >= 2018, blank (unknown), or invalid.
  2.  Registry ID = 0000001544 (New Jersey) and Year of Diagnosis < 2000.
  3.  Registry ID = 0000001562 (New York) and Year of Diagnosis is < 2003.
  4.  Registry ID = 0000001565 (Illinois) and Year of Diagnosis is 2003 or 2006-2019.
  5.  Registry ID = 0000001566 (Texas) and Year of Diagnosis is < 2012.

1.  If Type of Reporting Source= 6(autopsy only),
    RX Summ--Radiation must be 0.

2.  If Type of Reporting Source= 7(death certificate only),
    RX Summ--Radiation must be 9.

3.  For all other values of Type of Reporting Source:

    A.  If Year of Diagnosis < 1988 and not blank,
        Rx Summ--Radiation must be 0,1,4-6,8,9.

    B.  If Year of Diagnosis > 1987,
        RX Summ--Radiation must be 0-5,7-9.]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-09-22">Edit modified to skip cases from New Jersey diagnosed before 2000.</event>
                <event version="SE11-001-19" user="greend" date="2005-05-26">Edit checks for Type of Reporting Source values versus RX Summ--Radiation were added.</event>
                <event version="SE11-001-22" user="greend" date="2008-01-08">Code for AK updated.  Now edits AK records regardless of Dx Year value.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-04">Edit changed to no longer recognize 9 filled year of diagnosis.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE16-016-11" user="kirbyk" date="2018-02-27" ref="67699">Removed AK-specific check.</event>
                <event version="SE18-018-03" user="schadega" date="2018-07-23" ref="67968">Added skip condition for 2018+</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-07" ref="68179">Edit now skipped for New York cases when DX Year &lt; 2003.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68709">Added skip conditions for IL for DX Years &lt; 2005 and TX for DX Years 2003-2011.</event>
                <event version="SE21-021-10" user="beverung" date="2021-10-13" ref="68753">Updated IL skip condition to use years 2003 and 2006-2019.</event>
                <event version="SE21-021-11" user="beverung" date="2022-01-05" ref="68772">Updated TX skip condition to skip for all years before 2012.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF59" name="RX Summ--Rad to CNS, Prim Site, RptSrc (SEER IF59)" tag="N0235" java-path="lines.line" category="inter-field" depends="Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.registryId == '0000001544' && line.dateOfDiagnosisYear < '2000'))
    return true

if (line.dateOfDiagnosisYear < '1988' && line.rxSummRadToCns == null)
    return true
else if (line.dateOfDiagnosisYear < '1988' && line.registryId != '0000001529')
    return line.rxSummRadToCns == '9'

if (Functions.between(line.dateOfDiagnosisYear,'1988','1997') || (Functions.between(line.dateOfDiagnosisYear, '1984', '1997') && line.registryId == '0000001529')) {
    if (Functions.matches(line.primarySite, /^C34\d$/) || ['9733','9742'].contains(line.histologicTypeIcdO3) || Functions.between(line.histologicTypeIcdO3, '9800', '9945')) {
        if (line.typeOfReportingSource == '6')
            return line.rxSummRadToCns == '0'
        if (line.typeOfReportingSource == '7')
            return line.rxSummRadToCns == '9'

        return Functions.matches(line.rxSummRadToCns, /^[01789]$/)
    }

    return line.rxSummRadToCns == '9'
}
if (line.dateOfDiagnosisYear >= '1998')
    return line.rxSummRadToCns == null || line.rxSummRadToCns == '9'

return true]]></expression>
            <message>RX Summ--Rad to CNS and Primary Site conflict</message>
            <description><![CDATA[This edit is skipped under the following conditions:
    1.  Year of Date of Diagnosis is less than 2000 and Registry ID
        is equal to 0000001544 (New Jersey)
    2.  Year of Date of Diagnosis is blank

1.  If year of Date of Diagnosis is less than 1988, RX Summ--Rad to CNS must be blank or (if not Alaska (Registry
    ID=0000001529)) unknown (9) for all cases.

2.  If year of Date of Diagnosis is equal to 1988-1997 or (Registry ID
    is equal to 0000001529 (SEER Alaska Native Tumor) and year of Date
    of Diagnosis is less than 1998):

     A.  If Primary Site is lung (C340-C349) or the Histology indicates
        a leukemia (9733, 9742, 9800-9945)
        1.  If Type of Reporting Source is 6 (autopsy only), then
            RX Summ--Rad to CNS must be 0
        2.  If Type of Reporting Source is 7 (death certificate only),
            then RX Summ--Rad to CNS must be 9
        3.  For all other values of Type of Reporting Source, RX Summ--Rad
            to CNS must be 0, 1, 7-9

     B.  Otherwise, RX Summ--Rad to CNS must be unknown (9)

3.  If year of Date of Diagnosis is greater than 1997, RX Summ--Rad to CNS
    must be blank or unknown (9) for all cases.]]></description>
            <history>
                <event version="SE11-001-05" user="greend" date="1989-07-12">Leukemia code range is now 9800 thru 9940.</event>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topography and morphology codes from ICD-O-1 to ICD-O-2.</event>
                <event version="SE11-001-17" user="greend" date="2003-09-22">Edit modified to skip cases from New Jersey diagnosed before 2000.</event>
                <event version="SE11-001-18" user="greend" date="2004-01-13">Edit modified to check for &apos;9&apos; in the RX Summ-Rad to cns field for cases diagnosed 1998+.</event>
                <event version="SE11-001-19" user="greend" date="2005-05-26">Edit checks for Type of Reporting Source values versus RX Summ--rad to cns were added.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-04">Edit changed not recognize 9 filled year of diagnosis.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-04" user="kirbyk" date="2018-08-03" ref="67960">Added blank as a valid value for DX year &gt; 1997.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-01" ref="68180">Added blank as a valid value for DX year &lt; 1988.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-10" ref="68226">Updated description; no change in behavior.</event>
                <event version="SE18-019-03" user="kirbyk" date="2019-07-11" ref="68230">Fixed logic for Alaska cases with DX year &lt; 1988.</event>
                <event version="SE24-024-06" user="cooki" date="2024-07-18" ref="69509">Deleted deprecated dependency.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Switch from ICD-O-2 to ICD-O-3.</event>
                <event version="SE24-024-07" user="cooki" date="2024-08-07" ref="69521">Added histologies 9733, 9742, and 9942-9945 to condition 2A.</event>
            </history>
        </rule>
        <rule id="IF60" name="RX Summ--Surg/Rad Seq, DateDX, RptSrc (SEER IF60)" tag="N0304" java-path="lines.line" category="inter-field" depends="RX_Summ--Surg-Rad_Seq,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.registryId == '0000001562' && line.dateOfDiagnosisYear < '2003')
    return true
if (line.registryId == '0000001544' && line.dateOfDiagnosisYear < '2000')
    return true
if (line.registryId == '0000001565' && (line.dateOfDiagnosisYear == '2000' || line.dateOfDiagnosisYear == '2003'))
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '1999' && line.dateOfDiagnosisYear < '2012')
    return true

if (line.typeOfReportingSource == '6' || line.typeOfReportingSource == '7')
    return line.rxSummSurgRadSeq == '0'
if (line.dateOfDiagnosisYear != null && line.dateOfDiagnosisYear < '1988')
    return Functions.matches(line.rxSummSurgRadSeq, /^[02349]$/)
if ((line.dateOfDiagnosisYear > '1987' && line.dateOfDiagnosisYear < '2012'))
    return Functions.matches(line.rxSummSurgRadSeq, /^[0234569]$/)
if (line.dateOfDiagnosisYear > '2011' && line.dateOfDiagnosisYear != null)
    return Functions.matches(line.rxSummSurgRadSeq, /^[02345679]$/)
return true]]></expression>
            <message>RX Summ--Surg/Rad Seq and Year of Diagnosis conflict</message>
            <description><![CDATA[Edit is skipped for the following conditions:
    a. Registry ID = 0000001562 (New York) and Year of Diagnosis is < 2003.
    b. Registry ID = 0000001544 (New Jersey) and Year of Diagnosis is < 2000.
    c. Registry ID = 0000001565 (Illinois) and Year of Diagnosis is 2000 or 2003.
    d. Registry ID = 0000001566 (Texas) and Year of Diagnosis is 2000-2011.

1.  If Type of Reporting Source[500] indicates an autopsy only case (6) or death certificate only case (7), RX Summ--Surg/Rad Seq[1380] must be 0.

2.  For all other values of Type of Reporting Source[500]:
    A.  If Year of Diagnosis[390] is less than 1988 and not blank, RX Summ-Surg/Rad Seq[1380] may be 0,2,3,4,9.

    B.  If Year of Diagnsosis[390] is greater than 1987 and less than 2012, RX Summ-Surg/Rad Seq[1380] must be 0, 2-6, 9.

    C.  If Year of Diagnosis[390] is greater than 2011 and not blank RX Summ-Surg/Rad Seq[1380] must be 0, 2-7, 9.]]></description>
            <history>
                <event version="SE11-001-19" user="greend" date="2005-05-26">Edit checks for Type of Reporting Source values versus RX Summ--Surg/Rad Seq were added.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-03">Changed to no longer recognize 9 filled year of diagnosis.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-21">Blank year of diagnosis is checked now if year of diagnosis is &gt; 1987.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-16" ref="66635">Allow code 7 for cases greater than 2011</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-07" user="kirbyk" date="2018-10-08" ref="68039">Removed special conditions for Alaska.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-07" ref="68179">Edit now skipped for New York cases when DX Year &lt; 2003.</event>
                <event version="SE18-019-04" user="beverung" date="2019-08-30" ref="68247">Edit now skipped for New Jersey cases when DX Year &lt; 2000.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68709">Added skip conditions for IL for DX Year 2000 and TX for DX Years 2000-2003.</event>
                <event version="SE21-021-09" user="secristm" date="2021-09-09" ref="68746">Added skip condition for IL for DX Year 2003.</event>
                <event version="SE22-022-05" user="secristc" date="2022-05-11" ref="68992">Updated skip condition for TX to DX Year 2011.</event>
            </history>
        </rule>
        <rule id="IF61" name="RX Summ--Chemo, DateDX, RptSrc (SEER IF61)" tag="N0292" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.registryId == '0000001544' && (line.dateOfDiagnosisYear < '2000' || line.dateOfDiagnosisYear == null))
    return true
if ((line.registryId == '0000001562' && line.dateOfDiagnosisYear < '2003') || (line.registryId == '0000001565' && line.dateOfDiagnosisYear == '2003'))
    return true
if (line.typeOfReportingSource == '6')
    return line.rxSummChemo == '00'
if (line.typeOfReportingSource == '7')
    return line.rxSummChemo == '99'
if (line.dateOfDiagnosisYear == null)
    return true
if (line.dateOfDiagnosisYear < '1988') {
    if (line.registryId == '0000001529')
        return Functions.matches(line.rxSummChemo, /^(0[0-3]|8[78]|99)$/)

    return Functions.matches(line.rxSummChemo, /^(0[01]|88|99)$/)
}
if (Functions.between(line.dateOfDiagnosisYear, '1988', '2002'))
    return Functions.matches(line.rxSummChemo, /^(0[0-3]|8[78]|99)$/)
/* dx year must be 2003+ */
return Functions.matches(line.rxSummChemo, /^(0[0-3]|8[25678]|99)$/)]]></expression>
            <message>RX Summ--Chemo and Year of Diagnosis conflict</message>
            <description><![CDATA[This edit is skipped under the following conditions:
    1.  Year of Date of Diagnosis is less than 2000 or blank and Registry ID is equal to 0000001544 (New Jersey) OR
        Year of Date of Diagnosis is less than 2003 and Registry ID is equal to 0000001562 (New York) OR
        Year of Date of Diagnosis is 2003 and Registry ID is equal to 0000001565 (Illinois).
    2.  Year of Date of Diagnosis is blank and Type of Reporting
        Source not equal 6 or 7

1.  If Type of Reporting Source is 6 (autopsy only), then RX Summ--Chemo
    must be 00 (none).

2.  If Type of Reporting Source is 7 (death certificate only),
    then RX Summ--Chemo must be 99 (unknown).

3.  For all other values of Type of Reporting Source:
    A. If year of Date of Diagnosis is less than 1988 and Registry ID
       is not equal to 0000001529 (SEER Alaska Native Tumor), RX Summ--Chemo
       must be 00, 01, 88, 99.
    B. If year of Date of Diagnosis is equal to 1988-2002 or (Registry ID
       is equal to 0000001529 (SEER Alaska Native Tumor) and year of Date
       of Diagnosis is less than 2003), RX Summ--Chemo must be 00-03, 87,
       88, 99.
    C. If year of Date of Diagnosis is greater than 2002, RX Summ--Chemo
       must be 00-03, 82, 85-88, 99.]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-03-14">Edit modified to allow for two character field for RX Summ--Chemo.</event>
                <event version="SE11-001-17" user="greend" date="2003-09-22">Edit modified to skip cases from New Jersey diagnosed before 2000.</event>
                <event version="SE11-001-19" user="greend" date="2005-05-26">Edit checks for Type of Reporting Source values versus RX Summ--Chemo were added.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-04">Edit changed to not bypass edit if diagnosis year is 9 filled and Type of Reporting Source values are not 6 or 7.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-21">Added check for blank year of diagnosis is year of diagnosis &gt; 2000.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-07" ref="68179">Edit now skipped for New York cases when DX Year &lt; 2003.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE21-021-09" user="beverung" date="2021-09-09" ref="68745">Edit now skipped for Illinois cases when DX Year is 2003.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF62" name="RX Summ--Hormone, DateDX, RptSrc (SEER IF62)" tag="N0293" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.registryId == '0000001544' && (line.dateOfDiagnosisYear < '2000' || line.dateOfDiagnosisYear == null))
    return true
if ((line.registryId == '0000001562' && line.dateOfDiagnosisYear < '2003') || (line.registryId == '0000001565' && line.dateOfDiagnosisYear == '2003'))
    return true

if (line.typeOfReportingSource == '6')
    return line.rxSummHormone == '00'

if (line.typeOfReportingSource == '7')
    return line.rxSummHormone == '99'

if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '1988')
    return Functions.matches(line.rxSummHormone, /^(0[01]|88|99)$/)

if (Functions.between(line.dateOfDiagnosisYear, '1988', '2002'))
    return Functions.matches(line.rxSummHormone, /^(0[01]|8[78]|99)$/)

/* Dx year must be 2003+ */
return Functions.matches(line.rxSummHormone, /^(0[01]|8[25678]|99)$/)]]></expression>
            <message>RX Summ--Hormone and Year of Diagnosis conflict</message>
            <description><![CDATA[This edit is skipped under the following conditions:
    1.  Year of Date of Diagnosis is less than 2000 or null and Registry ID is equal to 0000001544 (New Jersey) OR
        Year of Date of Diagnosis is less than 2003 and Registry ID is 0000001562 (New York) OR
        Year of Date of Diagnosis is 2003 and Registry ID is equal to 0000001565 (Illinois).
    2.  Year of Date of Diagnosis is blank and Type of Reporting
        Source not equal 6 or 7

1.  If Type of Reporting Source is 6 (autopsy only), then RX Summ--Hormone
    must be 00 (none).

2.  If Type of Reporting Source is 7 (death certificate only),
    then RX Summ--Hormone must be 99 (unknown).

3.  For all other values of Type of Reporting Source:
    A. If year of Date of Diagnosis is less than 1988, RX Summ--Hormone must be 00, 01, 88, 99.

    B. If year of Date of Diagnosis is equal to 1988-2002, RX Summ--Hormone must be  00, 01, 87, 88, 99.

    C. If year of Date of Diagnosis is greater than 2002, RX Summ--Hormone
       must be 00, 01, 82, 85-88, 99.]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-03-14">Edit modified to allow for two character field for RX Summ--Hormone.</event>
                <event version="SE11-001-17" user="greend" date="2003-09-22">Edit modified to skip cases from New Jersey diagnosed before 2000.</event>
                <event version="SE11-001-19" user="greend" date="2005-05-26">Edit checks for Type of Reporting Source values versus RX Summ--Hormone were added.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-03">Changed condition 3 to not allow 9 filled year of diganosis.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-21">Added check for blank year of diagnosis is year of diagnosis &gt; 2000.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-07" ref="68179">Edit now skipped for New York cases when DX Year &lt; 2003; removed conditions for Alaska.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE21-021-09" user="beverung" date="2021-09-09" ref="68745">Edit now skipped for Illinois cases when DX Year is 2003.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF63" name="RX Summ--BRM, DateDX, RptSrc (SEER IF63)" tag="N0291" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.registryId == '0000001544' && (line.dateOfDiagnosisYear < '2000' || line.dateOfDiagnosisYear == null))
    return true
if ((line.registryId == '0000001562' && line.dateOfDiagnosisYear < '2003') || (line.registryId == '0000001565' && line.dateOfDiagnosisYear == '2003'))
    return true
if (line.typeOfReportingSource == '6')
    return line.rxSummBrm == '00'
if (line.typeOfReportingSource == '7')
    return line.rxSummBrm == '99'
if (line.dateOfDiagnosisYear == null)
    return true
if (line.dateOfDiagnosisYear < '1988')
    return Functions.matches(line.rxSummBrm, /^(0[01]|88|99)$/)
if (Functions.between(line.dateOfDiagnosisYear, '1988', '2002'))
    return Functions.matches(line.rxSummBrm, /^(0[01]|8[78]|99)$/)

/* year dx must be 2003+ */
return Functions.matches(line.rxSummBrm, /^(0[01]|8[25678]|99)$/)]]></expression>
            <message>RX Summ--BRM and Year of Diagnosis conflict</message>
            <description><![CDATA[This edit is skipped under the following conditions:
    1.  Year of Date of Diagnosis is less than 2000 or blank and Registry ID is equal to 0000001544 (New Jersey) OR
        Year of Diagnosis is less than 2003 and Registry ID is 0000001562 (New York) OR
        Year of Date of Diagnosis is 2003 and Registry ID is equal to 0000001565 (Illinois).
    2.  Year of Date of Diagnosis is blank and Type of Reporting
        Source not equal 6 or 7

1.  If Type of Reporting Source is 6 (autopsy only), then RX Summ--BRM
    must be 00 (none).

2.  If Type of Reporting Source is 7 (death certificate only),
    then RX Summ--BRM must be 99 (unknown).

3.  For all other values of Type of Reporting Source:
    A. If year of Date of Diagnosis is less than 1988, RX Summ--BRM must
       be 00, 01, 88, 99.

    B. If year of Date of Diagnosis is equal to 1988-2002, RX Summ--BRM
       must be 00, 01, 87, 88, 99.

    C. If year of Date of Diagnosis is greater than 2002, RX Summ--BRM
       must be 00, 01, 82, 85-88, 99.]]></description>
            <history>
                <event version="SE11-001-13" user="greend" date="1997-07-15">Codes 2-5 were added for cases diagnosed 1996+.</event>
                <event version="SE11-001-14" user="greend" date="1998-01-29">Code 6 was added for 1996+.</event>
                <event version="SE11-001-17" user="greend" date="2003-03-14">Edit modified to allow for two character field for RX Summ--BRM.</event>
                <event version="SE11-001-17" user="greend" date="2003-09-22">Edit modified to skip cases from New Jersey diagnosed before 2000.</event>
                <event version="SE11-001-19" user="greend" date="2005-05-25">Edit checks for Type of Reporting Source values versus RX Summ--BRM were added.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-04">Edit changed to not bypass edit if diagnosis year is 9 filled and Type of Reporting Source values are not 6 or 7.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-21">Added check for blank year of diagnosis is year of diagnosis &gt; 2000.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-07" ref="68179">Edit now skipped for New York cases when DX Year &lt; 2003; removed conditions for Alaska.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE21-021-09" user="beverung" date="2021-09-09" ref="68745">Edit now skipped for Illinois cases when DX Year is 2003.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF64" name="RX Summ--Other, DateDX, RptSrc (SEER IF64)" tag="N0295" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.registryId == '0000001544' && (line.dateOfDiagnosisYear < '2000' || line.dateOfDiagnosisYear == null))
    return true
if ((line.registryId == '0000001562' && line.dateOfDiagnosisYear < '2003') || (line.registryId == '0000001565' && line.dateOfDiagnosisYear == '2003'))
    return true
if (line.typeOfReportingSource == '6')
    return line.rxSummOther == '0'
if (line.typeOfReportingSource == '7')
    return line.rxSummOther == '9'
if (line.dateOfDiagnosisYear == null)
    return true
if (line.dateOfDiagnosisYear < '1988')
    return Functions.matches(line.rxSummOther, /^[0123689]$/)
/* yr dx >= 1988 */
return Functions.matches(line.rxSummOther, /^[01236789]$/)]]></expression>
            <message>RX Summ--Other and Year of Diagnosis conflict</message>
            <description><![CDATA[This edit is skipped under the following conditions:
    1.  Year of Date of Diagnosis is less than 2000 or blank and Registry ID is equal to 0000001544 (New Jersey) OR
        Year of Date of Diagnosis is less than 2003 and Registry ID is 0000001562 (New York) OR
        Year of Date of Diagnosis is 2003 and Registry ID is equal to 0000001565 (Illinois).
    2.  Year of Date of Diagnosis is blank and Type of Reporting
        Source not equal 6 or 7

1.  If Type of Reporting Source is 6 (autopsy only), then RX Summ--Other
     must be 00 (none).

2.  If Type of Reporting Source is 7 (death certificate only),
    then RX Summ--Other must be 99 (unknown).

3.  For all other values of Type of Reporting Source:
    A. If year of Date of Diagnosis is less than 1988,RX Summ--Other
       must be 0-3, 6, 8, 9.
    B. If year of Date of Diagnosis is greater than 1987,  RX Summ--Other
       must be 0-3, 6-9.]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-09-22">Edit modified to skip cases from New Jersey diagnosed before 2000.</event>
                <event version="SE11-001-19" user="greend" date="2005-05-26">Edit checks for Type of Reporting Source values versus RX Summ--Other were added.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-03">Changed condition 3 to not allow 9 filled year of diagnosis.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-21">Added check for blank year of diagnosis is year of diagnosis &gt; 2000.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-07" ref="68179">Edit now skipped for New York cases when DX Year &lt; 2003; removed conditions for Alaska.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE21-021-09" user="beverung" date="2021-09-09" ref="68745">Edit now skipped for Illinois cases when DX Year is 2003.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF65" name="Tumor Marker 1, Date of Diagnosis (SEER IF65)" tag="N0028" java-path="lines.line" category="inter-field" depends="Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.registryId == '0000001544' && line.dateOfDiagnosisYear < '2000'))
    return true
if (line.registryId == '0000001561' && line.dateOfDiagnosisYear >= '1996' && line.dateOfDiagnosisYear <= '2003')
    return true
if (Functions.matches(line.registryId, /^000000156[2356]$/) && line.dateOfDiagnosisYear < '2004')
    return true

if (line.dateOfDiagnosisYear < '1990')
    return line.tumorMarker1 == '9' || line.tumorMarker1 == null
if (line.dateOfDiagnosisYear <= '1997')
    return (!Functions.matches(line.primarySite, /^C50\d$/) || Functions.matches(line.tumorMarker1, /^[012389]$/))
if (line.dateOfDiagnosisYear <= '2003')
    return ((!Functions.matches(line.primarySite, /^C(50\d|619)$/) || Functions.matches(line.tumorMarker1, /^[012389]$/))
            && (!Functions.matches(line.primarySite, /^C62\d$/) || Functions.matches(line.tumorMarker1, /^[0245689]$/)))
/* year dx 2004+ */
return line.tumorMarker1 == null]]></expression>
            <message>Tumor Marker 1, Primary Site and Year of Diagnosis conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1)  Year of Diagnosis is blank
  2)  Registry ID = 0000001544 (New Jersey) and Year of Diagnosis < 2000
  3)  Registry ID = 0000001561 (Idaho) and Year of Diagnosis = 1996-2003
  4)  Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas) and Year of Diagnosis < 2004

1.  For Diagnosis Years 1973-1989, Tumor Marker 1 must be 9 or blank for all cases.

2.  For Diagnosis Years 1990-1997, if Primary Site is breast (C500-C509), Tumor
    Marker 1 may be 0-3,8-9.

3.  For Diagnosis Years 1998-2003:
    A. if Primary Site is breast (C500-C509) or protate (C619), Tumor
       Marker 1 may be 0-3,8-9;
    B. if Primary Site is testis (C620-C629), Tumor Marker 1 may be
       0,2,4-6,8-9;

4.  For Diagnosis Years 2004+:  Tumor Marker 1 must be blank.]]></description>
            <history>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topography codes from ICD-O-1 to ICD-O-2.</event>
                <event version="SE11-001-14" user="greend" date="1998-07-01">Program modified to incorporate new tumor marker sites for prostate and testis.</event>
                <event version="SE11-001-17" user="greend" date="2003-09-22">Edit modified to skip cases from New Jersey diagnosed before 2000.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">Tumor Marker 1 must be blank for cases diagnosed 2004+.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-16">Edit changed not recognize 9 filled year of diagnosis.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-12" user="kirbyk" date="2019-01-28" ref="68086">Edit modified to skip cases from Idaho diagnosed 1996-2003.</event>
                <event version="SE18-018-12" user="kirbyk" date="2019-01-29" ref="68094">Edit modified to skip cases from MA diagnosed &lt; 2004.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-19" ref="68127">Edit modified to skip cases from NY diagnosed &lt; 2004.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-28" ref="68499">Updated accepted values for Tumor Marker 1.</event>
                <event version="SE18-020-06" user="kirbyk" date="2020-09-10" ref="68525">Fixed invalid Groovy syntax.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-06" ref="68706">Edit modified to skip cases from IL and TX diagnosed &lt; 2004.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF66" name="Tumor Marker 2, Date of Diagnosis (SEER IF66)" tag="N0030" java-path="lines.line" category="inter-field" depends="Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.registryId == '0000001544'  && line.dateOfDiagnosisYear < '2000'))
    return true
if (Functions.matches(line.registryId, /^000000156[12356]$/) && line.dateOfDiagnosisYear < '2004')
    return true

if (line.dateOfDiagnosisYear < '1990')
    return line.tumorMarker2 == '9' || line.tumorMarker2 == null
if (line.dateOfDiagnosisYear <= '1997')
    return (!Functions.matches(line.primarySite, /^C50\d$/) || Functions.matches(line.tumorMarker2, /^[012389]$/))
if (line.dateOfDiagnosisYear <= '2003')
    return ((!Functions.matches(line.primarySite, /^C(50\d|619)$/) || Functions.matches(line.tumorMarker2, /^[012389]$/))
            && (!Functions.matches(line.primarySite, /^C62\d$/) || Functions.matches(line.tumorMarker2, /^[0245689]$/)))
/* Year Dx 2004+ */
return line.tumorMarker2 == null]]></expression>
            <message>Tumor Marker 2, Primary Site and Year of Diagnosis conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1)  Year of Diagnosis is blank
  2)  Registry ID = 0000001544 (New Jersey) and Year of Diagnosis < 2000
  3)  Registry ID = 0000001561 (Idaho), 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas) and Year of Diagnosis < 2004

1.  For Diagnosis Years 1973-1989, Tumor Marker 2 must be 9 or blank for all cases.

2.  For Diagnosis Years 1990-1997, if Primary Site is breast (C500-C509), Tumor
    Marker 2 may be 0-3,8-9.

3.  For Diagnosis Years 1998-2003:
    A. if Primary Site is breast (C500-C509) or protate (C619), Tumor
       Marker 2 may be 0-3,8-9;
    B. if Primary Site is testis (C620-C629), Tumor Marker 2 may be
       0,2,4-6,8-9;

4.  For Diagnosis Years 2004+:  Tumor Marker 2 must be blank.]]></description>
            <history>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topography codes from ICD-O-1 to ICD-O-2.</event>
                <event version="SE11-001-14" user="greend" date="1998-07-01">Program modified to incorporate new tumor marker sites for prostate and testis.</event>
                <event version="SE11-001-17" user="greend" date="2003-09-22">Edit modified to skip cases from New Jersey diagnosed before 2000.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">Tumor Marker 2 must be blank for cases diagnosed 2004+.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-16">Edit changed not recognize 9 filled year of diagnosis.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-12" user="kirbyk" date="2019-01-29" ref="68094">Edit modified to skip cases from MA diagnosed &lt; 2004.</event>
                <event version="SE18-018-12" user="kirbyk" date="2019-01-31" ref="68106">Edit modified to skip cases from Idaho diagnosed 1996-1997.</event>
                <event version="SE18-018-14" user="kirbyk" date="2019-02-28" ref="68119">Edit modified to skip cases from Idaho and New York diagnosed &lt; 2004.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-28" ref="68499">Updated accepted values for Tumor Marker 2.</event>
                <event version="SE18-020-06" user="kirbyk" date="2020-09-10" ref="68525">Fixed invalid Groovy syntax.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-06" ref="68706">Edit modified to skip cases from IL and TX diagnosed &lt; 2004.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF67" name="Tumor Marker 1, Type of Report Srce (SEER IF67)" tag="N0029" java-path="lines.line" category="inter-field" depends="Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[String regId = line.registryId
if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear >= '2004' || (regId == '0000001544' && line.dateOfDiagnosisYear < '2000'))
    return true
if (Functions.matches(regId, /^000000156[12356]$/))
    return true

if ((line.dateOfDiagnosisYear > '1989' && Functions.matches(line.primarySite, /^C50\d$/))
        || (line.dateOfDiagnosisYear > '1997' && Functions.matches(line.primarySite, /^C(619|62\d)$/))) {
    if (line.typeOfReportingSource == '6')
        return line.tumorMarker1 == '0'
    if (line.typeOfReportingSource == '7')
        return line.tumorMarker1 == '9'
}

return true]]></expression>
            <message>Tumor Marker 1, Primary Site and Type of Report Srce conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1)  Year of Diagnosis is blank or greater than 2003
  2)  Registry ID = 0000001544 (New Jersey) and Year of Diagnosis < 2000
  3)  Registry ID = 0000001561 (Idaho), 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

For diagnosis years 1990 and later and primary site of breast (C500-C509):

      1.   If Type of Reporting Source is Autopsy Only (6), then Tumor
           Marker 1 must be "None" (0).

      2.   If Type of Reporting Source is Death Certificate Only (7),
           then Tumor Marker 1 must be "Unknown" (9).

For diagnosis years 1998 and later and primary site of prostate (C619) or testis (C620-C629):

      1.   If Type of Reporting Source is Autopsy Only (6), then Tumor
           Marker 1 must be "None" (0).

      2.   If Type of Reporting Source is Death Certificate Only (7),
           then Tumor Marker 1 must be "Unknown" (9).]]></description>
            <history>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topography codes from ICD-O-1 to ICD-O-2.</event>
                <event version="SE11-001-14" user="greend" date="1998-07-01">Program modified to incorporate new tumor marker sites for prostate and testis.</event>
                <event version="SE11-001-17" user="greend" date="2003-09-22">Edit modified to skip cases from New Jersey diagnosed before 2000.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">Edit modified to skip cases diagnosed 2004+.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-12" user="kirbyk" date="2019-01-29" ref="68094">Edit modified to skip cases from Massachusetts.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-19" ref="68127">Edit modified to skip cases from New York.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-01" ref="68182">Edit modified to skip cases from Idaho.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-06" ref="68706">Edit modified to skip cases from IL and TX.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF68" name="Tumor Marker 2, Type of Report Srce (SEER IF68)" tag="N0031" java-path="lines.line" category="inter-field" depends="Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[String regId = line.registryId
if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear >= '2004' || (regId == '0000001544'  && line.dateOfDiagnosisYear < '2000'))
    return true
if (Functions.matches(regId, /^000000156[12356]$/))
    return true

if ((line.dateOfDiagnosisYear > '1989' && Functions.matches(line.primarySite, /^C50\d$/))
        || (line.dateOfDiagnosisYear > '1997' && Functions.matches(line.primarySite, /^C(619|62\d)$/))) {
    if (line.typeOfReportingSource == '6')
        return line.tumorMarker2 == '0'
    if (line.typeOfReportingSource == '7')
        return line.tumorMarker2 == '9'
}

return true]]></expression>
            <message>Tumor Marker 2, Primary Site and Type of Report Srce conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1)  Year of Diagnosis is blank or greater than 2003
  2)  Registry ID = 0000001544 (New Jersey) and Year of Diagnosis < 2000
  3)  Registry ID = 0000001561 (Idaho), 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

For diagnosis years 1990 and later and primary site of breast (C500-C509):

      1.   If Type of Reporting Source is Autopsy Only (6), then Tumor
           Marker 2 must be "None" (0).

      2.   If Type of Reporting Source is Death Certificate Only (7),
           then Tumor Marker 2 must be "Unknown" (9).

For diagnosis years 1998 and later and primary site of prostate (C619) or testis (C620-C629):

      1.   If Type of Reporting Source is Autopsy Only (6), then Tumor
           Marker 2 must be "None" (0).

      2.   If Type of Reporting Source is Death Certificate Only (7),
           then Tumor Marker 2 must be "Unknown" (9).]]></description>
            <history>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topography codes from ICD-O-1 to ICD-O-2.</event>
                <event version="SE11-001-14" user="greend" date="1998-07-01">Program modified to incorporate new tumor marker sites for prostate and testis.</event>
                <event version="SE11-001-17" user="greend" date="2003-09-22">Edit modified to skip cases from New Jersey diagnosed before 2000.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">Edit modified to skip cases diagnosed 2004+.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-12" user="kirbyk" date="2019-01-29" ref="68094">Edit modified to skip cases from Massachusetts.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-19" ref="68127">Edit modified to skip cases from New York.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-01" ref="68182">Edit modified to skip cases from Idaho.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-06" ref="68706">Edit modified to skip cases from IL and TX.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF73" name="Tumor Marker 3, Date of Diagnosis (SEER IF73)" tag="N0289" java-path="lines.line" category="inter-field" depends="Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.registryId == '0000001544' && line.dateOfDiagnosisYear < '2000'))
    return true
if (Functions.matches(line.registryId, /^000000156[12356]$/) && line.dateOfDiagnosisYear < '2004')
    return true

if (line.dateOfDiagnosisYear <= '1997')
    return line.tumorMarker3 == '9' || line.tumorMarker3 == null
if (line.dateOfDiagnosisYear <= '2003')
    return !Functions.matches(line.primarySite, /^C62\d$/) || Functions.matches(line.tumorMarker3, /^[0245689]$/)
/* Year Dx 2004+ */
return line.tumorMarker3 == null]]></expression>
            <message>Tumor Marker 3, Primary Site and Year of Diagnosis conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1)  Year of Diagnosis is blank
  2)  Registry ID = 0000001544 (New Jersey) and Year of Diagnosis < 2000
  3)  Registry ID = 0000001561 (Idaho), 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas) and Year of Diagnosis < 2004

1.  For Diagnosis Years 1973-1997, Tumor Marker 3 must be 9 or blank for all cases.

2.  For Diagnosis Years 1998-2003, if Primary Site is testis (C620-C629),
    Tumor Marker 3 may be 0,2,4-6,8-9;

3.  For Diagnosis Years 2004+: Tumor Marker 3 must be blank.]]></description>
            <history>
                <event version="SE11-001-16" user="greend" date="2002-08-20">Documentation modified to reflect valid codes only for testis.</event>
                <event version="SE11-001-17" user="greend" date="2003-09-22">Edit modified to skip cases from New Jersey diagnosed before 2000.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">Tumor Marker 3 must be blank for cases diagnosed 2004+.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-16">Edit no longer recognizes 9-filled year of diagnosis.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-12" user="kirbyk" date="2019-01-29" ref="68094">Edit modified to skip cases from MA diagnosed &lt; 2004.</event>
                <event version="SE18-018-14" user="kirbyk" date="2019-02-28" ref="68119">Edit modified to skip cases from Idaho and New York diagnosed &lt; 2004.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-28" ref="68499">Updated accepted values for Tumor Marker 3.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-06" ref="68706">Edit modified to skip cases from IL and TX diagnosed &lt; 2004.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF74" name="Tumor Marker 3, Type of Report Srce (SEER IF74)" tag="N0290" java-path="lines.line" category="inter-field" depends="Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear >= '2004' || (line.registryId == '0000001544' && line.dateOfDiagnosisYear < '2000'))
    return true
if (Functions.matches(line.registryId, /^000000156[12356]$/))
    return true

if (line.dateOfDiagnosisYear > '1997' && Functions.matches(line.primarySite, /^C62\d$/)) {
    if (line.typeOfReportingSource == '6')
        return line.tumorMarker3 == '0'
    if (line.typeOfReportingSource == '7')
        return line.tumorMarker3 == '9'
}

return true]]></expression>
            <message>Tumor Marker 3, Primary Site and Type of Report Srce conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1)  Year of Diagnosis is blank or greater than 2003
  2)  Registry ID = 0000001544 (New Jersey) and Year of Diagnosis < 2000
  3)  Registry ID = 0000001561 (Idaho), 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

For diagnosis years 1998 and later and primary site of testis (C620-C629):

      1.   If Type of Reporting Source is Autopsy Only (6), then Tumor
           Marker 3 must be "None" (0).

      2.   If Type of Reporting Source is Death Certificate Only (7),
           then Tumor Marker 3 must be "Unknown" (9).]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-09-22">Edit modified to skip cases from New Jersey diagnosed before 2000.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">Edit modified to skip cases diagnosed 2004+.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-12" user="kirbyk" date="2019-01-29" ref="68094">Edit modified to skip cases from Massachusetts.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-19" ref="68127">Edit modified to skip cases from New York.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-15" ref="68227">Edit modified to skip cases from Idaho.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-06" ref="68706">Edit modified to skip cases from IL and TX.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF75" name="Surgery 03-2022, Rad, Surg/Rad Seq (SEER IF75)" tag="N0429" java-path="lines.line" category="inter-field" depends="RX_Summ--Radiation,RX_Summ--Scope_Reg_LN_Sur,RX_Summ--Surg-Rad_Seq,RX_Summ--Surg_Oth_Reg-Dis,RX_Summ--Surg_Prim_Site,Regional_Nodes_Examined,Year_of_Diagnosis">
            <expression><![CDATA[if (line.rxSummSurgPrimSite == null || line.rxSummScopeRegLnSur == null || line.rxSummSurgOthRegDis == null || line.dateOfDiagnosisYear > '2017')
    return true
if (line.rxSummRadiation == null)
    return true
if (line.registryId == '0000001565' && (line.dateOfDiagnosisYear == '2000' || line.dateOfDiagnosisYear == '2003'))
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear < '2012')
    return true

if ((Functions.matches(line.rxSummSurgPrimSite, /^([1-8]\d|90)$/) ||
   (line.dateOfDiagnosisYear < '2012' && Functions.matches(line.rxSummScopeRegLnSur, /^[1-7]$/)) ||
   (line.dateOfDiagnosisYear >= '2012' &&
       ((line.regionalNodesExamined >= '01' && line.regionalNodesExamined <= '98' && line.rxSummScopeRegLnSur == '2') ||
        Functions.matches(line.rxSummScopeRegLnSur, /^1|[3-7]$/))) ||
        Functions.matches(line.rxSummSurgOthRegDis, /^[1-5]$/)) && Functions.matches(line.rxSummRadiation, /^[1-6]$/))
    return Functions.matches(line.rxSummSurgRadSeq, /^[2345679]$/)

if (((line.rxSummSurgPrimSite == '00' || line.rxSummSurgPrimSite == '99') &&
     ((line.dateOfDiagnosisYear < '2012' && line.rxSummScopeRegLnSur == '0') ||
     (line.dateOfDiagnosisYear >= '2012' && ((Functions.matches(line.regionalNodesPositive, /^(00|99)$/) && line.rxSummScopeRegLnSur == '2') ||
         line.rxSummScopeRegLnSur == '0'))) &&
     line.rxSummSurgOthRegDis == '0') || (line.rxSummRadiation == '0' || line.rxSummRadiation == '9'))
    return line.rxSummSurgRadSeq == '0'

return true]]></expression>
            <message>Surgery 2003+, RX Summ--Radiation, RX Summ--Surg/Rad Seq conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1)  RX Summ--Surg Prim Site 03-2022 is blank.
  2)  RX Summ--scope reg LN sur[1292] is blank.
  3)  RX Summ--surg oth reg/dis[1294] is blank.
  4)  RX Summ--Radiation[1360] is blank.
  5)  Year of Date of Diagnosis is > 2017.
  6)  Registry ID is 0000001565 (Illinois) and Year of Date of Diagnosis is 2000 or 2003.
  7)  Registry ID is 0000001566 (Texas) and Year of Date of Diagnosis is < 2012.

If surgery was performed and if radiation was given (RX Summ-Radiation = 1-6), then RX Summ-Surg/Rad Seq must specify sequence (codes 2-7, 9).
Surgery is considered "performed" if ANY of the following three conditions are true:

    1. RX Summ-Surg Prim Site 03-2022 = 10-90
    2. RX Summ-Scope Reg LN Sur:
        For cases diagnosed prior to 2012:
        1-7
        For cases diagnosed 2012 or later:
        1, 2 (only if Regional Nodes Examined = 01-98), 3-7
    3. RX Summ-Surg Oth Reg/Dis = 1-5

    If surgery was not performed or no radiation was given (Rx Summ-Radiation = 0 or 9), then RX Summ-Surg/Rad Seq must specify no (0). Surgery is considered "not performed" if ALL of the following three conditions are true:

    1. RX Summ-Surg Prim Site 03-2022 = 00 or 99
    2. RX Summ-Scope Reg LN Sur:
        For cases diagnosed prior to 2012:
        0
        For cases diagnosed 2012 or later:
        0 (for all cases)
        2 (only if Regional Nodes Examined = 00 or 99)
    3. RX Summ-Surg Oth Reg = 0]]></description>
            <history>
                <event version="SE11-001-18" user="greend" date="2004-09-15">RX Summ--Scope Reg LN Sur[1292] range was changed from 1-8 to 1-7.  RX Summ--Surg Oth Reg/Dis[1294] was changed from 1-8 to 1-5.</event>
                <event version="SE11-001-18" user="greend" date="2004-12-28">This edit is now skipped if any of the three surgery fields are blank.</event>
                <event version="SE11-001-22" user="greend" date="2008-01-07">Fixed ranges in source code to reflect documentation.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-16" ref="66641">Added code 7.</event>
                <event version="SE12-008-01" user="murphyr" date="2012-08-10" ref="66715">Changed &apos;yes/no&apos; surgery definition for scope for 2012+ cases.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-06-28" ref="66896">Fixed issue in surgery not performed condition.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-23" ref="67966">Fixed inaccurate skip conditions in description.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68709">Added skip conditions for IL for DX Year 2000 and TX for DX Years 2000-2003.</event>
                <event version="SE21-021-10" user="beverung" date="2021-10-13" ref="68754">Added DX Year 2003 to skip condition for IL.</event>
                <event version="SE21-021-11" user="beverung" date="2022-01-05" ref="68772">Updated TX skip condition to skip for any year before 2012.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-26" ref="68972">Added Rx Summ-Radiation = 9 and Rx Summ-Surg Prim Site = 99 as valid values for no surg/no rad.</event>
                <event version="SE22-022-09" user="beverung" date="2022-06-30" ref="69014">Added skip condition for Rx Summ-Radiation = blank.</event>
                <event version="SE23-023-01" user="secristc" date="2023-01-27" ref="69110">Updated name and description to use RX Summ--Surg Prim Site 03-2022.</event>
            </history>
        </rule>
        <rule id="IF76" name="RX Summ--Surg Prim Site 03-2022, Diag Conf (SEER IF76)" tag="N0303" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.overRideSurgDxconf != '1' && line.rxSummSurgPrimSite != null) {
    if (Functions.matches(line.rxSummSurgPrimSite, /^([2-8]\d|90)$/) && !(line.diagnosticConfirmation ==~/^[1234]$/))
        return false
}

return true]]></expression>
            <message>RX Summ--Surg Prim Site 03-2022 and Diagnostic Confirmation conflict</message>
            <description><![CDATA[This edit is skipped if Over-ride surg/dxconf[2020]= 1 (review complete).

If RX Summ--Surg Prim Site 03-2022 = 20-90, Diagnostic Confirmation[490] should be 1-4 (histologically confirmed).]]></description>
            <history>
                <event version="SE11-001-14" user="greend" date="1998-11-20">Changed edit to be skipped if RX Summ--Surg Prim Site is blank.</event>
                <event version="SE11-001-17" user="greend" date="2003-03-14">Range for diagnostically confirmed surgery cases changed from 10-90 to 20-90 due to the updated codes for item RX Summ--Surg Prim Site in 2003.</event>
                <event version="SE12-004-03" user="murphyr" date="2011-05-13" ref="66460">Added code 3 to list of Diagnostic Confirmation codes that indicate histologic confirmation.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE23-023-01" user="secristc" date="2023-01-27" ref="69110">Updated name and description to use RX Summ--Surg Prim Site 03-2022.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-16" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF77" name="Surgery 03-2022, Reason for No Surg (SEER IF77)" tag="N0430" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[
            if (line.dateOfDiagnosisYear < '2003' || line.dateOfDiagnosisYear > '2022' || ['6','7'].contains(line.typeOfReportingSource) || line.dateOfDiagnosisYear == null || line.rxSummSurgPrimSite == null)
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear == '2003')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2002' && line.dateOfDiagnosisYear < '2006')
    return true

if (line.rxSummSurgPrimSite == '99')
    return line.reasonForNoSurgery != '0'
if (line.rxSummSurgPrimSite == '00' || line.rxSummSurgPrimSite == '98')
    return Functions.matches(line.reasonForNoSurgery, /^[125-8]$/)
if (Functions.matches(line.rxSummSurgPrimSite, /^([1-8]\d|90)$/))
    return line.reasonForNoSurgery == '0'

return true]]></expression>
            <message>Surgery 03-2022 and Reason No Surgery conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1)  Year of Diagnosis[390] < 2003 or > 2022.
  2)  Year of Diagnosis[390] is blank.
  3)  Type of Reporting Source[500] = 6 (autopsy only) or 7 (death certificate only).
  4)  RX Summ--Surg Prim Site 03-2022 is blank.
  5)  Registry ID is 0000001565 (Illinois) and Year of Date of Diagnosis is 2003.
  6)  Registry ID is 0000001566 (Texas) and Year of Date of Diagnosis is 2003-2005.


If RX Summ--Surg Prim Site 03-2022 = 00,98 (no surgery to primary site),then Reason for no surgery[1340] must be 1,2,5,6,7, or 8 (surgery was not performed).

If RX Summ--Surg Prim Site 03-2022 = 10-90 (surgery performed), Reason for no surgery[1340] must be 0 (surgery performed).

If RX Summ--Surg Prim Site 03-2022 = 99, Reason for no surgery[1340] cannot be 0 (surgery performed).]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-06-04">Surgery is only defined using the field RX Summ--Surg Prim Site[1290].</event>
                <event version="SE11-001-18" user="greend" date="2004-08-06">Edit limited to diagnoses years 2003+.  DCO cases with no surgery can have Reason for No Surgery code of 9.</event>
                <event version="SE11-001-18" user="greend" date="2004-09-15">Autopsy only cases with no surgery can have Reason for No Surgery code of 9 (instead of DCO cases).  No surgery can be defined as 00 or 98 (instead of just 00).</event>
                <event version="SE11-001-19" user="greend" date="2005-05-25">Edit corrected for autopsy only cases to 98 valid for no surgery.</event>
                <event version="SE11-001-19" user="greend" date="2005-06-24">Edited modifed to skip autopsy only cases.  They will be edited by If057.</event>
                <event version="SE11-001-20" user="greend" date="2006-03-30">The following check was added to the edit: If RX summ--surg prim site = 99, then reason for no surgery cannot be 0.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-16">If year of diagnosis is blank the edit is now skipped.  Also documentation updated to correctly reflect new and old edit code (Previous documentation was incomplete).</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68709">Added skip condition for IL for DX Year 2003 and for TX for DX Years 2003-2005.</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-12" ref="68942">Added skip conditions for Type of Reporting Source = 7 (death certificate only).</event>
                <event version="SE23-023-01" user="secristc" date="2023-01-23" ref="69086">Added skip conditions for DX year &gt; 2022.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF79_3" name="RX Summ--Scope Reg 98-02,Site,Rpt,ICDO3 (SEER IF79)" tag="N0802" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Scope_Reg_98-02,Year_of_Diagnosis">
            <expression><![CDATA[if (line.rxSummScopeReg9802 == null || line.histologicTypeIcdO3 == null)
    return true
if ((line.dateOfDiagnosisYear < '2000' || line.dateOfDiagnosisYear ==  null) && ['0000001544', '0000001563'].contains(line.registryId))
    return true

if (line.typeOfReportingSource == '6') {
    if (Functions.matches(line.primarySite, /^C(700|71\d|809)$/) || Functions.between(line.histologicTypeIcdO3, '9590', '9989'))
        return (line.rxSummScopeReg9802 == '0' || line.rxSummScopeReg9802 == '9')
    return line.rxSummScopeReg9802 == '0'
}
if (line.typeOfReportingSource == '7')
    return line.rxSummScopeReg9802 == '9'

Integer site = Functions.asInt(line.primarySite.substring(1))
return ((List)((Map)Context.IF79SiteReferenceTable).getOrDefault(site, [])).contains(Functions.asInt(line.rxSummScopeReg9802))]]></expression>
            <message>RX Summ--Scope reg 98-02 and Primary Site conflict (ICD-O-3)</message>
            <description><![CDATA[This edit is skipped under the following conditions:
    1.  Year of Date of Diagnosis is less than 2000 and Registry ID
        is equal to 0000001544 (New Jersey) or 0000001563 (Massachusetts)
    2.  RX Summ--Scope Reg 98-02 is blank
    3.  Histologic Type ICD-O-3 is blank

1.  If Type of Reporting Source is 6 (autopsy only)
    A.  For Primary Site of brain (C700, C710-C719), unknown site (C809),
        lymphoma and hematopoietic (Histologic Type ICD-O-3 = 9590-9989),
        RX Summ--Scope Reg 98-02 must specify none (0) or unknown (9)
    B.  For all other sites/histologies, RX Summ--Scope Reg 98-02
        must specify none (0).

2.  If Type of Reporting Source is 7 (death certificate only),
    then RX Summ--Scope Reg 98-02 must be 9 (unknown).

3.  For all other values of Type of Reporting Source:
    The valid RX Summ--Scope Reg 98-02 codes for each Primary Site are
    specified in Appendix C of the SEER Program Code Manual, 3rd Edition.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2009-12-21">Edit now skipped if registry is new jersey and year of diagnosis is blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-25" ref="67760">Edit name change.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="beverung" date="2020-09-04" ref="68521">Added 0000001563 (Massachusetts) to skip condition.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF80_3" name="RX Summ--Surg Oth 98-02,Site,Rpt,ICDO3 (SEER IF80)" tag="N0803" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Surg_Oth_98-02,Year_of_Diagnosis">
            <expression><![CDATA[if (line.rxSummSurgOth9802 == null || line.histologicTypeIcdO3 == null)
    return true
if ((line.dateOfDiagnosisYear < '2000' || line.dateOfDiagnosisYear ==  null) && ['0000001544', '0000001563'].contains(line.registryId))
    return true

if (line.typeOfReportingSource == '6') {
    if (Functions.matches(line.primarySite, /^C(700|71\d|809)$/) || Functions.between(line.histologicTypeIcdO3, '9590', '9989'))
        return line.rxSummSurgOth9802 == '0' || line.rxSummSurgOth9802 == '9'
    return line.rxSummSurgOth9802 == '0'
}
if (line.typeOfReportingSource == '7')
    return line.rxSummSurgOth9802 == '9'

Integer site = Functions.asInt(line.primarySite.substring(1))
return ((List)((Map)Context.IF80SiteReferenceTable).getOrDefault(site, [])).contains(Functions.asInt(line.rxSummSurgOth9802))]]></expression>
            <message>RX Summ--surg oth 98-02 and Primary Site conflict (ICD-O-3)</message>
            <description><![CDATA[This edit is skipped under the following conditions:
    1.  Year of Date of Diagnosis is less than 2000 and Registry ID
        is equal to 0000001544 (New Jersey) or 0000001563 (Massachusetts)
    2.  RX Summ--Surg Oth 98-02 is blank
    3.  Histologic Type ICD-O-3 is blank.

1.  If Type of Reporting Source is 6 (autopsy only)
    A.  For Primary Site of brain (C700, C710-C719), unknown site (C809),
        lymphoma and hematopoietic (Histologic Type ICD-O-3 = 9590-9989),
        RX Summ--Surg Oth 98-02 must specify none (0) or unknown (9).
    B.  For all other sites/histologies, RX Summ--Surg Oth 98-02 must
        specify none (0).

2.  If Type of Reporting Source is 7 (death certificate only),
    then RX Summ--Surg Oth 98-02 must be 9 (unknown).

3.  For all other values of Type of Reporting Source:
    The valid RX Summ--Surg Oth 98-02 codes for each Primary Site are
    specified in Appendix C of the SEER Program Code Manual, 3rd Edition.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2009-12-21">Edit now skipped if registry is new jersey and year of diagnosis is blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="beverung" date="2020-09-04" ref="68521">Added 0000001563 (Massachusetts) to skip condition.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF82" name="Primary Site, Laterality (SEER IF82)" tag="N0390" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.primarySite == 'C342' && (line.laterality == '2' ||
   (line.dateOfDiagnosisYear > '2006' && line.dateOfDiagnosisYear != null && line.laterality == '4')))
   return false

return true]]></expression>
            <message>Primary Site and Laterality conflict</message>
            <description><![CDATA[if Primary Site[400] = C342 (middle-lobe lung), Laterality[410] cannot be 2 (left).

If Primary Site[400] = C342 (middle-lobe lung) and Year of Diagnosis [390] > 2006 and not blank, Laterality [410] cannot be 4 (bilateral).]]></description>
            <history>
                <event version="SE11-001-23" user="greend" date="2009-01-06">If primary site C342 and Year of Diagnosis is greater than 2006, Laterality  cannot = 4.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-21">Edit checks for a blank year of diagnosis now instead of 9-filled.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF83" name="Registry and Census Tract (SEER IF83)" tag="S004" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.censusCodSys19708090 != '3' || line.registryId == '0000001551' || line.registryId == '0000001561')
    return true

String county = line.countyAtDxGeocode1990 ?: line.countyAtDxAnalysis
Map countyCensusTract = (Map)((Map)Context.registry_county_censusTract).get(line.addrAtDxState)
if (countyCensusTract == null)
    return true

List validCensusTracts = (List)countyCensusTract.getOrDefault(county, [])

if (line.censusTract19708090 != '999999'
     && line.registryId >= '0000001500'
     && line.registryId <= '0000001599'
     && !validCensusTracts.contains(Functions.asInt(line.censusTract19708090))
   )
   return false

return true]]></expression>
            <message>Registry, County and Census Tract 1970/80/90 conflict</message>
            <description><![CDATA[This edit is only performed for cases coded to 1990 Census tract(Census cod sys 1970/80/90[120] = 3) and is skipped for Cherokee Nation and Idaho.
This edit is also skipped if Addr at DX State is blank or invalid.

A 9-filled Census tract 1970/80/90[110] is valid for all registries.

Census tract 1970/80/90[110] must be valid within the given County at DX Geocode1990[94] for each Addr at DX State[547].]]></description>
            <history>
                <event version="SE13-010-03" user="murphyr" date="2013-07-29" ref="66767">Edit now skipped for Cherokee Nation.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-11" ref="67377">Edit now uses County at DX Geocode1990 instead of County at DX.</event>
                <event version="SE16-015-04" user="kirbyk" date="2016-07-08" ref="67489">Edit now uses County at DX if County at DX Geocode1990 is blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-08" user="kirbyk" date="2018-10-30" ref="68047">Edit updated for new registries ID, NY, MA, and WI.</event>
                <event version="SE18-018-09" user="kirbyk" date="2018-11-05" ref="68051">Fixed table values for registries ID, NY, MA, and WI.</event>
                <event version="SE18-018-10" user="kirbyk" date="2018-12-05" ref="68071">Edit now skipped for Idaho.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-07" user="beverung" date="2020-10-01" ref="68527">Edit now uses countyAtDxAnalysis instead of countyAtDxGeocode1990.</event>
                <event version="SE18-020-09" user="kirbyk" date="2020-10-27" ref="68538">Reverted edit back to use countyAtDxGeocode1990.</event>
                <event version="SE21-021-07" user="beverung" date="2021-07-16" ref="68686">Edit updated for new registries IL and TX.</event>
                <event version="SE23-023-06" user="cooki" date="2023-07-31" ref="69294">Updated countyAtDx to countyAtDxAnalysis.</event>
                <event version="SE24-024-05" user="beverung" date="2024-05-23" ref="69467">Update edit to use Addr at DX State instead of Registry ID to determine valid Census tract codes.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF89" name="Race 2, Date of DX (SEER IF89)" tag="N0413" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear > '1999')
    return line.race2 != null

return true]]></expression>
            <message>Race 2 must not be blank for 2000+</message>
            <description><![CDATA[This edit is skipped for the following conditions:
    a. Year of Diagnosis[390] is blank

If Year of Diagnosis[390] > 1999, then Race 2[161] cannot be blank.]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-03-05">Changed edit name to match NAACCR edit.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-04">Edit changed to not recognize 9 filled year of diagnosis.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-21">Edit is skipped if year of diagnosis is blank.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-04" ref="68703">Edit skipped for IL and TX for DX Year 2000.</event>
                <event version="SE21-021-11" user="beverung" date="2021-12-17" ref="68763">Removed skip condition for TX.</event>
                <event version="SE22-022-02" user="beverung" date="2022-03-21" ref="68915">Remove skip condition for IL.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF90" name="Race 3, Date of DX (SEER IF90)" tag="N0414" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear > '1999')
    return line.race3 != null

return true]]></expression>
            <message>Race 3 must not be blank for 2000+</message>
            <description><![CDATA[This edit is skipped for the following conditions:
    a. Year of Diagnosis[390] is blank

If Year of Diagnosis[390] is greater than 1999, then Race 3[162] cannot be blank.]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-03-05">Changed edit name to match NAACCR version.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-04">Edit changed to not recognize 9 filled year of diagnosis.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-21">Edit is skipped if year of diagnosis is blank.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-04" ref="68703">Edit skipped for IL and TX for DX Year 2000.</event>
                <event version="SE21-021-11" user="beverung" date="2021-12-17" ref="68763">Removed skip condition for TX.</event>
                <event version="SE22-022-02" user="beverung" date="2022-03-21" ref="68915">Remove skip condition for IL.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF91" name="Race 4, Date of DX (SEER IF91)" tag="N0415" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
   return true

if (line.dateOfDiagnosisYear > '1999')
   return line.race4 != null

return true]]></expression>
            <message>Race 4 must not be blank for 2000+</message>
            <description><![CDATA[This edit is skipped for the following conditions:
    a. Year of Diagnosis[390] is blank

If Year of Diagnosis[390] is greater than 1999, then Race 4[163] cannot be blank.]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-03-05">Changed edit name to match NAACCR version.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-04">Edit changed to not recognize 9 filled year of diagnosis.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-21">Edit is skipped if year of diagnosis is blank.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-04" ref="68703">Edit skipped for IL and TX for DX Year 2000.</event>
                <event version="SE21-021-11" user="beverung" date="2021-12-17" ref="68763">Removed skip condition for TX.</event>
                <event version="SE22-022-02" user="beverung" date="2022-03-21" ref="68915">Remove skip condition for IL.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF92" name="Race 5, Date of DX (SEER IF92)" tag="N0416" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
   return true

if (line.dateOfDiagnosisYear > '1999')
   return line.race5 != null

return true]]></expression>
            <message>Race 5 must not be blank for 2000+</message>
            <description><![CDATA[This edit is skipped for the following conditions:
    a. Year of Diagnosis[390] is blank

If Year of Diagnosis[390] greater than 1999, then Race 5[164] cannot be blank.]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-03-05">Changed edit name to match NAACCR version.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-04">Edit changed to not recognize 9 filled year of diagnosis.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-21">Edit is skipped if year of diagnosis is blank.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-04" ref="68703">Edit skipped for IL and TX for DX Year 2000.</event>
                <event version="SE21-021-11" user="beverung" date="2021-12-17" ref="68763">Removed skip condition for TX.</event>
                <event version="SE22-022-02" user="beverung" date="2022-03-21" ref="68915">Remove skip condition for IL.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF93" name="Race 1, Race 2, Race 3, Race 4, Race 5 (SEER IF93)" tag="N0628" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.race2 == null && line.race3 == null && line.race4 == null && line.race5 == null)
    return true
/* if any race code (2 to 5) is blank, then the remaining must be blank */
if (line.race2 == null && (line.race3 != null || line.race4 != null || line.race5 != null))
    return false
if (line.race3 == null && (line.race4 != null || line.race5 != null))
    return false
if (line.race4 == null && line.race5 != null)
    return false

/* if a race variable equals 99, then all must equal 99 */
if (line.race1 == '99' || line.race2 == '99' || line.race3 == '99' || line.race4 == '99' || line.race5 == '99')
    return (line.race1 == '99' && line.race2 == '99' && line.race3 == '99' && line.race4 == '99' && line.race5 == '99')

/* for patient.race codes 2 thru 5, if one equals 88 then all remaining must equal 88 */
if (line.race2 == '88' && (line.race3 != '88' || line.race4 != '88' || line.race5 != '88'))
    return false
if (line.race3 == '88' && (line.race4 != '88' || line.race5 != '88'))
   return false
if (line.race4 == '88' && line.race5 != '88')
   return false

/* for patient.race codes 1 thru 5, patient.race codes other than space, 88 or 99 must not be duplicated
   No '99's can get here, so we do NOT need to handle that in the code */
if (line.race1 != null && line.race1 != '88' && (line.race1 == line.race2 || line.race1 == line.race3 || line.race1 == line.race4 || line.race1 == line.race5))
   return false

if (line.race2 != null && line.race2 != '88' && (line.race2 == line.race1 || line.race2 == line.race3 || line.race2 == line.race4 || line.race2 == line.race5))
   return false

if (line.race3 != null && line.race3 != '88' && (line.race3 == line.race1 || line.race3 == line.race2 || line.race3 == line.race4 || line.race3 == line.race5))
   return false

if (line.race4 != null && line.race4 != '88' && (line.race4 == line.race1 || line.race4 == line.race2 || line.race4 == line.race3 || line.race4 == line.race5))
   return false

if (line.race5 != null && line.race5 != '88' && (line.race5 == line.race1 || line.race5 == line.race2 || line.race5 == line.race3 || line.race5 == line.race4))
   return false

/* if any patient.race code is 01, then the next one must be 88 or blank */
/* Since duplicate patient.races codes can NOT be used, you do not have to check for the occurrence of 01, 01, 99, etc. */
if (line.race1 == '01' && line.race2 != null && line.race2 != '88')
   return false

if (line.race2 == '01' && line.race3 != null && line.race3 != '88')
   return false

if (line.race3 == '01' && line.race4 != null && line.race4 != '88')
   return false

if (line.race4 == '01' && line.race5 != null && line.race5 != '88')
   return false

return true]]></expression>
            <message>Conflict among Race 1 through Race 5</message>
            <description><![CDATA[This edit is skipped if Race 2[161], Race 3[162], Race 4[163], and Race 5[164] are blank.


Race 1[160], Race 2[161], Race 3[162], Race 4[163], and Race 5[164] are compared as follows:

If any race codes (for Race 2[161], 3[162], 4[163], and 5[164]) = spaces, all subsequent race codes must = spaces.

If more than the Race 1[160] code is entered, if any race = 99 (unknown), all race codes (Race 1[160], 2[161], 3[162], 4[163], and 5[164]) must = 99.

If more than the Race 1[160] code is entered, if any race codes (for Race 2[161], 3[162], 4[163], and 5[164]) = 88 (no further race documented), then all subsequent race codes must also = 88.

A particular race code (other than spaces, 88, or 99) must not occurr more than once.

If a patient has a race code of 01 (white), it must be the last recorded race for that patient.  That is, the subsequent race codes must be 88 or blank.]]></description>
            <history>
                <event version="SE11-001-19" user="greend" date="2005-03-03">Changed edit name to match NAACCR version.  Combined this edit with previous edits IF94 &amp; IF95.</event>
                <event version="SE11-001-21" user="greend" date="2007-02-01">The follwing logic was added to the edit: If a patient has a race code of 01 (white), it must be the last recorded race for that patient.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF97_3" name="RX Summ--Reg LN Ex,DateDX,RptSrc,ICDO3 (SEER IF97)" tag="N0848" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.histologicTypeIcdO3 == null || (line.dateOfDiagnosisYear == '2003' && line.rxSummRegLnExamined == null))
    return true
if (line.registryId == '0000001562' || line.registryId == '0000001563')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear < '2003')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear == '2000')
    return true
if (line.dateOfDiagnosisYear < '1998' || line.dateOfDiagnosisYear >= '2004')
    return line.rxSummRegLnExamined == null
if (line.typeOfReportingSource == '6') {
    if (Functions.matches(line.primarySite, /^C(700|71\d|809)$/) || Functions.between(line.histologicTypeIcdO3, '9590', '9989'))
        return line.rxSummRegLnExamined == '00' || line.rxSummRegLnExamined == '99'
    return line.rxSummRegLnExamined == '00'
}
if (line.typeOfReportingSource == '7')
    return line.rxSummRegLnExamined == '99'
return line.rxSummRegLnExamined != null]]></expression>
            <message>RX Summ--Reg LN Examined, Date of Dx conflict (ICD-O-3)</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
    1.  Year of Date of Diagnosis is equal to 2003 and RX Summ--Reg LN Examined is blank.
    2.  Year of Date of Diagnosis is blank.
    3.  Histologic Type ICD-O-3 is blank.
    4.  Registry ID = 0000001562 (New York) or 0000001563 (Massachusetts).
    5.  Registry ID = 0000001565 (Illinois) and Year of Date of Diagnosis is less than 2003.
    6.  Registry ID = 0000001566 (Texas) and Year of Date of Diagnosis is 2000.

If the year of Date of diagnosis is less than 1998 or greater than 2003, then RX Summ--Reg LN Examined must be blank.

If the year of Date of diagnosis is 1998-2003:
1.  If Type of Reporting Source is 6 (autopsy only)
    A.  For Primary Site of brain (C700, C710-C719), unknown site (C809),
        lymphoma and hematopoietic (Histologic Type ICD-O-3 = 9590-9989),
        RX Summ--Reg LN Examined  must specify none (00) or unknown (99).
    B.  For all other sites/histologies, RX Summ--Reg LN Examined must
       specify none (00).

2.  If Type of Reporting Source is 7 (death certificate only),
    then RX Summ--Reg LN Examined must be 99 (unknown).

3.  For all other values of Type of Reporting Source:
    RX Summ--Reg LN Examined cannot be blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2009-12-03">Changed edit to not accept 9999 as a year of diagnosis.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-018-12" user="kirbyk" date="2019-01-29" ref="68096">Edit is skipped for registries MA and NY.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68709">Added skip condition for IL for DX Year &lt; 2003</event>
                <event version="SE21-021-09" user="beverung" date="2021-09-03" ref="68739">Added skip condition for TX for DX Year 2000.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF98" name="RX Summ--Scope Reg 98-02, Date of DX (SEER IF98)" tag="N0779" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.registryId == '0000001566')
    return true
if ((line.registryId == '0000001562' || line.registryId == '0000001563') && line.dateOfDiagnosisYear < '2003')
    return true
if (line.registryId == '0000001544' && line.dateOfDiagnosisYear < '2000')
    return true

if (line.dateOfDiagnosisYear <= '1997')
    return line.rxSummScopeReg9802 == null
if (Functions.between(line.dateOfDiagnosisYear, '1998', '2002'))
    return line.rxSummScopeReg9802 != null
/* dateOfDiagnosisYyyy >= 2003 */
return line.rxSummScopeReg9802 == null]]></expression>
            <message>RX Summ--Scope Reg 98-02, Date of DX conflict</message>
            <description><![CDATA[This edit is skipped for the following conditions:
    1. Year of Diagnosis[390] is blank.
    2. Registry ID = 0000001562 (New York) or 0000001563 (Massachusetts) and Year of Diagnosis is < 2003.
    3. Registry ID = 0000001544 (New Jersey) and Year of Diagnosis is < 2000.
    4. Registry ID = 0000001566 (Texas).

If the Year of Diagnosis[390] is less than 1998 or greater than 2002, then RX summ--scope reg 98-02[1647] must be blank.

If the Year of Diagnosis[390]= 1998-2002, then RX summ--scope reg 98-02[1647] cannot be blank.]]></description>
            <history>
                <event version="SE11-001-19" user="greend" date="2005-05-26">RX Coding System-Current removed from edit.  For 2003 diagnosis years the field RX Summ--scope reg 98-02 is valid if it is blank or if it is filled in.</event>
                <event version="SE11-001-20" user="greend" date="2006-03-30">RX Summ--scope reg 98-02 must be blank for 2003 cases.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-03">Changed edit to not accept 9999 as a year of diagnosis.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-29" ref="68128">Edit is skipped for New York cases with Year of Diagnosis &lt; 2003.</event>
                <event version="SE18-019-04" user="beverung" date="2019-08-30" ref="68247">Edit now skipped for New Jersey cases when DX Year &lt; 2000.</event>
                <event version="SE18-020-01" user="beverung" date="2020-01-28" ref="68279">Edit now skipped for MA for DX Year &lt; 2003.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68709">Added skip condition for TX.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF99" name="RX Summ--Surg Oth 98-02, Date of DX (SEER IF99)" tag="N0781" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.registryId == '0000001566')
    return true
if ((line.registryId == '0000001562' || line.registryId == '0000001563') && line.dateOfDiagnosisYear < '2003')
    return true
if (line.registryId == '0000001544' && line.dateOfDiagnosisYear < '2000')
    return true

if (line.dateOfDiagnosisYear <= '1997')
    return line.rxSummSurgOth9802 == null
if (Functions.between(line.dateOfDiagnosisYear, '1998', '2002'))
    return line.rxSummSurgOth9802 != null
/* dateOfDiagnosisYyyy >= 2003 */
return line.rxSummSurgOth9802 == null]]></expression>
            <message>RX Summ--Surg Oth 98-02, Date of DX conflict</message>
            <description><![CDATA[This edit is skipped for the following conditions:
    1. Year of Diagnosis[390] is blank.
    2. Registry ID = 0000001562 (New York) or 0000001563 (Massachusetts) and Year of Diagnosis is < 2003.
    3. Registry ID = 0000001544 (New Jersey) and Year of Diagnosis is < 2000.
    4. Registry ID = 0000001566 (Texas).

If the year of diagnosis[390] < 1998 or > 2002, then RX summ--surg oth 98-02[1648] must be blank.

If the year of diagnosis[390] 1998-2002, then RX summ--surg oth 98-02[1648] cannot be blank.]]></description>
            <history>
                <event version="SE11-001-19" user="greend" date="2005-05-26">RX Coding System-Current removed from edit.  For 2003 diagnosis years the field RX Summ--surg oth 98-02 is valid if it is blank or if it is filled in.</event>
                <event version="SE11-001-20" user="greend" date="2006-03-30">RX Summ--surg oth 98-02 must be blank for 2003 cases.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-03">Changed edit to not accept 9999 as a year of diagnosis.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-29" ref="68128">Edit is skipped for New York cases with Year of Diagnosis &lt; 2003.</event>
                <event version="SE18-019-04" user="beverung" date="2019-08-30" ref="68247">Edit now skipped for New Jersey cases when DX Year &lt; 2000.</event>
                <event version="SE18-020-01" user="beverung" date="2020-01-28" ref="68279">Edit now skipped for MA for DX Year &lt; 2003.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68709">Added skip condition for TX.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF100" name="RX Summ--Scope Reg LN Sur, DateDX, RPTSRC (SEER IF100)" tag="N0780" java-path="lines.line" category="inter-field" depends="RX_Summ--Scope_Reg_LN_Sur,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear >= '2001' && line.dateOfDiagnosisYear <= '2002' && line.rxSummScopeRegLnSur != null) {
    if (line.typeOfReportingSource == '6')
        return line.rxSummScopeRegLnSur == '0' || line.rxSummScopeRegLnSur == '9'
    if (line.typeOfReportingSource == '7')
        return line.rxSummScopeRegLnSur == '9'
} 

if (line.dateOfDiagnosisYear > '2002') {
    if (line.typeOfReportingSource == '6')
        return line.rxSummScopeRegLnSur == '0' || line.rxSummScopeRegLnSur == '9'
    if (line.typeOfReportingSource == '7')
        return line.rxSummScopeRegLnSur == '9'
    return line.rxSummScopeRegLnSur != null
}

return true]]></expression>
            <message>RX Summ--Scope Reg Ln Sur, Date of Dx conflict</message>
            <description><![CDATA[This edit is skipped if Year of Diagnosis[390] is blank.

1.  If year of diagnosis [390] is 2001-2002 and RX Summ--Scoe Reg LN Sur [1292] is not blank:
    A. If Type of Reporting Source = 6 (Autopsy Only) RX Summ--Scope Reg LN Sur must = 0 or 9
    B. If Type of Reporting Source = 7, (Death Certificate Only), RX Summ--Scope Reg LN Sur must = 9.

2.  If year of diagnosis [390] is greater than 2002:
    A. If Type of Reporting Source = 6 (Autopsy Only) RX Summ--Scope Reg LN Sur must = 0 or 9
    B. If Type of Reporting Source = 7, (Death Certificate Only), RX Summ--Scope Reg LN Sur must = 9.
    C. For all other values of Type of Reporting Source, RX Summ--Scope Reg ln Sur [1292] must not be blank.]]></description>
            <history>
                <event version="SE11-001-18" user="greend" date="2004-12-28">This edit now forces RX Summ-scope reg LN sur[1292] to not be blank for 2004+ cases.</event>
                <event version="SE11-001-19" user="greend" date="2005-05-25">RX Coding System-Current removed from edit.  For 2003 diagnosis years the field RX Summ--scope reg LN Sur is valid if it is blank or if it is filled in.</event>
                <event version="SE11-001-20" user="greend" date="2006-03-30">RX summ--scope reg LN sur cannot be blank for 2003 cases.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-03">Changed edit to not accept 9999 as a year of diagnosis.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-28" ref="68518">Updated to require blank for dx year &lt; 2001, require non-blank for &gt; 2002, and allow either for 2001-2002.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-01" user="smithm" date="2022-02-16" ref="68804">Update logic with Type of Reporting Source</event>
                <event version="SE22-022-05" user="kirbyk" date="2022-05-17" ref="68995">Replaced non-ASCII characters in description.</event>
                <event version="SE24-024-07" user="beverung" date="2024-08-06" ref="69523">Removed logic requiring RX summ--scope reg LN sur[1292] to be blank before 2001.</event>
            </history>
        </rule>
        <rule id="IF101" name="RX Summ--Surg Oth Reg/Dis, DateDX, RPTSRC (SEER IF101)" tag="N0782" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Surg_Oth_Reg-Dis,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
   return true

if (line.dateOfDiagnosisYear > '2002') {
    if (line.typeOfReportingSource == '6') {
       if (Functions.matches(line.primarySite, /^C(700|71\d|809)$/) || Functions.between(line.histologicTypeIcdO3, '9590', '9993'))
          return Functions.matches(line.rxSummSurgOthRegDis, /^[09]$/)
       return line.rxSummSurgOthRegDis == '0'
    }

    if (line.typeOfReportingSource == '7')
       return line.rxSummSurgOthRegDis == '9'

    return line.rxSummSurgOthRegDis != null
}

return true]]></expression>
            <message>RX Summ--Surg Oth Reg/Dis, Date of Dx conflict</message>
            <description><![CDATA[This edit is skippped if any of the following conditions are true:
  1) Year of Diagnosis[390] is blank.


If year of diagnosis [390] greater than 2002 then

    1.  If Type of Reporting Source[500] = 6 (autopsy only)

        A.  If Primary Site[400]= C70.0,C71.0-C71.9(brain) or
            C80.9(unknown site), or Histologic Type ICD-O-3[522]=9590-9993
            (hematopoietic, lymphoma or leukemia), RX Summ-surg oth
            reg/dis[1294] must be 0(none) or 9 (unknown).
        B.  For all other sites and histologies
            RX Summ-surg oth reg/dis[1294] must specify none (0).

    2.  If Type of Reporting Source[500] = 7 (death certificate only),
        RX Summ-surg oth reg/dis[1294] must specify unknown (9).

    3.  For all other values of Type of Reporting Source[500],
        RX Summ-surg oth reg/dis[1294] must not be blank.]]></description>
            <history>
                <event version="SE11-001-18" user="greend" date="2004-12-28">This edit now forces RX Summ--surg oth reg/dis[1294] to not be blank for 2004+ cases.</event>
                <event version="SE11-001-19" user="greend" date="2005-05-26">This edit no longer uses RX Coding System--Current.  Edit checks for Type of Reporting Source values versus RX Summ--surg oth reg/dis were added.</event>
                <event version="SE11-001-20" user="greend" date="2006-03-30">This edit is no longer skipped if year of diagnosis is 2003 and RX summ--surg oth reg/dis is blank.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-03">Changed edit to not accept 9999 as a year of diagnosis.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-27">Hematopoietic range changed from 9590-9989 to 9590-9992.</event>
                <event version="SE12-003-03" user="murphyr" date="2011-02-10">Updated documentation.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-04" user="beverung" date="2020-06-18" ref="68357">Add 9993 to skip condition histologies.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-28" ref="68519">Updated to only require blank for dx years &lt; 2001, and to allow blank or non-blank for 2001-2002.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE24-024-07" user="beverung" date="2024-08-06" ref="69523">Removed logic requiring RX Summ--surg oth reg/dis[1294] to be blank before 2001.</event>
            </history>
        </rule>
        <rule id="IF102" name="RX Summ--Surg Prim Site 03-2022, DateDX, RPTSRC (SEER IF102)" tag="N0599" java-path="lines.line" category="inter-field" depends="RX_Summ--Surg_Prim_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || ((line.registryId == '0000001562' || line.registryId == '0000001563') && line.dateOfDiagnosisYear < '2003'))
    return true

if (line.dateOfDiagnosisYear > '1997' && line.dateOfDiagnosisYear < '2023') {
    if (line.typeOfReportingSource == '6')
        return line.rxSummSurgPrimSite == '98' || line.rxSummSurgPrimSite == '00'
    if (line.typeOfReportingSource == '7')
        return line.rxSummSurgPrimSite == '98' || line.rxSummSurgPrimSite == '99'
    return line.rxSummSurgPrimSite != null
}
if (line.dateOfDiagnosisYear > '2022')
    return line.rxSummSurgPrimSite == null

return true]]></expression>
            <message>RX Summ--Surg Prim Site 03-2022, Date of Dx conflict</message>
            <description><![CDATA[This edit is skipped if Year of Diagnosis[390] is blank or Registry ID = 0000001562 (New York) or 0000001563 (Massachusetts) and Year of Diagnosis is < 2003.

If Year of Diagnosis[390] greater than 1997 and less than 2023:
    A. If Type of Reporting Source = 6 (Autopsy Only), RX Summ--Surg Prim Site 03-2022 must = 98 or 00
    B. If Type of Reporting Source = 7 (Death Certificate Only), RX Summ--Surg Prim Site 03-2022 must = 98 or 99
    C. For all other values of Type of Reporting Source, RX Summ--Surg Prim Site 03-2022 cannot be blank.

If year of diagnosis is greater than 2022, RX Summ--Surg Prim Site 03-2022 must be blank.]]></description>
            <history>
                <event version="SE11-001-18" user="greend" date="2004-07-29">Edit modifed to allow codes from 1998+.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-03">Changed edit to not accept 9999 as a year of diagnosis.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-07" ref="68179">Edit now skipped for New York cases when DX Year &lt; 2003.</event>
                <event version="SE18-020-01" user="beverung" date="2020-01-28" ref="68279">Edit now skipped for MA for DX Year &lt; 2003.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-01" user="smithm" date="2022-02-15" ref="68806">Add Type of Reporting Source processing to logic</event>
                <event version="SE22-022-05" user="kirbyk" date="2022-05-17" ref="68995">Replaced non-ASCII characters in description.</event>
                <event version="SE23-023-01" user="secristc" date="2023-01-25" ref="69087">Added condition for 2023+, changed name.</event>
                <event version="SE24-024-07" user="beverung" date="2024-08-06" ref="69523">Removed logic requiring RX Summ--Surg Prim Site 03-2022[1290] to be blank before 1998.</event>
            </history>
        </rule>
        <rule id="IF104" name="RX Summ--Transplnt/Endocr, DateDX, RPTSRC (SEER IF104)" tag="N0601" java-path="lines.line" category="inter-field" depends="RX_Summ--Transplnt-Endocr,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.registryId == '0000001562' && line.dateOfDiagnosisYear < '2003')
    return true
if (line.registryId == '0000001544' && line.dateOfDiagnosisYear < '2000')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '1999' && line.dateOfDiagnosisYear < '2004')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '1999' && line.dateOfDiagnosisYear < '2003')
    return true

if (line.typeOfReportingSource == '6')
    return line.rxSummTransplntEndocr == '00'

if (line.typeOfReportingSource == '7')
    return line.rxSummTransplntEndocr == '99'

if (line.dateOfDiagnosisYear < '2003' && line.dateOfDiagnosisYear != null)
    return Functions.matches(line.rxSummTransplntEndocr, /(^00$)|(^1[0-2]$)|(^[234]0$)|(^8[78]$)|(^99$)/)

if (line.dateOfDiagnosisYear >= '2003' && line.dateOfDiagnosisYear != null)
    return Functions.matches(line.rxSummTransplntEndocr, /(^00$)|(^1[0-2]$)|(^[234]0$)|(^8[25678]$)|(^99$)/)

return true]]></expression>
            <message>RX Summ--Transplnt/Endocr, Date of Dx conflict</message>
            <description><![CDATA[Edit is skipped for the following conditions:
    a. Registry ID = 0000001562 (New York) and Year of Diagnosis is < 2003.
    b. Registry ID = 0000001544 (New Jersey) and Year of Diagnosis is < 2000.
    c. Registry ID = 0000001565 (Illinois) and Year of Diagnosis is 2000-2003.
    c. Registry ID = 0000001566 (Texas) and Year of Diagnosis is 2000-2002.

1.  If Type of Reporting Source[500]= 6(autopsy only),
    RX Summ--Transplnt/Endocr[3250] must be 00 (none).

2.  If Type of Reporting Source[500]=7 (death certificate only),
    RX Summ--Transplnt/Endocr[3250] must be 99 (unknown).

3.  For all other values of Type of Reporting Source[500]:
    A.  If Year of Diagnosis[390] < 2003 and not blank,
        RX Summ--Transplnt/Endocr[3250] must be 00,
        10-12,20,30,40,87,88,99.

    B.  If Year of Diagnosis[390] > 2002 and not blank, RX Summ--
        Transplnt/Endocr[3250] must be 00,10-12,20,30,40,82,85-88,99.]]></description>
            <history>
                <event version="SE11-001-19" user="greend" date="2005-05-25">Edit checks for Type of Reporting Source values versus RX Summ--Transplnt/Endocr were added.</event>
                <event version="SE11-001-20" user="greend" date="2005-09-06">Codes 87 and 88 were added as valid values for cases diagnosed prior to 2003.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-03">Changed edit to not recognize 9999 as a year of diagnosis.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-21">Edit checks for blank year of diagnosis is year of diagnosis is greater than 2002.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-07" ref="68179">Edit now skipped for New York cases when DX Year &lt; 2003.</event>
                <event version="SE18-019-04" user="beverung" date="2019-08-30" ref="68247">Edit now skipped for New Jersey cases when DX Year &lt; 2000.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68709">Added skip conditions for IL for DX Years 2000-2003 and for TX for DX Years 2000-2002.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
            </history>
        </rule>
        <rule id="IF105" name="Surgery 98-02, Rad, Rad Surg (SEER IF105)" tag="N0634" java-path="lines.line" category="inter-field" depends="RX_Summ--Surg_Prim_Site">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '1998' || line.dateOfDiagnosisYear > '2002')
   return true
if (Functions.matches(line.registryId, /^000000156[236]$/))
    return true

if (line.registryId == '0000001565' && line.dateOfDiagnosisYear == '2000')
    return true

if (((line.rxSummSurgPrimSite >= '10' && line.rxSummSurgPrimSite <= '90') ||
   Functions.matches(line.rxSummScopeReg9802, /^[1-8]$/) || Functions.matches(line.rxSummSurgOth9802, /^[1-8]$/)) &&
   Functions.matches(line.rxSummRadiation, /^[1-6]$/))
   return Functions.matches(line.rxSummSurgRadSeq, /^[234569]$/)

if (((line.rxSummSurgPrimSite == '00' || line.rxSummSurgPrimSite == '99')
         && line.rxSummScopeReg9802 == '0' && line.rxSummSurgOth9802 == '0')
         || line.rxSummRadiation == '0' || line.rxSummRadiation == '7' || line.rxSummRadiation == '8')
   return line.rxSummSurgRadSeq == '0'

return true]]></expression>
            <message>Surgery 98-02, RX Summ--Radiation, RX Summ--Surg/Rad Seq conflict</message>
            <description><![CDATA[This edit is skipped if any of the following are true:
    1. Diagnosis year not 1998-2002.
    2. Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), or 0000001566 (Texas).
    3. Registry is IL (0000001565) and Diagnosis Year is 2000.

1.  If RX Summ--Surg Prim Site 03-2022 = 10-90 or RX Summ--Scope Reg
    98-02[1647]= 1-8 or RX Summ--Surg Oth 98-02[1648]= 1-8 (surgery
    performed), and RX Summ--Radiation[1360] = 1-6 (radiation given), then
    RX Summ--Surg/Rad Seq[1380] must specify sequence (codes 2-6,9).

2.  If RX Summ--Surg Prim Site 03-2022 = 00 or 99 and
    RX Summ--Scope Reg 98-02[1647] = 0 and RX Summ--Surg Oth
    98-02[1648] = 0 (no surgery) OR RX Summ--Radiation[1360] = 0,7,8
    (no radiation) ,then RX Summ--Surg/Rad Seq[1380] must specify 0.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-21" ref="67937">Added 7 and 8 as &apos;no radiation&apos; values.</event>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-23" ref="67966">Fixed inaccurate skip conditions in description.</event>
                <event version="SE18-020-04" user="beverung" date="2020-06-04" ref="68346">Use rxSummSurgPrimSite instead of rxSummSurgSite9802 and skip for MA and NY.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68709">Added skip condition for TX.</event>
                <event version="SE21-021-09" user="secristm" date="2021-09-09" ref="68744">Added skip condition for IL and diagnosis year = 2000.</event>
                <event version="SE23-023-01" user="secristc" date="2023-01-27" ref="69110">Updated description to use RX Summ--Surg Prim Site 03-2022.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-12" ref="69326">Removed several dependencies.</event>
            </history>
        </rule>
        <rule id="IF107" name="Surgery 98-02, Reason for No Surg (SEER IF107)" tag="N0636" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '1998' || line.dateOfDiagnosisYear > '2002')
    return true
if (line.registryId == '0000001562' || line.registryId == '0000001566' || (line.registryId == '0000001544' && (line.dateOfDiagnosisYear == '1998' || line.dateOfDiagnosisYear == '1999')))
    return true

if (line.registryId == '0000001565' && line.dateOfDiagnosisYear == '2000')
    return true

if ((line.rxSummSurgPrimSite == '00' || line.rxSummSurgPrimSite == '99')
        && (line.rxSummScopeReg9802 == '0' || line.rxSummScopeReg9802 == '9')
        && (line.rxSummSurgOth9802 == '0' || line.rxSummSurgOth9802 == '9')
        && line.reasonForNoSurgery == '0')
    return false
if (line.rxSummSurgPrimSite == '00' && line.rxSummScopeReg9802 == '0'
        && line.rxSummSurgOth9802 == '0')
    return Functions.matches(line.reasonForNoSurgery, /^[12678]$/)
if (Functions.matches(line.rxSummSurgPrimSite, /^([1-8]\d|90)$/) || Functions.matches(line.rxSummScopeReg9802, /^[1-8]$/)
        || Functions.matches(line.rxSummSurgOth9802, /^[1-8]$/))
    return line.reasonForNoSurgery == '0'

return true]]></expression>
            <message>Surgery 98-02 and Reason No Surgery conflict</message>
            <description><![CDATA[This edit is skipped for the following conditions:
    1. Diagnosis year not 1998-2002..
    2. Registry is NY (0000001562) or TX (0000001566)
    3. Registry is NJ (0000001544) and Diagnosis Year is 1998, 1999.
    4. Registry is IL (0000001565) and Diagnosis Year is 2000.

If RX Summ--Surg Prim Site[1290]= 00 and RX Summ--Scope Reg 98-02[1647]=0 and RX Summ--Surg Oth 98-02[1648]=0 (no surgery), Reason for surgery[1340] must specify be 1,2,6,7, or 8 (surgery not performed).

If RX Summ--Surg Prim Site[1290]= 00 or 99 and RX Summ--Scope Reg 98-02[1647]=0 or 9 and RX Summ--Surg Oth 98-02[1648]=0 or 9 (no/unk surgery), Reason for surgery[1340] cannot be 0 (surgery performed).

If RX Summ--Surg Prim Site[1290] =10-90 or RX Summ--Scope Reg
98-02[1647]= 1-8 or RX Summ--Surg Oth 98-02[1648]= 1-8 (surgery performed), Reason for no surgery[1340] must be 0 (surgery performed).]]></description>
            <history>
                <event version="SE11-001-20" user="greend" date="2006-07-20">The following logic was added to the edit:
            If RX Summ--Surg Site 98-02[1646]= 00 or 99 and RX Summ--Scope Reg 98-02[1647]=0 or 9 and RX Summ--Surg Oth 98-02[1648]=0 or 9 (no/unk surgery), Reason for surgery[1340] cannot be 0 (surgery performed).</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-04" user="beverung" date="2020-06-04" ref="68347">Use rxSummSurgPrimSite and add skip conditions.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68709">Added skip condition for TX.</event>
                <event version="SE21-021-09" user="secristm" date="2021-09-09" ref="68744">Added skip condition for IL and diagnosis year = 2000.</event>
                <event version="SE22-022-05" user="kirbyk" date="2022-05-17" ref="68995">Replaced non-ASCII characters in description.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF108" name="RX Summ--Surg Prim Site 03-2022, Site, ICDO3 (SEER IF108)" tag="N0600" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Surg_Prim_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.rxSummSurgPrimSite == null || line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear > '2017' || line.histologicTypeIcdO3 == null )
    return true

Integer site = Functions.asInt(line.primarySite.substring(1))
Integer hist = Functions.asInt(line.histologicTypeIcdO3)

if (line.dateOfDiagnosisYear < '2010' && ((List)Context.IF108_Hist_List_Pre2010).contains(hist))
    return line.rxSummSurgPrimSite == '98' || line.rxSummSurgPrimSite == '99'

if (line.dateOfDiagnosisYear >= '2010' && line.dateOfDiagnosisYear < '2018' && ((List)Context.IF108_Hist_List_2010).contains(hist))
    return line.rxSummSurgPrimSite == '98' || line.rxSummSurgPrimSite == '99'

if (((List)Context.If108_AllOtherSites).contains(site) && line.rxSummSurgPrimSite == '41')
      return site >= 690 && site <= 699

return ((List)((Map)Context.IF108SiteReferenceTable).getOrDefault(site, [])).contains(Functions.asInt(line.rxSummSurgPrimSite))]]></expression>
            <message>RX summ--surg prim site 03-2022, primary site conflict</message>
            <description><![CDATA[This edit is skipped for the following conditions:
    a. If Histologic Type ICD-O-3 is blank,
    b. RX Summ--Surg Prim Site 03-2022 is blank
    c. Date of Diagnosis is blank, invalid (unknown), or > 2017.

The valid RX Summ--Surg Prim Site 03-2022 codes for each Primary Site are specified in
SEER Program Coding and Staging Manual 2018.

Exceptions are as follows:

For all sites:
1.  If year of Date of Diagnosis is < 2010 and Histologic Type ICD-O-3 = [9750,
    9760-9764, 9800-9820, 9826, 9831-9920, 9931-9964, 9980-9989], then
    RX Summ--Surg Prim Site 03-2022 must = 98 or 99.

2.  If year of Date of Diagnosis is 2010-2017 and Histologic Type ICD-O-3 =
    [9727, 9733, 9741-9742, 9764-9809, 9832, 9840-9931, 9945-9946, 9950-9967,
    9975-9992], then RX Summ--Surg Prim Site 03-2022 must = 98 or 99.

If Primary Site group is All Other Sites (group 30 in the table used for this
edit) and RX Summ--Surg Prim Site 03-2022 = 41 (enucleation for eye surgery only), then
Primary Site must = C690-C699 (eye and adnexa).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-27">Hematopoietic range expanded from 9989 to 9992. If primary site group is All Other Sites and RX Summ-- Surg Prim Site[1290] = 41 then Primary Site[400] must = C690-C699.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-30">Fixed error in edit.</event>
                <event version="SE12-002-04" user="murphyr" date="2010-07-23">Added codes 21,22, and 30 to Brain table.</event>
                <event version="SE12-004-01" user="murphyr" date="2010-12-13">Added year of diagnosis to edit.</event>
                <event version="SE12-003-03" user="murphyr" date="2011-02-10">Modified code to be more clear.  No change to logic.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-17">Added code 76 as a valid code for Breast.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68001">Added DX year skip condition for some histologic types.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-28" ref="68162">Added skip condition for DX Year &gt; 2018.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-03" user="beverung" date="2020-04-14" ref="68337">Updated skip conditions.</event>
                <event version="SE22-022-06" user="secristc" date="2022-05-24" ref="68999">Removed skip condition for DX year = 2018.</event>
                <event version="SE23-023-01" user="secristc" date="2023-01-27" ref="69110">Updated name and description to use RX Summ--Surg Prim Site 03-2022.</event>
            </history>
        </rule>
        <rule id="IF109" name="RX Summ--Scope Reg LN Sur, Site, ICDO3 (SEER IF109)" tag="N0637" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Scope_Reg_LN_Sur,Year_of_Diagnosis">
            <expression><![CDATA[if (line.rxSummScopeRegLnSur == null || line.histologicTypeIcdO3 == null || line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear > '2017')
    return true

Integer site = Functions.asInt(line.primarySite.substring(1))
Integer hist = Functions.asInt(line.histologicTypeIcdO3)

Boolean conditionPrimarySites = ((List)Context.ExceptionSites).contains(site)
Boolean condition2A = line.dateOfDiagnosisYear < '2010' && Functions.between(site,770,779) && Functions.between(line.histologicTypeIcdO3,'9590','9729')
Boolean condition2B = line.dateOfDiagnosisYear >= '2010' && line.dateOfDiagnosisYear <= '2017' && Functions.between(site,770,779) && ((List)Context.LymphExcepHist2010To2017).contains(hist)
Boolean condition3A = line.dateOfDiagnosisYear < '2010' && ((List)Context.ExceptionHistologies).contains(hist)
Boolean condition3B = line.dateOfDiagnosisYear >= '2010' && line.dateOfDiagnosisYear <= '2017' && ((List)Context.ExceptionHistologies2010).contains(hist)

if (conditionPrimarySites || condition2A || condition2B || condition3A || condition3B)
    return line.rxSummScopeRegLnSur == '9'

return true]]></expression>
            <message>RX Summ--Scope Reg LN Sur, Primary Site conflict</message>
            <description><![CDATA[This edit is skipped if RX Summ--Scope Reg LN Sur, Histologic Type ICD-O-3 or
Date of Diagnosis is empty.  This edit is skipped for diagnosis date > 2017.

RX Summ--Scope Reg LN Sur must = 9 for the following:

1.  Primaries of the meninges, brain, spinal cord, cranial
    nerves, other parts of the central nervous system, and intracranial
    other endocrine(Primary Site = C700-C729, C751-C753, C760-C768, C809)

2.  Hodgkin and non-Hodgkin lymphoma with a lymph node primary site:
    A.  If year of Date of Diagnosis < 2010:
    If Histologic Type ICD-O-3 = 9590-9729 AND Primary Site = C770-C779

    B.  If year of Date of Diagnosis is 2010-2017:
    If Histologic Type ICD-O-3 = 9590-9726, 9728-9732, 9734-9740,
    9750-9762, 9811-9831, 9940, 9948, 9971 AND Primary Site = C770-C779

3.  Hematopoietic, reticuloendothelial, immunoproliferative, or
    myeloproliferative disease:

    For all sites:
    A. If year of Date of Diagnosis < 2010:
    If Histologic Type ICD-O-3 = [9750, 9760-9764,
    9800-9820, 9826, 9831-9920, 9931-9964, 9980-9989]

    B.  If year of Date of Diagnosis is 2010-2017:
    If Histologic Type ICD-O-3 = [9727, 9733, 9741-9742, 9764-9809,
    9832, 9840-9931, 9945-9946, 9950-9967, 9975-9992]

    C. If Primary Site = C420, C421, C423, or C424]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2008-03-15">Added intracranial other endocrine (C751-C753) to list of primary sites that require Summ--Scope Reg LN Sur to equal 9.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-27">Hematopoietic range expanded from 9989 to 9992.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-04-20">Edit modified to account for additional Hematopoietic histologies beginning with 2010 diagnosis.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-14" ref="68000">Restrict years for conditions 2B, 3 and 4B.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-28" ref="68162">Added skip condition for DX Year &gt; 2018.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-03" user="beverung" date="2020-04-23" ref="68335">Added condition 2C and added context lists for condition 2 histologies.</event>
                <event version="SE22-022-06" user="secristc" date="2022-05-24" ref="69001">Edit updated to no longer run for 2018 - removed conditions 2C, 3</event>
            </history>
        </rule>
        <rule id="IF110" name="PIN III ICDO3, Date of Diagnosis (SEER IF110)" tag="N0714" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
if (line.dateOfDiagnosisYear > '2000' &&
    line.behaviorCodeIcdO3 == '2' && line.primarySite == 'C619')
   return line.histologicTypeIcdO3 != '8148'

return true]]></expression>
            <message>PIN III and Year of Diagnosis conflict</message>
            <description><![CDATA[This edit is skipped if Year of of Diagnosis[390] is blank.

If Year of of Diagnosis[390] > 2000 and not = 9999 and Primary Site[400] = C619 (Prostate) and Behavior Code ICD-O-3 = 2 (in situ), Histologic Type ICD-O-3[522] cannot be 8148 (PIN III).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2009-12-21">Edit now skipped if year of diagnosis is blank.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF111" name="Census Tract 2000, Date of DX (SEER IF111)" tag="N0733" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.registryId == '0000001565')
    return true

// condition 2
if (line.registryId < '0000001541' || line.registryId > '0000001544')
   return !(line.dateOfDiagnosisYear > '1995' && line.dateOfDiagnosisYear < '2012'&& line.censusTract2000 == null)

// condition 1
if (line.dateOfDiagnosisYear > '2000' && line.dateOfDiagnosisYear < '2012')
   return line.censusTract2000 != null

return true]]></expression>
            <message>Year of Diagnosis and Census Tract 2000 conflict</message>
            <description><![CDATA[This edit is skipped if year of diagnosis is blank or if Registry ID[40] is 0000001565 (Illinois).
1) If Registry ID[40] = 0000001541, 0000001542, 0000001543 or 0000001544 (Greater California, Kentucky, Louisiana, or New Jersey):
   A)  If Year of Diagnosis[390]=1996-2000, Census Tract 2000[130] can be blank.
   B)  If Year of Diagnosis[390] is 2001-2011, Census Tract 2000[130] cannot be blank.

2)  For all other values of Registry ID[40]:
    If Year of Diagnosis[390] is 1996-2011, Census Tract 2000[130] cannot be blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2009-12-08">Removed year of diagnosis is not 9999.  Updated description.</event>
                <event version="SE14-011-02" user="murphyr" date="2014-01-14" ref="67066">Census 2000 variables no longer required for 2012+.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-05" ref="68702">Add skip condition for IL.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF112" name="Census Tr Certainty 2000, Date of DX (SEER IF112)" tag="N0734" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || ['0000001533', '0000001565'].contains(line.registryId))
    return true

// condition 3
if (line.registryId < '0000001541' || line.registryId > '0000001544')
   return !(line.dateOfDiagnosisYear > '1995' && line.dateOfDiagnosisYear < '2012'&& line.censusTrCertainty2000 == null)

// condition 2
if (line.dateOfDiagnosisYear > '2000' && line.dateOfDiagnosisYear < '2012')
   return line.censusTrCertainty2000 != null

return true]]></expression>
            <message>Year of Diagnosis and Census Tr Certainty 2000 conflict</message>
            <description><![CDATA[This edit is skipped if year of diagnosis is blank.
1) If Registry ID[40] = 0000001533 (Arizona Indians) or 0000001565 (Illinois), Census Tr Certainty 2000[365] can be blank.
2) If Registry ID[40] = 0000001541, 0000001542, 0000001543 or 0000001544 (Greater California, Kentucky, Louisiana, or New Jersey):
   A)  If Year of Diagnosis[390]=1996-2000, Census Tr Certainty 2000[365] can  be blank.
   B)  If Year of Diagnosis[390] is 2001-2011, Census Tr Certainty 2000[365] cannot be blank.
3)  For all other values of Registry ID[40]:
    If Year of Diagnosis[390] is 1996-2011, Census Tr Certainty 2000[365] cannot be blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2009-12-08">Removed year of diganosis is not 9999.  Updated description.</event>
                <event version="SE12-007-03" user="murphyr" date="2012-08-02" ref="66704">Added &apos;If Registry ID[40] = 0000001533 (Arizona Indians), Census Tr Certainty 2000[365] can be blank.&apos;</event>
                <event version="SE14-011-02" user="murphyr" date="2014-01-14" ref="67066">Census 2000 variables no longer required for 2012+.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-09" user="beverung" date="2021-09-09" ref="68742">Added skip condition for IL.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF113" name="ICD Revisn, Vital Stat, Date Last Cont (SEER IF113)" tag="N0738" java-path="lines.line" category="inter-field" depends="Year_of_Last_Contact">
            <expression><![CDATA[Integer yearLastContact = Functions.asInt(line.dateOfLastContactYear)

if (line.dateOfLastContactYear == null)
    return true

if (yearLastContact > 1998 && (line.vitalStatus == '0' || line.vitalStatus == '4'))
   return line.icdRevisionNumber == '1'

if (Functions.between(yearLastContact, 1979, 1998) && (line.vitalStatus == '0' || line.vitalStatus == '4'))
   return line.icdRevisionNumber == '9'

return true]]></expression>
            <message>Year of Last Contact, Vital Status, ICD Revision Code conflict</message>
            <description><![CDATA[This edit is skipped if Year of Last Contact[1750] is blank.

If Year of Last Contact[1750] > 1998, and Vital Status[1760] = 0 or 4 (dead), then the ICD Revision Number[1920] must be
1(ICD-10th Revision).

If Year of Last Contact[1750] is between 1979 and 1998 and Vital Status[1760] = 0 or 4 (dead), then the ICD Revision Number[1920] must be
9 (ICD-9th Revision).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2009-12-21">Edit now skipped if year of last contact is blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="schadega" date="2018-03-15" ref="67719">Updated syntax to use valid death code 0.</event>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-25" ref="67757">Changed edit name.</event>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-21" ref="67924">Re-added 4 as a valid code for &apos;dead&apos;.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF114" name="Behavior Code ICDO3, Seq Num--Central (SEER IF114)" tag="N0653" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Year_of_Diagnosis">
            <expression><![CDATA[if (line.behaviorCodeIcdO3 == null)
    return true

if (line.dateOfDiagnosisYear != null && line.dateOfDiagnosisYear < '2001' && ['8442','8451','8462','8472','8473'].contains(line.histologicTypeIcdO3)
        && Functions.matches(line.sequenceNumberCentral, /^([0-5]\d|99)$/)  && line.behaviorCodeIcdO3 == '1')
    return true

if (line.dateOfDiagnosisYear > '2000' && line.dateOfDiagnosisYear != null && (line.behaviorCodeIcdO3 == '2' || line.behaviorCodeIcdO3 == '3'))
    return line.sequenceNumberCentral < '60' || line.sequenceNumberCentral > '88'

if (line.dateOfDiagnosisYear > '2000' && line.dateOfDiagnosisYear != null && (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1'))
    return line.sequenceNumberCentral >= '60' && line.sequenceNumberCentral <= '88'

if (Functions.matches(line.sequenceNumberCentral, /^([0-5]\d|99)$/))
    return line.behaviorCodeIcdO3 == '2' || line.behaviorCodeIcdO3 == '3'

return true]]></expression>
            <message>Behavior Code ICD-O-3 and Seq Num--Central conflict</message>
            <description><![CDATA[This edit is skipped if Behavior Code ICD-O-3 [523] is blank.

1.  If Sequence Number--Central [380] = 00-59, or 99, then Behavior
    Code ICD-O-3 [523] must = 2 (in situ) or 3 (malignant).

     Exceptions to the above rule are:

          If Year of Diagnosis[390] < 2001 and not blank, and
          Histologic Type ICD-O-3[522]=8442,8451,8462,8472,8473, Behavior
          Code ICD-O-3[523] can equal 1 (borderline) with a Sequence
          Number--Central[380] of 00-59, or 99.

          These codes may have been entered in ICD-O-2 as malignant, but
          converted to ICD-O-3 as borderline.  The Sequence Number--
          Central[380] field would pertain to the pre-converted (ICD-O-2)
          malignant behavior.(Please note that 9421 is not included
          because the standard setting organizations have agreed to
          collect it with a  behavior of 3 rather than 1.)

2.  If Year of Diagnosis[390] > 2000 and not blank, and Behavior
    Code ICD-O-3 [523] = 2(in situ) or 3(malignant), then
    Sequence Number--Central [380] cannot = 60-88.

3.  If Year of Dignosis[390] > 2000 and not blank, and Behavior Code
    ICD-O-3[523]= 0 or 1, Sequence Number--Central[380] must = 60-88.]]></description>
            <history>
                <event version="SE11-001-20" user="greend" date="2006-03-23">The range for sequence number was expanded from 35-59.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-08">Changed edit to not accept 9999 as a year of diagnosis.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-21">Edit now checks for blank year of diagnosis when year of diagnosis is greater than 2000.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-09" ref="68120">Updated logic for cervix in situ cases.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF117" name="Non-Reportable Skin ICDO3 (SEER IF117)" tag="N0736" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[return (line.histologicTypeIcdO3 == null ||
   !(Functions.matches(line.primarySite, /^C44\d$/) &&
      Functions.between(line.histologicTypeIcdO3, '8000', '8110')))]]></expression>
            <message>Primary Site, Histology ICD-O-3 conflict</message>
            <description><![CDATA[This edit is skipped if Histologic Type ICD-O-3 [522] is blank.

If Primary Site[400] = C440-C449 (skin), Histologic Type ICD-O-3 [522] cannot be 8000-8110.

These cases are not reportable to SEER and will be removed after further processing.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF118" name="Age, Primary Site, Morph ICDO3--Adult (SEER)" tag="N0718" java-path="lines.line" category="inter-field" depends="Age_at_Diagnosis,Behavior_Code_ICD-O-3,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[Integer ageDx = Functions.asInt(line.ageAtDiagnosis)

if (line.dateOfDiagnosisYear == null ||
     line.histologicTypeIcdO3 == null || line.behaviorCodeIcdO3 == null ||
     line.dateOfDiagnosisYear < '2001' || line.overRideAgeSiteMorph == '1' ||
     ageDx < 15)
   return true
if (ageDx < 30 &&
   (['9732','9823','9863','9875','9876','9945'].contains(line.histologicTypeIcdO3) ||
   line.primarySite == 'C609'))
   return false
if (ageDx < 20 &&
         (Functions.matches(line.primarySite, /^C(15\d|17\d|199|209|21[0-8]|239|24\d|25\d|384|50\d|54\d|559)$/) ||
         (Functions.matches(line.primarySite, /^C(18\d|339|34\d)$/) && ! Functions.between(line.histologicTypeIcdO3,'8240','8245')) ||
         (Functions.matches(line.primarySite, /^C53\d$/) && line.behaviorCodeIcdO3 == '3')))
   return false
if ((ageDx < 40 && line.primarySite == 'C619' && line.histologicTypeIcdO3 == '8140') ||
         (ageDx > 45 && line.primarySite == 'C589' && line.histologicTypeIcdO3 == '9100'))
   return false
if (Functions.matches(line.primarySite, /^C69\d$/) && Functions.between(line.histologicTypeIcdO3,'9510','9514'))
   return false
if (line.histologicTypeIcdO3 == '8960' || line.histologicTypeIcdO3 == '9946')
   return false

return true]]></expression>
            <message>Age, Primary Site, Histology conflict for Adult</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1)  Histologic Type ICD-O-3[522] is blank
  2)  Behavior Code ICD-O-3[523] is blank
  3)  Year of Diagnosis[390] < 2001
  4)  Year of Diagnosis is blank
  5)  Age < 15
  6)  Over-ride age/site/morph[1990] is 1 (review complete).

This edit and the edit Age, Primary Site, Morphology ICDO3--Pediatric
(NPCR) replace the edit Age, Primary Site, Morphology ICDO3 (SEER IF15)
for cases diagnosed on or after 01/01/2001.  There is no overlap in the
two edits.  The edit Age, Primary Site, Morphology ICDO3--Pediatric
(NPCR) is for ages 000 - 014 and this edit (Age, Primary Site,
Morphology ICDO3--Adult (SEER)) is for ages 015 and older.  The field
Over-ride Age/Site/Morph [1990] is shared by both edits and contains a "1"
when the case has been reviewed and accepted as is.


For each specified age group in the following table, the Primary
Site[400]/Morphology--Type&Behav ICD-O-3[521] combinations require review.

014 < Age < 020
   Esophagus C150-C159            | Any morphology
   Small intestine C170-C179      | Any morphology
   Colon C180-C189                | Any other than carcinoid 8240-8245
   Rectosigmoid C199              | Any morphology
   Rectum C209                    | Any morphology
   Anus, anal canal C210-C218     | Any morphology
   Gallbladder C239               | Any morphology
   Other biliary tract C240-C249  | Any morphology
   Pancreas C250-C259             | Any morphology
   Trachea C339                   | Any other than carcinoid 8240-8245
   Lung and bronchus C340-C349    | Any other than carcinoid 8240-8245
   Pleura C384                    | Any morphology
   Breast C500-C509               | Any morphology
   Uterus, NOS C559               | Any morphology
   Cervix uteri C530-C539         | Any Histologic Type ICD-O-3 with
                                    Behavior ICD-O-3 of 3 (malignant)
   Corpus uteri C540-C549         | Any morphology

014 < Age < 030
   Any site                       | Multiple Myeloma 9732
                                  | Chronic myeloid leukemia
                                     9863,9875,9876,9945
                                  | Chronic lymphocytic leukemia 9823
   Penis C609                     | Any morphology

014 < Age < 040
   Prostate C619                  | Adenocarcinoma, NOS 8140

Age > 014
   Eye C690-C699                  | Retinobastoma 9510-9514
   Any site                       | Wilms tumor 8960
                                  | Juvenile myelomonocytic leukemia 9946

Age > 045
   Placenta C589                  | Choriocarcinoma 9100]]></description>
            <history>
                <event version="SE11-001-21" user="greend" date="2007-08-02">Juvenile myelomonocytic leukemia(9946) was moved from the 014 &lt; Age &lt; 030 group to the Age &gt; 14 group.</event>
                <event version="SE11-001-23" user="greend" date="2009-01-06">Edit changed to require review if age is &lt; 040 [instead of &lt; 045], site is prostate (C619), and histology is Adenocarcinoma, NOS (8140).</event>
                <event version="SE11-001-23" user="greend" date="2009-01-07">Edit changed to accept blank year of diagnosis instead of 9 filled</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-16" ref="69326">Removed several dependencies.</event>
            </history>
        </rule>
        <rule id="IF119" name="Age, Primary Site, Morph ICDO3--Pediatric (NPCR)" tag="N0717" java-path="lines.line" category="inter-field" depends="Age_at_Diagnosis,Behavior_Code_ICD-O-3,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[Integer ageDx = Functions.asInt(line.ageAtDiagnosis)
Integer site = Functions.asInt(line.primarySite.substring(1))
Integer hist = Functions.asInt(line.histologicTypeIcdO3)

 if (line.dateOfDiagnosisYear == null ||
      line.histologicTypeIcdO3 == null || line.behaviorCodeIcdO3 == null ||
      line.dateOfDiagnosisYear < '2001' || line.overRideAgeSiteMorph == '1' || line.overRideAgeSiteMorph == '3' ||
      ageDx > 14)
    return true

 /* Hodgkin Lymphoma */
 if (ageDx < 3 &&
          Functions.between(line.histologicTypeIcdO3,'9650','9667'))
    return false

 /* Neuroblastoma and ganglioneuroblastoma */
 if (ageDx > 9 &&
         ((line.histologicTypeIcdO3 == '9490') || (line.histologicTypeIcdO3 == '9500')))
    return false

 /* Retinoblastoma */
 if (ageDx > 5 &&
          Functions.between(line.histologicTypeIcdO3,'9510','9514'))
    return false

 /* Wilms tumro, rhabdoid, and clear cell */
 if (ageDx > 8 &&
         ((line.histologicTypeIcdO3 == '8960') || (line.histologicTypeIcdO3 == '8964') ||
         ((line.histologicTypeIcdO3 == '8963') && ((site == 649) || (site == 809)))))
    return false

 /* Renal carcinoma */
 if (ageDx < 9 &&
          ((((List)Context.Group_VIb).contains(hist) && (site == 649)) ||
          (line.histologicTypeIcdO3 == '8312')))
    return false

 /* Hepatoblastoma */
 if (ageDx > 5 && (line.histologicTypeIcdO3 == '8970'))
    return false

 /* Hepatic carcinoma */
 if (ageDx < 9 &&
         ((((List)Context.Group_VIIb).contains(hist) &&
         ((site == 220) || (site == 221))) ||
         Functions.between(line.histologicTypeIcdO3,'8160','8180')))
    return false

 /* Osteosarcoma */
 if (ageDx < 6 &&
          Functions.between(line.histologicTypeIcdO3,'9180','9200'))
    return false

 /* Chondrosarcoma */
 if (ageDx < 6 &&
          (Functions.between(line.histologicTypeIcdO3,'9220','9230') ||
          (((line.histologicTypeIcdO3 == '9231') || (line.histologicTypeIcdO3 == '9240')) &&
          Functions.between(site,400,419))))
    return false

 /* Ewing sarcoma */
 if (ageDx < 4 &&
          (((line.histologicTypeIcdO3 == '9260') &&
          (Functions.between(site,400,419) ||
          (site == 809))) || (((line.histologicTypeIcdO3 == '9363') ||
          (line.histologicTypeIcdO3 == '9364')) && Functions.between(site,400,419))))
    return false

 /* Non-gonadal germ cell */
 if (ageDx > 7 &&
          Functions.between(line.histologicTypeIcdO3,'9060','9102') &&
          ((List)Context.Group_Xb_Site).contains(site))
    return false

/* Gonadal carcinoma */
 if (ageDx < 15 &&
          ((((List)Context.Group_Xd_1).contains(hist) &&
          ((List)Context.Group_Xd_Site_1).contains(site)) ||
          ((List)Context.Group_Xd_2).contains(hist)))
   return false

 /* Thyroid carcinoma */
 if (ageDx < 6 &&
       ((((List)Context.Group_XIb).contains(hist) && (site == 739)) ||
         Functions.between(line.histologicTypeIcdO3,'8330','8350')))
    return false

 /* Nasopharyngeal carcinoma */
 if (ageDx < 6 && ((List)Context.Group_XIc).contains(hist) &&
           Functions.between(site,110,119))
    return false

 /* Skin carcinoma */
 if (ageDx < 5 && ((List)Context.Group_XIe).contains(hist) &&
           Functions.between(site,440,449))
    return false

 /* NOS carcinoma */
 if (ageDx < 5 && ((List)Context.Group_XIf).contains(hist) &&
            ((List)Context.Group_XIf_Site).contains(site))
    return false

 /* Mesothelial neoplasma (M905) */
 if (Functions.between(line.histologicTypeIcdO3,'9050','9053'))
    return false

 /* Additional SEER Groups */
 if ((line.behaviorCodeIcdO3 == '2' && Functions.between(site,530,539))
           || (line.histologicTypeIcdO3 == '9100' && site == 589)
           || Functions.matches(line.primarySite, /^C(15\d|17\d|199|209|21[0-8]|239|24\d|25\d|384|50\d|54\d|559|609)$/)
           || (Functions.matches(line.primarySite, /^C(18\d|339|34\d)$/)
           && !Functions.between(line.histologicTypeIcdO3,'8240','8245'))
           || (Functions.between(site,530,539) && line.behaviorCodeIcdO3 == '3')
           || (site == 619 && line.histologicTypeIcdO3 == '8140')
           || ['9732','9863','9875','9876','9945','9823'].contains(line.histologicTypeIcdO3))
     return false

 return true]]></expression>
            <message>Age, Primary Site, Histology conflict for Pediatric</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1)  Histologic Type ICD-O-3[522] is blank
  2)  Behavior Code ICD-O-3[523] is blank
  3)  Year of Diagnosis[390] < 2001
  4)  Year of Diagnosis is blank
  5)  Age > 14
  6)  Over-ride age/site/morph[1990] is 1 (review complete) or
          3 (Reviewed:  Conditions 1 and 2 above both apply)

This edit and the edit Age, Primary Site, Morphology ICDO3--Adult
(SEER) replace the edit Age, Primary Site, Morphology ICDO3 (SEER IF15)
for cases diagnosed on or after 01/01/2001.  There is no overlap in the
two edits.  This edit (Age, Primary Site, Morphology ICDO3--Pediatric
(NPCR)) is for ages 000 - 014 and the edit Age, Primary Site,
Morphology ICDO3--Adult (SEER) is for ages 015 and older.  The field
Over-ride age/site/morph [1990] is shared by both edits and contains a "1"
when the case has been reviewed and accepted as is.

This edit is based on the International Classification of Childhood
Cancer (ICCC) CHILD-CHECK program edit of "Unlikely Combinations of Age
and Tumour Type" as specified on page 11 of IARC Technical Report No.
29.  It also includes SEER edits for ages 000 - 014 that were formerly
part of the edit Age, Primary Site, Morphology ICDO3 (SEER IF15).

For each specified group in the following list, the Age/Primary Site/
Morphology combinations require review.


Unlikely Combinations of Age and Tumor Type

  ICCC Diagnostic Group: IIa Hodgkin Lymphoma

      Histologic Type ICD-O-3 [522]: 9650-9667
      Primary Site [400]:  Any
      Age at Diagnosis [230]: 000 - 002

  ICCC Diagnostic Group: IVa Neuroblastoma and ganglioneuroblastoma
      Histologic Type ICD-O-3 [522]: 9490, 9500
      Primary Site [400]:  Any
      Age at Diagnosis [230]: 010 - 014

  ICCC Diagnostic Group: V Retinoblastoma

      Histologic Type ICD-O-3 [522]: 9510-9514
      Primary Site [400]:  Any
      Age at Diagnosis [230]: 006 - 014


  ICCC Diagnostic Group: VIa Wilms tumor, rhabdoid, and clear cell
  sarcoma

      Histologic Type ICD-O-3 [522]: 8960, 8964
      Primary Site [400]:  Any

      Histologic Type ICD-O-3 [522]: 8963
      Primary Site [400]:  C649, C809

      Age at Diagnosis [230]: 009 - 014

  ICCC Diagnostic Group: VIb Renal carcinoma

      Histologic Type ICD-O-3 [522]: 8010-8041, 8050-8075, 8082, 8120-8122,
      8130-8141, 8143, 8155, 8190-8201, 8210, 8211, 8221-8231, 8240,
      8241, 8244-8246, 8260-8263, 8290, 8310, 8320, 8323, 8401, 8430,
      8440, 8480-8490, 8504, 8510, 8550, 8560-8573
      Primary Site [400]:  C649

      Histologic Type ICD-O-3 [522]: 8312
      Primary Site [400]:  Any

      Age at Diagnosis [230]: 000 - 008

  ICCC Diagnostic Group: VIIa Hepatoblastoma

      Histologic Type ICD-O-3 [522]: 8970
      Primary Site [400]:  Any
      Age at Diagnosis [230]: 006 - 014

  ICCC Diagnostic Group: VIIb Hepatic carcinoma

      Histologic Type ICD-O-3 [522]: 8010-8041, 8050-8075, 8082, 8120-8122,
      8140, 8141, 8143, 8155, 8190-8201, 8210, 8211, 8230, 8231,
      8240, 8241, 8244-8246, 8260-8263, 8310, 8320, 8323, 8401, 8430,
      8440, 8480-8490, 8504, 8510, 8550, 8560-8573
      Primary Site [400]:  C220, C221

      Histologic Type ICD-O-3 [522]: 8160-8180
      Primary Site [400]:  Any

      Age at Diagnosis [230]: 000 - 008

  ICCC Diagnostic Group: VIIIa Osteosarcoma

      Histologic Type ICD-O-3 [522]: 9180-9200
      Primary Site [400]:  Any
      Age at Diagnosis [230]: 000 - 005

  ICCC Diagnostic Group: VIIIb Chondrosarcoma

      Histologic Type ICD-O-3 [522]: 9220-9230
      Primary Site [400]:  Any

      Histologic Type ICD-O-3 [522]: 9231, 9240
      Primary Site [400]:  C400-C419

      Age at Diagnosis [230]: 000 - 005

  ICCC Diagnostic Group: VIIIc Ewing sarcoma

      Histologic Type ICD-O-3 [522]: 9260
      Primary Site [400]:  C400-C419, C809

      Histologic Type ICD-O-3 [522]: 9363, 9364
      Primary Site [400]:  C400-C419

      Age at Diagnosis [230]: 000 - 003

  ICCC Diagnostic Group: Xb  Non-gonadal germ cell

      Histologic Type ICD-O-3 [522]: 9060-9102
      Primary Site [400]:  C000-C559, C570-C619, C630-C699, C739-C750,
      C754-C809
      Age at Diagnosis [230]: 008 - 014

  ICCC Diagnostic Group: Xd Gonadal carcinoma

      Histologic Type ICD-O-3 [522]: 8010-8041, 8050-8075, 8082, 8120-8122,
      8130-8141, 8143, 8155, 8190-8201, 8210, 8211, 8221-8241,
      8244-8246, 8260-8263, 8290, 8310, 8320, 8323,  8430, 8440,
      8480-8490, 8504, 8510, 8550, 8560-8573
      Primary Site [400]:  C569, C620-C629

      Histologic Type ICD-O-3 [522]: 8380, 8381, 8441-8473
      Primary Site [400]:  Any

      Age at Diagnosis [230]: 000 - 014

  ICCC Diagnostic Group: XIb Thyroid carcinoma

      Histologic Type ICD-O-3 [522]: 8010-8041, 8050-8075, 8082, 8120-8122,
      8130-8141, 8155, 8190, 8200, 8201, 8211, 8230, 8231, 8244-8246,
      8260-8263, 8290, 8310, 8320, 8323, 8430, 8440, 8480, 8481,
      8500-8573
      Primary Site [400]:  C739

      Histologic Type ICD-O-3 [522]: 8330-8350
      Primary Site [400]:  Any

      Age at Diagnosis [230]: 000 - 005


  ICCC Diagnostic Group: XIc Nasopharyngeal carcinoma

      Histologic Type ICD-O-3 [522]: 8010-8041, 8050-8075, 8082, 8120-8122,
      8130-8141, 8155, 8190, 8200, 8201, 8211, 8230, 8231, 8244-8246,
      8260-8263, 8290, 8310, 8320, 8323, 8430, 8440, 8480, 8481,8504,
      8510, 8550, 8560-8573
      Primary Site [400]:  C110-C119
      Age at Diagnosis [230]: 000 - 005

  ICCC Diagnostic Group: XIe Skin carcinoma

      Histologic Type ICD-O-3 [522]: 8010-8041, 8050-8075, 8082, 8090-8110,
      8140, 8143, 8147, 8190, 8200, 8240, 8246, 8247, 8260, 8310,
      8320, 8323, 8390-8420, 8430, 8480, 8542, 8560, 8570-8573, 8940
      Primary Site [400]:  C440-C449
      Age at Diagnosis [230]: 000 - 004


  ICCC Diagnostic Group: XIf NOS carcinoma

      Histologic Type ICD-O-3 [522]: 8010-8082, 8120-8155, 8190-8263, 8290,
      8310, 8314-8323, 8430-8440, 8480-8580, 8940, 8941
      Primary Site [400]:  C000-C109, C129-C218, C239-C399, C480-C488,
      C500-C559, C570-C619, C630-C639, C659-C729, C750-C809
      Age at Diagnosis [230]: 000 - 004

  ICCC Diagnostic Group: XIIa Mesothelial neoplasms (M905)

      Histologic Type ICD-O-3 [522]: 9050-9053
      Primary Site [400]:  Any
      Age at Diagnosis [230]: 000 - 014


  Additional SEER Groups:

  Cervix Uteri

      Histologic Type ICD-O-3 [522]: Any
      Behavior Code ICD-O-3 [523]: 2
      Primary Site [400]:  C530-C539
      Age at Diagnosis [230]: 000 - 014

  Placenta: choriocarcinoma

      Histologic Type ICD-O-3 [522]: 9100
      Primary Site [400]:  C589
      Age at Diagnosis [230]: 000 - 014

  Esophagus, Small Intestine, Rectosigmoid, Rectum, Anus, Anal Canal,
  Gallbladder, Other Biliary Tract, Pancreas, Pleura, Breast, Uterus,
  NOS, Corpus Uteri, Penis

      Histologic Type ICD-O-3 [522]: Any
      Primary Site [400]:  C150-C159, C170-C179, C199, C209, C210-C218,
      C239, C240-C249, C250-C259, C384, C500-C509, C559, C540-C549,
      C609
      Age at Diagnosis [230]: 000 - 014

  Colon, Trachea, Lung and Bronchus

      Histologic Type ICD-O-3 [522]: Any other than carcinoid (8240-8245)
      Primary Site [400]:  C180-C189, C339, C340-C349
      Age at Diagnosis [230]: 000 - 014

  Cervix Uteri

      Histologic Type ICD-O-3 [522]: Any with Behavior ICD-O-3 of 3
      Primary Site [400]:  C530-C539
      Age at Diagnosis [230]: 000 - 014


  Prostate: adenocarcinoma

      Histologic Type ICD-O-3 [522]: 8140
      Primary Site [400]:  C619
      Age at Diagnosis [230]: 000 - 014


  Multiple Myeloma

      Histologic Type ICD-O-3 [522]: 9732
      Primary Site [400]:  Any
      Age at Diagnosis [230]: 000 - 014

  Chronic Myeloid Leukemia

      Histologic Type ICD-O-3 [522]: 9863, 9875, 9876, 9945
      Primary Site [400]:  Any
      Age at Diagnosis [230]: 000 - 014

  Chronic Lymphocytic Leukemia

      Histologic Type ICD-O-3 [522]: 9823
      Primary Site [400]:  Any
      Age at Diagnosis [230]: 000 - 014]]></description>
            <history>
                <event version="SE11-001-20" user="greend" date="2005-09-21">Juvenile myelomoncytic leukema (9946) was removed from the group of histologies requiring review.</event>
                <event version="SE11-001-21" user="greend" date="2007-07-10">Edit is now bypassed if Over-ride Age/Site/Morph [1990] contains a &apos;3&apos; (Reviewed:  Conditions 1 and 2 above both apply).</event>
                <event version="SE11-001-23" user="greend" date="2009-01-06">Edit changed to accept blank year of diagnosis instead of 9 filled</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-01" user="secristc" date="2022-02-23" ref="68907">Changed maximum age at DX to 14 for gonadal carcinoma.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-16" ref="69326">Removed several dependencies.</event>
            </history>
        </rule>
        <rule id="IF121" name="CS Extension, CS Lymph Nodes, CS Mets at DX (CS)" tag="N0683" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Lymph_Nodes,CS_Mets_at_DX,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.primarySite == null || line._csSchemaId == null || line.histologicTypeIcdO3 == null || line.behaviorCodeIcdO3 == null || line.csExtension == null || line.csLymphNodes == null || line.csMetsAtDx == null)
    return true

if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') &&
    line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
   return true

if (line._csSchemaId != 'prostate' && line._csSchemaId != 'retinoblastoma' && line.csExtension == '950')
    return  ! (line.csLymphNodes == '000' && line.csMetsAtDx == '00')

if (line._csSchemaId == 'breast') {
    if (line.csExtension == '000')
        return  ( line.csLymphNodes == '000' || line.csLymphNodes == '050') && line.csMetsAtDx == '00'
    return true
}

if (line._csSchemaId == 'bladder') {
    if (line.csExtension == '010' || line.csExtension == '030' || line.csExtension == '060')
        return line.csLymphNodes == '000' && line.csMetsAtDx == '00'
    return true
}

if (line._csSchemaId == 'kidney_renal_pelvis') {
    if (line.csExtension == '050' || line.csExtension == '060')
        return line.csLymphNodes == '000' && line.csMetsAtDx == '00'
    return true
}

if (line._csSchemaId == 'urethra') {
    if (line.csExtension == '050' || line.csExtension == '060' || line.csExtension == '070' || line.csExtension == '080')
        return line.csLymphNodes == '000' && line.csMetsAtDx == '00'
    return true
}

if (line._csSchemaId == 'urinary_other') {
    if (line.csExtension == '050' || line.csExtension == '060')
        return line.csLymphNodes == '000' && line.csMetsAtDx == '00'
    return true
}

if (line._csSchemaId == 'intracranial_gland') {
    if (line.csExtension == '000')
        return (line.csLymphNodes == '000' || line.csLymphNodes == '988') && line.csMetsAtDx == '00'
    return true
}

if (line._csSchemaId != 'breast' && line._csSchemaId != 'bladder' && line._csSchemaId != 'kidney_renal_pelvis' &&
    line._csSchemaId != 'urethra' && line._csSchemaId != 'urinary_other' && line.csExtension == '000')
    return line.csLymphNodes == '000' && line.csMetsAtDx == '00'

return true]]></expression>
            <message>Conflict among CS Extension, CS Lymph Nodes and CS Mets at DX</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1. CS Extension, CS Lymph Nodes, or CS Mets at DX is blank
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and schema is not Brain, CNSOther, or IntracranialGland
3. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

For all except Prostate and Retinoblastoma:
  If CS Extension [2810] = 950 (no evidence of primary tumor), then CS Lymph Nodes [2830] and CS Mets at DX [2850] cannot both specify none (000 and 00).

If CS schema is Breast:
  If CS Extension [2810] = 000 (in situ), then CS Lymph Nodes must = 000 (none; no regional lymph node involvement, or ITCs detected by immunohistochemistry or molecular methods ONLY) or 050 (none; no regional lymph nodes but with (ITCs) detected on routine H and E stains) and CS Mets at DX [2850] must = 00 (none).

If CS schema is IntracranialGland:
  If CS Extension = 000 (in situ), then CS Lymph Nodes must = 000 (obsolete data retained v0200: none) or 988 (not applicable for this schema) and CS Mets at DX must = 00 (none).

For the following schemas and in situ CS Extension codes, CS Lymph Nodes must = 000 (no lymph node involvement) and CS Mets at DX must = 00 (none):
  Schema              CS Extension
  Bladder             010, 030, 060
  KidneyRenalPelvis   050, 060
  Urethra             050, 060, 070, 080
  UrinaryOther        050, 060

If schema is not Breast, Bladder, KidneyRenalPelvis, Urethra or UrinaryOther:
  If CS Extension = 000, then both CS Lymph Nodes must = 000 (none) and CS Mets at DX must = 00 (none).]]></description>
            <history>
                <event version="SE11-001-21" user="greend" date="2007-02-01">The following logic was added to the edit: If CS Extension [2810] = 00 (in situ), then both CS Lymph Nodes [2830] and CS Mets at DX [2850] must = 00 (none).</event>
                <event version="SE11-001-21" user="greend" date="2007-04-04">Edit modified to skip if CS Extension or CS Lymph Nodes or CS Mets at DX are blank.  Modified to skip if histology is Kaposi Sarcoma, Lymphoma or Hematopoietic.  An exception was added for breast schema:  If CS Extension = 00, then CS Lymph Node must = 00 or 05 and CS Mets at DX must = 00.</event>
                <event version="SE11-001-22" user="greend" date="2007-12-15">Edit is skipped if Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline) and Primary Site [400] is not C700-729 (Brain and Other CNS) or C751-C753 (Intracranial Endocrine).  If Primary Site [400] = C670-C679 (Bladder) and CS Extension = 01, 03, or 06 (in situ), then CS Lymph Nodes [2830] must = 00 (no lymph node involvement) and CS Mets at DX [2850] must = 00 (none).</event>
                <event version="SE11-001-22" user="greend" date="2008-01-10">An exception was added for the Placenta schema:  If CS Extension = 00 (in situ), then the CS Mets at DX must = 00 (none).  (The edit no longer requires CS Lymph Nodes of 00 for CS Extension of 00 since the CS Lymph Nodes code is always 88 for the Placenta schema)</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Extended the lymph nodes and extension numbers to 3 digits(multiplied all by 10).</event>
                <event version="SE12-002-01" user="murphyr" date="2010-02-25">Changed edit to use schema name instead of checking sites.</event>
                <event version="SE12-002-04" user="murphyr" date="2010-07-29">Edit now passes if CS schema is not found.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-20">Added KidneyRenalPelvis, Urethra, and UrinaryOther cases. Deleted Placenta case. Updated doc.</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-20" ref="66780">Removed the histology skip check and excluded Prostate and Retinoblastoma from &apos;CS Extension = 950, then CS Lymph Nodes and CS Mets at DX cannot both specify none&apos; check.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-10-24" ref="66993">Modified edit to allow, for IntracranialGland schema, CS Lymph Nodes of 988 (not applicable for this schema) when CS Extension = 000 (in situ).</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF122" name="CS Extension, CS Tumor Size, Site, Hist ICDO3 (CS)" tag="N0698" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_3,CS_Tumor_Size,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line._csSchemaId == null || line.csExtension == null || line.csTumorSize == null)
    return true

if (line._csSchemaId == 'prostate' && line.csExtension == '950' && line.csSiteSpecificFactor3 == '950')
    return line.csTumorSize == '000'

if (line.csExtension == '950' && !['prostate','kaposi_sarcoma','melanoma_skin','conjunctiva','melanoma_conjunctiva','melanoma_choroid','melanoma_iris','melanoma_ciliary_body','lymphoma_ocular_adnexa'].contains(line._csSchemaId))
    return line.csTumorSize == '000'

if (line.csTumorSize == '000' && line._csSchemaId != 'mycosis_fungoides' && line._csSchemaId != 'ill_defined_other' && !((List)Context.Mucosal_Melanoma_Head_Neck_Schemas).contains(line._csSchemaId))
    return line.csExtension == '950'

if (((List)((Map)Context.IF122_Stated_As_Codes).getOrDefault(line._csSchemaId, [])).contains(Functions.asInt(line.csExtension)))
    return line.csTumorSize != '999'

return true]]></expression>
            <message>Conflict among Site, Hist ICD-O-3, CS Extension and CS Tumor Size</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1. CS Extension or CS Tumor Size is empty.
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS schema is Prostate:
    If CS Extension = 950 and CS Site-Specific Factor 3 (pathologic extension) = 950, then CS Tumor Size must = 000.

If CS schema is not KaposiSarcoma, MelanomaSkin, Conjunctiva, MelanomaConjunctiva, MelanomaChoroid, MelanomaIris, MelanomaCiliaryBody, LymphomaOcularAdnexa, or Prostate:
    If CS Extension = 950, then CS Tumor Size must = 000.

If CS schema is not IllDefinedOther or one of the Mucosal Melanoma of Head and Neck schemas:
    If CS Tumor Size = 000, then CS Extension must = 950.

The following schemas contain some CS Extension codes that are "stated as" values.  These particular "stated as" codes reflect T values that match tumor size codes in the CS Tumor Size table. If the CS Extension is coded to one of the "stated as" values below, the CS Tumor Size must not be coded 999 (unknown; size not stated).

Schema               Extension "stated as" codes
--------------------------------------------------------------
AdrenalGland 200, 250
Anus 310, 320, 330

Bone 310, 350
Breast 110, 130, 140, 170, 180
BuccalMucosa 405, 410, 415

CarcinoidAppendix 320, 330, 335

FloorMouth 405, 410, 415

GISTAppendix 170, 210, 250, 270
GISTColon 170, 210, 250, 270
GISTEsophagus 170, 210, 250, 270
GISTPeritoneum 350, 360, 370, 380
GISTRectum 170, 210, 250, 270
GISTSmallIntestine 170, 210, 250, 270
GISTStomach 340, 390, 395, 398
GumLower 405, 410, 415
GumOther 405, 410, 415
GumUpper 405, 410, 415

HeartMediastinum 350, 375
Hypopharynx 305

KidneyParenchyma 310, 320, 330, 340, 350, 360

LacrimalGland 610, 620, 630
LipLower 405, 410, 415
LipOther 405, 410, 415
LipUpper 405, 410, 415
Lung 115, 120, 125

MerkelCellPenis 330, 560, 570
MerkelCellScrotum 310, 320, 330
MerkelCellSkin 600, 610, 620
MerkelCellVulva 450, 460, 470
MouthOther 405, 410, 415

NETAmpulla 310, 430
NETColon 170, 180, 190
NETRectum 170, 180, 190
NETSmallIntestine 170
NETStomach 170

Orbit 200, 300
Oropharynx 305, 310

PalateHard 405, 410, 415
PalateSoft 405, 410
PancreasBodyTail 150, 200
PancreasHead 150, 200
PancreasOther 150, 200
ParotidGland 305, 310
Peritoneum 350, 375
PharyngealTonsil 330, 350

Retroperitoneum 350, 375

SalivaryGlandOther 305, 310
Scrotum 310
Skin 510
SoftTissue 302, 312, 322
SubmandibularGland 305, 310

Thyroid 405, 410, 415, 420
TongueAnterior 405, 410, 415
TongueBase 405, 410]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2007-12-15">Edit is skipped if Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline) and Primary Site [400] is not C700-729 (Brain and Other CNS) or C751-C753 (Intracranial Endocrine).</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-08">Edit now uses schema name.  Extension and Tumor Size codes now 3 digits.  Added stated as value table.</event>
                <event version="SE12-002-04" user="murphyr" date="2010-07-29">Edit now passes if CS schema is not found.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-11">Updated stated as codes for CSv2 version 02.03.02.</event>
                <event version="SE12-008-01" user="murphyr" date="2012-08-15" ref="66722">Added check for extension and SSF3 for prostate</event>
                <event version="SE14-011-01" user="murphyr" date="2013-10-24" ref="66994">Added MycosisFungoides skip condition.  Removed code 120 from the list of &apos;as stated&apos; codes for Breast schema.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF123" name="CS Extension, Primary Site, Behavior ICDO3 (CS)" tag="N0685" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,Type_of_Reporting_Source">
            <expression><![CDATA[if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && (line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland'))
   return true
if (line.primarySite == null || line.histologicTypeIcdO3 == null || line.csExtension == null || line.typeOfReportingSource == '7')
    return true
if (line._csSchemaId == null)
    return true

if (line._csSchemaId != 'prostate' && line.csExtension == '000' && line.behaviorCodeIcdO3 != '2')
    return false
if (['stomach','small_intestine','gist_stomach','gist_small_intestine','net_stomach','net_small_intestine','esophagus_gejunction'].contains(line._csSchemaId) && line.csExtension == '050')
   return line.behaviorCodeIcdO3 == '2'
if (['colon','rectum','gist_colon','gist_rectum','net_colon','net_rectum'].contains(line._csSchemaId) && line.csExtension == '050')
    return line.behaviorCodeIcdO3 == '2'
if (['colon','rectum','gist_colon','gist_rectum','net_colon','net_rectum'].contains(line._csSchemaId) &&
    (['8210','8261','8263'].contains(line.histologicTypeIcdO3)) && line.behaviorCodeIcdO3 == '2')
    return line.csExtension == '050'
if (line._csSchemaId == 'breast' && line.behaviorCodeIcdO3 == '2')
    return line.csExtension == '000' || line.csExtension == '050' || line.csExtension == '070'
if (line._csSchemaId == 'cervix' && line.csExtension == '010')
    return line.behaviorCodeIcdO3 == '2'
if (line._csSchemaId == 'penis' && line.csExtension == '050' && ! (Functions.between(line.histologicTypeIcdO3,'8720','8790') || Functions.between(line.histologicTypeIcdO3,'9700','9701')))
    return line.behaviorCodeIcdO3 == '2'
if (['brain','cns_other','intracranial_gland'].contains(line._csSchemaId) && line.csExtension == '050')
    return line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1'
if (['brain','cns_other','intracranial_gland'].contains(line._csSchemaId) && (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1'))
    return line.csExtension == '050'
if (line._csSchemaId == 'endocrine_other' && (line.primarySite == 'C754' || line.primarySite == 'C755') && line.csExtension == '000')
    return false
if ((line._csSchemaId == 'kidney_renal_pelvis' || line._csSchemaId == 'urinary_other') && line.behaviorCodeIcdO3 == '2')
    return line.csExtension == '050' || line.csExtension == '060'
if ((line._csSchemaId == 'kidney_renal_pelvis' || line._csSchemaId == 'urinary_other') && (line.csExtension == '050' || line.csExtension == '060'))
    return line.behaviorCodeIcdO3 == '2'
if (line._csSchemaId == 'urethra' && line.behaviorCodeIcdO3 == '2')
    return Functions.matches(line.csExtension, /^0[5678]0$/)
if (line._csSchemaId == 'urethra' && Functions.matches(line.csExtension, /^0[5678]0$/))
    return line.behaviorCodeIcdO3 == '2'
if (line._csSchemaId == 'bladder' && line.behaviorCodeIcdO3 == '2')
    return ['010','030','060','100'].contains(line.csExtension)
if (line._csSchemaId == 'bladder' && Functions.matches(line.csExtension, /^0[136]0$/))
    return line.behaviorCodeIcdO3 == '2'
if (line._csSchemaId == 'melanoma_conjunctiva' && line.csExtension == '005')
    return line.behaviorCodeIcdO3 == '3'
if (line._csSchemaId == 'melanoma_conjunctiva' && (line.csExtension == '100' || line.csExtension == '120'))
    return line.behaviorCodeIcdO3 == '2' || line.behaviorCodeIcdO3 == '3'
if (line.csExtension >= '100')
    return line.behaviorCodeIcdO3 == '3'

return true]]></expression>
            <message>Conflict among Site, Hist ICD-O-3, Behavior ICD-O-3 and CS Extension</message>
            <description><![CDATA[The purpose of this edit is to verify that the values coded in Behavior Code ICD-O-3 [523] and CS Extension [2810] are consistent.

This edit is skipped if any of the following conditions are true:
  1.  CS Extension [2810] is empty
  2.  Type of Reporting Source [500] = 7 (Death Certificate Only)
  3.  Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline) and schema
      is not Brain, CNSOther, or IntracranialGland.

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

for all CS schemas except Prostate:
   If CS extension [2810] = 000, then Behavior Code ICD-O-3 [523] must = 2 (in situ).

If schema is Stomach, SmallIntestine, GISTStomach, GISTSmallIntestine, NETStomach, NETSmallIntestine, or EsophagusGEJunction:
   If CS Extension [2810] = 05, then Behavior Code ICD-O-3 [523] must = 2.

If schema is Colon, Rectum, GISTColon, GISTRectum, NETColon, or NETRectum:
    If CS Extension[2810] = 05, then Behavior Code ICD-O-3[523] must = 2(in situ).
    If Histologic Type ICD-O-3[522] = 8210, 8261, 8263 ('carcinoma in a polyp' codes), then if Behavior ICD-O-3[523] = 2, CS Extension[2810] must = 05.

If schema is Breast:
    If Behavior Code ICD-O-3 [523] = 2, then CS Extension [2810] must = 000, 050, or 070.

If schema is Cervix:
   If CS Extension [2810] = 010, then Behavior Code ICD-O-3 [523] must = 2.

If schema is Penis:
   If CS Extension [2810] = 050, then Behavior Code ICD-O-3 [523] must = 2.

If schema is Brain schema, CNSOther, or IntracranialGland:
    If CS Extension = 050, then Behavior Code ICD-O-3 must = 0 (benign) or 1 (borderline).
    If Behavior Code ICD-O-3 = 0 or 1, then CS Extension must = 050.

If schema is EndocrineOther:
    If Primary Site = C754 (cartoid body), or C755 (aortic body and other paraganglia):
        CS Extension must not = 000

If schema is KidneyRenalPelvis or UrinaryOther:
    If Behavior Code ICD-O-3 [523] = 2, then CS Extension [2810] must = 050 or 060.
    If CS Extension [2810] = 050 or 060, then Behavior Code ICD-O-3 [523] must = 2 (in situ).

If schema is Urethra:
    If Behavior Code ICD-O-3[523] = 2, then CS Extension[2810] must = 050, 060, 070, or 080.
    If CS Extension[2810] = 050, 060, 070, or 080, then Behavior Code ICD-O-3[523] must = 2 (in situ).

If schema is Bladder:
    If Behavior Code ICD-O-3 [523] = 2, then CS Extension [2810] must = 010, 030, 060 or 100.
    If CS Extension [2810] = 010, 030, or 060, then Behavior Code ICD-O-3[523] must = 2 (in situ).

If schema = MelanomaConjunctiva:
    If CS Extension = 005, then Behavior Code ICD-O-3 must = 3.
    If CS Extension = 100 or 120, then Behavior Code ICD-O-3 may = 2 or 3.

If none of the above conditions are true:
     If CS Extension is greater than or equal to 100, then Behavior Code ICD-O-3 must = 3 (invasive).]]></description>
            <history>
                <event version="SE11-001-19" user="greend" date="2005-05-11">Additional logic was added for in situ colon and rectum schemas.  Additional logic was added for the urethra schema.  The in situ codes for the bladder schema were changed from 00-06 to 01,03,06.</event>
                <event version="SE11-001-20" user="greend" date="2006-03-23">Edit is now skipped for death certificate only cases.</event>
                <event version="SE11-001-20" user="greend" date="2006-09-25">Modified to require that, if after all exceptions have been checked, if CS Extension is greater than or equal to 10, then Behavior Code ICD-O-3 must = 3 (invasive).</event>
                <event version="SE11-001-21" user="greend" date="2007-02-02">Added code to check if Primary Site = C379, C740-741, C749, C750-C755 and C758-C759:
               1.  If CS Extension = 05, then Primary Site must = C751, C752, or C753 and Behavior Code ICD-O-3 must = 0 or 1.
               2.  If Behavior Code ICD-O-3 = 0 or 1, then CS Extension must = 05.

             Also added code to skip borderline ovarian cases (Primary Site = C569, Histologic Type ICD-O-3 = 8442, 8451, 8462, 8472, or 8473, and Behavior Code ICD-O-3 = 1).</event>
                <event version="SE11-001-22" user="greend" date="2007-12-15">Edit is skipped if Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline) and Primary Site [400] is not C700-729 (Brain and Other CNS) or C751-C753 (Intracranial Endocrine).</event>
                <event version="SE11-001-23" user="greend" date="2009-01-06">The following were added:
                1.  If Primary Site = C160-C69 (Stomach Schema) or C170-C179 (Small Intestine Schema):  if CS Extension = 05, then Behavior Code ICD-O-3 must = 2.
                2.  If Primary Site = C530-C539 (Cervix Uteri Schema):  If CS Extension = 01, then Behavior Code must = 2.
                3.  If Primary Site = C600-C609 (Penis Schema):  If CS Extension = 05, then Behavior ICD-O-3 must = 2.
                4.  If Primary Site = C740, C741, C749, C754, or C755, CS Extension must NOT = 00.</event>
                <event version="SE11-001-23" user="greend" date="2009-04-20">Removed the following logic from the edit.  This was already being caught from the Behavior (0 or 1) bypass:  This edit is also skipped for borderline ovarian cases (Primary site=C569, Histologic Type ICD-O-3 [522] = 8442,8451,8462,8472 or 8473 and Behavior Code ICD-O-3 [523] = 1).</event>
                <event version="SE12-002-01" user="murphyr" date="2010-02-02">Extension codes changed to 3 digits.  Edit now uses schema names instead of sites.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-10">Added that if CS Schema is EsophagusGEJunction then if CS Extension [2810] = 05, then Behavior Code ICD-O-3 [523] must = 2.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-14">Updated for CSv2 version 02.03.02.</event>
                <event version="SE12-005-08" user="murphyr" date="2011-12-14" ref="66559">Added logic for Melanoma Conjunctiva (If CS Extension = 100 or 120, then Behavior Code ICD-O-3 may = 2 or 3.)</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF124" name="CS Extension, KidneyRenalPelvis Schema (CS)" tag="N0710" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csExtension == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line._csSchemaId != 'kidney_renal_pelvis')
    return true

if (line.primarySite == 'C659')
    return !(line.csExtension == '685' || line.csExtension == '690' || line.csExtension == '695')

if (line.primarySite == 'C669')
    return !(line.csExtension == '600' || line.csExtension == '665' || line.csExtension == '670')

return true]]></expression>
            <message>Primary Site and CS Extension conflict</message>
            <description><![CDATA[This edit is skipped if one of the following is true:
  1.  CS Extension [2810] is empty
  2.  Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline)
  3.  Schema is not KidneyRenalPelvis

If schema is KidneyRenalPelvis:
Renal Pelvis (C659) and Ureter (C669) belong to the same schema, but Renal Pelvis can have CS Extension of 600, 665, and 670, while Ureter cannot. Ureter can have CS Extension code 685, 690, and 695, while RenalPelvis cannot. All other CS Extension values are the same for both sites and edited by the CS algorithm program.]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2008-01-16">The edit is skipped if Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline).</event>
                <event version="SE11-001-22" user="greend" date="2008-07-30">The edit is skipped if Histologic Type ICD-O-3 is 9140, 9590-9699, 9702-9729, or 9731-9989.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-02-02">Extension code changed to 3 digits.  Using schema name from dll now.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-11">Updated logic: Renal Pelvis (C659) and Ureter (C669) belong to the same schema, but Renal Pelvis can have CS Extension of 600, 665, and 670, while Ureter cannot. Ureter can have CS Extension code 685, 690, and 695, while RenalPelvis cannot. All other CS Extension values are the same for both sites and edited by the CS algorithm program.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF125" name="CS Extension, SSF 1, Thyroid Schema (CS)" tag="N0694" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_1,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csExtension == null || line.csSiteSpecificFactor1 == null || line.csSiteSpecificFactor1 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
   return true
if (line._csSchemaId == 'thyroid') {
   if (line.csExtension == '100')
      return line.csSiteSpecificFactor1 == '010'
   if (line.csExtension == '200')
      return line.csSiteSpecificFactor1 == '020'
}

return true]]></expression>
            <message>Conflict among Site, Hist ICD-O-3, CS Extension and CS SSF1</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1.  CS Extension [2810] is empty
  2.  CS Site-Specific Factor 1 [2880] is empty or 988
  3.  Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline)
  4.  Schema is not Thyroid.

  If CS Extension [2810] = 100, then CS Site-Specific Factor 1 [2880]
  must = 001.

  If CS Extension [2810] = 200, then CS Site-Specific Factor 1 [2880]
  must = 002.]]></description>
            <history>
                <event version="SE11-001-19" user="greend" date="2005-05-11">This edit is now skipped if CS Site-Specific Factor 1[2880] is blank.</event>
                <event version="SE11-001-22" user="greend" date="2007-12-15">Edit is skipped if Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline).</event>
                <event version="SE12-002-01" user="murphyr" date="2010-02-02">Extension codes changed to 3 digits.  Using schema name now instead of primary site.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-20">Updated converted codes of 001,002 to 010 and 020</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-05" user="secristc" date="2022-05-12" ref="68993">Added skip condition for CS Site-Specific Factor 1 = 988.</event>
            </history>
        </rule>
        <rule id="IF128" name="CS Lymph Nodes, SSF 1, Head/Neck Schemas (CS)" tag="N0703" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_1,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csLymphNodes == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
   return true

if (((List)Context.Head_Neck_Schemas).contains(line._csSchemaId))
   return  ! (line.csLymphNodes != '000' && line.csLymphNodes != '999' && line.csSiteSpecificFactor1 == '000')

return true]]></expression>
            <message>Conflict among Site, CS Lymph Nodes, and CS SSF1</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1.  CS Lymph Nodes [2830] is empty
  2.  Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline)

This edit is skipped if CS schema is NOT one of the following Head and Neck schemas:
    BuccalMucosa
    EpiglottisAnterior
    FloorMouth
    GumLower
    GumOther
    GumUpper
    Hypopharynx
    LarynxGlottic
    LarynxOther
    LarynxSupraglottic
    LarynxSubglottic
    LipLower
    LipOther
    LipUpper
    MelanomaLipUpper
    MelanomaLipLower
    MelanomaLipOther
    MelanomaTongueAnterior
    MelanomaGumUpper
    MelanomaGumLower
    MelanomaGumOther
    MelanomaFloorMouth
    MelanomaPalateHard
    MelanomaMouthOther
    MelanomaBuccalMucosa
    MelanomaTongueBase
    MelanomaPalateSoft
    MelanomaOropharynx
    MelanomaNasopharynx
    MelanomaHypopharynx
    MelanomaPharynxOther
    MelanomaEpiglottisAnterior
    MelanomaLarynxGlottic
    MelanomaLarynxSupraglottic
    MelanomaLarynxSubglottic
    MelanomaLarynxOther
    MelanomaNasalCavity
    MelanomaSinusMaxillary
    MelanomaSinusEthmoid
    MelanomaSinusOther
    MiddleEar
    MouthOther
    NasalCavity
    Nasopharynx
    Oropharynx
    PalateHard
    PalateSoft
    ParotidGland
    PharyngealTonsil
    PharynxOther
    SalivaryGlandOther
    SinusEthmoid
    SinusMaxillary
    SinusOther
    SubmandibularGland
    TongueAnterior
    TongueBase

    If CS Lymph Nodes does not = 000, or 999, then CS Site-Specific Factor 1 [2880] must not = 000.]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2007-12-15">This edit is now skipped if Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline).</event>
                <event version="SE12-002-01" user="murphyr" date="2010-02-02">Now using schema names from the CS dll instead of sites to determine head and neck schemas.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF129" name="CS Lymph Nodes, SSF 4, 5, Breast Schema (CS)" tag="N0704" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_4,CS_Site-Specific_Factor_5,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csLymphNodes == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
   return true

if (line._csSchemaId != 'breast')
    return true

if (line.csLymphNodes == '000' && (line.csSiteSpecificFactor4 == '987' || line.csSiteSpecificFactor5 == '987'))
   return false

if (line.csLymphNodes != '000')
    return ((line.csSiteSpecificFactor4 == null || line.csSiteSpecificFactor4 == '987' || line.csSiteSpecificFactor4 == '988') &&
            (line.csSiteSpecificFactor5 == null || line.csSiteSpecificFactor5 == '987' || line.csSiteSpecificFactor5 == '988'))

return true]]></expression>
            <message>Conflict among Site, CS Lymph Nodes, and CS Site-Specific Factors</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
    1. CS Lymph Nodes is empty
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

    This edit first determines the correct CS schema by doing a function
    call to the CS Dynamic Link Library (dll). The function call passes
    Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25
    (schema discriminator) to the dll and the CS schema name is returned.

    If CS schema is Breast:

    If CS Lymph Nodes = 000, then both CS Site-Specific Factor 4 and
    CS Site-Specific Factor 5 must not = 987 (not applicable; CS Lymph
    Nodes not coded 000)

    If CS Lymph Nodes not = 000, then both CS Site-Specific Factor 4
    and CS Site-Specific Factor 5, IF NOT BLANK, must = 987 or 988
    (not applicable: information not collected for this case)]]></description>
            <history>
                <event version="SE11-001-18" user="greend" date="2004-07-29">The statement &quot;If CS Lymph Nodes[2830]=25,26,28,50,60,71,72,73, then CS Site-Specific Factor 3[2900] must = 001-997&quot; was removed.</event>
                <event version="SE11-001-18" user="greend" date="2004-09-15">Removed &apos;05&apos; as a condition from the first statement.  Added the following logic: If CS Lymph Nodes[2830] not = 00, then CS Site Specific Facter 4[2910] and CS Site Specific Factor 5[2920] must both equal 888.</event>
                <event version="SE11-001-19" user="greend" date="2005-05-11">Edit modified to not force 888 if CS Site-Specific Factor 4 or 5 is blank.</event>
                <event version="SE11-001-22" user="greend" date="2007-12-15">This edit is now skipped if Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline).</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Histology range changed, added a zero to every lymph node number.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-02-02">Edit now uses a schema name from the CS dll instead of using site.</event>
                <event version="SE12-002-04" user="murphyr" date="2010-09-07">Added code &apos;050&apos; to 3rd condition.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-21">Changed edit name.  Removed &apos;if SSF3 = 001-097,then lymph nodes must not = 000,740,or 770&apos;.  Chnaged &apos;if lymph nodes does not equal 000 and does not equal 050...&apos; statement to &apos;if lymph nodes does not = 000, then both SSF4 and SSF5 must = 987 or 988&apos;.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF130_P1" name="Reg Nodes Ex,Pos,Site,Hist ICDO3,Rpt (SEER IF130)" tag="N0727" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Regional_Nodes_Examined,Regional_Nodes_Positive,Year_of_Diagnosis">
            <expression><![CDATA[if ((line.behaviorCodeIcdO3 != '2' && line.behaviorCodeIcdO3 != '3') ||
     line.dateOfDiagnosisYear < '1998' || line.dateOfDiagnosisYear > '2003' ||
     line.regionalNodesExamined == null || line.regionalNodesPositive == null ||
     line.registryId == '0000001562' || line.registryId == '0000001563')
   return true

if (line.regionalNodesExamined == '00' && line.regionalNodesPositive != '98')
   return false

if (line.regionalNodesExamined >= '01' && line.regionalNodesExamined <= '89' &&
    line.regionalNodesPositive != '97' && line.regionalNodesPositive != '99' &&
    line.regionalNodesPositive > line.regionalNodesExamined)
   return false

if ((line.regionalNodesExamined == '90' ||
       (line.regionalNodesExamined >= '96' && line.regionalNodesExamined <= '98')) &&
   ! ((line.regionalNodesPositive >= '00' && line.regionalNodesPositive <= '97') ||
      line.regionalNodesPositive == '99'))
   return false

if (line.regionalNodesExamined == '99' && line.regionalNodesPositive != '99')
   return false

if (line.regionalNodesExamined == '95' && line.regionalNodesPositive != '00' &&
    line.regionalNodesPositive != '97' && line.regionalNodesPositive != '99')
   return false

return true]]></expression>
            <message>Regional Nodes Positive/Examined conflict</message>
            <description><![CDATA[This edit is skipped if Year of Diagnosis is before 1998 or after 2003.

This edit is skipped if Regional Nodes Examined [830] or Regional Nodes Positive [820] are blank.

This edit is skipped if Behavior Code ICD-O-3 [523] is not 2 (in situ) or 3 (malignant).

This edit is skipped if Registry ID = 0000001562 (New York) or 0000001563 (Massachusetts)

If Death Certificate only case (Type of Reporting Source [500]= '7'), the Regional Nodes Positive [820] and Regional Nodes Examined [830] must both be coded '99.'

For the following sites [400] and histologies (ICD-O-3) [522], Regional Nodes Positive [820] and Regional Nodes Examined [830] must both be coded '99':

  1.  Hematopoietic: 9731-9734, 9740-9758, 9760-9989

  2.  Lymphomas:  9590-9699, 9702-9729

  3.  Brain (except for histology 9140 (Kaposi sarcoma)):
      C700, C710-C719

  4.  Other CNS (except for histology 9140 (Kaposi sarcoma)):
      C701, C709, C720-C725, C728, C729

  5.  Other and ill-defined (except for histology 9140 (Kaposi sarcoma)):
      C760-C765, C767, C768, C809, C420-C429, C770-C779


For all cases, the following is checked:

  1.  If Regional Nodes Examined [830] = 00, Regional Nodes Positive [820]
      must = 98.

  2.  If Regional Nodes Examined [830] = 01-89, Regional Nodes Positive
      [820] must = 97 or 99, or be less than or equal to Regional Nodes
      Examined.  If Regional Nodes Examined[830] = 90, Regional Nodes
      Positive must = 00-96,97,99.

  3.  If Regional Nodes Examined [830] = 96, 97, or 98, Regional Nodes
      Positive [820] must = 00-96, 97, or 99.

  4.  If Regional Nodes Examined [830] = 99, then Regional Nodes Positive
      [820] must = 99.

  5.  If Regional Nodes Examined [830] = 95, Regional Nodes Positive
      [820] must = 00, 97, or 99.]]></description>
            <history>
                <event version="SE11-001-18" user="greend" date="2004-10-05">Edit was modified to skip cases diagnosed before 1998.  Condition #2 was changed to allow codes 91-96 for Regional Nodes Positive when Regional Nodes Examined is 90.  In conditiion #3 the Regional Nodes Positive range was expaned from 00-90 to 00-96.  In condition #5 the valid value of 95 was deleted for Regional Nodes Positive.</event>
                <event version="SE11-001-18" user="greend" date="2004-12-28">This edit is now skipped for cases diagnosed 2004+.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-12" ref="68205">This edit is now skipped for New York and Massachusetts</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF130_P2" name="Reg Nodes Ex,Pos,Site,Hist ICDO3,Rpt (SEER IF130)" tag="N0727" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Regional_Nodes_Examined,Regional_Nodes_Positive,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if ((line.behaviorCodeIcdO3 != '2' && line.behaviorCodeIcdO3 != '3') || line.dateOfDiagnosisYear < '1998' || line.dateOfDiagnosisYear > '2003'
       || line.regionalNodesExamined == null || line.regionalNodesPositive == null)
    return true

if (line.typeOfReportingSource == '7' && (line.regionalNodesExamined != '99' || line.regionalNodesPositive != '99'))
    return false

return true]]></expression>
            <message>Death Cert Only, Regional Nodes Pos and Examined must both be 99</message>
            <description><![CDATA[This edit is skipped if Year of Diagnosis is before 1998 or after 2003.

This edit is skipped if Regional Nodes Examined [830] or Regional Nodes Positive [820] are blank.

This edit is skipped if Behavior Code ICD-O-3 [523] is not 2 (in situ) or 3 (malignant).

If Death Certificate only case (Type of Reporting Source [500]= '7'), the Regional Nodes Positive [820] and Regional Nodes Examined [830] must both be coded '99.'

For the following sites [400] and histologies (ICD-O-3) [522], Regional Nodes Positive [820] and Regional Nodes Examined [830] must both be coded '99':

  1.  Hematopoietic: 9731-9734, 9740-9758, 9760-9989

  2.  Lymphomas:  9590-9699, 9702-9729

  3.  Brain (except for histology 9140 (Kaposi sarcoma)):
      C700, C710-C719

  4.  Other CNS (except for histology 9140 (Kaposi sarcoma)):
      C701, C709, C720-C725, C728, C729

  5.  Other and ill-defined (except for histology 9140 (Kaposi sarcoma)):
      C760-C765, C767, C768, C809, C420-C429, C770-C779


For all cases, the following is checked:

  1.  If Regional Nodes Examined [830] = 00, Regional Nodes Positive [820]
      must = 98.

  2.  If Regional Nodes Examined [830] = 01-89, Regional Nodes Positive
      [820] must = 97 or 99, or be less than or equal to Regional Nodes
      Examined.  If Regional Nodes Examined[830] = 90, Regional Nodes
      Positive must = 00-96,97,99.

  3.  If Regional Nodes Examined [830] = 96, 97, or 98, Regional Nodes
      Positive [820] must = 00-96, 97, or 99.

  4.  If Regional Nodes Examined [830] = 99, then Regional Nodes Positive
      [820] must = 99.

  5.  If Regional Nodes Examined [830] = 95, Regional Nodes Positive
      [820] must = 00, 97, or 99.]]></description>
            <history>
                <event version="SE11-001-18" user="greend" date="2004-10-05">Edit was modified to skip cases diagnosed before 1998.  Condition #2 was changed to allow codes 91-96 for Regional Nodes Positive when Regional Nodes Examined is 90.  In conditiion #3 the Regional Nodes Positive range was expaned from 00-90 to 00-96.  In condition #5 the valid value of 95 was deleted for Regional Nodes Positive.</event>
                <event version="SE11-001-18" user="greend" date="2004-12-28">This edit is now skipped for cases diagnosed 2004+.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF130_P3" name="Reg Nodes Ex,Pos,Site,Hist ICDO3,Rpt (SEER IF130)" tag="N0727" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Histologic_Type_ICD-O-3,Primary_Site,Regional_Nodes_Examined,Regional_Nodes_Positive,Year_of_Diagnosis">
            <expression><![CDATA[if ((line.behaviorCodeIcdO3 != '2' && line.behaviorCodeIcdO3 != '3') ||
     line.dateOfDiagnosisYear < '1998' || line.dateOfDiagnosisYear > '2003' ||
     line.regionalNodesExamined == null || line.regionalNodesPositive == null)
   return true

if ((((List)Context.Odd_Histologies).contains(Functions.asInt(line.histologicTypeIcdO3)) ||
    (line.histologicTypeIcdO3 != '9140' &&
      ((List)Context.Certain_Sites).contains(Functions.asInt(line.primarySite.substring(1))))) &&
    (line.regionalNodesExamined != '99' || line.regionalNodesPositive != '99'))
   return false

return true]]></expression>
            <message>Reg Nodes Pos and Examined must both be 99 for this site/histology</message>
            <description><![CDATA[This edit is skipped if Year of Diagnosis is before 1998 or after 2003.

This edit is skipped if Regional Nodes Examined [830] or Regional Nodes Positive [820] are blank.

This edit is skipped if Behavior Code ICD-O-3 [523] is not 2 (in situ) or 3 (malignant).

If Death Certificate only case (Type of Reporting Source [500]= '7'), the Regional Nodes Positive [820] and Regional Nodes Examined [830] must both be coded '99.'

For the following sites [400] and histologies (ICD-O-3) [522], Regional Nodes Positive [820] and Regional Nodes Examined [830] must both be coded '99':

  1.  Hematopoietic: 9731-9734, 9740-9758, 9760-9989

  2.  Lymphomas:  9590-9699, 9702-9729

  3.  Brain (except for histology 9140 (Kaposi sarcoma)):
      C700, C710-C719

  4.  Other CNS (except for histology 9140 (Kaposi sarcoma)):
      C701, C709, C720-C725, C728, C729

  5.  Other and ill-defined (except for histology 9140 (Kaposi sarcoma)):
      C760-C765, C767, C768, C809, C420-C429, C770-C779


For all cases, the following is checked:

  1.  If Regional Nodes Examined [830] = 00, Regional Nodes Positive [820]
      must = 98.

  2.  If Regional Nodes Examined [830] = 01-89, Regional Nodes Positive
      [820] must = 97 or 99, or be less than or equal to Regional Nodes
      Examined.  If Regional Nodes Examined[830] = 90, Regional Nodes
      Positive must = 00-96,97,99.

  3.  If Regional Nodes Examined [830] = 96, 97, or 98, Regional Nodes
      Positive [820] must = 00-96, 97, or 99.

  4.  If Regional Nodes Examined [830] = 99, then Regional Nodes Positive
      [820] must = 99.

  5.  If Regional Nodes Examined [830] = 95, Regional Nodes Positive
      [820] must = 00, 97, or 99.]]></description>
            <history>
                <event version="SE11-001-18" user="greend" date="2004-10-05">Edit was modified to skip cases diagnosed before 1998.  Condition #2 was changed to allow codes 91-96 for Regional Nodes Positive when Regional Nodes Examined is 90.  In conditiion #3 the Regional Nodes Positive range was expaned from 00-90 to 00-96.  In condition #5 the valid value of 95 was deleted for Regional Nodes Positive.</event>
                <event version="SE11-001-18" user="greend" date="2004-12-28">This edit is now skipped for cases diagnosed 2004+.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF132" name="CS SSF 1, RX Summ--Surg, Retinoblastoma (SEER)" tag="N2374" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[boolean skipCondition3 = (line.dateOfDiagnosisYear == '2016' || line.dateOfDiagnosisYear == '2017') && line.csExtension == null
if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.csSiteSpecificFactor1 == null || skipCondition3)
    return true
if (line.csSiteSpecificFactor1 != null && line._csSchemaId == 'retinoblastoma')
    return !((line.rxSummSurgPrimSite == '40' || line.rxSummSurgPrimSite == '41') && line.csSiteSpecificFactor1 == '970')

return true]]></expression>
            <message>Conflict among Site, Hist ICD-O-3, RX Summ-Surg Prim Site and CS SSF1</message>
            <description><![CDATA[This edit is skipped if
1.) Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
2.) CS Site-Specific Factor 1 is blank
3.) Year of Date of Diagnosis is 2016-2017 and CS Extension is empty
For cases using the CS retinoblastoma schema, if an enucleation is coded in the surgery field, it must mbe coded in CS Site-Specific Factor 1.

If CS Schema is Retinoblastoma:
       If enucleation performed (RX Summ--Surg Prim Site [1290] = 40 or 41), then CS Site-Specific Factor 1 [2880] must not = 970.]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2007-12-15">This edit is skipped if Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline).</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-09">Edit now uses CS Schema name and SSF1 constant was changed to 970 from 000.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-12" ref="67325">Added skip condition for some 2016 cases.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-07" ref="67556">Edit is now skipped for some 2017 cases.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
                <event version="SE23-023-02" user="shearerw" date="2023-05-04" ref="69268">Edit name and tag changed.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF133" name="CS SSF 3, RX Summ--Surg, Prostate (SEER)" tag="N2375" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_3,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Surg_Prim_Site,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[boolean skipCondition4 = (line.dateOfDiagnosisYear == '2016' || line.dateOfDiagnosisYear == '2017') && line.csExtension == null
if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.typeOfReportingSource == '6' || line.csSiteSpecificFactor3 == null || skipCondition4)
    return true
if (line._csSchemaId == 'prostate' && Functions.matches(line.rxSummSurgPrimSite, /^[57]0$/))
    return !(Functions.matches(line.csSiteSpecificFactor3, /^9[678]0|985$/))

return true]]></expression>
            <message>Conflict among Site, Hist ICD-O-3, RX Summ--Surg Prim Site and CS SSF 3</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1.  Case is autopsy only (Type of Reporting Source [500] = 6)
  2.  Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline)
  3.  CS Site-Specific Factor 3 [2900] is blank
  4.  Year of Date of Diagnosis is 2016-2017 and CS Extension is blank

For cases using the CS Prostate schema, if no prostatectomy is coded in the surgery field, CS Site-Specific Factor 3 must also show no prostatectomy.

If Prostate Schema:

    If RX Summ--Surg Prim Site = 50 or 70, then CS Site-Specific Factor 3
    must not = 960, 970, 980, or 985.]]></description>
            <history>
                <event version="SE11-001-18" user="greend" date="2004-09-15">If there was no prostatectomy then CS Site-Specific Factor 3 must be 096,097 or 098.</event>
                <event version="SE11-001-22" user="greend" date="2007-12-15">Edit is skipped if Behavior Code ICD-0-3 = 0 or 1 or if Type of Reporting Source indicates Autopsy Only (6).</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit now skipped for some histologies and a blank SSF3.  Updated valid SSF3 values.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-02-02">Edit now using schema name instead of site 619.  Removed histology skip condition.</event>
                <event version="SE12-002-04" user="murphyr" date="2010-09-07">Added: &quot;If RX Summ--Surg Prim Site = 50 or 70, then CS Site-Specific Factor 3 must not = 960, 970, 980, or 985&quot;</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-11">Deleted: &quot;If there was no prostatectomy (RX Summ--Surg Prim Site [1290] not = 30, 50, 70, 80, or 90, then CS Site-Specific Factor 3 [2900]must = 960,970,980.&quot;</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-12" ref="67326">Added skip condition for 2016 cases when CS Extension is empty.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-07" ref="67557">Edit is now skipped for 2017 cases when CS Extension is empty.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-17" user="beverung" date="2022-11-21" ref="69063">Updated edit name and tag.</event>
            </history>
        </rule>
        <rule id="IF134" name="CS SSF 4, RX Summ--Surg, Testis Schema (CS)" tag="N0707" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_4,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Surg_Prim_Site,Type_of_Reporting_Source">
            <expression><![CDATA[if (line.csSiteSpecificFactor4 == null || line.csSiteSpecificFactor4 == '988' || line.rxSummSurgPrimSite == null || line.typeOfReportingSource == '7' || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'testis') {
    if (line.rxSummSurgPrimSite == '80' || line.rxSummSurgPrimSite == '90' || line.rxSummSurgPrimSite == '99')
        return line.csSiteSpecificFactor4 == '000' || line.csSiteSpecificFactor4 == '999'
    if (line.rxSummSurgPrimSite != '40')
        return line.csSiteSpecificFactor4 == '000'
    if (line.csSiteSpecificFactor4 == '000')
        return line.rxSummSurgPrimSite != '40'
}

return true]]></expression>
            <message>Conflict among Site, Hist ICD-O-3, RX Summ--Surg Prim Site and CS SSF4</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1. Type of Reporting Source[500] = 7 (Death Certificate Only)
2. Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline)
3. CS Site-Specific Factor 4[2910] is blank or 988.
4. RX Summ-Surg Prim Site is blank
5. CS schema is invalid
For cases using the CS Testis schema, if there is no radical orchiectomy
coded in the surgery field, CS Site-Specific Factor 4 must also show no
radical orchiectomy done, and vice versa.

This edit first determines the correct CS schema by doing a function call
to the CS Dynamic Link Library (dll). The function call passes Primary
Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema
discriminator) to the dll and the CS schema name is returned.

For cases coded using the Testis schema:
    If RX Summ--Surg Prim Site = 80 (orchiectomy, NOS), 90, or 99,
    then CS Site-Specific Factor 4 must = 000 (radical orchiectomy not
    performed) or 999 (unknown if radical orchiectomy performed).

    Otherwise, if there was no radical orchiectomy (RX Summ--Surg Prim
    Site [1290] not = 40), then CS Site-Specific Factor 4 [2910] must =
    000.

    If CS Site-Specific Factor 4 [2910] = 000, then
    RX Summ--Surg Prim Site [1290] must not = 40.]]></description>
            <history>
                <event version="SE11-001-20" user="greend" date="2006-06-06">The following logic was added to the edit:
              If RX Summ--Surg Prim Site = 80 (orchiectomy, NOS),
              then CS Site-Specific Factor 4 must = 000 (radical
              orchiectomy not performed) or 999 (unknown if radical
              orchiectomy performed).</event>
                <event version="SE11-001-21" user="greend" date="2007-02-01">Edit is skipped for death certificate only cases.</event>
                <event version="SE11-001-22" user="greend" date="2007-12-15">Edit is skipped if Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline).</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-03">Edit is skipped if CS Site-specific Factor 4 is blank.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-09">Edit now uses CS Schema name.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-10-25" ref="67022">Added skip condition for blank RX Summ--Surg Prim Site.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-11" user="secristc" date="2022-09-13" ref="69034">Added skip condition for CS site-specific factor 4 = 988.</event>
            </history>
        </rule>
        <rule id="IF136" name="CS Tumor Size, Site, Histol ICDO3 (CS)" tag="N0719" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Tumor_Size,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.csTumorSize == null)
    return true
if (line._csSchemaId == 'colon' ||  line._csSchemaId == 'rectum') {
    if (line.csTumorSize == '998')
        return Functions.matches(line.histologicTypeIcdO3, /^822[01]$/)
    if (Functions.matches(line.histologicTypeIcdO3, /^822[01]$/))
        return line.csTumorSize == '998'
}
if (line._csSchemaId == 'ill_defined_other') {
    if (line.primarySite == 'C809')
        return line.csTumorSize == '999'
}

return true]]></expression>
            <message>Conflict among CS Tumor Size, Primary Site and Hist ICD-O-3</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1) CS Tumor Size [2800] is empty
2) Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline)

This edit first determines the correct CS schema by doing a function call
to the CS Dynamic Link Library (dll). The function call passes Primary
Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema
discriminator) to the dll and the CS schema name is returned.

For cases using the Colon or Rectum schemas:
    If CS Tumor Size [2800] = 998, then Histologic Type ICD-O-3 [522]
    must = 8220 or 8221.
    If Histologic Type ICD-O-3[522] = 8220 or 8221, then CS Tumor
    Size[2800] must = 998.

For cases using the IllDefinedOther schema:

    If Primary Site = Unknown Primary Site (C809), then CS Tumor Size
    must = 999.]]></description>
            <history>
                <event version="SE11-001-21" user="greend" date="2007-08-08">Added : If Primary Site = Unknown Primary Site (C809), then CS Tumor Size must = 999.</event>
                <event version="SE11-001-22" user="greend" date="2007-12-15">Edit is skipped if Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline)</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-09">CS dll used to determine schema. Additional logic added: if hist = 8220,8221 then size must be 998.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF137" name="CS Tumor Size, SSF 1, MelanomaConjunctiva (CS)" tag="N0684" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_1,CS_Tumor_Size,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csTumorSize == null || line.csSiteSpecificFactor1 == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true
if (line._csSchemaId == 'melanoma_conjunctiva'){
    return ((line.csTumorSize == '000' && line.csSiteSpecificFactor1 == '000') ||
      (line.csTumorSize != '000' && line.csSiteSpecificFactor1 != '000'))
}
return true]]></expression>
            <message>Conflict among Site, Hist ICD-O-3, CS Tumor Size and CS SSF 1</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1. CS Tumor Size [2800] is empty
2. CS Site-Specific Factor 1 [2880] is empty
3. Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline)

This edit first determines the correct CS schema by doing a function call
to the CS Dynamic Link Library (dll). The function call passes Primary
Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema
discriminator) to the dll and the CS schema name is returned.

If schema is MelanomaConjuctiva:
If CS Tumor Size [2800] = 000 then, CS Site-Specific Factor 1 must = 000 and vice versa.]]></description>
            <history>
                <event version="SE11-001-19" user="greend" date="2005-05-11">The Malignant Melanoma Other Eye schema(C691,C692,C695,C698,C699) was removed from this edit.</event>
                <event version="SE11-001-22" user="greend" date="2007-12-15">Edit is skipped if Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline)</event>
                <event version="SE12-003-03" user="murphyr" date="2011-02-10">Updated documentation.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-21" ref="67228">Fixed documentation.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67741">Edit name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF138" name="Unknown Site, Laterality (SEER IF138)" tag="N0407" java-path="lines.line" category="inter-field">
            <expression><![CDATA[return  ! (line.primarySite == 'C809' && line.laterality != '0')]]></expression>
            <message>Unknown Site, Laterality must equal 0</message>
            <description><![CDATA[This edit verifies that an unknown site (Primary site [400] = 809) has a Laterality [410] of 0.]]></description>
            <history>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF141" name="EOD--Ext Prost Path, RX Summ--Surg Prim Site 03-2022 (SEER)" tag="N0731" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.eodExtensionProstPath == null || line.rxSummSurgPrimSite == null ||
   line.primarySite != 'C619' || line.typeOfReportingSource == '6' ||
   line.typeOfReportingSource == '7')
    return true
if ( ! (Functions.matches(line.rxSummSurgPrimSite, /^[35789]0$/)))
    return Functions.matches(line.eodExtensionProstPath, /^9[089]$/)

return true]]></expression>
            <message>EOD--Ext Prost Path, RX Summ--Surg Prim Site 03-2022 conflict</message>
            <description><![CDATA[This edit is skipped if and of the following conditions are true:
  1)  EOD--Extension Prost Path[800] is blank
  2)  RX Summ--Surg Prim Site 03-2022 is blank
  3)  Primary Site[400] is not C619 (prostate)
  4)  Type of Reporting Sournce[500] is 6 (Autopsy Only) or 7 (Death
      Certificate Only).

If RX Summ--Surg Prim Site 03-2022 is NOT = 30,50,70,80, or 90 (prostatectomy done), then EOD--Extension Prost Path must = 90, 98 or 99.]]></description>
            <history>
                <event version="SE11-001-18" user="greend" date="2004-12-29">Code 90 was added to list of surgery codes to indicate prostatectomy.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE23-023-01" user="secristc" date="2023-01-27" ref="69110">Updated name and description to use RX Summ--Surg Prim Site 03-2022.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF143" name="CS Extension, Hematopoietic (CS)" tag="N0760" java-path="lines.line" category="inter-field" depends="CS_Extension,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,Type_of_Reporting_Source">
            <expression><![CDATA[if (line.csExtension == null ||  line.typeOfReportingSource == '7')
   return true
if (line._csSchemaId != 'heme_retic')
   return true
if ((line.csExtension == '100' || line.csExtension == '999') && ! ['9740','9750','9751','9755','9756','9757','9758','9930'].contains(line.histologicTypeIcdO3))
    return false
return true]]></expression>
            <message>Hist ICD-O-3 and CS Extension conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1)  CS Extension[2810] is blank
  2)  Type of Reporting Source [500] = 7 (Death certificate only)
  3)  Schema is not HemeRetic

The CS Extension[2810] value of 100 (localized disease) and 999 (unknown) are allowed only for Histologic Type ICD-O-3[522] codes 9740, 9750, 9751, 9755-9758, and 9930 in the Hematopoietic schema.  This is because these particular histologies may be coded to either 10 (localized) or 80 (systemic) and it is possible that it might be unknown (99) whether the disease is localized or systemic.  (Except for death certificate only cases, all other hematopoietic histologies must be coded to 80.  This is edited by the CS algorithm program.)]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2007-12-15">Edit is skipped if Histologic Type ICD-O-3 = 9823 or 9827 and Primary Site is not C420, C421, or C424.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-02-02">Skips conditions changed.  Now skips for any schema not HemeRetic.  Extension codes changed to 3 digits.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-24">Added histology 9751.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-20">Remove 9731 and 9734 from list of histologies that can be coded to 100.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF145" name="CS Version Input Original, CS Version Derived (CS)" tag="N0774" java-path="lines.line" category="inter-field">
            <expression><![CDATA[return line.csVersionInputOriginal == null || line.csVersionDerived == null || line.csVersionInputOriginal <= line.csVersionDerived]]></expression>
            <message>CS Version Input Original and CS Version Derived conflict</message>
            <description><![CDATA[This edit is skipped if either field is blank.

CS Version Derived must be greater than or equal to CS Version Input Original.]]></description>
            <history>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF152" name="Type of Reporting Source, Date of DX (SEER IF152)" tag="N0792" java-path="lines.line" category="inter-field" depends="Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.typeOfReportingSource == null || line.dateOfDiagnosisYear == null || line.registryId == '0000001562')
    return true

if (line.dateOfDiagnosisYear < '2006')
    return Functions.matches(line.typeOfReportingSource, /^[13-7]$/)

return Functions.matches(line.typeOfReportingSource, /^[1-8]$/)]]></expression>
            <message>Type of reporting source and Year of Diagnosis Conflict</message>
            <description><![CDATA[This edit is skipped if Type of Reporting Source[500] is blank, if Year of Diagnosis[390] is blank, or if Registry ID = 0000001562 (New York).

If Year of Diagnosis[390] < 2006 and, then Type of Reporting Source[500] must be 1,3-7.

If Year of Diagnosis[390] > 2005 and, then Type of Reporting Source[500] must be 1-8.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2009-12-21">Removed year of diagnosis &apos;is not blank&apos; and &apos;is not 9999&apos;. The edit is still skipped if year of diagnosis is blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-28" ref="68129">Edit is now skipped for New York cases.</event>
            </history>
        </rule>
        <rule id="IF154" name="RX Summ--Systemic/Sur Seq, DateDX, RPTSRC (SEER IF154)" tag="N0794" java-path="lines.line" category="inter-field" depends="RX_Summ--Systemic_Sur_Seq,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear == '2006')
   return true

if (line.dateOfDiagnosisYear > '2006' && line.dateOfDiagnosisYear < '2012') {
    if (line.typeOfReportingSource == '6' || line.typeOfReportingSource == '7')
        return line.rxSummSystemicSurSeq == '0'
    return Functions.matches(line.rxSummSystemicSurSeq, /^[0234569]$/)
}


if (line.dateOfDiagnosisYear > '2011') {
    if (line.typeOfReportingSource == '6' || line.typeOfReportingSource == '7')
        return line.rxSummSystemicSurSeq == '0'
    return Functions.matches(line.rxSummSystemicSurSeq, /^[02345679]$/)
}

if (line.dateOfDiagnosisYear < '2006')
   return line.rxSummSystemicSurSeq == null

return true]]></expression>
            <message>Year of Diagnosis and RX Summ--Systemic Sur Seq Conflict</message>
            <description><![CDATA[Skip this edit if year of diagnosis[390] is blank.

If year of diagnosis[390] < 2006, then RX Summ--Systemic Sur Seq[1639] must be blank.

If year of Date of Diagnosis is greater than 2006 and less than 2012,
    A. If Type of Reporting Source is 6 (autopsy only) or 7 (death certificate only), then RX Summ--Systemic/Sur Seq must be 0 (no systemic therapy and/or no surgery)
    B. For all other values of Type of Reporting Source, RX Summ--Systemic/Sur Seq [1639] must be 0,2,3,4,5,6,9.

If year of Date of Diagnosis is greater than 2011
    A. If Type of Reporting Source is 6 (autopsy only) or 7 (death certificate only), then RX Summ--Systemic/Sur Seq must be 0 (no systemic therapy and/or no surgery)
    B. For all other values of Type of Reporting Source, RX Summ--Systemic/Sur Seq [1639] must be 0,2,3,4,5,6,7,9.]]></description>
            <history>
                <event version="SE11-001-20" user="greend" date="2006-04-12">Edit modified to require field for 2007+ cases rather than 2006+ cases due to a change from NAACCR for when the field will be required.</event>
                <event version="SE11-001-21" user="greend" date="2007-02-01">RX Summ--Systemic Sur Seq does not have to be blank for the year 2006.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-03">Changed edit to not recognize 9999 as a year of diagnosis.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-21">Updated documentation to reflect code.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-16" ref="66637">Now allowing code 7 for 2012+.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-01" user="smithm" date="2022-02-28" ref="68807">Update logic documentation with Type of Reporting Source condition</event>
                <event version="SE22-022-05" user="kirbyk" date="2022-05-17" ref="68995">Replaced non-ASCII characters in description.</event>
            </history>
        </rule>
        <rule id="IF158" name="CS Lymph Nodes, Regional Nodes Positive (CS)" tag="N0784" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,Primary_Site,Regional_Nodes_Positive">
            <expression><![CDATA[if (line.csLymphNodes == null || line.regionalNodesPositive == null || line._csSchemaId == null ||
  ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') &&
   !['brain','cns_other','intracranial_gland'].contains(line._csSchemaId)))
   return true

if (Functions.between(line.regionalNodesPositive,'01','97'))
    return line.csLymphNodes != '000'

return true]]></expression>
            <message>CS Lymph Nodes and Regional Nodes Positive Conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1. CS Lymph Nodes or Regional Nodes Positive is empty.
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland

If Regional Nodes Positive = 01-97, then CS Lymph Nodes cannot = 000.]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2007-12-15">Edit is skipped if Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline) and Primary Site [400] is not C700-729 (Brain and Other CNS) or C751-C753 (Intracranial Endocrine).</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Added an extra 0 to the lymph nodes number.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-05">Edit now uses schema name.</event>
                <event version="SE12-002-04" user="murphyr" date="2010-07-29">Edit now passes if CS schema is not found.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF160" name="Systemic RX, Surgery 03-2022, Systemic/Sur Seq (COC)" tag="N0759" java-path="lines.line" category="inter-field" depends="RX_Summ--BRM,RX_Summ--Chemo,RX_Summ--Hormone,RX_Summ--Scope_Reg_LN_Sur,RX_Summ--Surg_Oth_Reg-Dis,RX_Summ--Surg_Prim_Site,RX_Summ--Systemic_Sur_Seq,RX_Summ--Transplnt-Endocr,Regional_Nodes_Examined,Year_of_Diagnosis">
            <expression><![CDATA[if (line.rxSummSurgPrimSite == null || line.rxSummScopeRegLnSur == null ||
   line.rxSummSurgOthRegDis == null || line.rxSummBrm == null ||
   line.rxSummChemo == null || line.rxSummHormone == null ||
   line.rxSummTransplntEndocr == null || line.rxSummSystemicSurSeq == null ||
   line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear > '2022')
    return true

boolean primSite = line.rxSummSurgPrimSite >= '10' && line.rxSummSurgPrimSite <= '90'
boolean scopePre2012Surg = line.dateOfDiagnosisYear < '2012' && Functions.matches(line.rxSummScopeRegLnSur, /^[1-7]$/)
boolean scope12To17Surg = line.dateOfDiagnosisYear >= '2012' && line.dateOfDiagnosisYear < '2018' && ((line.regionalNodesExamined >= '01' && line.regionalNodesExamined <= '98' && line.rxSummScopeRegLnSur == '2') || Functions.matches(line.rxSummScopeRegLnSur, /^1|[3-7]$/))
boolean scope18To20Surg = line.dateOfDiagnosisYear >= '2018' && line.dateOfDiagnosisYear < '2021' && ((line.regionalNodesExamined >= '01' && line.regionalNodesExamined <= '98' && line.rxSummScopeRegLnSur == '2') || Functions.matches(line.rxSummScopeRegLnSur, /^[3-7]$/))
boolean scopePost20Surg = line.dateOfDiagnosisYear >= '2021' && Functions.matches(line.rxSummScopeRegLnSur, /^[2-7]$/)
boolean otherSurg = Functions.matches(line.rxSummSurgOthRegDis, /^[1-5]$/)
boolean therapyPerformed = line.rxSummBrm == '01' || Functions.matches(line.rxSummChemo, /^0[1-3]$/) || line.rxSummHormone == '01' || Functions.matches(line.rxSummTransplntEndocr, /(^[1-3]\d|40$)/)

if ((primSite || scopePre2012Surg || scope12To17Surg || scope18To20Surg || scopePost20Surg || otherSurg) && therapyPerformed)
    return Functions.matches(line.rxSummSystemicSurSeq, /^[2-7]|9$/)

boolean noPrimSite = line.rxSummSurgPrimSite == '00' || line.rxSummSurgPrimSite == '99'
boolean noOtherSurg = line.rxSummSurgOthRegDis == '0'
boolean regionalNodes1220 = (line.regionalNodesExamined == '00' || line.regionalNodesExamined == '99') && (line.dateOfDiagnosisYear >= '2012' && line.dateOfDiagnosisYear < '2021')
boolean scopePre2012NoSurg = line.dateOfDiagnosisYear < '2012' && line.rxSummScopeRegLnSur == '0'
boolean scope12To17NoSurg = line.dateOfDiagnosisYear >= '2012' && line.dateOfDiagnosisYear < '2018' && (line.rxSummScopeRegLnSur == '0' || ((regionalNodes1220) && line.rxSummScopeRegLnSur == '2'))
boolean scope18To20NoSurg = line.dateOfDiagnosisYear >= '2018' && line.dateOfDiagnosisYear < '2021' && (line.rxSummScopeRegLnSur == '0' || ((regionalNodes1220) && line.rxSummScopeRegLnSur == '2'))
boolean scopePost20NoSurg = line.dateOfDiagnosisYear >= '2021' && Functions.matches(line.rxSummScopeRegLnSur, /^[0-1]$/)
boolean surgeryAlsoNotPerformed = line.rxSummSurgPrimSite == '98' && line.rxSummScopeRegLnSur == '9'
boolean noTherapy = Functions.matches(line.rxSummBrm, /(^00|8[2-8]|99$)/) &&
   Functions.matches(line.rxSummChemo, /(^00|8[2-8]|99$)/) &&
   Functions.matches(line.rxSummHormone, /(^00|8[2-8]|99$)/) &&
   Functions.matches(line.rxSummTransplntEndocr, /(^00|8[2-8]|99$)/)

if ((noPrimSite && noOtherSurg && (scopePre2012NoSurg || scope12To17NoSurg || scope18To20NoSurg || scopePost20NoSurg)) || (surgeryAlsoNotPerformed && noOtherSurg) || noTherapy)
    return line.rxSummSystemicSurSeq == '0'

return true]]></expression>
            <message>Conflict among systemic RX, Surgery, and Systemic Surg Seq</message>
            <description><![CDATA[This edit is skipped if any of the fields are blank.
            This edit is skipped for diagnosis date blank (unknown), invalid, or after 2022.

1. If surgery was performed AND if systemic therapy was given, then RX Summ-Systemic/Sur Seq must specify a sequence (codes 2-7, 9).
    A. Surgery is considered performed if ANY of the following three conditions are true:
        1. RX Summ-Surg Prim Site 03-2022 = 10-90
        2. RX Summ-Scope Reg LN Sur:
            For cases diagnosed prior to 2012:
                1-7
            For cases diagnosed 2012-2017:
                1, 2 (only if Regional Nodes Examined = 01-98), 3-7
            For cases diagnosed 2018-2020:
                2 (if Regional Nodes Examined = 01-98), 3-7
            For cases diagnosed 2021+:
                2-7
        3. RX Summ-Surg Oth Reg/Dis = 1-5

    B. Systemic therapy is considered performed if ANY of the following four conditions are true:
        1. RX Summ-BRM = 01
        2. RX SummChemo = 01-03
        3. RX Summ-Hormone = 01
        4. RX Summ-Transplnt/Endocr = 10-40

2. If surgery was not performed OR there was no systemic therapy, then RX Summ-Systemic/Sur Seq must = 0 (no systemic therapy and/or surgical procedures).
    A. Surgery is considered not performed if ALL of the following conditions are true:
        1. RX Summ-Surg Prim Site 03-2022 = 00 or 99
        2. RX Summ-Scope Reg LN Sur:
            For cases diagnosed prior to 2012:
                0
            For cases diagnosed 2012-2017:
                0 (for all cases)
                2 (only if Regional Nodes Examined 00 or 99)
            For cases diagnosed 2018-2020:
                0
                2 (only if Regional Nodes Examined 00 or 99)
            For cases diagnosed 2021 or later:
                0-1  (for all cases)
        3. RX Summ-Surg Oth Reg = 0

    B. Surgery is also considered not performed if ALL of the following conditions are true:
        1. RX Summ-Surg Prim Site 03-2022 = 98 (coded for hematopoietic, ill-defined and unknown sites)
        2. RX Summ-Scope Reg LN Sur: 9
        3. RX Summ-Surg Oth Reg = 0

    C. Systemic therapy is considered not performed if ALL of the following four conditions are true:
        1. RX Summ-BRM = 00, 82-88, 99
        2. RX Summ-Chemo = 00, 82-88, 99
        3. RX Summ-Hormone = 00, 82-88, 99
        4. RX Summ-Transplnt/Endocr = 00, 82-88, 99]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-06">Changed 82-87 range to 82-88</event>
                <event version="SE12-008-01" user="murphyr" date="2012-08-09" ref="66719">Changed &apos;yes/no&apos; surgery definition for scope for 2012+ cases</event>
                <event version="SE12-008-02" user="murphyr" date="2012-09-11" ref="66741">Changed &quot;is considered not performed if ANY of the following&quot; to &quot;is considered not performed if ALL of the following&quot; for 2.A, 2.B and 2.C.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="secristm" date="2020-02-25" ref="68580">Changed &apos;yes/no&apos; surgery definition for scope for 2017+ cases</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-26" ref="68973">Added 99 as valid code for RX Summ fields for sequence code 0</event>
                <event version="SE23-023-01" user="secristc" date="2023-01-25" ref="69088">Added condition for 2023+, changed name.</event>
                <event version="SE23-023-10" user="shearerw" date="2024-01-22" ref="69322">Fixes to scope18To20NoSurg condition.</event>
            </history>
        </rule>
        <rule id="IF167" name="Registry, County and Census Tract (SEER IF167)" tag="S005" java-path="lines.line" category="inter-field">
            <expression><![CDATA[String county = line.countyAtDxGeocode2000 ?: line.countyAtDxAnalysis
if (line.censusTract2000 == null || county == null || line.censusTract2000 == '000000' || line.censusTract2000 == '999999' || line.registryId < '0000001500' || line.registryId > '0000001599' || line.registryId == '0000001551')
    return true

Map countyCensusTract = (Map)((Map)Context.registry_county_census2000).get(line.addrAtDxState)
if (countyCensusTract == null)
    return true

return ((List)countyCensusTract.getOrDefault(county, [])).contains(Functions.asInt(line.censusTract2000))]]></expression>
            <message>Registry, County and Census Tract 2000 conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1)  Census Tract 2000[130] is blank, 000000, or 999999
  2)  County at DX Geocode2000[95] is blank
  3)  Registry is Cherokee Nation
  4)  Addr at DX State[547] is blank or invalid


Census Tract 2000[130] must be valid within the given County at DX Geocode2000[95] for each Addr at DX State[547].]]></description>
            <history>
                <event version="SE12-003-02" user="depryf" date="2011-01-10">Added valid Census2000 codes for Greater Georgia (see census2000_1547 context table).</event>
                <event version="SE12-007-03" user="murphyr" date="2012-08-02" ref="66705">Added &apos;line.censusTract2000 == &apos;000000&apos;&apos; to skip condition</event>
                <event version="SE13-010-03" user="murphyr" date="2013-07-29" ref="66767">Edit now skipped for Cherokee Nation.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-12" ref="67381">Edit now uses County at DX Geocode2000 instead of County at DX.</event>
                <event version="SE16-015-04" user="kirbyk" date="2016-07-08" ref="67490">Edit now uses County at DX if County at DX Geocode2000 is blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-20" ref="67969">Edit updated for new registries ID, NY, MA, and WI.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-07" user="beverung" date="2020-10-01" ref="68527">Edit now uses countyAtDxAnalysis instead of countyAtDxGeocode2000.</event>
                <event version="SE18-020-09" user="kirbyk" date="2020-10-27" ref="68538">Reverted edit back to use countyAtDxGeocode2000.</event>
                <event version="SE21-021-07" user="beverung" date="2021-07-16" ref="68687">Edit updated for new registries IL and TX.</event>
                <event version="SE23-023-06" user="cooki" date="2023-07-31" ref="69294">Updated countyAtDx to countyAtDxAnalysis.</event>
                <event version="SE24-024-05" user="beverung" date="2024-05-23" ref="69467">Update edit to use Addr at DX State instead of Registry ID to determine valid Census tract codes.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF168_P1" name="CS Reg Nodes Ex, Pos, Site, Hist ICDO3, Report (CS)" tag="N1321" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Version_Input_Current,Histologic_Type_ICD-O-3,Primary_Site,Regional_Nodes_Examined,Regional_Nodes_Positive,Year_of_Diagnosis">
            <expression><![CDATA[if (line._csSchemaId == null || line.regionalNodesExamined == null || line.regionalNodesPositive == null)
    return true
if (line.dateOfDiagnosisYear == null ||line.dateOfDiagnosisYear < '2004' || line.dateOfDiagnosisYear > '2017')
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','cns_other','intracranial_gland'].contains(line._csSchemaId))
        return true

if (line.dateOfDiagnosisYear < '2010' && (line.csVersionInputCurrent == '020510' || line.csVersionInputCurrent == null)) {
    if (line.regionalNodesExamined == '00' && line.regionalNodesPositive != '98')
       return false

    if (line.regionalNodesExamined >= '01' && line.regionalNodesExamined <= '90' &&
        line.regionalNodesPositive > line.regionalNodesExamined &&
        line.regionalNodesPositive != '97' && line.regionalNodesPositive != '99')
       return false

    if (line.regionalNodesExamined >= '95' && line.regionalNodesExamined <= '98' &&
       ! ((line.regionalNodesPositive >= '00' && line.regionalNodesPositive <= '90') ||
        line.regionalNodesPositive == '95' || line.regionalNodesPositive == '97'||
        line.regionalNodesPositive == '99'))
       return false

    if (line.regionalNodesExamined == '99' && line.regionalNodesPositive != '99')
       return false
}
else {
    if (line.regionalNodesExamined == '00' && line.regionalNodesPositive != '98')
       return false

    if (line.regionalNodesExamined >= '01' && line.regionalNodesExamined <= '90' &&
        line.regionalNodesPositive > line.regionalNodesExamined &&
        line.regionalNodesPositive != '95' && line.regionalNodesPositive != '97' &&
        line.regionalNodesPositive != '99')
       return false

    if (line.regionalNodesExamined == '95' && line.regionalNodesPositive != '00' &&
        line.regionalNodesPositive != '95' && line.regionalNodesPositive != '99')
       return false

    if (line.regionalNodesExamined >= '96' && line.regionalNodesExamined <= '98' &&
       ! ((line.regionalNodesPositive >= '00' && line.regionalNodesPositive <= '90') ||
        line.regionalNodesPositive == '95' || line.regionalNodesPositive == '97' ||
        line.regionalNodesPositive == '99'))
       return false

    if (line.regionalNodesExamined == '99' && line.regionalNodesPositive != '99')
       return false
}

return true]]></expression>
            <message>CS Regional Nodes Positive/Examined conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:

1) Regional Nodes Examined[830] or Regional Nodes Positive[820] are blank.
2) Year of Date of Diagnosis is less than 2004 or greater than 2017, blank, or invalid
3) Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline) and CS Schema Name is not Brain, CNSOther, or IntracranialGland.

If year of Date of Diagnosis is less than 2010 and CS Version Input Current is 020510 (not changed since conversion from CSv01 to CSv02) or blank:
1. If Regional Nodes Examined = 00, Regional Nodes Positive must = 98.
2. If Regional Nodes Examined = 01 - 90, Regional Nodes Positive must
    = 97 or 99, or be less than or equal to Regional Nodes Examined.
3. If Regional Nodes Examined = 95, 96, 97, or 98, Regional Nodes
    Positive must = 00 - 90, 95, 97, or 99.
4. If Regional Nodes Examined = 99, then Regional Nodes Positive must =
    99.

Otherwise:
1. If Regional Nodes Examined = 00 , Regional Nodes Positive must = 98.
2. If Regional Nodes Examined = 01 - 90, Regional Nodes Positive must
    = 95, 97 or 99, or be less than or equal to Regional Nodes Examined.
3. If Regional Nodes Examined = 95, Regional Nodes Positive must
    = 00, 95, or 99.
4. If Regional Nodes Examined = 96, 97, or 98, Regional Nodes Positive
    must = 00 - 90, 95, 97, or 99.
5. If Regional Nodes Examined = 99, then Regional Nodes Positive must =
    99.]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2007-12-15">Edit is skipped if Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline) and Primary Site [400] is not C700-729 (Brain and Other CNS) or C751-C753 (Intracranial Endocrine).</event>
                <event version="SE11-001-23" user="greend" date="2009-04-03">If Regional Nodes Examined = 96 or 97, then Regional Nodes Positive must be 0-90, 97, or 99.  If Regional Nodes Examined = 98, then Regional Nodes Positive must be 0-90, 95, 97, or 99.</event>
                <event version="SE12-002-01" user="greend" date="2010-03-24">Using CS Schema names instead of site and histologies.</event>
                <event version="SE12-002-04" user="murphyr" date="2010-07-29">Edit now passes if CS schema is not found.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-27">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-007-01" user="murphyr" date="2012-03-14" ref="66688">Now using CS Version Input Current instead of CS Version Input Original for pre-2010 cases.</event>
                <event version="SE14-012-02" user="depryf" date="2014-07-23" ref="67093">Changed condition on DX year to use 020510 instead of 020410 for the CS Version Input Current.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-19" ref="68236">Edit updated to skip cases diagnosed 2018+</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-18" ref="68506">Updated description.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-28" ref="68513">Updated skip conditions for 2018+</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-09" ref="68710">Updated skip conditions for 2018+ and Schema ID.</event>
            </history>
        </rule>
        <rule id="IF168_P2" name="CS Reg Nodes Ex, Pos, Site, Hist ICDO3, Report (CS)" tag="N1321" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Histologic_Type_ICD-O-3,Primary_Site,Regional_Nodes_Examined,Regional_Nodes_Positive,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear < '2004' || line.dateOfDiagnosisYear > '2017' || line.dateOfDiagnosisYear == null
        || line.regionalNodesExamined == null || line._csSchemaId == null
        || line.regionalNodesPositive == null || line.typeOfReportingSource != '7'
        || ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')  &&
        !['brain','cns_other','intracranial_gland'].contains(line._csSchemaId)))
    return true

return line.regionalNodesExamined == '99' && line.regionalNodesPositive == '99']]></expression>
            <message>Death Cert Only, CS Regional Nodes Pos and Examined must both be 99</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:

  1)  Regional Nodes Examined[830] or Regional Nodes Positive[820] are blank.
  2)  Year of Diagnosis[390] < 2004, Year of Diagnosis[390] > 2017, or
      Year of Diagnosis[390] is blank or invalid.
  3)  Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline) and CS Schema Name
      is not Brain, CNSOther, or IntracranialGland.

If Type of Reporting Source[500] = 7 (Death certificate only), then Regional Nodes Positive[820] and Regional Nodes Examined[830] must be 99.]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2007-12-15">Edit is skipped if Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline) and Primary Site [400] is not C700-729 (Brain and Other CNS) or C751-C753 (Intracranial Endocrine).</event>
                <event version="SE12-002-01" user="greend" date="2010-03-24">Using CS Schema names instead of site and histologies.</event>
                <event version="SE12-002-04" user="murphyr" date="2010-07-29">Edit now passes if CS schema is not found.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-27">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-007-01" user="murphyr" date="2012-03-14" ref="66688">Now using CS Version Input Current instead of CS Version Input Original for pre-2010 cases.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-25" ref="67760">Edit name change.</event>
                <event version="SE18-019-05" user="beverung" date="2019-10-11" ref="68259">Update year of diagnosis skip condition to include &gt; 2017, blank and invalid.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-18" ref="68506">Updated description.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="IF168_P3" name="CS Reg Nodes Ex, Pos, Site, Hist ICDO3, Report (CS)" tag="N1321" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Histologic_Type_ICD-O-3,Primary_Site,Regional_Nodes_Examined,Regional_Nodes_Positive,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear < '2004' || line.dateOfDiagnosisYear > '2017' || line.dateOfDiagnosisYear == null
        || line.regionalNodesExamined == null || line.regionalNodesPositive == null || line._csSchemaId == null
        || ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','cns_other','intracranial_gland'].contains(line._csSchemaId)))
    return true

if (['heme_retic','lymphoma','brain','cns_other','ill_defined_other','placenta','intracranial_gland'].contains(line._csSchemaId))
    return line.regionalNodesExamined == '99' && line.regionalNodesPositive == '99'
else if (line._csSchemaId == 'myeloma_plasma_cell_disorder' && line.histologicTypeIcdO3 != '9734')
    return line.regionalNodesExamined == '99' && line.regionalNodesPositive == '99'

return true]]></expression>
            <message>CS Reg Nodes Pos and Examined must both be 99 for this site/histology</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:

  1)  Regional Nodes Examined[830] or Regional Nodes Positive[820] are blank.
  2)  Year of Diagnosis[390] < 2004, Year of Diagnosis[390] > 2017, or
      Year of Diagnosis[390] is blank or invalid.
  3)  Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline) and CS Schema Name
      is not Brain, CNSOther, or IntracranialGland.

For the following CS Schemas, Regional Nodes Positive [820] and Regional Nodes Examined [830] must both be coded '99':
  1.  HemeRetic
  2.  Lymphoma
  3.  Brain
  4.  CNSOther
  5.  IllDefinedOther
  6.  Placenta
  7.  IntracranialGland
  8.  MyelomaPlasmaCellDisorder except for histology 9734 (Extraosseous plasmacytomas)]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2007-12-15">Edit is skipped if Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline) and Primary Site [400] is not C700-729 (Brain and Other CNS) or C751-C753 (Intracranial Endocrine).</event>
                <event version="SE12-002-01" user="greend" date="2010-03-24">Using CS Schema names instead of site and histologies.</event>
                <event version="SE12-002-04" user="murphyr" date="2010-07-29">Edit now passes if CS schema is not found.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-27">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-007-01" user="murphyr" date="2012-03-14" ref="66688">Now using CS Version Input Current instead of CS Version Input Original for pre-2010 cases.</event>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-09" ref="67128">Added exception for MyelomaPlasmaCellDisorder with histology 9734.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-25" ref="67760">Edit name change.</event>
                <event version="SE18-019-05" user="beverung" date="2019-10-11" ref="68259">Update year of diagnosis skip condition to include &gt; 2017, blank and invalid.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-18" ref="68506">Updated description.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="IF169" name="Derived AJCC--Flag, Derived AJCC (SEER)" tag="N0708" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || ((line.dateOfDiagnosisYear == '2016' || line.dateOfDiagnosisYear == '2017') && line.csExtension == null))
        return true

if (Functions.matches(line.registryId, /^000000156[2356]$/))
    return true

if (line.derivedAjccFlag == null)
   return (line.derivedAjcc6T == null && line.derivedAjcc6N == null
     && line.derivedAjcc6M == null && line.derivedAjcc6StageGrp == null
     && line.derivedAjcc7T == null && line.derivedAjcc7N == null
     && line.derivedAjcc7M == null && line.derivedAjcc7StageGrp == null
     && line.derivedAjcc6TDescript == null && line.derivedAjcc6NDescript == null
     && line.derivedAjcc6MDescript == null && line.derivedAjcc7TDescript == null
     && line.derivedAjcc7NDescript == null && line.derivedAjcc7MDescript == null)

if (line.derivedAjccFlag != null && line.dateOfDiagnosisYear > '2009' &&
     (line.derivedAjcc7T == null || line.derivedAjcc7N == null
     || line.derivedAjcc7M == null || line.derivedAjcc7StageGrp == null
     || line.derivedAjcc7TDescript == null || line.derivedAjcc7NDescript == null
     || line.derivedAjcc7MDescript == null))
   return false

if (line.derivedAjccFlag != null && line.dateOfDiagnosisYear > '2007' &&
    (line.derivedAjcc6TDescript == null || line.derivedAjcc6NDescript == null
     || line.derivedAjcc6MDescript == null))
   return false

return (line.derivedAjccFlag != null && line.derivedAjcc6T != null && line.derivedAjcc6N != null
     && line.derivedAjcc6M != null && line.derivedAjcc6StageGrp != null)]]></expression>
            <message>Conflict between Derived AJCC--Flag and Derived AJCC fields</message>
            <description><![CDATA[This edit checks the AJCC--Flag against the derived data items as required by
    SEER.

    This edit is skipped if any of the following conditions are true:
    1. Date of Diagnosis is blank
    2. Year of Diagnosis = 2016-2017 and CS Extension is blank.
    3. Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

    If Derived AJCC--Flag is blank (not derived), then the following fields must be
    blank:
        Derived AJCC-6 T
        Derived AJCC-6 T Descript
        Derived AJCC-6 N
        Derived AJCC-6 N Descript
        Derived AJCC-6 M
        Derived AJCC-6 M Descript
        Derived AJCC-6 Stage Grp
        Derived AJCC-7 T
        Derived AJCC-7 T Descript
        Derived AJCC-7 N
        Derived AJCC-7 N Descript
        Derived AJCC-7 M
        Derived AJCC-7 M Descript
        Derived AJCC-7 Stage Grp

    If Derived AJCC--Flag is not blank, then the following fields must not be blank:
        Derived AJCC-6 T
        Derived AJCC-6 N
        Derived AJCC-6 M
        Derived AJCC-6 Stage Group

    If Derived AJCC--Flag is not blank and year of Date of Diagnosis is 2008 or
    later, then the following fields must also not be blank:
        Derived AJCC-6 T Descript
        Derived AJCC-6 N Descript
        Derived AJCC-6 M Descript

    If Derived AJCC--Flag is not blank and year of Date of Diagnosis is 2010 or
    later, then the following fields must also not be blank:
        Derived AJCC-7 T
        Derived AJCC-7 T Descript
        Derived AJCC-7 N
        Derived AJCC-7 N Descript
        Derived AJCC-7 M
        Derived AJCC-7 M Descript
        Derived AJCC-7 Stage Group]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-05">Changed logic.  Added 7th edition fields.</event>
                <event version="SE16-015-06" user="kirbyk" date="2016-08-01" ref="67502">Added skip condition for DX year 2016 when CS is not collected</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-07" ref="67558">Added skip condition for DX year 2017 when CS is not collected</event>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-20" ref="67961">Removed unnecessary dependencies.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-08" user="kirbyk" date="2020-10-13" ref="68530">Added skip condition for Massachusetts.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-16" ref="68715">Added skip condition for Illinois.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-16" ref="68717">Added skip condition for Texas.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF170" name="Derived CS Items, Date of DX (SEER)" tag="N2408" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','cns_other','intracranial_gland'].contains(line._csSchemaId)))
   return true

if (line._csSchemaId == null || ['0000001562', '0000001563', '0000001566', '0000001565'].contains(line.registryId))
    return true

if (line.dateOfDiagnosisYear >= '2010' && (line.dateOfDiagnosisYear < '2016' || ((line.dateOfDiagnosisYear == '2016' || line.dateOfDiagnosisYear == '2017') && line.csExtension != null)) &&
   (line.derivedAjcc7M == null || line.derivedAjcc7MDescript == null || line.derivedAjcc7N == null ||
    line.derivedAjcc7NDescript == null || line.derivedAjcc7StageGrp == null || line.derivedAjcc7T == null ||
    line.derivedAjcc7TDescript == null || line.derivedAjcc6TDescript == null || line.derivedAjcc6NDescript == null ||
    line.derivedAjcc6MDescript == null || line.derivedAjcc6T == null || line.derivedAjcc6N == null ||
    line.derivedAjcc6M == null || line.derivedAjcc6StageGrp == null || line.derivedSs1977 == null ||
    line.derivedSs2000 == null || line.csVersionDerived == null))
   return false

if (line.dateOfDiagnosisYear >= '2008' && (line.dateOfDiagnosisYear < '2016' || ((line.dateOfDiagnosisYear == '2016' || line.dateOfDiagnosisYear == '2017') && line.csExtension != null)) &&
   (line.derivedAjcc6TDescript == null || line.derivedAjcc6NDescript == null ||
    line.derivedAjcc6MDescript == null || line.derivedAjcc6T == null || line.derivedAjcc6N == null ||
     line.derivedAjcc6M == null || line.derivedAjcc6StageGrp == null || line.derivedSs1977 == null ||
     line.derivedSs2000 == null || line.csVersionDerived == null))
   return false

if (line.dateOfDiagnosisYear >= '2004' && (line.dateOfDiagnosisYear < '2016' || ((line.dateOfDiagnosisYear == '2016' || line.dateOfDiagnosisYear == '2017') && line.csExtension != null)) &&
     (line.derivedAjcc6T == null || line.derivedAjcc6N == null ||
     line.derivedAjcc6M == null || line.derivedAjcc6StageGrp == null ||
     line.derivedSs1977 == null || line.derivedSs2000 == null ||
     line.csVersionDerived == null))
   return false

if (line.dateOfDiagnosisYear <= '2003' &&
      (line.derivedAjcc6T != null || line.derivedAjcc6N != null ||
      line.derivedAjcc6M != null || line.derivedAjcc6StageGrp != null ||
      line.derivedSs1977 != null || line.derivedSs2000 != null ||
      line.csVersionDerived != null))
   return false

return true]]></expression>
            <message>Conflict between Date of Diagnosis and Derived CS Items</message>
            <description><![CDATA[This edit differs from the COC and NPCR edits of the same name in that it edits all of the derived Collaborative Stage data items as required by SEER.

This edit is skipped if any of the following conditions are true:
   1)  Year of Diagnosis[390] is blank.
   2)  Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline) and CS Schema is not Brain, CNSOther, or Intracranial Gland.
   3)  CS Schema is invalid
   4)  Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001566 (Texas), or 0000001565 (Illinois)

If Year of Diagnosis[390] is greater than 2003 and less than 2016 or year of diagnosis is 2016-2017 and CS Extension is not blank, then the following CS Data Items cannot be blank:
   1)  Derived AJCC-6 T[2940]
   2)  Derived AJCC-6 N[2960]
   3)  Derived AJCC-6 M[2980]
   4)  Derived AJCC-6 Stage Groups[3000]
   5)  Derived SS1977[3010]
   6)  Derived SS2000[3020]
   7)  CS Version Derived[2936]

If Year of Diagnosis[390] is less than or equal to 2003, then the CS Data Items mention above must be blank.

If Year of Diagnosis[390] is greater than 2007 and less than 2016 or year of diagnosis is 2016-2017 and CS Extension is not blank, then the following CS data items cannot be blank:
   1)  Derived AJCC-6 T Descriptor [2950]
   2)  Derived AJCC-6 N Descriptor [2970]
   3)  Derived AJCC-6 M Descriptor [2990]

If Year of Diagnosis[390] is greater than 2009 and less than 2016 or year of diagnosis is 2016-2017 and CS Extension is not blank, then the following CS data items cannot be blank:
   1)  Derived AJCC-7 T [3400]
   2)  Derived AJCC-7 T Descriptor [3402]
   3)  Derived AJCC-7 N [3410]
   4)  Derived AJCC-7 N Descriptor [3412]
   5)  Derived AJCC-7 M [3420]
   6)  Derived AJCC-7 M Descriptor [3422]
   7)  Derived AJCC-7 Stage Group [3430]]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2008-01-16">Edit is now skipped if Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline) and Primary Site [400] is not C700-729 (Brain and Other CNS) or C751-C753 (Intracranial Endocrine).  If Year of Diagnosis[390] is greater than 2007, then the following CS data items cannot be blank:
               1)  Derived AJCC T Descriptor
               2)  Derived AJCC N Descriptor
               3)  Derived AJCC M Descriptor</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-22">Added if year dx is greater than 2009 then the CS 7th Ed data items cannot be blank.  Also edit is now using CS Schema name.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-24">Removed CS Input Original.</event>
                <event version="SE12-002-04" user="murphyr" date="2010-07-29">Edit now passes if CS schema is not found.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-03-31" ref="67236">Derived items can be blank for DX year 2016+.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-05" ref="67379">Derived items cannot be blank for DX year 2016 when CS is collected.</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-07" ref="67559">Derived items cannot be blank for DX year 2017 when CS is collected.</event>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-31" ref="67806">Changed edit name and message to specify Derived CS Items.</event>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-20" ref="67961">Removed unnecessary dependencies.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-28" ref="68129">Edit is now skipped for New York cases.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-08" user="kirbyk" date="2020-10-13" ref="68530">Added skip condition for Massachusetts.</event>
                <event version="SE21-021-09" user="beverung" date="2021-09-07" ref="68736">Added skip condition for Texas.</event>
                <event version="SE22-022-11" user="beverung" date="2022-09-09" ref="69030">Added skip condition for Illinois.</event>
            </history>
        </rule>
        <rule id="IF171" name="Derived SS1977--Flag, Derived SS1977 (CS)" tag="N0678" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.derivedSs1977Flag == null)
   return line.derivedSs1977 == null

return line.derivedSs1977 != null]]></expression>
            <message>Derived SS1977--Flag and Derived SS1977 conflict</message>
            <description><![CDATA[If Derived SS1977--Flag[3040] is blank, then Derived SS1977[3010] must be blank.

If Derived SS1977--Flag[3040] is not blank, then Derived SS1977[3010] must not be
blank.]]></description>
            <history>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF172" name="Derived SS2000--Flag, Derived SS2000 (CS)" tag="N0677" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.derivedSs2000Flag == null)
   return line.derivedSs2000 == null

return line.derivedSs2000 != null]]></expression>
            <message>Derived SS2000--Flag and Derived SS2000 conflict</message>
            <description><![CDATA[If Derived SS2000--Flag[3040] is blank, then Derived SS2000[3020] must be blank.

If Derived SS2000--Flag[3040] is not blank, then Derived SS2000[3020] must not be blank.]]></description>
            <history>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF174" name="CS Items, DX Pre-2004 (SEER)" tag="N2438" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear >= '2004' || line.dateOfDiagnosisYear == null)
   return true

if (line.csTumorSize != null || line.csExtension != null || line.csTumorSizeExtEval != null ||
   line.csLymphNodes != null || line.csLymphNodesEval != null || line.csMetsAtDx != null || line.csMetsEval != null ||
   line.csSiteSpecificFactor1 != null || line.csSiteSpecificFactor2 != null || line.csSiteSpecificFactor3 != null ||
   line.csSiteSpecificFactor4 != null || line.csSiteSpecificFactor5 != null || line.csSiteSpecificFactor6 != null ||
   line.csSiteSpecificFactor7 != null || line.csSiteSpecificFactor8 != null || line.csSiteSpecificFactor10 != null ||
   line.csSiteSpecificFactor12 != null || line.csSiteSpecificFactor13 != null || line.csSiteSpecificFactor16 != null ||
   line.csSiteSpecificFactor17 != null || line.csSiteSpecificFactor18 != null || line.csSiteSpecificFactor19 != null ||
   line.csSiteSpecificFactor20 != null || line.csSiteSpecificFactor21 != null || line.csSiteSpecificFactor22 != null ||
   line.csSiteSpecificFactor23 != null || line.csSiteSpecificFactor24 != null || line.csSiteSpecificFactor25 != null ||
   line.csVersionInputOriginal != null || line.csVersionInputCurrent != null)
    return false

 if (Functions.matches(line.primarySite, /^C50\d$/)) {
    if((line.csSiteSpecificFactor9 != null && !['010','020','030','997','998','999'].contains(line.csSiteSpecificFactor9)) ||
      (line.csSiteSpecificFactor11 != null && !['010','020','030','997','998','999'].contains(line.csSiteSpecificFactor11)) ||
      (line.csSiteSpecificFactor14 != null && !['010','020','030','997','998','999'].contains(line.csSiteSpecificFactor14)) ||
      (line.csSiteSpecificFactor15 != null && !['010','020','030','997','998','999'].contains(line.csSiteSpecificFactor15)))
       return false
 }
 else {
    if(line.csSiteSpecificFactor9 != null || line.csSiteSpecificFactor11 != null||
      line.csSiteSpecificFactor14 != null || line.csSiteSpecificFactor15 != null)
       return false
 }

 return true]]></expression>
            <message>Conflict between Date of Diagnosis (pre-2004) and CS items</message>
            <description><![CDATA[If Year of Diagnosis[390] is blank this edit is skipped.

If Year of Diagnosis[390] < 2004 and not blank, the following fields must be blank:

CS Tumor Size[2800]
CS Extension[2810]
CS Tumor Size/Ext Eval[2820]
CS Lymph Nodes[2830]
CS Lymph Nodes Eval[2840]
CS Mets at DX[2850]
CS Mets Eval[2860]
CS Site-Specific Factor 1[2880]
CS Site-Specific Factor 2[2890]
CS Site-Specific Factor 3[2900]
CS Site-Specific Factor 4[2910]
CS Site-Specific Factor 5[2920]
CS Site-Specific Factor 6[2930]
CS Site-Specific Factor 7[2861]
CS Site-Specific Factor 8[2862]
CS Site-Specific Factor 10[2864]
CS Site-Specific Factor 12[2866]
CS Site-Specific Factor 13[2867]
CS Site-Specific Factor 16[2870]
CS Site-Specific Factor 17[2871]
CS Site-Specific Factor 18[2872]
CS Site-Specific Factor 19[2873]
CS Site-Specific Factor 20[2874]
CS Site-Specific Factor 21[2875]
CS Site-Specific Factor 22[2876]
CS Site-Specific Factor 23[2877]
CS Site-Specific Factor 24[2878]
CS Site-Specific Factor 25[2879]
CS Version Input Original[2937]
CS Version Input Current[2935]

If schema is Breast schema:
The following fields must be blank, 010, 020, 030, 997, 998, or 999:
CS Site-Specific Factor 9[2863]
CS Site-Specific Factor 11[2865]
CS Site-Specific Factor 14[2868]
CS Site-Specific Factor 15[2869]

If schema is not Breast:
The following fields must be blank:
CS Site-Specific Factor 9[2863]
CS Site-Specific Factor 11[2865]
CS Site-Specific Factor 14[2868]
CS Site-Specific Factor 15[2869]]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-30">Added SSF7-25 and CS Version Input Original/Current.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-05-26">Now allowing SSF 9,11,14,15 to have values prior to 2004 for Breast schema.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-03-29" ref="67128">Now edit is not skipped for missing schema, Breast schema is determined by primary site.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-20" ref="67961">Removed unnecessary dependencies.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF176" name="Primary Site, CS Extension (SEER IF176)" tag="N0851" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.overRideSiteEodDxDt == '1' ||
    line.dateOfDiagnosisYear < '2004' || line.dateOfDiagnosisYear > '2017' || line.dateOfDiagnosisYear == null ||
    line.histologicTypeIcdO3 == null || line.histologicTypeIcdO3 == '9140' ||
    Functions.between(line.histologicTypeIcdO3,'9590','9999') || line.behaviorCodeIcdO3 == '2')
   return true

if ((line.primarySite == 'C479' || line.primarySite == 'C499') &&
   line.csExtension != null && line.csExtension >= '100' && line.csExtension <= '320' &&
   (line.csMetsAtDx == '00' || line.csMetsAtDx == '99'))
   return false

if (Functions.matches(line.primarySite, /^C(069|26\d|39\d|4[01]9|579|639)$/)  &&
   line.csExtension != null && line.csExtension >= '100' && line.csExtension <= '300' &&
   (line.csMetsAtDx == '00' || line.csMetsAtDx == '99'))
   return false

if (line.csExtension != null && line.csExtension >= '100' && line.csExtension <= '400' &&
      (line.csMetsAtDx == '00' || line.csMetsAtDx == '99') &&
      ((line.primarySite == 'C189' && !['8210','8220','8261','8263'].contains(line.histologicTypeIcdO3)) ||
      line.primarySite == 'C559'))
   return false

return true]]></expression>
            <message>Site and CS Extension conflict (ICD-O-3)</message>
            <description><![CDATA[The edit is skipped if any of the following conditions are true:

    1) Over-ride Site/EOD/Dx Dt[2072] contains a '1' (review complete)
    2) Year of Date of Diagnosis is less than 2004 or greater than 2017 or is blank or invalid
    3) Histologic Type ICD-O-3 = 9140 (Kaposi Sarcoma)
    4) Histologic Type ICD-O-3 = 9590-9992 (lymphoma, leukemia, or other
    lymphoreticular neoplasm)
    5) Behavior Code ICD-O-3 = 2 (in situ)

If CS Extension[2810] = 100-300 (localized disease) and CS Mets at
DX[2850] = 00 or 99, the following Primary Site[400] codes require review:
    C069 Mouth, NOS
    C260-C269 Other and ill-defined digestive organs
    C390-C399 Other and ill-defined respiratory or intrathoracic sites
    C409, C419 Bone, NOS
    C579 Female genital system, NOS
    C639 Male genital organs, NOS

If CS Extension[2810] = 100-320 (localized disease) and CS Mets at
DX[2850] = 00 or 99, the following Primary Site[400] codes require review:
    C479 Peripheral nerves, NOS
    C499 Connective tissue, NOS

If CS Extension[2810] = 100-400 (localized disease) and CS Mets at
DX[2850] = 00 or 99, the following Primary Site[400] codes require review:
    C189 Colon, NOS and not histology 8210, 8220, 8261 and 8263
    C559 Uterus, NOS]]></description>
            <history>
                <event version="SE11-001-20" user="greend" date="2006-08-23">Edit modified to skip cases 9590-9989 instead of &gt; 9590.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-27">Hematopoietic end range code was changed from 9989 to 9992.  Length of CS Extension changed from 2 to 3 characters.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-22" ref="67918">Edit now skips all 2018+ cases.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-16" ref="69326">Removed several edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF177" name="Primary Site, Laterality, CS Extension (SEER IF177)" tag="N0864" java-path="lines.line" category="inter-field" depends="CS_Extension,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[Integer site = Functions.asInt(line.primarySite.substring(1))

if (line.overRideSiteLatEod == '1' || line.histologicTypeIcdO3 == null ||
   line.dateOfDiagnosisYear < '2004' || line.csExtension == null ||
   (line.histologicTypeIcdO3 == '9140' || Functions.between(line.histologicTypeIcdO3,'9590','9992')) ||
   ((line.dateOfDiagnosisYear == '2016' || line.dateOfDiagnosisYear == '2017') && line.csExtension == null) ||
   !((List)Context.Base_Sites_IF177).contains(site))
   return true

if (line.laterality == '9' ||
    (line.laterality == '4' && !((List)Context.Bypass_Sites_IF177).contains(site))) {
   if ([471,472,491,492].contains(site))
      return ! (line.csExtension >= '000' && line.csExtension <= '320')
   if (Functions.between(site, 500, 509))
      return ! (line.csExtension >= '000' && line.csExtension <= '100')
   if (Functions.between(site, 620, 629))
      return ! (line.csExtension >= '000' && line.csExtension <= '310')
   if (Functions.between(site, 690, 699))
      return ! (line.csExtension >= '000' && line.csExtension <= '400')
   if (line.laterality == '4' && line.dateOfDiagnosisYear > '2009' &&
       Functions.between(site, 340, 349) && line.csExtension >= '000' &&
       line.csExtension <= '300')
      return [23, 25, 26, 36, 38, 40, 41, 42, 43, 50, 51, 52, 53, 70, 75].contains(Functions.asInt(line.csMetsAtDx))

   return ! (line.csExtension >= '000' && line.csExtension <= '300')
}

return true]]></expression>
            <message>Lateral and CS Extension conflict (ICD-O-3)</message>
            <description><![CDATA[The edit is skipped if any of the following conditions are true:

     1)  Over-ride Site/Lat/EOD contains a '1' (review complete)
     2)  Year of Diagnosis[390] < 2004 or blank
     3)  Histologic Type ICD-O-3 = 9140, 9590-9992
     4)  If Year of Diagnosis[390] = 2016-2017 and CS Extension[2810] is blank

For the purpose of this edit the following sites are considered paired organs:

C079      Parotid gland
C080      Submandibular gland
C081      Sublingual gland
C090      Tonsillar fossa
C091      Tonsillar pillar
C098-C099 Tonsil, NOS
C301      Middle ear
C310      Maxillary sinus
C312      Frontal sinus
C341-C349 Lung
C384      Pleura
C400      Long bones of upper limb, scapula and associated joints
C401      Short bones of upper limb and associated joints
C402      Long bones of lower limb and associated joints
C403      Short bones of lower limb and associated joints
C441      Skin of eyelid
C442      Skin of external ear
C446      Skin of upper limb and shoulder
C447      Skin of lower limb and hip
C471      Peripheral nerves and autonomic nervous system of upper
          limb and shoulder
C472      Peripheral nerves and autonomic nervous system of lower limb and
          hip
C491      Connective, subcutaneous, and other soft tissues of upper limb
          and shoulder
C492      Connective, subcutaneous, and other soft tissues of  lower limb
          and hip
C500-C509 Breast
C569      Ovary
C570      Fallopian tube
C620-C629 Testis
C630      Epididymis
C631      Spermatic cord
C649      Kidney, NOS
C659      Renal pelvis
C669      Ureter
C690-C699 Eye
C740-C749 Adrenal gland
C754      Carotid body

If Laterality[410] = 9 (no information concerning laterality), CS Extension[2810] cannot specify in situ, localized or regional by direct extension only.

If Laterality[410] = 4 (bilateral involvement, lateral origin unknown: stated to be a single primary), CS Extension cannot specify in situ, localized or regional by direct extension only for all paired organs above except C090,C091, C098-C099, C569, C570, C649 and C692.

There is an additional exception for cases diagnosed 2010 or later:
If Primary Site = C340-C349 (lung), CS Extension may = 000-300 only if CS Mets at DX = {23, 25, 26, 36, 38, 40, 41, 42, 43, 50, 51, 52, 53, 70, 75}.

In situ or localized is coded in the CS Extension field as follows:
    000-100 for sites C500-C509 (breast)
    000-310 for sites C620-C629 (testis)
    000-320 for sites C471 (Peripheral nerves and autonomic nervous system of upper limb and shoulder)
                      C472 (Peripheral nerves and autonomic nervous system of lower limb and hip)
                      C491 (Connective, subcutaneous, and other soft tissues of upper limb and shoulder)
                      C492 (Connective, subcutaneous, and other soft tissues of lower limb and hip)
    000-400 for sites C690-C699 (eye)
    000-300 for all other paired organ sites listed above]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-29">The edit was modified to include C570 (fallopian tube) in the list of paired sites that are exceptions to &quot;if Laterality is &apos;4&apos; (bilateral involvement, lateral origin unknown: stated to be a single primary), CS Extension cannot specify in situ or localized&quot;. Reference to 9-filled year of diagnosis removed. Hematopoietic end range code was changed from 9989 to 9992. Length of CS Extension changed from 2 to 3 characters.</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-26" ref="66787">Added: &apos;For 2010+ cases, if Primary Site = C340-C349 (lung), CS Extension may = 000-300 only if CS Mets at DX = {23, 25, 26, 36, 38, 40, 41, 42, 43, 50, 51, 52, 53, 70, 75}.&apos;</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-01" ref="67242">Added skip condition for DX year = 2016 when CS Extension is blank.</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-07" ref="67560">Edit is now skipped when DX year = 2017 and CS Extension is blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF179" name="Date Initial RX SEER, Ca Dir RX 98-02 (SEER IF179)" tag="N0895" java-path="lines.line" category="inter-field" depends="DateTherapyEdit,Year_of_Diagnosis">
            <expression><![CDATA[if ((line.registryId == '0000001544' && line.dateOfDiagnosisYear < '2000') || line.dateOfDiagnosisYear < '1998' || line.dateOfDiagnosisYear > '2002')
    return true

if (['0000001562','0000001563','0000001565'].contains(line.registryId))
    return true

boolean isDateOfTherapyKnown = line.dateInitialRxSeerDay != null || line.dateInitialRxSeerMonth != null || line.dateInitialRxSeerYear != null

if (isDateOfTherapyKnown) {
    if (line.rxSummSurgRadSeq == '0' && Functions.matches(line.rxSummRadiation, /^[078]$/) && Functions.matches(line.rxSummChemo, /^(00|8[25678])$/)
         && Functions.matches(line.rxSummHormone, /^(00|8[25678])$/) && Functions.matches(line.rxSummBrm, /^(00|8[25678])$/) && Functions.matches(line.rxSummOther, /^[078]$/)
         && Functions.matches(line.rxSummTransplntEndocr, /^(00|8[25678])$/) && line.rxSummSurgPrimSite == '00' && (line.rxSummScopeReg9802 == '0'
         || (line.rxSummScopeReg9802 == '9' && Functions.matches(line.primarySite, /^C77\d$/))) && line.rxSummSurgOth9802 == '0')
        return false

    if ((Functions.matches(line.rxSummSurgRadSeq, /^[2-69]$/) || Functions.matches(line.rxSummRadiation, /^[1-6]$/) || Functions.matches(line.rxSummChemo, /^0[1-3]$/)
         || line.rxSummHormone == '01' || line.rxSummBrm == '01' || Functions.matches(line.rxSummTransplntEndocr, /^(1[012]|[234]0)$/) || Functions.matches(line.rxSummOther, /^[1236]$/)
         || Functions.matches(line.rxSummSurgPrimSite, /^([1-8]\d|90)$/) || Functions.matches(line.rxSummScopeReg9802, /^[1-8]$/) || Functions.matches(line.rxSummSurgOth9802, /^[1-8]$/)))
        return true
    else
        return false
}

return true]]></expression>
            <message>Date of Init RX--SEER, Cancer-Directed Therapy 98-02 conflict</message>
            <description><![CDATA[This edit is skipped if any of the following is true:
   1)  Year of Diagnosis [390] is prior to 1998 or after 2002.
   2)  Any case from New Jersey (0000001544) diagnosed prior to 2000
   3)  Any case from New York (0000001562), Massachusetts (0000001563), or Illinois (0000001565).
   4)  Inter-Field edit flag "Date of Initial RX--SEER is not valid." has been triggered

The following table specifies the values for each treatment field for known to have not been performed (NO), and for known to have been performed(YES).

If all treatment fields specify NO, then Date Initial RX SEER must specify no therapy performed (Date Initial RX SEER is blank).

If Date of Therapy Initiated is a known date (not blank) then ALL treatment fields cannot specify NO.

==========================================================================
RX Summ--Surg Prim Site

  NO:   00
  YES:  10-90
==========================================================================
RX Summ--Scope 98-02

   NO:  9 (for sites C770-C779)
        0 for all other sites
   YES: 1-8
==========================================================================
RX Summ--Surg Oth 98-02

   NO:  0
   YES: 1-8
==========================================================================
RX Summ--Radiation

  NO:      0,7,8
  YES:     1-6
==========================================================================
RX Summ--Surg/Rad Seq

  NO:        0
  YES:       2-6,9
==========================================================================
RX Summ--Chemo

  NO:      0,82,85,86,87,88
  YES:     01-03
==========================================================================
RX Summ--Hormone

  NO:      0,82,85,86,87,88
  YES:     01
==========================================================================
RX Summ--BRM

  NO:      0,82,85,86,87,88
  YES:     01
==========================================================================
RX Summ--Other

  NO:      0,7,8
  YES:     1,2,3,6
==========================================================================
RX Summ--Transplant/Endocr

  NO:      0,82,85,86,87,88
  YES:     10-12,20,30,40]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2008-01-22">Edit now uses the entire Date of Therapy [1260] (day, month, and year).</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-22">Date of initial Rx flag added.  0 and 9 filled dates no longer checked.  Instead checks for blanks and checks the flag.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-06">Corrected logic to check that Date of initial Rx flag is NOT set to 11.</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-20" ref="66776">Updated edit name.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-07" ref="68179">Edit now skipped for New York cases when DX Year &lt; 2003.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-04" user="beverung" date="2020-06-04" ref="68348">Use rxSummSurgPrimSite.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-09" ref="68708">Add skip condition for Illinois. Remove date restriction on NY skip condition.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-01-20" ref="69077">Update logic to not use date flags.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-03-02" ref="69078">Update logic to be consistent with IF34 and IF180 by not considering invalid/blank values to be NO.</event>
                <event version="SE23-023-04" user="kirbyk" date="2023-06-08" ref="69289">Fixed behavior when values are neither &quot;YES&quot; or &quot;NO&quot;.</event>
                <event version="SE23-023-08" user="shearerw" date="2023-10-09" ref="69316">Add skip condition for Massachusetts.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-12" ref="69326">Removed several dependencies.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF180" name="Date Initial RX SEER, Ca Dir RX 2003-2017 (SEER IF180)" tag="N0896" java-path="lines.line" category="inter-field" depends="DateTherapyEdit,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[Integer site = Functions.asInt(line.primarySite.substring(1))
Integer hist = Functions.asInt(line.histologicTypeIcdO3)

if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2003' || line.dateOfDiagnosisYear > '2017' || line.registryId == '0000001565' || line.registryId == '0000001566')
    return true

boolean isDateOfTherapyKnown = line.dateInitialRxSeerDay != null || line.dateInitialRxSeerMonth != null || line.dateInitialRxSeerYear != null

if (isDateOfTherapyKnown) {
    if (line.rxSummSurgRadSeq == '0' && Functions.matches(line.rxSummRadiation, /^[078]$/)
         && Functions.matches(line.rxSummChemo, /^(00|8[25678])$/) && Functions.matches(line.rxSummHormone, /^(00|8[25678])$/)
         && Functions.matches(line.rxSummBrm, /^(00|8[25678])$/) && Functions.matches(line.rxSummOther, /^[078]$/)
         && Functions.matches(line.rxSummTransplntEndocr, /^(00|8[25678])$/)
         && (line.rxSummSurgPrimSite == '00' || line.rxSummSurgPrimSite == '98')
         && ((line.rxSummScopeRegLnSur == '0' &&
             !(((List)Context.IF180Hist1Bypass).contains(hist) || ((List)Context.IF180CertainSites).contains(site) || (Functions.between(site, 770, 779) && ((List)Context.IF180Hist2).contains(hist))))
         || (line.rxSummScopeRegLnSur == '9'
         && (((List)Context.IF180Hist1Bypass).contains(hist) || ((List)Context.IF180CertainSites).contains(site) || (Functions.between(site, 770, 779) && ((List)Context.IF180Hist2).contains(hist))))
         || (line.rxSummScopeRegLnSur == '2' && line.dateOfDiagnosisYear >= '2012' && Functions.matches(line.regionalNodesExamined, /(^00|99$)/)))
         && line.rxSummSurgOthRegDis == '0')
        return false

    if ((Functions.matches(line.rxSummSurgRadSeq, /^[2-69]$/) || Functions.matches(line.rxSummRadiation, /^[1-6]$/) || Functions.matches(line.rxSummChemo, /^0[1-3]$/)
         || line.rxSummHormone == '01' || line.rxSummBrm == '01' || Functions.matches(line.rxSummTransplntEndocr, /^(1[012]|[234]0)$/)
         || Functions.matches(line.rxSummOther, /^[1236]$/) || Functions.matches(line.rxSummSurgPrimSite, /^([1-8]\d|90)$/)
         || (line.dateOfDiagnosisYear < '2012' && Functions.matches(line.rxSummScopeRegLnSur, /^[1-7]$/))
         || (line.dateOfDiagnosisYear >= '2012' && Functions.matches(line.regionalNodesExamined, /(^0[1-9]|[1-8]\d|9[0-8]$)/) && line.rxSummScopeRegLnSur == '2')
         || (line.dateOfDiagnosisYear >= '2012' && Functions.matches(line.rxSummScopeRegLnSur, /(^[13-7]$)/))
         || Functions.matches(line.rxSummSurgOthRegDis, /^[1-5]$/)))
        return true
    else
        return false

}

return true]]></expression>
            <message>Date of Init RX--SEER, Cancer-Directed Therapy 2003+ conflict</message>
            <description><![CDATA[This edit is skipped if one of the following is true:
   1.  Year of diagnosis [390] is blank.
   2.  Year of diagnosis [390] is less than 2003 or greater than 2017.
   3.  Inter-Field edit flag "Date of Initial RX--SEER is not valid." has been triggered.
   4.  Registry ID is 0000001565 (Illinois).
   5.  Registry ID is 0000001566 (Texas).

The following table specifies the values for each treatment field for known to have not been performed (NO), and for known to have been performed(YES).

If all treatment fields specify NO, then Date Initial RX SEER must specify no therapy performed (Date Initial RX SEER is blank).

If Date of Therapy Initiated is a known date (not blank) then ALL treatment fields cannot specify NO.

==========================================================================
RX Summ--Surg Prim Site

  NO:   00,98
  YES:  10-90
==========================================================================
RX Summ--Scope Reg LN Sur

  NO:   9 (for sites C770-C779 and Histologic Type ICD-O-3 of 9590-9729)
    9 (for Histologic Type ICD-O-3 of 9750, 9760-9764, 9800-9820, 9826, 9831-9920, 9931-9964)
    9 (for sites C420, C421, C423, C424, C700-C729, C760-C768, C809)
    0 for all other sites/histology combinations
    2 (if diagnosed 2012 or later and Regional Nodes Examined = 00 or 99)
  YES:  For cases diagnosed 2003-2011
      1-7
    For cases diagnosed 2012 and later
      1, 2 (only if Regional Nodes Examined = 01-98), 3-7
==========================================================================
RX Summ--Surg Oth Reg/Dis Sites

   NO:  0
   YES: 1-5
==========================================================================
RX Summ--Radiation

  NO:      0,7,8
  YES:     1-6
==========================================================================
RX Summ--Surg/Rad Seq

  NO:        0
  YES:       2-6,9
==========================================================================
RX Summ--Chemo

  NO:      0,82,85,86,87,88
  YES:     01-03
==========================================================================
RX Summ--Hormone

  NO:      0,82,85,86,87,88
  YES:     01
==========================================================================
RX Summ--BRM

  NO:      0,82,85,86,87,88
  YES:     01
==========================================================================
RX Summ--Other

  NO:      0,7,8
  YES:     1,2,3,6
==========================================================================
RX Summ--Transplant/Endocr

  NO:      0,82,85,86,87,88
  YES:     10-12,20,30,40]]></description>
            <history>
                <event version="SE11-001-21" user="greend" date="2007-02-01">The definition of NO for RX Summ--Surg Prim Site was changed from 00 to 00,98.</event>
                <event version="SE11-001-22" user="greend" date="2008-01-07">This edit is skipped if Year of diagnosis [390] is equal to 9999.</event>
                <event version="SE11-001-22" user="greend" date="2008-01-22">Edit now uses the entire Date of Therapy [1260] (day, month, and year).</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-22">Date of initial Rx flag added.  0 and 9 filled dates no longer checked.  Instead checks for blanks and checks the flag.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-05">Fixed to make sure Date of initial Rx flag is NOT be set to 11 when therapy is performed.</event>
                <event version="SE12-008-01" user="murphyr" date="2012-08-10" ref="66714">Changed &apos;yes/no&apos; surgery definition for Scope field for 2012+</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-20" ref="66776">Updated edit name.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-03" user="smithm" date="2018-07-25" ref="67967">Added case to ignore all cases 2018+.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-12" ref="68497">Fixed logic that checks RX Summ--Scope Reg LN Sur.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-09" ref="68708">Add skip condition for IL.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68709">Add skip condition for TX.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-03-02" ref="69078">Change name and update logic to stop using date flag. Update IF180Hist1Bypass and IF180Hist2 lists.</event>
                <event version="SE23-023-04" user="kirbyk" date="2023-06-08" ref="69289">Fixed behavior when values are neither &quot;YES&quot; or &quot;NO&quot;.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-12" ref="69326">Removed several dependencies.</event>
            </history>
        </rule>
        <rule id="IF181" name="Primary Payer at DX, Date of DX (SEER IF181)" tag="N1031" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
   return true

if (line.dateOfDiagnosisYear >= '2007')
   return line.primaryPayerAtDx != null

return true]]></expression>
            <message>Primary Payer at DX and Diagnosis Year conflict</message>
            <description><![CDATA[This edit is skipped if Year of Diagnosis[390] is blank.

If Year of Diagnosis[390] >= 2007, then Primary Payer at DX [630] cannot be blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2009-12-22">9 filled year of diagnosis no longer checked.  Edit now skipped if year of diagnosis is blank.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF188" name="CS Lymph Nodes, Nodes Pos, SSF 3, Breast Schema (CS)" tag="N0899" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_3,Histologic_Type_ICD-O-3,Primary_Site,Regional_Nodes_Positive">
            <expression><![CDATA[if (line.csLymphNodes == null || line.csSiteSpecificFactor3 == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line._csSchemaId != 'breast' ||
    line.regionalNodesPositive == null)
    return true

if (line.csLymphNodes == '050')
    return line.regionalNodesPositive == '00' && line.csSiteSpecificFactor3 == '000'

Integer ssf3Int = Functions.asInt(line.csSiteSpecificFactor3)
if (ssf3Int >= 1 && ssf3Int <= 97 && Functions.matches(line.csLymphNodes, /^000|7[1347]0|735|745|764$/))
    return false

if (Functions.matches(line.csSiteSpecificFactor3, /^0[0-8][0-9]$/) && Functions.matches(line.regionalNodesPositive, /^[0-8][0-9]$/))
    return Functions.asInt(line.csSiteSpecificFactor3) <= Functions.asInt(line.regionalNodesPositive)

return true]]></expression>
            <message>Breast Schema and CS Lymph Nodes, Nodes Pos and SSF3 conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1. CS Lymph Nodes, CS Site-Specific Factor 3, or Regional Nodes Positive is empty
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
3. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS schema is Breast:

If CS Lymph Nodes = 050 (none, no regional lymph nodes but with ITCs detected on routine H and E stains), then Regional Nodes Positive must = 00 (all nodes examined negative) and CS Site-Specific Factor 3 must = 000 (all ipsilateral nodes examined negative).

If CS Lymph Nodes = 710, 730, 735, 740, 745, 764, or 770 (internal mammary without axillary nodes), then CS Site-Specific Factor 3 must not be 001-097 (axillary nodes positive).

If CS Site-Specific Factor 3 = 001-097 (positive nodes),
    then
    CS Lymph Nodes must not = 000, 710, 730, 735, 740, 745, 764, or 770.


If CS Site-Specific Factor 3 = 000-089 and Regional Nodes Positive = 00-89
    then
    CS Site-Specific Factor 3 must be less than or = Regional Nodes Positive.]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2007-12-15">This edit is skipped if Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline).</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Lymph nodes numbers changed to 3 digits by added zero, Hematopoietic range changed.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-02-02">Extension codes changed to 3 digits.  Using schema name now instead of primary site.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-21">Added codes 735,745,764 and removed code 780.  Added SSF3 and reg nodes condition; Edit now skipped if reg nodes pos is blank.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-26" ref="67055">Added &apos;if CS SSF3 = 001-097 then  CS Lymph Nodes must not = 000, 710, 730, 735, 740, 745, 764, or 770&apos; condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-01" user="beverung" date="2020-03-03" ref="68282">Removed redundant logic.</event>
            </history>
        </rule>
        <rule id="IF189" name="CS SSF 3, Breast Schema (CS)" tag="N0889" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_3,Histologic_Type_ICD-O-3,Primary_Site,Regional_Nodes_Examined">
            <expression><![CDATA[if (line.csSiteSpecificFactor3 == null || line.csSiteSpecificFactor3 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line._csSchemaId != 'breast')
    return true

if (line.regionalNodesExamined == '00')
    return line.csSiteSpecificFactor3 == '098'

return true]]></expression>
            <message>Breast Schema and CS Site-Specific Factor 3 conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1.  CS Site-Specific Factor 3 is empty or '988'
  2.  Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline).
  3.  Schema is not Breast.

If schema = Breast:
    If Regional Nodes Examined = 00 (no nodes examined), then
    CS Site-Specific Factor 3 must= 098 (axillary LNs = none examined).]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2007-12-15">This edit is skipped if Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline).</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Hematopoietic range changed.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-02-02">Using schema name now instead of hist and site.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-21">Edit now skipped if SSF3 = 988.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF190" name="CS SSF 6, Breast Schema (CS)" tag="N0890" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_6,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor6 == null || line.csSiteSpecificFactor6 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line._csSchemaId != 'breast')
    return true

if (line.behaviorCodeIcdO3 == '2')
    return line.csSiteSpecificFactor6 == '010' || line.csSiteSpecificFactor6 == '987'

if (line.csSiteSpecificFactor6 == '010' && line.histologicTypeIcdO3 != '8543')
    return line.behaviorCodeIcdO3 == '2'

return true]]></expression>
            <message>Breast Schema and CS Site-Specific Factor 6 conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1.  CS Site-Specific Factor 6 is empty or 988
2.  Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline).
3.  Schema is not Breast.

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS schema is Breast
    If Behavior Code ICD-O-3 = 2 (in situ), then CS Site-Specific
    Factor 6 (size of tumor-invasive component) must = 010 (entire
    tumor reported as in situ (no invasive component reported))
    or 987 (unknown if invasive and in situ components
    present, unknown if tumor size represents mixed tumor or a "pure" tumor.
    Clinical tumor size coded.)

    If CS Site-Specific Factor 6 = 010 and Histologic Type ICD-O-3 is not = 8543 (Paget disease of breast) cases, then Behavior Code ICD-O-3 must = 2.]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2007-12-15">This edit is skipped if Behavior Code ICD-O-3 [523] = 0 (benign) or 1 (borderline).</event>
                <event version="SE12-002-01" user="murphyr" date="2010-02-03">Changed code 888 to 987.  Now using schema name instead of primary site to determine whether to skip or not.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-21">Edit now skipped if SSF6 = 988.</event>
                <event version="SE14-012-02" user="depryf" date="2014-07-21" ref="67083">Added exclusion for histology 8543 to condition &apos;if ssf6 is 10 then behavior must be 2&apos;.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF193" name="CS Eval Items, Type of Reporting Source (CS)" tag="N0908" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Mets_Eval,CS_Reg_Node_Eval,CS_Tumor_Size_Ext_Eval,Primary_Site,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.typeOfReportingSource == null || line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear > '2017')
            return true

if (line._csSchemaId == null || ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','cns_other','intracranial_gland'].contains(line._csSchemaId)))
    return true

if (line.csTumorSizeExtEval == '8' || line.csLymphNodesEval == '8' || line.csMetsEval == '8')
    return line.typeOfReportingSource == '6'

return true]]></expression>
            <message>Conflict between CS Eval Items and Type of Reporting Source</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1. Type of Reporting Source is blank.
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland.
3. Year of diagnosis > 2017, blank (unknown), or invalid

If CS Tumor Size/Ext Eval, CS Reg Nodes Eval, or CS Mets Eval = 8 (evidence from autopsy only (tumor was unsuspected or undiagnosed prior to autopsy)), then Type of Reporting Source must = 6 (autopsy only).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-05">Edit now using schema name.</event>
                <event version="SE12-002-04" user="murphyr" date="2010-07-29">Edit now passes if CS schema is not found.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-14" ref="67996">Limit to cases diagnosed before 2018</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF194" name="CS Eval Items, Vital Status (CS)" tag="N0906" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.vitalStatus == null || line._csSchemaId == null ||
    ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','cns_other','intracranial_gland'].contains(line._csSchemaId)))
    return true

if (line.csTumorSizeExtEval == '8' || line.csLymphNodesEval == '8' || line.csMetsEval == '8')
    return (line.vitalStatus == '0' || line.vitalStatus == '4')

if (line._csSchemaId == 'prostate') {
   if (line.csTumorSizeExtEval == '3')
      return (line.vitalStatus == '0' || line.vitalStatus == '4')
}
else if (line.csTumorSizeExtEval == '2')
   return (line.vitalStatus == '0' || line.vitalStatus == '4')

return true]]></expression>
            <message>Conflict between CS Eval Items and Vital Status</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1. Vital Status is empty.
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland.

Vital Status must = 0 or 4 (dead) for the following conditions:

1.  For all schemas: if CS Tumor Size/Ext Eval, CS Reg Nodes Eval,
    or CS Mets Eval = 8 (evidence from autopsy only (tumor was
    unsuspected or undiagnosed prior to autopsy))

2. For cases using the Prostate schema
      If CS Tumor Size/Ext Eval = 3 [No surgical resection done, but
      evidence derived from autopsy (tumor was suspected or diagnosed
      prior to autopsy)]
   For all other schemas:
      If CS Tumor Size/Ext Eval = 2 [No surgical resection done, but
      evidence derived from autopsy (tumor was suspected or diagnosed
      prior to autopsy)]]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2008-07-10">Added logic for Prostate and All Other Schemas.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-05">Edit now using schema name.</event>
                <event version="SE12-002-04" user="murphyr" date="2010-07-29">Edit now passes if CS schema is not found.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-017-01" user="schadega" date="2018-03-15" ref="67720">Removed 4 as a valid death code.</event>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-21" ref="67924">Re-added 4 as a valid code for &apos;dead&apos;.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF195" name="CS Extension, Lymphoma Schema (CS)" tag="N0923" java-path="lines.line" category="inter-field" depends="CS_Extension,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,Type_of_Reporting_Source">
            <expression><![CDATA[if (line.csExtension == null || line.typeOfReportingSource == '7')
    return true

if (line._csSchemaId == 'lymphoma') {
   if (line.csExtension == '100' && ! (Functions.matches(line.primarySite, /^C(024|09\d|111|1[47]2|181|379|77[0-5]|779)$/)))
      return false

   if (line.csExtension == '110' && Functions.matches(line.primarySite, /^C(379|422|77[0-5]|779)$/))
      return false

   if (line.csExtension == '120' && line.primarySite != 'C422')
      return false

   if (line.primarySite == 'C778')
      return Functions.matches(line.csExtension, /^[2-9]\d\d$/)

   if (line.primarySite == 'C422')
      return [120,220,230,320,330,800,999].contains(Functions.asInt(line.csExtension))
}

return true]]></expression>
            <message>Conflict between CS Extension and Lymphoma Schema</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension is coded properly for lymphomas.

This edit is skipped if any of the following conditions is true:
  1.  CS Extension [2810] is blank.
  2.  Case is death certificate only (Type of Reporting Source [500] = 7).
  3.  Schema is not Lymphoma.

If CS Extension [2810] = 100, then Primary Site [400] must be one of the following:
  C770-C775, C779 (single lymph node region), C024 (lingual tonsil),
  C090-C099 (tonsil), C111 (pharyngeal tonsil), C142 (Waldeyer's ring),
  C172 (illeum), C181 (appendix) or C379 (thymus).

If CS Extension [2810] = 110, then Primary Site [400] must NOT be one of the following:
  C770-C775, C779, C379, or C422.

If CS Extension [2810] = 120, then Primary Site [400] must be C422 (Spleen).

Additionally,
If Primary Site [400] = C778 (Multiple LNs), then CS Extension [2810] must by > or = 200.
If Primary Site [400] = C422 (Spleen), then CS Extension [2810] must be 120, 220, 230, 320, 330, 800, or 999.]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2008-10-07">Extension code 11 is now considered valid for C172.</event>
                <event version="SE11-001-23" user="greend" date="2009-01-26">CS Extension code 11 is now considered valid for C024, C090-C099, C111, C142, and C181.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-02-02">Extension codes chaned to 3 digits.  Schema is now skipped if not a Lymphoma case.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="IF196" name="CS TS/Ext Eval, Surgery, Prostate Schema (CS)" tag="N0898" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Tumor_Size_Ext_Eval,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Surg_Prim_Site">
            <expression><![CDATA[if (line.csTumorSizeExtEval == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.rxSummSurgPrimSite == null)
    return true

if (line._csSchemaId == 'prostate') {
    if (line.rxSummSurgPrimSite == '22')
        return line.csTumorSizeExtEval == '1' || line.csTumorSizeExtEval == '2'

    if (Functions.between(line.rxSummSurgPrimSite,'19', '26'))
        return line.csTumorSizeExtEval == '0' || line.csTumorSizeExtEval == '1' || line.csTumorSizeExtEval == '2'

    if (Functions.between(line.csTumorSizeExtEval,'4', '6'))
        return Functions.between(line.rxSummSurgPrimSite,'30', '80')
}

return true]]></expression>
            <message>Conflict between CS TS/EXT Eval, Surgery, and Prostate Schema</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1.  CS Tumor Size/Ext Eval is blank
  2.  Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
  3.  RX Summ--Surg Prim Site is blank.

For cases using the CS Prostate Schema (Primary Site [400] = C619), if RX Summ--Surg Prim Site = 22
(TURP, cancer is incidental finding during surgery for benign disease), then the CS Tumor Size/Ext Eval
should be coded as 1 (No prostatectomy done.  Evalutation based on endoscopic examination,
diagnostic biopsy, including fine needle aspiration biopsy, or other invasive techniques including surgical
observation without biopsy) or 2 (No prostatectomy done, but positive biopsy of extraprostatic
tissue allows assignment to CS Extension Codes 410-700); otherwise if only a TURP is performed
(RX Summ--Surg Prim Site = 19-26), then the CS Tumor Size/Ext Eval should be coded as 0
[No prostatectomy done.  Evalutation based on physical examination including digital rectal examination (DRE),
imaging examination, or other non-invasive clinical evidence.  No autopsy evidence used], 1 or 2.

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).
The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator)
to the dll and the CS schema name is returned.

The logic is:

    If the schema is Prostate schema:

    If RX Summ--Surg Prim Site = 22, then
        CS Tumor Size/Ext Eval must = 1 or 2.

    ELSE If RX Summ--Surg Prim Site = 19-26, then
        CS Tumor Size/Ext Eval must = 0, 1, or 2.

    ELSE If Tumor Size/Ext Eval = 4, 5, or 6 (prostatectomy performed) then
        RX Summ--Surg Prim Site must = 30-80]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2008-07-10">Changed the range of surgery codes for &quot;only TURP is performed&quot; from 19-30 to 19-26.  Also, removed logic stating that if surgery code is 18, then CS Tumor Size Eval must be 0 or 1.</event>
                <event version="SE11-001-23" user="greend" date="2009-01-06">Added &quot;2&quot; to CS Tumor Size/Ext Eval codes allowed if RX Summ-Surg Prim Site = 19-26.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-02-03">Added skip condition &quot;RX Summ--Surg Prim Site is blank&quot;.</event>
                <event version="SE12-002-04" user="murphyr" date="2010-07-21">Added if RX Summ-Surg Prim Site is 22 than CS Tumor Size Eval muat be 0 or 1.  Edit now uses schema name instead of just site.</event>
                <event version="SE12-005-08" user="murphyr" date="2011-12-15" ref="66603">Changed documentation. Added logic for eval values 4, 5 and 6</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF197" name="CS Ext, Histol ICDO3, Breast Schema (CS)" tag="N0944" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csExtension == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'breast' && line.histologicTypeIcdO3 == '8530')
   return Functions.matches(line.csExtension, /^7[135]0$/) || Functions.matches(line.csExtension, /^7[12]5$/)

return true]]></expression>
            <message>CS Extension, Histologic Type ICD-O-3, and Breast Schema conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1. CS Extension [2810] is empty.
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

This edit first determines the correct CS schema by doing a function call
to the CS Dynamic Link Library (dll). The function call passes Primary
Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema
discriminator) to the dll and the CS schema name is returned.

If Breast Schema:
    If Histologic Type ICD-O-3 [522] is coded as inflammatory
    carcinoma (8530), CS Extension [2810] must be coded as 710, 715, 725,
    730 or 750.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit modified to make call to CS dll to determine correct schema. Edit is skipped if Behavior Code ICD-O-3 is 0 or 1. Edit modified to check CS Extension codes (per CSv2) of 710, 715, 725, 730, 750 for inflamatory carcinoma instead of CSv1.04 codes of 71, 72, and 73.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF199" name="CS Extension, Surgery, Prostate Schema (CS)" tag="N0946" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Version_Input_Original,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Surg_Prim_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csExtension == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.rxSummSurgPrimSite == null
     || line.dateOfDiagnosisYear == null)
   return true

if (line._csSchemaId != 'prostate')
     return true

if (line.csExtension == '130' || line.csExtension == '140')
     return line.rxSummSurgPrimSite != '00' && line.rxSummSurgPrimSite != '99'

if ((line.dateOfDiagnosisYear >= '2010' || line.csVersionInputOriginal >= '020100') && line.csExtension == '100')
     return line.rxSummSurgPrimSite != '00' && line.rxSummSurgPrimSite != '99'

return true]]></expression>
            <message>CS Extension, RX Summ--Surg Prim Site, and Prostate Schema conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:

1. CS Extension is blank
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
3. Schema is not C619 (prostate)
4. Date of Diagnosis is blank
5. RX Summ--Surg Prim Site is blank

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS Extension is coded 130 or 140 (TURP was done), then
RX Summ--Surg Prim Site must not = 00 (none) or 99 (unknown).

If year of Diagnosis is 2010 or higher OR CS Version Input Original is 020100 or higher:
If CS Extension is coded 100(TURP was done), then
RX Summ--Surg Prim Site must not = 00 (none) or 99 (unknown).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit was modified to check 3-digit CS Extension codes (per CSv2) instead of 2-digit CSv1 codes. CS Extension code 100 was added as an additional code (along with 130 and 140)that requires at least a TURP be performed. Hematopoietic end range code was changed from 9989 to 9992.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-10">Edit now uses CS Schema name.</event>
                <event version="SE12-002-04" user="murphyr" date="2010-07-20">Updated to use year of diagnosis and cs version input original.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF200" name="CS Extension, TS/Ext Eval, Prostate Schema (CS)" tag="N0950" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Tumor_Size_Ext_Eval,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csExtension == null || line.csTumorSizeExtEval == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
   return true

if (line._csSchemaId != 'prostate')
     return true

if ((line.csExtension == '130' || line.csExtension == '140') && line.csTumorSizeExtEval == '0')
     return false

if (line.csTumorSizeExtEval == '2' && !Functions.between(line.csExtension,'410','700'))
     return false

if (line.csTumorSizeExtEval == '8' && line.csExtension != '999')
     return false

return true]]></expression>
            <message>CS Extension, CS Tumor Size/Ext Eval, and Prostate Schema conflict</message>
            <description><![CDATA[This edit verifies that for cases coded using the CS Prostate schema,
CS Extension and CS Tumor Size/Ext Eval are consistent.

This edit is skipped if any of the following conditions are true:
  1.  CS Extension is blank
  2.  CS Tumor Size/Ext Eval is blank
  3.  Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

For cases using the CS Prostate schema:
  1.  If CS Extension is coded 130 [Incidental histologic finding in 5% or
      less of tissue resected (clinically inapparent);  Stated as cT1a],
      140 [Incidental histologic finding more than 5% of tissue resected
      (clinically inapparent); Stated as cT1b]

      then:

      CS Tumor Size/Ext Eval must NOT = 0 (No surgical resection or biopsy
      done.  Evaluation based on physical examination, imaging examination,
      or other non-invasize clinical evidence.  No autopsy evidence used).

  2.  If CS Tumor Size/Ext Eval = 2 (No surgical resection done, but positive
      biopsy of extraprostatic tissue allows assignment to CS Extension Codes
      410-700 (see note 2))

      then:

      CS Extension must = 410-700.

  3.  If CS Tumor Size/Ext Eval = 8 (Evidence from autopsy only)

      then:

      CS Extension must = 999 (Extension unknown).]]></description>
            <history>
                <event version="SE11-001-23" user="greend" date="2009-01-06">If CS Tumor Size/Ext Eval = 2, CS Extension must = 41-70.</event>
                <event version="SE11-001-23" user="greend" date="2009-01-26">Removed CS Extension code of 15 from Prostate logic (was extension = 13 or 14 or 15).</event>
                <event version="SE12-002-01" user="murphyr" date="2010-02-03">Extension codes changed to 3 digits.  Now using schema name insread of site and hist.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-05-26">Added a 3rd rule for CS Tumor Size/Ext Eval = 8.</event>
                <event version="SE12-008-05" user="murphyr" date="2012-11-28" ref="66771">Fixed issue where cases with CS Extension as 130 or 140 and CS Tumor Size/Ext Eval as 2 would pass instead of fail.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF201" name="CS Lymph Nodes Eval, Nodes Ex (CS)" tag="N1950" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Reg_Node_Eval,Histologic_Type_ICD-O-3,Primary_Site,Regional_Nodes_Examined">
            <expression><![CDATA[if (line.csLymphNodesEval == null || line.regionalNodesExamined == null || line._csSchemaId == null ||
    ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','cns_other','intracranial_gland'].contains(line._csSchemaId)))
    return true

if(['appendix','carcinoid_appendix','colon','gist_appendix','gist_colon', 'gist_rectum','lymphoma_ocular_adnexa','melanoma_skin','merkel_cell_skin',
     'merkel_cell_penis','merkel_cell_vulva','merkel_cell_scrotum','net_colon','net_rectum','rectum','retinoblastoma'].contains(line._csSchemaId))
     return true

if ((line.csLymphNodesEval == '3' || line.csLymphNodesEval == '5' || line.csLymphNodesEval == '6') && line.regionalNodesExamined == '00')
     return false

return true]]></expression>
            <message>CS Reg Nodes Eval, RX Summ--Scope Reg LN Sur, and Regional Nodes Examined conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1. CS Lymph Nodes Eval is blank
2. Regional Nodes Examined is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and schema is not Brain, CNSOther, or IntracranialGland.
4. CS schema is invalid
5. CS schema is Appendix, CarcinoidAppendix, Colon, GISTAppendix, GISTColon, GISTRectum, LymphomaOcularAdnexa, MelanomaSkin, MerkelCellSkin, MerkelCellPenis, MerkelCellVulva, MerkelCellScrotum, NetColon, NETRectum,Rectum, Retinoblastoma

If CS Lymph Nodes Eval = 3, 5, or 6, then Regional Nodes Examined must not = 00 (No nodes were examined).

Note:
CS Lymph Nodes Eval code 3 = Regional lymph nodes removed for examination (removal of at least 1 lymph node) WITHOUT pre-surgical systemic treatment or radiation OR lymph nodes removed for examination, unknown if pre-surgical systemic treatment or radiation performed.

CS Lymph Nodes Eval code 5 = Regional lymph nodes removed for examination WITH pre-surgical systemic treatment or radiation, BUT lymph node evaluation based on clinical evidence.

CS Lymph Nodes Eval code 6 = Regional lymph nodes removed for examination WITH pre-surgical systemic treatment or radiation, and lymph node evaluation based on pathologic evidence.]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2008-07-30">This edit is skipped if Histologic Type ICD-O-3 is 9140,9590-9699, 9702-9729,9731-9989.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-24">Edit now using CS Schema name</event>
                <event version="SE12-002-04" user="murphyr" date="2010-07-29">Edit now passes if CS schema is not found.</event>
                <event version="SE12-005-02" user="murphyr" date="2011-09-13" ref="66514">Fixed misspelling of schema LymphomaOcularAdnexa</event>
                <event version="SE14-012-02" user="depryf" date="2014-07-23" ref="67088">Removed references to RX Summ Scope Reg Ln Sur</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF202" name="CS SSF 1, SSF 2, Prostate Schema (CS)" tag="N0948" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_1,CS_Site-Specific_Factor_2,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor1 == null || line.csSiteSpecificFactor2 == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
   return true

if (line._csSchemaId == 'prostate' &&
    (line.csSiteSpecificFactor1 == '998' || line.csSiteSpecificFactor2 == '998'))
   return (line.csSiteSpecificFactor1 == '998' && line.csSiteSpecificFactor2 == '998')

return true]]></expression>
            <message>CS Site-Specific Factor 1, CS Site-Specific Factor 2, and Prostate Schema conflict</message>
            <description><![CDATA[This edit verifies that for cases coded using the CS Prostate schema,
CS Site-Specific Factor 1 (PSA lab value) and CS Site-Specific Factor 2
(PSA) are consistent; that is, if one indicates PSA test was not done,
the other must indicate the same.

This edit is skipped if any of the following conditions are true:
   1. CS Site-Specific Factor 1 is blank
   2. CS Site-Specific Factor 2 is blank
   3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

For cases using the CS Prostate schema:

    If CS Site-Specific Factor 1 = 998 [PSA test not done (test was
    not ordered and was not performed)], then CS Site-Specific Factor 2
    must = 998 [PSA test not done (test was not ordered and was not
    performed)].

    If CS Site-Specific Factor 2 = 998, then CS Site-Specific Factor 1
    must = 998.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Hematopoietic range changed.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-10">Edit now uses CS Schema name and SSF constants changed to 988 from 000.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF203" name="CS SSF 1-9, Head and Neck Schemas (CS)" tag="N0951" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csLymphNodes == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
   return true

if (((List)Context.Head_Neck_Schemas).contains(line._csSchemaId)){
   if (line.csLymphNodes == '000')
      return line.csSiteSpecificFactor2 == null || line.csSiteSpecificFactor2 == '987' || line.csSiteSpecificFactor2 == '988'

   if (line.csLymphNodes != '000' && line.csLymphNodes != '999' && line.csSiteSpecificFactor2 == '987')
      return false

   if (line.csSiteSpecificFactor1 == null ||
       line.csSiteSpecificFactor3 == null || line.csSiteSpecificFactor4 == null ||
       line.csSiteSpecificFactor5 == null || line.csSiteSpecificFactor6 == null ||
       line.csSiteSpecificFactor1 == '988' ||
       line.csSiteSpecificFactor3 == '988' || line.csSiteSpecificFactor4 == '988' ||
       line.csSiteSpecificFactor5 == '988' || line.csSiteSpecificFactor6 == '988')
      return true

   if (line.csLymphNodes == '999' && (
       line.csSiteSpecificFactor1 != '999' ||
       line.csSiteSpecificFactor3 != '999' || line.csSiteSpecificFactor4 != '999' ||
       line.csSiteSpecificFactor5 != '999' || line.csSiteSpecificFactor6 != '999' ||
       (line.csSiteSpecificFactor2 != '987' && line.csSiteSpecificFactor2 != '999' && line.csSiteSpecificFactor2 != '988' && line.csSiteSpecificFactor2 != null) ||
       (line.csSiteSpecificFactor7 != '999' && line.csSiteSpecificFactor7 != '988' && line.csSiteSpecificFactor7 != null) ||
       (line.csSiteSpecificFactor8 != '999' && line.csSiteSpecificFactor8 != '988' && line.csSiteSpecificFactor8 != null) ||
       (line.csSiteSpecificFactor9 != '999' && line.csSiteSpecificFactor9 != '998' && line.csSiteSpecificFactor9 != '988' && line.csSiteSpecificFactor9 != null) ))
      return false
}

return true]]></expression>
            <message>CS SSF codes and CS Lymph Nodes conflict for Head and Neck schemas</message>
            <description><![CDATA[This edit validates CS Site-Specific Factors 1-9 for Head and Neck sites by CS Lymph Nodes coding.

This entire edit is skipped if any of the following conditions are true:
1.  CS Lymph Nodes is blank
2.  Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

This edit is skipped if CS schema is NOT one of the following Head and Neck schemas:
 BuccalMucosa
 EpiglottisAnterior
 FloorMouth
 GumLower
 GumOther
 GumUpper
 Hypopharynx
 LarynxGlottic
 LarynxOther
 LarynxSupraglottic
 LarynxSubglottic
 LipLower
 LipOther
 LipUpper
 MelanomaLipUpper
 MelanomaLipLower
 MelanomaLipOther
 MelanomaTongueAnterior
 MelanomaGumUpper
 MelanomaGumLower
 MelanomaGumOther
 MelanomaFloorMouth
 MelanomaPalateHard
 MelanomaMouthOther
 MelanomaBuccalMucosa
 MelanomaTongueBase
 MelanomaPalateSoft
 MelanomaOropharynx
 MelanomaNasopharynx
 MelanomaHypopharynx
 MelanomaPharynxOther
 MelanomaEpiglottisAnterior
 MelanomaLarynxGlottic
 MelanomaLarynxSupraglottic
 MelanomaLarynxSubglottic
 MelanomaLarynxOther
 MelanomaNasalCavity
 MelanomaSinusMaxillary
 MelanomaSinusEthmoid
 MelanomaSinusOther
 MiddleEar
 MouthOther
 NasalCavity
 Nasopharynx
 Oropharynx
 PalateHard
 PalateSoft
 ParotidGland
 PharyngealTonsil
 PharynxOther
 SalivaryGlandOther
 SinusEthmoid
 SinusMaxillary
 SinusOther
 SubmandibularGland
 TongueAnterior
 TongueBase

Note:  CS Site-Specific Factor 2, extracapsular extension, lymph nodes for head and neck for CSv1, is obsolete beginning with CS Version 2. For cases coded using CS Version 1, old codes are retained unless the case is recoded using CS Version 2. The CS Version 1 code 888 has been converted to 987.

If CS Lymph Nodes = 000 (none; no regional lymph node involvement), then
    CS Site-Specific Factor 2 must be blank or 987(obsolete data converted and retained v0200; data converted from code 888; not
    applicable; no lymph node involvement) or 988 (not applicable; information not collected for this case).

If CS Lymph Nodes is not equal 000 or 999, then
    CS Site-Specific Factor 2 must not = 987.

This remaining logic is skipped if any of the following conditions are true:
1.  CS Site-Specific Factor 1 is blank or 988
2.  CS Site-Specific Factor 3 is blank or 988
3.  CS Site-Specific Factor 4 is blank or 988
4.  CS Site-Specific Factor 5 is blank or 988
5.  CS Site-Specific Factor 6 is blank or 988

If CS Lymph Nodes equal 999 (unknown; not stated regional lymph node(s) cannot be assessed; not documented in patient record):
1. The following fields must all = 999 (regional lymph node(s) involved,
   size not stated; unknown if regional lymph node(s) involved; not
   documented in patient record):
     CS Site-Specific Factor 1
     CS Site-Specific Factor 3
     CS Site-Specific Factor 4
     CS Site-Specific Factor 5
     CS Site-Specific Factor 6
2. The following fields, if not blank, must all = 987 (obsolete data converted and retained v0200), 988 (Not applicable: Information not collected for this case) or 999:
     CS Site-Specific Factor 2
3. The following fields, if not blank, must all = 988 (Not applicable: Information not collected for this case) or 999:
     CS Site-Specific Factor 7
     CS Site-Specific Factor 8
4. The following field, if not blank, must = 988 (Not applicable: Information not collected for this case), 998 (No histopathologic examination of regional lymph nodes), or 999:
     CS Site-Specific Factor 9]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2008-07-30">Histologic Type ICD-O-3 bypass changed to 9140, 9590-9699, 9702-9729,9731-9989.  Logic of CS SSF blank bypass changed.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-18">Edit now using CS Schema name.  Lymph Nodes and Extension constants changed and SSF7-9 are now used.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-24">If LymphNodes = 000 then SSF2 can no longer equal 988.</event>
                <event version="SE12-007-01" user="murphyr" date="2012-03-12" ref="66689">Modified to allow SSF 9 to be 998 when nodes are 999.</event>
                <event version="SE12-008-01" user="murphyr" date="2012-08-10" ref="66712">Now allowing SSF 2 to be 987 when lymph nodes are 999.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF208" name="CS SSF 3, TS/Ext Eval, Prostate Schema (CS)" tag="N0953" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_3,CS_Tumor_Size_Ext_Eval,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor3 == null || line.csTumorSizeExtEval == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line.dateOfDiagnosisYear == null)
   return true

if (line._csSchemaId == 'prostate') {
   if ((line.csExtension == '950' || line.csExtension == '999') && line.csSiteSpecificFactor3 >= '000' && line.csSiteSpecificFactor3 <= '750')
      return !(Functions.matches(line.csTumorSizeExtEval, /^[01259]$/))
   if (line.dateOfDiagnosisYear >= '2010' || Functions.asInt(line.csVersionInputOriginal) >= 20100) {
       if (Functions.matches(line.csExtension, /^(2[0123]\d|240)$/)) {
          if (line.csSiteSpecificFactor3 == '960')
              return line.csTumorSizeExtEval == '0' || line.csTumorSizeExtEval == '9'
          if (line.csSiteSpecificFactor3 == '970' || line.csSiteSpecificFactor3 == '980')
              return line.csTumorSizeExtEval == '0'
       }
   }
   if (line.csTumorSizeExtEval == '3')
      return !(Functions.matches(line.csSiteSpecificFactor3, /^(9[5-9]0)$/))
   if (line.csTumorSizeExtEval == '6')
      return !(Functions.matches(line.csSiteSpecificFactor3, /^(9[5-9]0|985)$/))
   if (line.csTumorSizeExtEval == '8')
      return !(Functions.matches(line.csSiteSpecificFactor3, /^(9[6-9]0)$/))
   if (line.csTumorSizeExtEval == '5' && !(Functions.matches(line.csExtension, /^(950)|(990)$/)) && !(Functions.matches(line.csSiteSpecificFactor3, /^(9[5678]\d)|(990)$/))) {
       if (line.csExtension >= line.csSiteSpecificFactor3)
           return true

       //CS Extension = 200-300 (T2) and CS Site-Specific Factor 3 code = 300, 320, or 400 (T2NOS)
       if (line.csExtension >= '200' && line.csExtension <= '300'&& Functions.matches(line.csSiteSpecificFactor3, /^(300)|(320)|(400)$/))
           return true

       //CS Extension = 200, 240, 300 (T2NOS) and CS Site-Specific Factor 3 code = 210-230, 330-350, 402-406 (T2a, T2b, T2c)
       if (Functions.matches(line.csExtension, /^(200)|(240)|(300)$/) && Functions.matches(line.csSiteSpecificFactor3, /^(2[12]\d)|(230)|(3[34]\d)|(350)|(40[23456])$/))
           return true

       //CS Extension = 210 (T2a) and CS Site-Specific Factor 3 = 330 or 402 (T2a)
       if (Functions.matches(line.csExtension, /^(210)$/) && Functions.matches(line.csSiteSpecificFactor3, /^(330)|(402)$/))
            return true

       //CS Extension = 220 (T2b) and CS Site-Specific Factor 3 = 330, 402 (T2a), 340 or 404 (T2b)
       if (Functions.matches(line.csExtension, /^(220)$/) && Functions.matches(line.csSiteSpecificFactor3, /^(330)|(402)|(340)|(404)$/))
           return true

       //CS Extension = 230 (T2c) and CS Site-Specific Factor 3 = 330, 402 (T2a), 340, 404 (T2b) 350 or 406 (T2c)
       if (Functions.matches(line.csExtension, /^(230)$/) && Functions.matches(line.csSiteSpecificFactor3, /^(330)|(402)|(340)|(404)|(350)|(406)$/))
           return true

       //CS Extension = 410-490 (T3) and CS Site-Specific Factor 3 = 495 (T3NOS)
       if (Functions.matches(line.csExtension, /^(4[12345678]\d)|(490)$/) && Functions.matches(line.csSiteSpecificFactor3, /^(495)$/))
           return true

       //CS Extension = 410 or 490 (T3NOS) and CS Site-Specific Factor 3 = 415-490 (T3a, T3b)
       if (Functions.matches(line.csExtension, /^(410)|(490)$/) && Functions.matches(line.csSiteSpecificFactor3, /^(41[56789])|(4[2345678]\d)|(490)$/))
           return true

       //CS Extension = 420-445 (T3a) and CS Site-Specific Factor 3 = 430-483 (T3a)
       if (Functions.matches(line.csExtension, /^(4[23]\d)|(44[012345])$/) && Functions.matches(line.csSiteSpecificFactor3, /^(4[34567]\d)|(48[0123])$/))
           return true

       //CS Extension = 450-470 (T3b) and CS Site-Specific Factor 3 = 480-483(T3a) or 485-490 (T3b)
       if (Functions.matches(line.csExtension, /^(4[56]\d)|(470)$/) && Functions.matches(line.csSiteSpecificFactor3, /^(48[0123])|(48[56789])|(490)$/))
           return true

       //CS Extension = 500 - 700 (T4) and CS Site-Specific Factor 3 code = 510-750 (T4)
       if (Functions.matches(line.csExtension, /^([56]\d\d)|(700)$/) && Functions.matches(line.csSiteSpecificFactor3, /^(5[123456789]\d)|(6\d\d)|(7[1234]\d)|(750)$/))
           return true

       return false
   }
   if (Functions.matches(line.csTumorSizeExtEval, /^[45]$/))
      return !(Functions.matches(line.csSiteSpecificFactor3, /^(9[6-8]0|985)$/))

   if (line.csSiteSpecificFactor3 >= '200' && line.csSiteSpecificFactor3 <= '750')
       return line.csTumorSizeExtEval != '0' && line.csTumorSizeExtEval != '1' && line.csTumorSizeExtEval != '9'
}

return true]]></expression>
            <message>CS SSF 3, TS/Ext Eval, and Prostate Schema conflict</message>
            <description><![CDATA[This edit verifies that for cases coded using the CS Prostate schema, if CS Tumor Size/Ext Eval indicates surgery performed, CS Site-Specific Factor 3 must not indicate no surgery performed.  Likewise, if If CS Tumor Size/Ext Eval inidicates no surgery performed, then CS Site-Specific Factor 3 must not indicate surgery performed.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 3 is empty
2. CS Tumor Size/Ext Eval is empty
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS Schema is invalid
5. Date of Diagnosis is blank or invalid

For cases using the CS Prostate schema:

1.  If CS Tumor Size/Ext Eval = 4, 5, or 6 (prostatectomy performed), then CS Site-Specific Factor 3 must not = 960, 970, 980, or 985 (prostatectomy not done or unknown).

2.  If CS Extension = 950 or 999, then if CS Site-Specific Factor 3 = 000-750, then CS Tumor Size Ext/Eval must not = 0, 1, 2, 5, 9.

3.  If year of Diagnosis is 2010 or later OR CS Version Input Original
is 020100 or higher
     Then
     If CS Extension = 200-240 (clinically apparent only), then
        A. If CS Site-Specific Factor 3 = 960 (unknown if prostatectomy done), then CS Tumor Size Ext/Eval must = 0 (based on clinical information only) or 9 (unknown if prostatectomy done).
        B. If CS Site-Specific Factor 3 = 970 or 980 (codes indicating no prostatectomy), then CS Tumor Size Ext/Eval must = 0 (based on clinical information only).

4.  If CS Tumor Size/Ext Eval = 3 or 8 (evidence derived from autopsy), then CS Site-Specific Factor 3 must not = 960, 970, 980, or 990. These codes are not appropriate for cases coded using autopsy information.

5.  If CS Tumor Size/Ext Eval = 3 (evidence derived from autopsy), then CS Site-specific Factor 3 must not = 950.

6.  If CS Tumor Size Ext/Eval = 6 (Prostatectomy performed AFTER neoadjuvant therapy and tumor size/extension based on pathologic evidence), CS SSF 3 must not = 950 or 990.

7.  If CS Tumor Size Ext/Eval = 5 (Prostatectomy performed AFTER neoadjuvant therapy and tumor size/extension based on clinical evidence) AND CS Extension code not = 950 or 999 AND CS Site-Specific Factor 3 code not = 950-990,
then CS Extension code must be equal to or greater than the CS Site-specific Factor 3 code, with the following exceptions:

    CS Extension = 200-300 (T2) and CS Site-Specific Factor 3 code = 300, 320, or 400 (T2NOS)
    CS Extension = 200, 240, 300 (T2NOS) and CS Site-Specific Factor 3 code = 210-230, 330-350, 402-406 (T2a, T2b, T2c)
    CS Extension = 210 (T2a) and CS Site-Specific Factor 3 = 330 or 402 (T2a)
    CS Extension = 220 (T2b) and CS Site-Specific Factor 3 = 330, 402 (T2a), 340 or 404 (T2b)
    CS Extension = 230 (T2c) and CS Site-Specific Factor 3 = 330, 402 (T2a), 340, 404 (T2b) 350 or 406 (T2c)
    CS Extension = 410-490 (T3) and CS Site-Specific Factor 3 = 495 (T3NOS)
    CS Extension = 410 or 490 (T3NOS) and CS Site-Specific Factor 3 = 415-490 (T3a, T3b)
    CS Extension = 420-445 (T3a) and CS Site-Specific Factor 3 = 430-483 (T3a)
    CS Extension = 450-470 (T3b) and CS Site-Specific Factor 3 = 480-483(T3a) or 485-490 (T3b)
    CS Extension = 500 - 700 (T4) and CS Site-Specific Factor 3 code = 510-750 (T4)

8. If CS Site-Specific Factor 3 = 200-750, then CS Tumor Size Ext/Eval must not = 0, 1 or 9]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Changed Hematopoietic SSF3 ranges.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-10">Edit now using CS Schema name.  Added &quot;If CS Site-Specific Factor 3 = 985, then CS Tumor Size/Ext Eval must = 3 or 8&quot;.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-05-26">Fixed big in CS Site-Specific Factor 3 = 985 check.  Fixed documention.  Also added CS Tumor Size/Ext Eval = 3 or 8 check.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-14">Updated edit for CSv2 version 02.03.02.</event>
                <event version="SE12-005-01" user="murphyr" date="2011-07-22" ref="66464">Added logic for CS Tumor Size/Ext Eval = 5</event>
                <event version="SE12-007-01" user="murphyr" date="2012-03-12" ref="66690">Added logic for CS Extension = 200-240.</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-21" ref="66778">Added condition 8 and modified condition 3.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-25" ref="67049">Added blank year of diagnosis skip condition</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF209" name="CS Mets Eval, Mets at DX, CS Version Inp Orig (CS)" tag="N0945" java-path="lines.line" category="inter-field" depends="CS_Mets_Eval,CS_Mets_at_DX,CS_Version_Input_Original">
            <expression><![CDATA[if (line.csMetsAtDx == null || line.csMetsEval == null || line.csVersionInputOriginal < '010400')
   return true

if (Functions.matches(line.csMetsEval, /^[236]$/))
   return line.csMetsAtDx != '00'

return true]]></expression>
            <message>CS Mets Eval, CS Mets at Dx, and CS Version 1st conflict</message>
            <description><![CDATA[This edit is skipped if either CS Mets Eval or CS Mets at DX are blank.  It is also skipped if CS Version Input Original is less than 010400 (version 01.04).

If CS Mets Eval = 2, 3 or 6, then CS Mets at DX cannot = 00 (none).

Note:
CS Mets Eval code 2 = No pathologic examination of metastatic tissue done prior to death, but evidence derived from autopsy (tumor was suspected or diagnosed prior to autopsy.

CS Mets Eval code 3 = Pathologic examination of metastatic tissue performed WITHOUT pre-surgical systemic treatment or radiation OR pathologic examination of metastatic tissue performed, unknown if presurgical systemic treatment or radiation performed.

CS Mets Eval code 6 = Pathologic examination of metastatic tissue performed WITH pre-surgical systemic treatment or radiation, BUT metastasis based on pathologic evidence.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF210" name="CS Extension, Morphology, Bladder ICDO3 (CS)" tag="N0955" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csExtension == null)
   return true

if (line._csSchemaId == 'bladder') {
   if (line.histologicTypeIcdO3 == '8130' && line.behaviorCodeIcdO3 == '2')
      return line.csExtension != '100'
   if (line.csExtension == '100')
      return line.histologicTypeIcdO3 != '8130' || line.behaviorCodeIcdO3 != '2'
}

return true]]></expression>
            <message>CS Extension, Morphology, and Bladder conflict</message>
            <description><![CDATA[This edit verifies that for cases coded using the CS Bladder schema, if the histology/behavior is 8130/2 (papillary transitional cell carcinoma, non-invasive), then CS Extension must not be coded to 100 (confined to mucosa, NOS).

Note: This edit is based on Note 3 of the CS Extension for Bladder schema:  If a tumor is described as confined to mucosa (or the equivalents in Note 5) AND as papillary, use extension code 010 or 030. Use code 100 (confined to mucosa) only if the tumor is described as confined to mucosa but is not described as papillary

This edit is skipped if any of the following conditions are true:
 - CS Extension is empty.

For cases using the Bladder schema:

- If Histologic Type ICD-O-3 and Behavior Code ICD-O-3 = 81302 (Papillary transitional cell carcinoma, non-invasive), then CS Extension must not = 100 (confined to mucosa, NOS).

- If CS Extension = 100, then Histologic Type ICD-O-3 and Behavior Code ICD-O-3 must not = 81302.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-12">Changed extension constants to three digits, removed a skip condition, and now use a schema name lookup function.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-20">Changed doc to reference Note 3 instead of Note 8 of the CS Extension for Bladder schema.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE23-023-01" user="cooki" date="2023-01-19" ref="69085">Changed description to match logic.</event>
            </history>
        </rule>
        <rule id="IF211" name="CS TS/Ext Eval, Surgery, Bladder Schema (CS)" tag="N1027" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Tumor_Size_Ext_Eval,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Surg_Prim_Site">
            <expression><![CDATA[if (line.csTumorSizeExtEval == null || line.behaviorCodeIcdO3 == '0' ||  line.behaviorCodeIcdO3 == '1' || line._csSchemaId != 'bladder' || !(Functions.matches(line.rxSummSurgPrimSite, /^(1\d|2[0-7])$/)))
    return true

if (Functions.matches(line.csExtension, /^(7\d\d|80[012345])$/))
    return !(Functions.matches(line.csTumorSizeExtEval, /^[568]$/))

return !(Functions.matches(line.csTumorSizeExtEval, /^[3568]$/))]]></expression>
            <message>CS TS/Ext Eval, Surgery and Bladder Schema conflict</message>
            <description><![CDATA[The purpose of this edit is to verify that, for cases coded using the CS Bladder schema, the CS Tumor Size/Ext Eval code is correct for surgeries which do not meet the pathologic staging criteria.

This edit is skipped if any of the following conditions are true:
1.  CS Tumor Size/Ext Eval is empty.
2.  Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline).

For cases using the CS Bladder schema:
    If RX Summ-Surg Prim Site = 10-27 and CS Extension = 700-805, then the CS Tumor Size/Ext Eval must not = 5, 6, or 8.
    If RX Summ-Surg Prim Site = 10-27 and CS Extension not = 700-805, then CS Tumor Size/Ext Eval must not = 3, 5, 6 or 8.]]></description>
            <history>
                <event version="SE11-001-23" user="greend" date="2009-01-07">This edit was created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-10">This edit now uses CS Schema name.</event>
                <event version="SE12-007-01" user="murphyr" date="2012-03-13" ref="66692">Added CS Extension check</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-21" ref="66789">Added logic: If RX Summ-Surg Prim Site = 10-27 and CS Extension not = 700-805, then CS Tumor Size/Ext Eval must not = 3, 5, 6 or 8.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF212" name="CS Extension, Brain Schema (CS)" tag="N1024" java-path="lines.line" category="inter-field" depends="CS_Extension,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csExtension == null)
   return true

 if (line._csSchemaId == 'brain') {
     if (Functions.matches(line.primarySite, /^C71[1-5]$/))
           return ! (Functions.matches(line.csExtension, /^1[12]0|200|510$/))
     if (Functions.matches(line.primarySite, /^C71[67]$/))
           return ! (Functions.matches(line.csExtension, /^[15]00$/))
 }

return true]]></expression>
            <message>CS Extension and Brain Schema conflict</message>
            <description><![CDATA[The purpose of this edit is to verify the following:
  1.  CS Extension codes indicating infratentorial tumors are not coded
      to supratentorial sites of the brain.
  2.  CS Extension codes indicating supratentorial tumors are not coded
      to infratentorial sites of the brain.

This edit is skipped if any of the following conditions are true:
1.  CS Extension is empty.

If Primary Site = C711-C715 (supratentorial), then CS Extension must not = 110, 120, 200, or 510 (infratentorial tumors).

If Primary Site = C716-C717 (infratentorial), then CS Extension must not = 100 or 500 (supratentorial tumors).]]></description>
            <history>
                <event version="SE11-001-23" user="greend" date="2009-01-07">This edit was created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-12">Changed extension constants to three digits, removed a skip condition, and now use a schema name lookup function.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67741">Edit name change.</event>
            </history>
        </rule>
        <rule id="IF213" name="CS Lymph Nodes Eval, Lymph Nodes, Breast Schema (CS)" tag="N1025" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Reg_Node_Eval,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csLymphNodesEval == null || line.csLymphNodes == null || line.behaviorCodeIcdO3 == '0' ||
    line.behaviorCodeIcdO3 == '1')
   return true

if (line._csSchemaId == 'breast') {
   if (Functions.matches(line.csLymphNodes, /^25[57]|510|610|735|810$/))
      return Functions.matches(line.csLymphNodesEval, /^[0159]$/)
   if (Functions.matches(line.csLymphNodes, /^050|130|15[05]|25[08]|520|620|7[123]0|815$/))
      return Functions.matches(line.csLymphNodesEval, /^[2368]$/)
}

return true]]></expression>
            <message>CS Lymph Nodes Eval, Lymph Nodes and Breast Schema conflict</message>
            <description><![CDATA[The purpose of this edit is to verify that, for cases coded using the
Breast schema, that CS Lymph Nodes and CS Lymph Nodes Eval are coded
consistently per Note 6 under CS Lymph Nodes:

"Note 6: For the breast schema, the choice of the N category is dependent
on the CS Lymph Nodes Eval field. There are certain CS Lymph Nodes codes
that can only be used if the nodes are evaluated clinically (CS Lymph
Nodes Eval is coded 0, 1, 5, or 9), which will be designated as "Evaluated
clinically:" at the beginning of the code description. Similarly, there
are certain CS Lymph Nodes codes that can only be used if the nodes are
evaluated pathologically (CS Lymph Nodes Eval is coded 2, 3, 6, or 8), and
these will be designated as "Evaluated pathologically:". All other codes
can be used for clinical or pathologic evaluation"

This edit is skipped if any of the following conditions are true:
1.  CS Lymph Nodes is empty.
2.  CS Lymph Nodes Eval is empty.
3.  Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline).

This edit first determines the correct CS schema by doing a function call
to the CS Dynamic Link Library (dll).  The function call passes Primary
Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema
discriminator) to the dll and the CS schema name is returned.

If Breast Schema:

1. If CS Lymph Nodes = 255, 257, 510, 610, 735, or 810, then CS Lymph
   Nodes Eval must =  0, 1, 5, or 9.
2. If CS Lymph Nodes = 050, 130, 150, 155, 250, 258, 520, 620, 710, 720,
   730, or 815, then CS Lymph Nodes Eval must = 2, 3, 6, or 8]]></description>
            <history>
                <event version="SE11-001-23" user="greend" date="2009-01-07">This edit was created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-02-03">Extension and Lymph Node codes changed to 3 digits.  Added Lymph Node code 255.  Now using schema name.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-21">Updated to match Note 6 which replaced note 5 in CSv2.03.02</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF214" name="CS SSF 3, SSF 4, Prostate Schema (CS)" tag="N0965" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_3,CS_Site-Specific_Factor_4,CS_Version_Input_Original,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor3 == null || line.csSiteSpecificFactor4 == null || line.behaviorCodeIcdO3 == '0' ||
    line.behaviorCodeIcdO3 == '1' || line.csVersionInputOriginal < '010200' || line.dateOfDiagnosisYear == null ||
    (Functions.asInt(line.dateOfDiagnosisYear) >= 2010 && (line.csSiteSpecificFactor4 == null || line.csSiteSpecificFactor4 == '988')))
   return true

if (line.registryId == '0000001566' && line.csSiteSpecificFactor4 == '988')
    return true

if (line._csSchemaId == 'prostate' && Functions.matches(line.csSiteSpecificFactor3, /^9[678]0$/))
      return Functions.matches(line.csSiteSpecificFactor4, /^\d[5]\d$/)

return true]]></expression>
            <message>CS SSF 3, SSF 4 and Prostate Schema conflict</message>
            <description><![CDATA[Purpose: This edit verifies that, for cases coded using the Prostate
schema, if a prostatectomy is not performed or unknown if performed (CS
Site-Specific Factor 3 coded 960, 970, or 980), the middle digit of CS
Site-Specific Factor 4 (involvement of prostatic apex at prostatectomy)
must be coded 5, indicating unknown apex involvement at prostatectomy.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 3 is empty.
2. CS Site-Specific Factor 4 is empty.
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline).
4. CS Version Input Original is less than 010200 (version 01.02).
5. Year of diagnosis is blank.
6. Year of diagnosis is 2010 or later and CS Site-Specific Factor 4 is 988.
7. Registry ID is 0000001566 (Texas) and SSF4 is 988.

This edit first determines the correct CS schema by doing a function call
to the CS Dynamic Link Library (dll). The function call passes Primary
Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema
discriminator) to the dll and the CS schema name is returned.

For cases using the CS Prostate schema:

If CS Site-Specific Factor 3 = 960 (unknown if prostatectomy done), 970
(no prostatectomy done within first course of treatment), 980
(prostatectomy performed, but not considered first course of treatment),
then the second digit of CS Site-Specific Factor 4 must = 5 (prostatectomy
apex involvement: unknown).]]></description>
            <history>
                <event version="SE11-001-23" user="greend" date="2009-01-07">This edit was created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-10">CS dll used to determine schema. Values &quot;096,097,098&quot; for CS Site-Specific Factor 3 changed to &quot;960,970,980&quot; per CsV2.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-11">Updated documentation.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-11" user="beverung" date="2022-01-06" ref="68761">Add skip condition for TX when SSF4 is 988.</event>
            </history>
        </rule>
        <rule id="IF215" name="CS Extension, Mycosis Fungoides Schema (CS)" tag="N0963" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csExtension == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
   return true

if (line._csSchemaId == 'mycosis_fungoides') {
     if (Functions.matches(line.primarySite, /^C44[0-8]$/))
           return line.csExtension != '300'
}

return true]]></expression>
            <message>CS Extension and Mycosis Fungoides Schema conflict</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension is coded properly for the Mycosis Fungoides and Sezary Disease schema per Note 4 for CS Extension:  Use code 150 when skin involvement is present but only a general location/site is mentioned (i.e. face, legs, torso, arms).  Use code 300 when there is skin involvement but there is no mention of location/site.

This edit is skipped if:
1.  CS Extension is empty.
2.  Behavior Code ICD-O-3 is 0 (benign) or 1 (borderline).
3.  CS schema is invalid

If schema is Mycosis Fungoides:
    If Primary Site = C440-C448 (specified skin sites), then CS Extension must not = 300 (Skin involvement, NOS).]]></description>
            <history>
                <event version="SE11-001-23" user="greend" date="2009-01-13">This edit was created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-12">Changed extension constants to three digits, removed a skip condition, and now use a schema name lookup function.</event>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-07" ref="67123">Updated description.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF216" name="CS Lymph Nodes, SSF 3, Nodes Eval, MelanomaSkin (CS)" tag="N0964" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Reg_Node_Eval,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_3,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csLymphNodes == null || line.csSiteSpecificFactor3 == null ||
    line.csSiteSpecificFactor3 == '988' || line.behaviorCodeIcdO3 == '0' ||
    line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'melanoma_skin') {
    if (Functions.matches(line.csSiteSpecificFactor3, /^000|005$/))
        return !(Functions.matches(line.csLymphNodes, /^121|128$/))

    if (Functions.matches(line.csLymphNodes, /^121|128$/))
        return Functions.matches(line.csLymphNodesEval, /^0|1|5|9$/)

    if (Functions.matches(line.csLymphNodes, /^12[234]|15[238]$/))
        return Functions.matches(line.csLymphNodesEval, /^2|3|6|8|9$/)

    if (Functions.matches(line.csSiteSpecificFactor3, /^0[25]0|04[358]|1[05]0$/))
        return line.csLymphNodesEval != '8'
}

return true]]></expression>
            <message>CS Lymph Nodes, SSF3, Nodes Eval, and Melanoma of Skin Schema conflict</message>
            <description><![CDATA[The purpose of this edit is to compare CS Lymph Nodes, CS Site-Specific 3, and CS Lymph Nodes Eval for cases coded using the Melanoma of Skin Schema.

If schema is MelanomaSkin:

1. If CS Site-Specific Factor 3 = 000 or 005 (see definitions below)
then
CS Lymph Nodes must not = 121 or 128 (codes that indicate case evaluated clinically)

2. If CS Lymph Nodes = 121 or 128 (codes that indicate case evaluated clinically)
then
CS Lymph Nodes Eval must = 0, 1, 5 (codes that indicate case does not meet criteria for AJCC pathological stage)or 9 (unknown)

3. If CS Lymph Nodes = 122, 123, 124, 152, 153, or 158 (codes that indicate case was evaluated pathologically)
then
CS Lymph Nodes Eval must = 2, 3, 6, 8 (codes that indicate case meets requirement for AJCC pathologic staging) or 9 (unknown)

4. If CS Site-Specific Factor 3 = 020, 043, 045, 048, 050, 100, or 150 (codes indicating 'clinically apparent')
then
CS Lymph Nodes Eval must not = 8 (diagnosed at autopsy)

**************************************************************
CS Site-Specific Factor 3 definitions for codes 000 and 005:
000 = OBSOLETE DATA RETAINED V0204
No lymph node metastasis
005 = Clinically negative lymph node metastasis
AND
No pathologic examination performed
Or unknown if pathologic examination performed
Or nodes negative on pathologic examination
*************************************************************

This edit is skipped if any of the following conditions are true:
1. CS Lymph Nodes is empty
2. CS Site-Specific Factor 3 is empty or = 988
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE11-001-23" user="greend" date="2009-01-13">This edit was created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-12">Changed extension constants to three digits, removed a skip condition, and now use a schema name lookup function.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-02-03">Updated documentation.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-14">Updated edit for CSv2 version 02.03.02.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-20" ref="66599">Logic re-worked for CSv0204.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF217" name="CS Mets at DX, Lung, Laterality (CS)" tag="N0962" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csMetsAtDx == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
   return true

if (line._csSchemaId == 'lung' && line.laterality == '4')
   return Functions.matches(line.csMetsAtDx, /^23|25|26|36|38|40|41|42|43|50|51|52|53|70|75$/)

return true]]></expression>
            <message>CS Mets at DX, Laterality, and Lung Schema conflict</message>
            <description><![CDATA[Purpose: This edit verifies that, for lung cases, if bilateral involvement, then CS Mets at DX is coded to bilateral as well.

This edit is skipped if any of the following conditions are true:
1. CS Mets at DX is empty
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
3. CS schema is invalid

If schema is Lung:
If Laterality = 4 (Bilateral involvement), then CS Mets at DX must = 23, 25, 26, 36, 38, 40, 41, 42, 43, 50, 51, 52, 53, 70, or 75.

Per the multiple primary rules, involvement of diffuse bilateral nodules "is the only condition when laterality = 4."]]></description>
            <history>
                <event version="SE11-001-23" user="greend" date="2009-01-13">This edit was created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-10">Edit now uses CS Schema name. 23 added as a valid mets dx code.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-24">39 removed as a valid mets dx code.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-30">Added some mets dx codes.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-21">Added mets dx codes 36 and 38.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-16" ref="66602">Removed code 37 &amp; add code 41 for mets at dx</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF218" name="CS SSF 6, Tumor Size, Breast Schema (CS)" tag="N1026" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_6,CS_Tumor_Size,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor6 == null || line.csSiteSpecificFactor6 == '988' ||
    line.csTumorSize == null || line.behaviorCodeIcdO3 == '0' ||
    line.behaviorCodeIcdO3 == '1' || line.histologicTypeIcdO3 == '9140')
   return true
if (line._csSchemaId == 'breast') {
   if (Functions.matches(line.csSiteSpecificFactor6, /^0[2345]0$/) && line.csTumorSize == '999')
      return false
   if (line.csSiteSpecificFactor6 == '060')
      return line.csTumorSize == '999'
}

return true]]></expression>
            <message>CS Site-Specific Factor 6, CS Tumor Size, and Breast Schema conflict</message>
            <description><![CDATA[The purpose of this edit is to verify that, for cases code using the Breast schema, that Site-Specific Factor 6 and CS Tumor Size are coded consistently.

This edit is skipped if any of the following conditions are true:
1.  CS Site-Specific Factor 6 is empty or 988.
2.  CS Tumor Size is empty.
3.  Behavior Code ICD-O-3 is 0 (benign) or 1 (borderline).

If CS Schema name is Breast:

1.  If CS Site-Specific Factor 6 = 020, 030, 040, or 050, indicating size of invasive or entire component coded in CS Tumor Size, the CS Tumor Size must not = 999 (unknown; size not stated).

2.  If CS Site-Specific Factor 6 = 060 [Invasive and in situ components present, unknown size of tumor (CS Tumor Size coded 999)], then CS Tumor Size must = 999 (unknown).]]></description>
            <history>
                <event version="SE11-001-23" user="greend" date="2009-01-13">This edit was created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-10">Edit now uses CS Schema name.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-21">Edit now skipped if SSF6 = 988.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF219" name="Derived SS2000, Behavior ICDO3 (CS)" tag="N1029" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.derivedSs2000 == null || line.typeOfReportingSource == '7' || line._csSchemaId == null ||
    ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','cns_other','intracranial_gland'].contains(line._csSchemaId)))
   return true

if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1'))
   return line.derivedSs2000 == '8'

if (line.behaviorCodeIcdO3 == '2') {
   if (line._csSchemaId == 'bladder' && line.csExtension == '100')
      return (line.derivedSs2000 != '0' && line.derivedSs2000 != '8')

   return line.derivedSs2000 == '0'
}

if (line.behaviorCodeIcdO3 == '3') {
   if (line._csSchemaId == 'prostate' && line.csExtension == '999' && line.csSiteSpecificFactor3 == '000')
      return line.derivedSs2000 != '8'

   return line.derivedSs2000 != '0' && line.derivedSs2000 != '8'
}

return true]]></expression>
            <message>Behavior Code ICD-O-3 and Derived SS2000 conflict</message>
            <description><![CDATA[The purpose of this edit is to catch Behavior/Derived SS2000 errors. It is not meant to duplicate the calculation of stage performed by the CS algorithm routine. Its intention is to catch errors that might be due to stage not being re-derived after a change is made to one of the fields used to calculate Derived SS2000.

This edit is skipped if any of the following conditions are true:
1. Derived SS2000 is blank
2. Case is death certificate only (Type of Reporting Source = 7)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and schema is not Brain, CNSOther, or IntracranialGland.

If Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline), then Derived SS2000 must be 8 (not applicable).

*** See Note 1 below ***
If Behavior Code ICD-O-3 = 2 (in situ)
    If schema = Bladder and CS Extension = 100 (Confined to mucosa, NOS) then Derived SS2000 must not be 0 (in situ) or 8 (not applicable)
    Otherwise
    If Behavior Code ICD-O-3 = 2 (in situ) then Derived SS2000 must be 0 (in situ).

*** See Note 2 below ***
If Behavior Code ICD-O-3 = 3 (malignant):
    and Primary Site = Prostate
    and CS Extension = 999
    and CS Site-Specific Factor 3 = 000  then
        Derived SS2000 must not be 8 (not applicable)
    otherwise
    If Behavior Code ICD-O-3 = 3 (malignant):
        Derived SS2000 must not be 0 (in situ) or 8 (not applicable).

Note 1: In situ behavior (Behavior Code ICD-O-3 of 2) generally maps only to a Derived Summary Stage of 0 (in situ). The two exceptions are:
1. A Bladder case coded with a CS Extension of 100 (Confined to mucosa, NOS) will map to Derived Summary Stage of 1 (local).

Note 2: Malignant behavior (Behavior Code ICD-O-3 of 3) generally cannot map to a Derived Summary Stage of 0 (in situ). The one exception is: A prostate case coded with a CS Extension (clinical extension) of 999 (unknown) and CS Site-Specific Factor 3 (pathologic extension) of 000 (in situ) will map to Derived Summary Stage of 0 (in situ).]]></description>
            <history>
                <event version="SE11-001-23" user="greend" date="2009-01-27">This edit was created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-22">Edit now using CS Schema name.  Extension constants changed to 3 digits.</event>
                <event version="SE12-002-04" user="murphyr" date="2010-07-29">Edit now passes if CS schema is not found.</event>
                <event version="SE12-003-03" user="murphyr" date="2011-02-10">Updated documentation.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-16">Removed check for MelanomaConjuctiva.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66825">Cleaned up doc.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF222" name="Date Initial RX SEER, RPTSRC (SEER)" tag="N1098" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
if (line.registryId == '0000001544' && line.dateOfDiagnosisYear < '2000')
    return true
if (line.registryId == '0000001562' && line.dateOfDiagnosisYear < '2019')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear < '2023')
    return true

if (line.typeOfReportingSource == '6' || line.typeOfReportingSource == '7')
    return line.dateInitialRxSeerYear == null && line.dateInitialRxSeerMonth == null && line.dateInitialRxSeerDay == null

return true]]></expression>
            <message>Date Initial RX SEER and Type of Reporting Source conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1. If Year of Date of Diagnosis is blank or invalid
2. If registry = New York (0000001562) and Year of Date of Diagnosis is less than 2019.
3. If registry = New Jersey (0000001544) and Year of Date Diagnosis is less than 2000.
4. If registry = Illinois (0000001565) and Year of Date Diagnosis is less than 2023.

If Type of Reporting Source = 6 (Autopsy Only), or 7 (Death Certificate Only) Date Initial RX SEER must = blank]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2009-12-07">Edit was created. This edit differs from the NPCR edit of the same name in that it does not allow both the date and flag fields to be blank; that is, if the date field is blank, the flag field must include a code indicating why the date is blank.</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-20" ref="66776">Updated edit name.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-16" ref="68202">Edit was updated to skip cases in New York when DX Year &lt; 2019.</event>
                <event version="SE18-019-04" user="beverung" date="2019-08-30" ref="68247">Edit now skipped for New Jersey cases when DX Year &lt; 2000.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-09" ref="68708">Add skip condition for IL for DX Year &lt; 2021.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-01" user="smithm" date="2022-02-15" ref="68800">Update edit name and logic</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-21" ref="68960">Update skip condition for IL for DX year less than 2023.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-01-24" ref="69079">Remove logic for date flag and update edit name.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-12" ref="69326">Removed several edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF226" name="CS Tumor Size, Schema (CS)" tag="N1178" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,CS_Tumor_Size,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csTumorSize == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line,'csTumorSize',line.csTumorSize)]]></expression>
            <message>CS tumor size is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Tumor Size is correct for a particular schema. The
    schema determined by Primary Site, Histologic Type ICD-O-3, and sometimes CS
    Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Tumor Size, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Tumor Size is valid for a particular schema by doing
    function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE12-002-04" user="murphyr" date="2010-07-29">Edit now passes if CS schema is not found.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF227" name="CS Extension, Schema (CS)" tag="N1116" java-path="lines.line" category="inter-field" depends="CS_Extension">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csExtension == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csExtension',line.csExtension)]]></expression>
            <message>CS extension is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Extension is correct for a particular schema. The
    schema determined by Primary Site, Histologic Type ICD-O-3, and sometimes CS
    Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Extension, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Extension is valid for a particular schema by doing
    function calls to the CS Dynamic Link Library (dll).

    Note: This edit does not check for obsolete codes.  Obsolete codes for CS
    Extension are edited by "Obsolete Codes - CS Extension (SEER IF270)".]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit Created.</event>
                <event version="SE12-003-03" user="murphyr" date="2011-02-11">Updated documentation.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-12" ref="69326">Removed several dependencies.</event>
            </history>
        </rule>
        <rule id="IF228" name="CS Tumor Size/Ext Eval, Schema (CS)" tag="N1177" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,CS_Tumor_Size_Ext_Eval,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csTumorSizeExtEval == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csTumorSizeExtEval',line.csTumorSizeExtEval)]]></expression>
            <message>CS Tumor Size/Ext Eval is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Tumor Size/Ext Eval is correct for a particular
    schema. The schema determined by Primary Site, Histologic Type ICD-O-3, and
    sometimes CS Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Tumor Size/Ext Eval, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Tumor Size/Ext Eval is valid for a particular schema
    by doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF229" name="CS Lymph Nodes, Schema (CS)" tag="N1163" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csLymphNodes == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csLymphNodes',line.csLymphNodes)]]></expression>
            <message>CS Lymph Nodes is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Lymph Nodes is correct for a particular schema. The
    schema determined by Primary Site, Histologic Type ICD-O-3, and sometimes CS
    Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Lymph Nodes, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Lymph Nodes is valid for a particular schema by doing
     function calls to the CS Dynamic Link Library (dll).

    Note: This edit does not check for obsolete codes.  Obsolete codes for CS
    Extension are edited by "Obsolete Codes - CS Lymph Nodes (SEER IF272)".]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit Created.</event>
                <event version="SE12-003-03" user="murphyr" date="2011-02-11">Updated documentation.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF230" name="CS Lymph Nodes Eval, Schema (CS)" tag="N1175" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Reg_Node_Eval,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csLymphNodesEval == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csLymphNodesEval',line.csLymphNodesEval)]]></expression>
            <message>CS Lymph Nodes Eval is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Lymph Nodes Eval is correct for a particular schema.
    The schema determined by Primary Site, Histologic Type ICD-O-3, and sometimes CS
    Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Lymph Nodes Eval, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Lymph Nodes Eval is valid for a particular schema by
    doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF231" name="CS Mets at DX, Schema (CS)" tag="N1164" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Mets_at_DX,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csMetsAtDx == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csMetsAtDx',line.csMetsAtDx)]]></expression>
            <message>CS Mets at DX is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Mets at DX is correct for a particular schema. The
    schema determined by Primary Site, Histologic Type ICD-O-3, and sometimes CS
    Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Mets at DX, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Mets at DX is valid for a particular schema by doing
    function calls to the CS Dynamic Link Library (dll).

    Note: This edit does not check for obsolete codes.  Obsolete codes for CS
    Extension are edited by "Obsolete Codes - CS Mets at DX (SEER IF274)".]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit Created.</event>
                <event version="SE12-003-03" user="murphyr" date="2011-02-11">Updated documentation.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF232" name="CS Mets Eval, Schema (CS)" tag="N1176" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Mets_Eval,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csMetsEval == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csMetsEval',line.csMetsEval)]]></expression>
            <message>CS Mets Eval is invalid for this schema</message>
            <description><![CDATA[This edit verifies that CS Mets Eval is correct for a particular schema. The
    schema determined by Primary Site, Histologic Type ICD-O-3, and sometimes CS
    Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Mets Eval, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Mets Eval is valid for a particular schema by doing
    function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF233" name="CS Site-Specific Factor 1, Schema (SEER)" tag="N2410" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_1,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csSiteSpecificFactor1 == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

if ((line.dateOfDiagnosisYear == '2016' || line.dateOfDiagnosisYear == '2017') && line.csExtension == null && ['retinoblastoma','esophagus','esophagus_gejunction','net_stomach','stomach'].contains(line._csSchemaId))
    return true

return Functions.isAcceptableCsCode(line, 'csSiteSpecificFactor1',line.csSiteSpecificFactor1)]]></expression>
            <message>CS site-specific factor 1 is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 1 is correct for a particular
    schema. The schema determined by Primary Site, Histologic Type ICD-O-3, and
    sometimes CS Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 1, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid
    4. Year of Diagnosis is 2016-2017 and CS Extension is blank and schema is Retinoblastoma, Esophagus, EsophagusGEJunction, NETStomach and Stomach

    This edit verifies that CS Site-Specific Factor 1 is valid for a particular
    schema by doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-01" ref="67263">Added skip condition for DX year 2016.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-08" ref="67561">Some 2017 cases are now skipped.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE23-023-02" user="shearerw" date="2023-05-04" ref="69268">Edit name and tag changed.</event>
            </history>
        </rule>
        <rule id="IF234" name="CS Site-Specific Factor 2, Schema (SEER)" tag="N2411" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_2,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csSiteSpecificFactor2 == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

if ((line.dateOfDiagnosisYear == '2016' || line.dateOfDiagnosisYear == '2017') && line.csExtension == null && ['appendix','carcinoid_appendix','colon','net_colon','net_rectum','rectum','small_intestine'].contains(line._csSchemaId))
    return true

return Functions.isAcceptableCsCode(line, 'csSiteSpecificFactor2',line.csSiteSpecificFactor2)]]></expression>
            <message>CS site-specific factor 2 is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 2 is correct for a particular
    schema. The schema determined by Primary Site, Histologic Type ICD-O-3, and
    sometimes CS Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 2, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid
    4. Year of diagnosis = 2016-2017 and CS Extension is blank and schema is Appendix, CarcinoidAppendix, Colon, NETColon, NETRectum, Rectum, SmallIntestine

    This edit verifies that CS Site-Specific Factor 2 is valid for a particular
    schema by doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-05" ref="67264">Added skip condition for DX year 2016.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-08" ref="67562">Some 2017 cases are now skipped.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE23-023-02" user="shearerw" date="2023-05-04" ref="69268">Edit name and tag changed.</event>
            </history>
        </rule>
        <rule id="IF235" name="CS Site-Specific Factor 3, Schema (SEER)" tag="N2412" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_3,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csSiteSpecificFactor3 == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

if ((line.dateOfDiagnosisYear == '2016' || line.dateOfDiagnosisYear == '2017') && line.csExtension == null && ['lacrimal_gland','melanoma_skin','merkel_cell_penis','merkel_cell_scrotum','merkel_cell_skin','merkel_cell_vulva','prostate','skin_eyelid'].contains(line._csSchemaId))
    return true

return Functions.isAcceptableCsCode(line, 'csSiteSpecificFactor3',line.csSiteSpecificFactor3)]]></expression>
            <message>CS site-specific factor 3 is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 3 is correct for a particular
    schema. The schema determined by Primary Site, Histologic Type ICD-O-3, and
    sometimes CS Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 3, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid
    4. Year of Diagnosis is 2016-2017 and CS Extension is blank and schema is LacrimalGland, MelanomaSkin, MerkelCellPenis, MerkelCellScrotum, MerkelCellSkin, MerkelCellVulva, Prostate, SkinEyelid

    This edit verifies that CS Site-Specific Factor 3 is valid for a particular
    schema by doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-05" ref="67265">Added skip condition for some cases with DX year 2016.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-08" ref="67563">Some 2017 cases are now skipped.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE23-023-02" user="shearerw" date="2023-05-04" ref="69268">Edit name and tag changed.</event>
            </history>
        </rule>
        <rule id="IF236" name="CS Site-Specific Factor 4, Schema (CS)" tag="N1182" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_4,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csSiteSpecificFactor4 == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csSiteSpecificFactor4',line.csSiteSpecificFactor4)]]></expression>
            <message>CS site-specific factor 4 is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 4 is correct for a particular
    schema. The schema determined by Primary Site, Histologic Type ICD-O-3, and
    sometimes CS Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 4, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Site-Specific Factor 4 is valid for a particular
    schema by doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF237" name="CS Site-Specific Factor 5, Schema (CS)" tag="N1183" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_5,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csSiteSpecificFactor5 == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csSiteSpecificFactor5',line.csSiteSpecificFactor5)]]></expression>
            <message>CS site-specific factor 5 is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 5 is correct for a particular
    schema. The schema determined by Primary Site, Histologic Type ICD-O-3, and
    sometimes CS Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 5, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Site-Specific Factor 5 is valid for a particular
    schema by doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF238" name="CS Site-Specific Factor 6, Schema (CS)" tag="N1184" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_6,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csSiteSpecificFactor6 == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csSiteSpecificFactor6',line.csSiteSpecificFactor6)]]></expression>
            <message>CS site-specific factor 6 is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 6 is correct for a particular
    schema. The schema determined by Primary Site, Histologic Type ICD-O-3, and
    sometimes CS Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 6, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Site-Specific Factor 6 is valid for a particular
    schema by doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF239" name="CS Site-Specific Factor 7, Schema (CS)" tag="N1185" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_7,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csSiteSpecificFactor7 == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csSiteSpecificFactor7',line.csSiteSpecificFactor7)]]></expression>
            <message>CS site-specific factor 7 is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 7 is correct for a particular
    schema. The schema determined by Primary Site, Histologic Type ICD-O-3, and
    sometimes CS Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 7, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Site-Specific Factor 7 is valid for a particular
    schema by doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF240" name="CS Site-Specific Factor 8, Schema (CS)" tag="N1186" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_8,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csSiteSpecificFactor8 == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csSiteSpecificFactor8',line.csSiteSpecificFactor8)]]></expression>
            <message>CS site-specific factor 8 is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 8 is correct for a particular
    schema. The schema determined by Primary Site, Histologic Type ICD-O-3, and
    sometimes CS Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 8, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Site-Specific Factor 8 is valid for a particular
    schema by doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF241" name="CS Site-Specific Factor 9, Schema (CS)" tag="N1187" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_9,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csSiteSpecificFactor9 == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csSiteSpecificFactor9',line.csSiteSpecificFactor9)]]></expression>
            <message>CS site-specific factor 9 is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 9 is correct for a particular
    schema. The schema determined by Primary Site, Histologic Type ICD-O-3, and
    sometimes CS Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 9, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Site-Specific Factor 9 is valid for a particular
    schema by doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF242" name="CS Site-Specific Factor10, Schema (SEER)" tag="N2413" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_10,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csSiteSpecificFactor10 == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

if ((line.dateOfDiagnosisYear == '2016' || line.dateOfDiagnosisYear == '2017') && line.csExtension == null && line._csSchemaId == 'bile_ducts_intrahepat')
    return true

return Functions.isAcceptableCsCode(line, 'csSiteSpecificFactor10',line.csSiteSpecificFactor10)]]></expression>
            <message>CS site-specific factor 10 is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 10 is correct for a particular
    schema. The schema determined by Primary Site, Histologic Type ICD-O-3, and
    sometimes CS Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 10, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid
    4. Year of Diagnosis is 2016-2017 and CS Extension is Blank and schema is BileDuctsIntraHepat

    This edit verifies that CS Site-Specific Factor 10 is valid for a particular
    schema by doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-05" ref="67266">Added skip condition for some cases with DX year 2016.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-08" ref="67564">Some 2017 cases are now skipped.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE23-023-02" user="shearerw" date="2023-05-04" ref="69268">Edit name and tag changed.</event>
            </history>
        </rule>
        <rule id="IF243" name="CS Site-Specific Factor11, Schema (CS)" tag="N1189" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_11,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csSiteSpecificFactor11 == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csSiteSpecificFactor11',line.csSiteSpecificFactor11)]]></expression>
            <message>CS site-specific factor 11 is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 11 is correct for a particular
    schema. The schema determined by Primary Site, Histologic Type ICD-O-3, and
    sometimes CS Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 11, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Site-Specific Factor 11 is valid for a particular
    schema by doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF244" name="CS Site-Specific Factor12, Schema (CS)" tag="N1190" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_12,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csSiteSpecificFactor12 == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csSiteSpecificFactor12',line.csSiteSpecificFactor12)]]></expression>
            <message>CS site-specific factor 12 is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 12 is correct for a particular
    schema. The schema determined by Primary Site, Histologic Type ICD-O-3, and
    sometimes CS Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 12, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Site-Specific Factor 12 is valid for a particular
    schema by doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF245" name="CS Site-Specific Factor13, Schema (CS)" tag="N1191" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_13,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csSiteSpecificFactor13 == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csSiteSpecificFactor13',line.csSiteSpecificFactor13)]]></expression>
            <message>CS site-specific factor 13 is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 13 is correct for a particular
    schema. The schema determined by Primary Site, Histologic Type ICD-O-3, and
    sometimes CS Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 13, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.

    This edit verifies that CS Site-Specific Factor 13 is valid for a particular
    schema by doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF246" name="CS Site-Specific Factor14, Schema (CS)" tag="N1192" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_14,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csSiteSpecificFactor14 == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csSiteSpecificFactor14',line.csSiteSpecificFactor14)]]></expression>
            <message>CS site-specific factor 14 is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 14 is correct for a particular
    schema. The schema determined by Primary Site, Histologic Type ICD-O-3, and
    sometimes CS Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 14, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Site-Specific Factor 14 is valid for a particular
    schema by doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF247" name="CS Site-Specific Factor15, Schema (CS)" tag="N1194" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_15,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csSiteSpecificFactor15 == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csSiteSpecificFactor15',line.csSiteSpecificFactor15)]]></expression>
            <message>CS site-specific factor 15 is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 15 is correct for a particular
    schema. The schema determined by Primary Site, Histologic Type ICD-O-3, and
    sometimes CS Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 15, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Site-Specific Factor 15 is valid for a particular
    schema by doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF248" name="CS Site-Specific Factor16, Schema (CS)" tag="N1195" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_16,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csSiteSpecificFactor16 == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csSiteSpecificFactor16',line.csSiteSpecificFactor16)]]></expression>
            <message>CS site-specific factor 16 is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 16 is correct for a particular
    schema. The schema determined by Primary Site, Histologic Type ICD-O-3, and
    sometimes CS Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 16, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Site-Specific Factor 16 is valid for a particular
    schema by doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF249" name="CS Site-Specific Factor17, Schema (CS)" tag="N1196" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_17,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csSiteSpecificFactor17 == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csSiteSpecificFactor17',line.csSiteSpecificFactor17)]]></expression>
            <message>CS site-specific factor 17 is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 17 is correct for a particular
    schema. The schema determined by Primary Site, Histologic Type ICD-O-3, and
    sometimes CS Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 17, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Site-Specific Factor 17 is valid for a particular
    schema by doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF250" name="CS Site-Specific Factor18, Schema (CS)" tag="N1197" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csSiteSpecificFactor18 == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csSiteSpecificFactor18',line.csSiteSpecificFactor18)]]></expression>
            <message>CS site-specific factor 18 is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 18 is correct for a particular
    schema. The schema determined by Primary Site, Histologic Type ICD-O-3, and
    sometimes CS Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 18, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Site-Specific Factor 18 is valid for a particular
    schema by doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF251" name="CS Site-Specific Factor19, Schema (CS)" tag="N1198" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_19,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csSiteSpecificFactor19 == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csSiteSpecificFactor19',line.csSiteSpecificFactor19)]]></expression>
            <message>CS site-specific factor 19 is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 19 is correct for a particular
    schema. The schema determined by Primary Site, Histologic Type ICD-O-3, and
    sometimes CS Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 19, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Site-Specific Factor 19 is valid for a particular
    schema by doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF252" name="CS Site-Specific Factor20, Schema (CS)" tag="N1199" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csSiteSpecificFactor20 == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csSiteSpecificFactor20',line.csSiteSpecificFactor20)]]></expression>
            <message>CS site-specific factor 20 is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 20 is correct for a particular
    schema. The schema determined by Primary Site, Histologic Type ICD-O-3, and
    sometimes CS Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 20, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Site-Specific Factor 20 is valid for a particular
    schema by doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF253" name="CS Site-Specific Factor21, Schema (CS)" tag="N1200" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csSiteSpecificFactor21 == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csSiteSpecificFactor21',line.csSiteSpecificFactor21)]]></expression>
            <message>CS site-specific factor 21 is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 21 is correct for a particular
    schema. The schema determined by Primary Site, Histologic Type ICD-O-3, and
    sometimes CS Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 21, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Site-Specific Factor 21 is valid for a particular
    schema by doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF254" name="CS Site-Specific Factor22, Schema (CS)" tag="N1201" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_22,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csSiteSpecificFactor22 == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csSiteSpecificFactor22',line.csSiteSpecificFactor22)]]></expression>
            <message>CS site-specific factor 22 is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 22 is correct for a particular
    schema. The schema determined by Primary Site, Histologic Type ICD-O-3, and
    sometimes CS Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 22, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Site-Specific Factor 22 is valid for a particular
    schema by doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF255" name="CS Site-Specific Factor23, Schema (CS)" tag="N1202" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_23,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csSiteSpecificFactor23 == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csSiteSpecificFactor23',line.csSiteSpecificFactor23)]]></expression>
            <message>CS site-specific factor 23 is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 23 is correct for a particular
    schema. The schema determined by Primary Site, Histologic Type ICD-O-3, and
    sometimes CS Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 23, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Site-Specific Factor 23 is valid for a particular
    schema by doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF256" name="CS Site-Specific Factor24, Schema (CS)" tag="N1203" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_24,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csSiteSpecificFactor24 == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

return Functions.isAcceptableCsCode(line, 'csSiteSpecificFactor24',line.csSiteSpecificFactor24)]]></expression>
            <message>CS site-specific factor 24 is invalid for this schema.</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 24 is correct for a particular
    schema. The schema determined by Primary Site, Histologic Type ICD-O-3, and
    sometimes CS Site-Specific Factor25 (schema discriminator).

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 24, Primary Site, or Histologic Type ICD-O-3 is blank.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema is not Brain, CNSOther, or IntracranialGland.
    3. CS schema is invalid

    This edit verifies that CS Site-Specific Factor 24 is valid for a particular
    schema by doing  function calls to the CS Dynamic Link Library (dll).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF257" name="CS Site-Specific Factor25, Schema (CS)" tag="N1387" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.primarySite == null || line.csSiteSpecificFactor25 == null || line._csSchemaId == null)
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
    return true

if (line._csSchemaId == null)
    return true

if ((line._csSchemaId == 'nasopharynx' || line._csSchemaId == 'pharyngeal_tonsil') && Functions.matches(line.primarySite, /^C11[02389]$/))
    return line.csSiteSpecificFactor25 == '981'
if ((line._csSchemaId == 'esophagus_gejunction' || line._csSchemaId == 'stomach') && Functions.matches(line.primarySite, /^C16[3-9]$/))
    return line.csSiteSpecificFactor25 == '981'
if ((line._csSchemaId == 'esophagus_gejunction' || line._csSchemaId == 'stomach') && line.primarySite == 'C160')
    return line.csSiteSpecificFactor25 == '982'
if ((line._csSchemaId == 'peritoneum' || line._csSchemaId == 'peritoneum_female_gen') && Functions.matches(line.primarySite, /^C48[128]$/)
    && Functions.matches(line.histologicTypeIcdO3, /^858[0-9]|86[89]\d|8[78]\d\d|89[01]\d|892[01]|912\d|913[0-6]|914[1-9]|91[5-9]\d|9[2-4]\d\d|95[0-7]\d|958[012]|970[01]$/))
    return line.csSiteSpecificFactor25 == '981'

return Functions.isAcceptableCsCode(line, 'csSiteSpecificFactor25',line.csSiteSpecificFactor25)]]></expression>
            <message>CS site-specific factor 25 is invalid for this schema.</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor25, Primary Site, or Histologic Type ICD-O-3 is blank.
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and schema is not Brain, CNSOther, or IntracranialGland.
3. CS schema is invalid

This edit verifies that CS Site-Specific Factor25 is valid for a particular schema by doing function calls to the CS Dynamic Link Library (dll).

The following sites within Nasopharynx and Stomach schemas should have CS Site-Specific Factor25 of 981:
    Nasopharynx/PharyngealTonsil
    Primary Site: C110, C112, C113, C118, C119
    EsophagusGEJunction/Stomach
    Primary Site: C163-C169

    The following sites within EsophagusGEJunction should have CS Site-Specific Factor25 of 982:
    EsophagusGEJunction/Stomach
    Primary Site: C160

    The following sites/histologies within Peritoneum schema should have CS Site-Specific Factor25 of 981:
    Peritoneum/PeritoneumFemaleGen
    Primary Site: C481, C482, C488
    Histologic Type ICD-O-3:8580-8589,8680-8921,9120-9136,9141-9582,9700-9701]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-28">Edit created.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-24">Completely rewrote edit for CSv2 version 02.03.02.</event>
                <event version="SE12-008-02" user="murphyr" date="2012-08-28" ref="66736">Re-added missing parts of documentation.</event>
                <event version="SE12-008-03" user="depryf" date="2012-09-21" ref="66736">The previous fix was supposed to also fix the code, not just the documentation; this edit was not actually calling the DLL for validating the code; it does now.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF258" name="CS Extension, CS Tumor Size, Breast Schema (CS)" tag="N1173" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.csExtension == null || line.csTumorSize == null || line.histologicTypeIcdO3 == null || line.primarySite == null)
    return true
if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'breast') {
    if (line.csTumorSize == '997' && (line.csExtension != '050' && line.csExtension != '070'))
        return false
    if (line.csTumorSize == '996' && (line.csExtension > '400' && line.csExtension != '999'))
        return false
    if (line.csExtension == '170' && (line.csTumorSize != '990' && line.csTumorSize != '991' && line.csTumorSize != '992'))
        return false
    if (line.csExtension == '180' && line.csTumorSize != '995')
        return false
}

return true]]></expression>
            <message>CS Extension and CS Tumor Size conflict for Breast schema</message>
            <description><![CDATA[This edit verifies that CS Extension and CS Tumor Size are coded consistently
    for the Breast schema.

    This edit is skipped if any of the following conditions are true:
    1. CS Extension or CS Tumor Size is empty.
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

    This edit first determines the correct CS schema by doing a function call to the
    CS Dynamic Link Library (dll).  The function call passes Primary Site,
    Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to
    the dll and the CS schema name is returned.

    If CS schema is Breast:

    If CS Tumor Size = 997 (Paget disease of nipple without demonstrable tumor), CS
    Extension must = 050 (Paget without tumor) or 070 (Paget without tumor
    pathologically).

    If CS Tumor size = 996 (Mammographic/xerographic diagnosis only, no size given;
    clinically not palpable), CS Extension must not equal 400 or higher (T4 tumors),
    except for code 999 (unknown extension).

    If CS Extension = 170 (T1 with no other information on size or extension), CS
    Tumor Size must = 990, 991, or 992 (Stated as T1mic, T1b,T1NOS/T1c with no other
    information on size).

    If CS Extension = 180 (T2 with no other information on size or extension),CS
    Tumor Size must = 995 (Stated as T2 with no other information on size).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-03">Edit created.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-20">Changed CS Tumor size = 996 condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67741">Edit name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-12" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF259" name="CS Extension, SSF 24, Breast Schema (CS)" tag="N1064" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.csExtension == null || line.csSiteSpecificFactor24 == null || line.csSiteSpecificFactor24 == '988' || line.histologicTypeIcdO3 == null || line.primarySite == null)
    return true
if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'breast') {
    if (['8540','8541','8543'].contains(line.histologicTypeIcdO3) && line.csSiteSpecificFactor24 != '010' && line.csSiteSpecificFactor24 != '020')
        return false
    if ((line.csExtension == '050' || line.csExtension == '070') && line.csSiteSpecificFactor24 != '010' && line.csSiteSpecificFactor24 != '020')
        return false
}

return true]]></expression>
            <message>CS Extension and SSF24 conflict for Breast schema</message>
            <description><![CDATA[This edit verifies that for cases coded using the Breast schema, CS Extension,
    CS Site-Specific Factor 24 (Pagets Disease) and Histologic Type ICD-O-3 are
    coded consistently.

    This edit is skipped if any of the following conditions are true:
    1. CS Extension is empty.
    2. CS Site-Specific Factor 24 is empty or = 988 (not applicable or not
    collected).
    3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline).

    This edit first determines the correct CS schema by doing a function call to the
    CS Dynamic Link Library (dll).  The function call passes Primary Site,
    Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to
    the dll and the CS schema name is returned.

    If CS schema is Breast:

    If Histologic Type ICD-O-3 is coded as Paget disease of the breast (8540, 8541,
    8543), CS Site-Specific Factor 24 must = 010 (Paget disease present) or 020 (Pagetoid).

    If CS Extension = 050 or 070 (Paget disease of nipple), then CS SSF 24 must =
    010 (Paget disease present) or 020 (Pagetoid).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-03">Edit created.</event>
                <event version="SE12-005-04" user="murphyr" date="2011-10-04" ref="66527">Added code 020 for valid SSF24 value.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-12" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF260" name="CS Lymph Nodes, Nodes Pos, ColoAppRectal (CS)" tag="N1060" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,Regional_Nodes_Positive">
            <expression><![CDATA[if (line.csLymphNodes == null || line.regionalNodesPositive == null || line.histologicTypeIcdO3 == null || line.primarySite == null)
    return true
if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'colon' || line._csSchemaId == 'appendix' || line._csSchemaId == 'rectum') {
    if (line.regionalNodesPositive >= '01' && line.regionalNodesPositive <= '90' && ['400','410','420','430','450','460','470','480'].contains(line.csLymphNodes))
        return false
    if (['400','410','420','430','450','460','470','480'].contains(line.csLymphNodes) && (line.regionalNodesPositive != '95' && line.regionalNodesPositive != '97'))
        return false
}

return true]]></expression>
            <message>CS Lymph Nodes and regional pos nodes conflict for ColoAppRectal</message>
            <description><![CDATA[This edit verifies that for cases coded using the Colon, Appendix, or Rectum
    schemas, the following Table Note from CS Lymph Nodes is enforced:  "The number
    of positive regional nodes is required to calculate the correct N category for
    this site.  Codes 400-470 are for use when this number is not available, but the
    pathology report assigns an N1 or N2 category.  If information about the number
    of positive nodes is available, use codes 100, 200, or 300 rather than codes 400
    - 470.  The actual number of involved nodes will be coded in Reg LN Pos."

    This edit is skipped if any of the following conditions are true:
    1. CS Lymph Nodes is blank
    2. Regional Nodes Positive is blank
    3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

    This edit first determines the correct CS schema by doing a function call to the
    CS Dynamic Link Library (dll).  The function call passes Primary Site,
    Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to
    the dll and the CS schema number is returned.

    For cases using the Colon, Appendix, or Rectum schemas:
    If Regional Nodes Positive = 01 - 90 (number of positive nodes are known), CS
    Lymph Nodes must not = 400, 410, 420, 430, 450, 460, 470, 480.

    If CS Lymph Nodes = 400, 410, 420, 430, 450, 460, 470, 480, then Regional Nodes Positive
    must = 95 (positive aspiration of lymph node(s) was performed) or 97 (Positive
    nodes are documented, but the number is unspecified).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-03">Edit created.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-21">Added 430, 480 to list of lymph node values.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF261" name="CS Mets at DX, SSF 20, Breast Schema (CS)" tag="N1174" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.csMetsAtDx == null || line.csSiteSpecificFactor20 == null || line.csSiteSpecificFactor20 == '988' || line.histologicTypeIcdO3 == null || line.primarySite == null)
    return true
if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'breast') {
    if ((line.csMetsAtDx == '00' || line.csMetsAtDx == '05' || line.csMetsAtDx == '07') && line.csSiteSpecificFactor20 != '000' && line.csSiteSpecificFactor20 != '005')
        return false
    if (['10','40','42','44','50','60'].contains(line.csMetsAtDx) && (line.csSiteSpecificFactor20 == '000' || line.csSiteSpecificFactor20 == '005'))
        return false
    if (line.csMetsAtDx == '99' && line.csSiteSpecificFactor20 != '999')
        return false
}

return true]]></expression>
            <message>CS Mets at DX and SSF20 conflict for Breast schema</message>
            <description><![CDATA[This edit verifies that CS Mets at DX and CS Site-Specific Factor20 (Assessment of Positive Distant Metastases) are coded consistently for the Breast schema.

This edit is skipped if any of the following conditions are true:
1. CS Mets at DX or CS Site-Specific 20 is empty or = 988
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
3. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS schema is Breast:

    If CS Mets at DX = 00 (no mets at dx), 05 (CTC or DTC only), or 07 [Stated as M0(i+) with no other information on distant metastasis], CS Site-Specific Factor20 (Assessment of Positive Distant Metastases) must = 000 (no mets) or 005 [No clinical or radiographic evidence of distant metastasis, but deposits of molecularly or microscopically detected tumor cells in circulating blood, bone marrow or other non-regional nodal tissue that are 0.2 millimeters (mm) or less in a patient without symptoms or signs of metastasis].

    If CS Mets at DX = 10, 40, 42, 44, 50, 60 (positive mets), CS Site-Specific Factor20 must not = 000 or 005.

    If CS Mets at DX = 99 (unknown if mets), CS Site-Specific Factor20 must = 999 (unknown if mets).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-03">Edit created.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-27">Added 07 CS Mets at Dx code in first condition.</event>
                <event version="SE12-005-08" user="murphyr" date="2011-12-14" ref="66560">Added code 005 for no mets</event>
                <event version="SE13-010-01" user="murphyr" date="2013-06-14" ref="66892">Changed &apos;If CS Mets at DX = 10, 40, 42, 44, 50, 60 (positive mets), CS Site-Specific Factor20 must not = 000 or 999.&apos; to &apos;If CS Mets at DX = 10, 40, 42, 44, 50, 60 (positive mets), CS Site-Specific Factor20 must not = 000 or 005.&apos;</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67741">Edit name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-12" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF262" name="CS SSF 1, Histol, Urothelial Schemas (CS)" tag="N1746" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_1,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor1 == null || line.histologicTypeIcdO3 == null || line.primarySite == null)
    return true
if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'kidney_renal_pelvis' || line._csSchemaId == 'bladder' || line._csSchemaId == 'urethra') {
    if (line.csSiteSpecificFactor1 == '987' && ['8020', '8031', '8082', '8120','8121','8122','8123','8124','8130','8131','8050'].contains(line.histologicTypeIcdO3))
        return false
}

return true]]></expression>
            <message>CS SSF1 and Histology conflict for Urothelial schema</message>
            <description><![CDATA[This edit verifies that for cases coded using the KidneyRenalPelvis, Bladder, or Urethra schemas, the following Table Note from CS Site-Specific Factor 1 is enforced:  "If morphology is not urothelial, code 991."

    This edit is skipped if any of the following conditions are true:
    1. Site-Specific Factor 1 is blank
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

    This edit first determines the correct CS schema by doing a function call to the
    CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

    For cases using the KidneyRenalPelvis, Bladder, or Urethra schemas:
    If CS Site Specific Factor 1 (WHO/ISUP Grade) = 987 (not urothelial histology), Histologic Type ICD-O-3 must not = 8020, 8031, 8082, 8120-8124, 8130-8131, or 8050 (urothelial types as defined by the MPH rules).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-03">Edit created.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-21">Change SSF1 code from 991 to 987.</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-21" ref="66791">Added 8020, 8031, and 8082 to list of urothelial histologies that are not allowed if CS Site Specific Factor 1 (WHO/ISUP Grade) = 987 (not urothelial histology).</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF262DIG_P1" name="EOD--Old 2 digit, Primary Site (SEER IF262DIG)" tag="N3084" java-path="lines.line" category="inter-field" depends="Coding_System_for_EOD,Primary_Site">
            <expression><![CDATA[Integer site = Functions.asInt(line.primarySite.substring(1))

return (line.codingSystemForEod != '1' ||
       (((List)Context.Skin_IF262DIG).contains(site) &&
       Functions.between(line.histologicTypeIcdO3, '8720', '8790')) ||
        ((Map)Context.If26_2Digit).containsKey(site))]]></expression>
            <message>EOD--Old 2 digit and Primary Site conflict</message>
            <description><![CDATA[For cases coded using the SEER Two-digit Site-specific coding scheme (Coding System for Extent of Disease = 1) this edit validates the extent of disease according to the Two-digit Site-specific Extent of Disease codes allowable for each site as defined in the Extent of Disease - Codes and Coding Instructions Manual (1977).

If the case is in situ (Behavior = 2), the Extent of Disease code must indicate an in situ behavior.  0- is valid for all sites.  Also valid are 01 and 02 for anatomic site codes C171, C172, C180-C189, C199, C209 (jejunum, ileum, colon, rectosigmoid and rectum).

Similarly if the case is invasive the extent of disease may not specify in situ.  Thus '0-' is invalid for all sites if Behavior = 3.  Also '01' and '02' are invalid for anatomic site codes.

NOTE:  For those cases using the two-digit coding scheme, only those sites
       that do not have specific Extent of Disease code defined are
       allowed to have non-specific Extent of Disease codes; the other
       sites must have a specific code. Currently there is no edit on
       lymphoid tissues using the two-digit code.  Any site that has a
       melanoma or lymphoma histology will be edited according to the
       Extent of Disease coding system for that site unless it is
       specifically listed in the coding scheme for the melanomas or
       lymphoid tissue]]></description>
            <history>
                <event version="SE11-001-01" user="greend" date="1985-11-29">Modifications have been made to the &quot;Bufftabs&quot; table of valid two-digit extent of disease codes used by this edit.  Also the site of fallopian tubes with in situ behavior is now valid.</event>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topography and morphology codes from ICD-O-1 to ICD-O-2.</event>
                <event version="SE11-001-08" user="greend" date="1992-02-03">Modifications were made to the build program &quot;Bufftabs&quot; to allow &apos;0-&apos; valid for all sites.</event>
                <event version="SE11-001-08" user="greend" date="1992-07-15">The copy library member &quot;Bufftabs&quot; was renamed &quot;Buffdata&quot;.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="cooki" date="2024-07-18" ref="69509">Deleted deprecated dependency.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Switch from ICD-O-2 to ICD-O-3.</event>
            </history>
        </rule>
        <rule id="IF262DIG_P2" name="EOD--Old 2 digit, Primary Site (SEER IF262DIG)" tag="N3084" java-path="lines.line" category="inter-field" depends="Coding_System_for_EOD,EOD--Old_2_Digit,IF262DIG_P1,Primary_Site">
            <expression><![CDATA[Integer site = Functions.asInt(line.primarySite.substring(1))

return ('1' != line.codingSystemForEod || ([24,99,111,142,379,422,770,771,772,773,774,775,776,777,778,779].contains(site)
     && Functions.between(line.histologicTypeIcdO3,'9590','9698')) || (((List)Context.Skin_IF262DIG).contains(site) && Functions.between(line.histologicTypeIcdO3,'8720','8790')
     && ((List)Context.Eod_2Digit_Table_39).contains(line.eodOld2Digit)) || ((List)((Map)Context.If26_2Digit).getOrDefault(site, [])).contains(line.eodOld2Digit))]]></expression>
            <message>Primary Site, EOD--Old 2 digit, Coding System for EOD conflict</message>
            <description><![CDATA[For cases coded using the SEER Two-digit Site-specific coding scheme (Coding System for Extent of Disease = 1) this edit validates the extent of disease according to the Two-digit Site-specific Extent of Disease codes allowable for each site as defined in the Extent of Disease - Codes and Coding Instructions Manual (1977).

If the case is in situ (Behavior = 2), the Extent of Disease code must indicate an in situ behavior.  0- is valid for all sites.  Also valid are 01 and 02 for anatomic site codes C171, C172, C180-C189, C199, C209 (jejunum, ileum, colon, rectosigmoid and rectum).

Similarly if the case is invasive the extent of disease may not specify in situ.  Thus '0-' is invalid for all sites if Behavior = 3.  Also '01' and '02' are invalid for anatomic site codes.

NOTE:  For those cases using the two-digit coding scheme, only those sites
       that do not have specific Extent of Disease code defined are
       allowed to have non-specific Extent of Disease codes; the other
       sites must have a specific code. Currently there is no edit on
       lymphoid tissues using the two-digit code.  Any site that has a
       melanoma or lymphoma histology will be edited according to the
       Extent of Disease coding system for that site unless it is
       specifically listed in the coding scheme for the melanomas or
       lymphoid tissue]]></description>
            <history>
                <event version="SE11-001-01" user="greend" date="1985-11-29">Modifications have been made to the &quot;Bufftabs&quot; table of valid two-digit extent of disease codes used by this edit.  Also the site of fallopian tubes with in situ behavior is now valid.</event>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topography and morphology codes from ICD-O-1 to ICD-O-2.</event>
                <event version="SE11-001-08" user="greend" date="1992-02-03">Modifications were made to the build program &quot;Bufftabs&quot; to allow &apos;0-&apos; valid for all sites.</event>
                <event version="SE11-001-08" user="greend" date="1992-07-15">The copy library member &quot;Bufftabs&quot; was renamed &quot;Buffdata&quot;.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="cooki" date="2024-07-18" ref="69509">Deleted deprecated dependency.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Switch from ICD-O-2 to ICD-O-3.</event>
            </history>
        </rule>
        <rule id="IF262DIG_P3" name="EOD--Old 2 digit, Primary Site (SEER IF262DIG)" tag="N3084" java-path="lines.line" category="inter-field" depends="Coding_System_for_EOD,EOD--Old_2_Digit,IF262DIG_P1,IF262DIG_P2,Primary_Site">
            <expression><![CDATA[Integer site = Functions.asInt(line.primarySite.substring(1))

if (line.codingSystemForEod != '1' || ([24,99,111,142,379,422,770,771,772,773,774,775,776,777,778,779].contains(site)
        && Functions.between(line.histologicTypeIcdO3,'9590','9698')))
    return true
if (line.behaviorCodeIcdO3 == '2') {
    if (((List)Context.SmallInstToRectum_IF262DIG).contains(site))
        return (line.eodOld2Digit == '01' || line.eodOld2Digit == '02' || line.eodOld2Digit == '0-')
    return line.eodOld2Digit == '0-'
}
if (line.behaviorCodeIcdO3 == '3') {
   if (((List)Context.SmallInstToRectum_IF262DIG).contains(site))
       return ( ! (line.eodOld2Digit == '01' || line.eodOld2Digit == '02' || line.eodOld2Digit == '0-'))
   return line.eodOld2Digit != '0-'
}
return true]]></expression>
            <message>InSitu Behavior and EOD--Old 2 digit conflict</message>
            <description><![CDATA[For cases coded using the SEER Two-digit Site-specific coding scheme (Coding System for Extent of Disease = 1) this edit validates the extent of disease according to the Two-digit Site-specific Extent of Disease codes allowable for each site as defined in the Extent of Disease - Codes and Coding Instructions Manual (1977).

If the case is in situ (Behavior = 2), the Extent of Disease code must indicate an in situ behavior.  0- is valid for all sites.  Also valid are 01 and 02 for anatomic site codes C171, C172, C180-C189, C199, C209 (jejunum, ileum, colon, rectosigmoid and rectum).

Similarly if the case is invasive the extent of disease may not specify in situ.  Thus '0-' is invalid for all sites if Behavior = 3.  Also '01' and '02' are invalid for anatomic site codes.

NOTE:  For those cases using the two-digit coding scheme, only those sites
       that do not have specific Extent of Disease code defined are
       allowed to have non-specific Extent of Disease codes; the other
       sites must have a specific code. Currently there is no edit on
       lymphoid tissues using the two-digit code.  Any site that has a
       melanoma or lymphoma histology will be edited according to the
       Extent of Disease coding system for that site unless it is
       specifically listed in the coding scheme for the melanomas or
       lymphoid tissue]]></description>
            <history>
                <event version="SE11-001-01" user="greend" date="1985-11-29">Modifications have been made to the &quot;Bufftabs&quot; table of valid two-digit extent of disease codes used by this edit.  Also the site of fallopian tubes with in situ behavior is now valid.</event>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topography and morphology codes from ICD-O-1 to ICD-O-2.</event>
                <event version="SE11-001-08" user="greend" date="1992-02-03">Modifications were made to the build program &quot;Bufftabs&quot; to allow &apos;0-&apos; valid for all sites.</event>
                <event version="SE11-001-08" user="greend" date="1992-07-15">The copy library member &quot;Bufftabs&quot; was renamed &quot;Buffdata&quot;.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="cooki" date="2024-07-18" ref="69509">Deleted deprecated dependency.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Switch from ICD-O-2 to ICD-O-3.</event>
            </history>
        </rule>
        <rule id="IF263" name="CS SSF 2, Dx Conf, KidneyRenalPelvis (CS)" tag="N1063" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor2 == null || line.histologicTypeIcdO3 == null || line.primarySite == null)
    return true
if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'kidney_renal_pelvis') {
    if (((line.csSiteSpecificFactor2 >= '000' && line.csSiteSpecificFactor2 <= '980') || line.csSiteSpecificFactor2 == '991') && line.diagnosticConfirmation != '1')
        return false
}

return true]]></expression>
            <message>CS SSF2 and Dx conf conflict for KidneyRenalPelvis schema</message>
            <description><![CDATA[This edit verifies that for cases coded using the KidneyRenalPelvis schema, CS
    Site-Specific Factor 2 (depth of renal parenchymal invasion) and Diagnostic
    Confirmation are coded consistently.

    This edit is skipped if any of the following conditions are true:
    1. Site-Specific Factor 2 is blank
    2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

    This edit first determines the correct CS schema by doing a function call to the
    CS Dynamic Link Library (dll).  The function call passes Primary Site,
    Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to
    the dll and the CS schema name is returned.

    For cases using the KidneyRenalPelvis schema:
    If CS Site-Specific Factor 2 = 000-980 or 991 (positive statement about
    invasion), Diagnostic Confirmation must = 1 (positive histology).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-03">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67741">Edit name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF264" name="CS SSF 4, LymphNodes, NodesPos, ColoRectal (CS)" tag="N1059" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_4,Histologic_Type_ICD-O-3,Primary_Site,Regional_Nodes_Positive">
            <expression><![CDATA[if (line.csSiteSpecificFactor4 == null || line.csLymphNodes == null || line.regionalNodesPositive == null || line.histologicTypeIcdO3 == null || line.primarySite == null)
    return true
if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'colon' || line._csSchemaId == 'rectum') {
    if (((line.csSiteSpecificFactor4 >= '001' && line.csSiteSpecificFactor4 <= '081') || line.csSiteSpecificFactor4 == '990') && line.regionalNodesPositive >= '01' && line.regionalNodesPositive <= '97' && line.csLymphNodes == '050')
        return false
    if (line.csLymphNodes == '050' && line.csSiteSpecificFactor4 == '000')
        return false
}

return true]]></expression>
            <message>CS SSF4, CS Lymph nodes, Reg Pos Nodes conflict for ColoAppRectal</message>
            <description><![CDATA[This edit verifies that for cases coded using the Colon or Rectum
    schemas, the following Table Note from CS Lymph Nodes is enforced:  "If there
    are tumor deposits and node involvement, code the information on node
    involvement. That is, do not use code 050."

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 4 is blank
    2. CS Lymph Nodes is blank
    3. Regional Nodes Positive is blank
    4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

    This edit first determines the correct CS schema by doing a function call to the
    CS Dynamic Link Library (dll).  The function call passes Primary Site,
    Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to
    the dll and the CS schema name is returned.

    For cases using the Colon or Rectum schemas:

    If CS Site-Specific Factor 4 (tumor deposits) = 001-081, 990 (tumor deposits are
    present) and Regional Nodes Positive = 01 - 97 (nodes are removed and are
    positive), then CS Lymph Nodes must not = 050 (tumor deposits without regional
    metastasis).

    If CS Site-Specific Factor 4 (tumor deposits) = 000 (no tumor deposits), then CS
    Lymph Nodes must not = 050 (tumor deposits without regional metastasis).

    If CS Lymph Nodes = 050 (tumor deposits without regional metastasis), then CS
    Site-Specific Factor 4 must not = 000 (no tumor deposits).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-03">Edit created.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-11">Removed check for Appendix.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF264DIG_P1" name="EOD--Old 4 digit (SEER IF264DIG_P1)" tag="N3106" java-path="lines.line" category="inter-field" depends="Coding_System_for_EOD,Histologic_Type_ICD-O-3,Primary_Site,Type_of_Reporting_Source">
            <expression><![CDATA[Integer site = Functions.asInt(line.primarySite.substring(1))
Integer histIcdO3 = Functions.asInt(line.histologicTypeIcdO3)

if (line.codingSystemForEod == '3' && line.typeOfReportingSource != '7') {
   if (line.histologicTypeIcdO3 == null || histIcdO3 < 8000 || histIcdO3 > 9999)
      return false
   if (line.behaviorCodeIcdO3 != '2' && line.behaviorCodeIcdO3 != '3')
      return false
   if (line.primarySite == null || site > 809 || site < 0)
      return false
   if ((!((Map)Context.If26_4DIG_SITE_SIZE).containsKey(site)) &&
        !((Map)Context.If26_4DIG_SITE_HIST_SIZE).containsKey(site))
      return false
   if (((Map)Context.If26_4DIG_LEUK_LYMPH_SIZE).containsKey(histIcdO3) && line.behaviorCodeIcdO3 == '2')
      return false
}
return true]]></expression>
            <message>Four digit EOD edit failure</message>
            <description><![CDATA[For cases coded using the SEER 4-digit Site-specific Extent of Disease (Coding System for Extent of Disease = 3), this edit validates the Extent of Disease according to the codes allowable for each site as defined in Extent of Disease New 4-Digit Schemes - Codes and Coding Instructions (1983).

For death certificate only cases (Type of Reporting Source = 7), the four digit extent of disease must be '9999'.

For an in situ case (Behavior = 2), then the extent of disease must also indicate in situ.

1.  For primary sites where in situs are possible a zero in the Extension
    subfield indicates in situ.  In addition for bladder (sites C670-C679)
    a '1' in Extension indicates in situ and a '2' may indicate either in
    situ or invasive.  For sites where in situs are not considered
    possible, no code is valid with a behavior of '2'.

2.  Any case reported as in situ must have the Lymph Nodes subfield equal
    to '0'.

For invasive cases (Behavior = 3) the Extension codes associated with in situ may not be used.  Thus an Extension code of '0' is invalid for all sites and for bladder (sites C670-C679) an Extension code of '1' is also invalid.]]></description>
            <history>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topology and morphology code from ICD-O-1 to ICD-O-2.  Modified program logic so that when extesion or node is non-numeric the proper malignant or in situ flag is set for each respectively.  Edit now verifies that if reporting source is death certificate only, all four digit extent of disease codes must be all &apos;9&apos;s.</event>
                <event version="SE11-001-08" user="greend" date="1992-01-15">Deleted parts of code that dealt with mycosis fungoides.  The flag was removed.  This error is checked in other edits.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-25" ref="67758">Edit name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="cooki" date="2024-07-18" ref="69509">Deleted deprecated dependency.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Switch from ICD-O-2 to ICD-O-3.</event>
                <event version="SE24-024-08" user="beverung" date="2024-08-14" ref="69527">Updated histologies in If26_4DIG_LEUK_LYMPH_SIZE.</event>
            </history>
        </rule>
        <rule id="IF264DIG_P2" name="EOD--Old 4 digit_2, Size (SEER IF264DIG_P2)" tag="N3101" java-path="lines.line" category="inter-field" depends="Coding_System_for_EOD,EOD--Old_4_Digit_Size,Histologic_Type_ICD-O-3,IF264DIG_P1,Primary_Site,Type_of_Reporting_Source">
            <expression><![CDATA[Integer site = Functions.asInt(line.primarySite.substring(1))
Integer histIcdO3 = Functions.asInt(line.histologicTypeIcdO3)
String eodOld4DigitSize = null
if (line.eodOld4Digit != null && line.eodOld4Digit.length() > 1)
    eodOld4DigitSize = line.eodOld4Digit.substring(0, 2)
Integer eod4DigitSizeInt = Functions.asInt(eodOld4DigitSize)

if (line.codingSystemForEod != '3')
   return true
if (line.typeOfReportingSource == '7')
   return (eod4DigitSizeInt == 99)
if (! (Functions.matches(eodOld4DigitSize, /^[0-9][0-9]$/)))
   return false

if (((List)((Map)Context.If26_4DIG_LEUK_LYMPH_SIZE).getOrDefault(histIcdO3, [])).contains(eod4DigitSizeInt))
    return true

if (((List)((Map)((Map)Context.If26_4DIG_SITE_HIST_SIZE).getOrDefault(site, [:])).getOrDefault(histIcdO3, [])).contains(eod4DigitSizeInt))
    return true

if (((List)((Map)Context.If26_4DIG_SITE_SIZE).getOrDefault(site, [])).contains(eod4DigitSizeInt))
    return true

return false]]></expression>
            <message>Primary Site and EOD--Old 4 digit, size conflict</message>
            <description><![CDATA[For cases coded using the SEER 4-digit Site-specific Extent of Disease (Coding System for Extent of Disease = 3), this edit validates the Extent of Disease according to the codes allowable for each site as defined in Extent of Disease New 4-Digit Schemes - Codes and Coding Instructions (1983).

For death certificate only cases (Type of Reporting Source = 7), the four digit extent of disease must be '9999'.

For an in situ case (Behavior = 2), then the extent of disease must also indicate in situ.

1.  For primary sites where in situs are possible a zero in the Extension
    subfield indicates in situ.  In addition for bladder (sites C670-C679)
    a '1' in Extension indicates in situ and a '2' may indicate either in
    situ or invasive.  For sites where in situs are not considered
    possible, no code is valid with a behavior of '2'.

2.  Any case reported as in situ must have the Lymph Nodes subfield equal
    to '0'.

For invasive cases (Behavior = 3) the Extension codes associated with in situ may not be used.  Thus an Extension code of '0' is invalid for all sites and for bladder (sites C670-C679) an Extension code of '1' is also invalid.]]></description>
            <history>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topology and morphology code from ICD-O-1 to ICD-O-2.  Modified program logic so that when extesion or node is non-numeric the proper malignant or in situ flag is set for each respectively.  Edit now verifies that if reporting source is death certificate only, all four digit extent of disease codes must be all &apos;9&apos;s.</event>
                <event version="SE11-001-08" user="greend" date="1992-01-15">Deleted parts of code that dealt with mycosis fungoides.  The flag was removed.  This error is checked in other edits.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-25" ref="67758">Edit name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-07-27" ref="68443">Replaced EOD--Old 4 Digit Size sub-field with EOD--Old 4 Digit parent field.</event>
                <event version="SE24-024-06" user="cooki" date="2024-07-18" ref="69509">Deleted deprecated dependency.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Switch from ICD-O-2 to ICD-O-3.</event>
                <event version="SE24-024-08" user="beverung" date="2024-08-14" ref="69527">Updated histologies in If26_4DIG_LEUK_LYMPH_SIZE.</event>
            </history>
        </rule>
        <rule id="IF264DIG_P3" name="EOD--Old 4 digit_3, Extension-In Situ (SEER IF264DIG_P3)" tag="N3102" java-path="lines.line" category="inter-field" depends="Coding_System_for_EOD,EOD--Old_4_Digit_Extent,Histologic_Type_ICD-O-3,IF264DIG_P1,Primary_Site,Type_of_Reporting_Source">
            <expression><![CDATA[Integer histIcdO3 = Functions.asInt(line.histologicTypeIcdO3)
Integer site = Functions.asInt(line.primarySite.substring(1))
String eodOld4DigitExtent = null
if (line.eodOld4Digit != null && line.eodOld4Digit.length() > 2)
    eodOld4DigitExtent = line.eodOld4Digit.substring(2, 3)
Integer eod4DigitExtInt = Functions.asInt(eodOld4DigitExtent)

if ((line.codingSystemForEod != '3') || (line.behaviorCodeIcdO3 != '2'))
   return true
if (line.typeOfReportingSource == '7')
   return (eodOld4DigitExtent == '9')
if (! (Functions.matches(eodOld4DigitExtent, /^[0-9]$/)))
   return false

if (((List)((Map)((Map)Context.If26_4DIG_SITE_HIST_INSITU_EXT).getOrDefault(site, [:])).getOrDefault(histIcdO3, [])).contains(eod4DigitExtInt))
    return true

if (((List)((Map)Context.If26_4DIG_SITE_INSITU_EXT).getOrDefault(site, [])).contains(eod4DigitExtInt))
    return true

return false]]></expression>
            <message>Primary Site and InSitu EOD--Old 4 digit, extent conflict</message>
            <description><![CDATA[For cases coded using the SEER 4-digit Site-specific Extent of Disease (Coding System for Extent of Disease = 3), this edit validates the Extent of Disease according to the codes allowable for each site as defined in Extent of Disease New 4-Digit Schemes - Codes and Coding Instructions (1983).

For death certificate only cases (Type of Reporting Source = 7), the four digit extent of disease must be '9999'.

For an in situ case (Behavior = 2), then the extent of disease must also indicate in situ.

1.  For primary sites where in situs are possible a zero in the Extension
    subfield indicates in situ.  In addition for bladder (sites C670-C679)
    a '1' in Extension indicates in situ and a '2' may indicate either in
    situ or invasive.  For sites where in situs are not considered
    possible, no code is valid with a behavior of '2'.

2.  Any case reported as in situ must have the Lymph Nodes subfield equal
    to '0'.

For invasive cases (Behavior = 3) the Extension codes associated with in situ may not be used.  Thus an Extension code of '0' is invalid for all sites and for bladder (sites C670-C679) an Extension code of '1' is also invalid.]]></description>
            <history>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topology and morphology code from ICD-O-1 to ICD-O-2.  Modified program logic so that when extesion or node is non-numeric the proper malignant or in situ flag is set for each respectively.  Edit now verifies that if reporting source is death certificate only, all four digit extent of disease codes must be all &apos;9&apos;s.</event>
                <event version="SE11-001-08" user="greend" date="1992-01-15">Deleted parts of code that dealt with mycosis fungoides.  The flag was removed.  This error is checked in other edits.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-25" ref="67758">Edit name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-07-27" ref="68443">Replaced EOD--Old 4 Digit Extent sub-field with EOD--Old 4 Digit parent field.</event>
                <event version="SE24-024-06" user="cooki" date="2024-07-18" ref="69509">Deleted deprecated dependency.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Switch from ICD-O-2 to ICD-O-3.</event>
                <event version="SE24-024-08" user="beverung" date="2024-08-14" ref="69527">Updated histologies in If26_4DIG_SITE_HIST_INSITU_EXT.</event>
            </history>
        </rule>
        <rule id="IF264DIG_P4" name="EOD--Old 4 digit_4, Extension-Malig (SEER IF264DIG_P4)" tag="N3103" java-path="lines.line" category="inter-field" depends="Coding_System_for_EOD,EOD--Old_4_Digit_Extent,Histologic_Type_ICD-O-3,IF264DIG_P1,Primary_Site,Type_of_Reporting_Source">
            <expression><![CDATA[Integer site = Functions.asInt(line.primarySite.substring(1))
Integer histIcdO3 = Functions.asInt(line.histologicTypeIcdO3)
String eodOld4DigitExtent = null
if (line.eodOld4Digit != null && line.eodOld4Digit.length() > 2)
    eodOld4DigitExtent = line.eodOld4Digit.substring(2, 3)
Integer eod4DigitExtInt = Functions.asInt(eodOld4DigitExtent)

if (line.codingSystemForEod != '3' || line.behaviorCodeIcdO3 != '3')
   return true
if (line.typeOfReportingSource == '7')
   return (eodOld4DigitExtent  == '9')
if (!Functions.matches(eodOld4DigitExtent, /^[0-9]$/))
   return false

if (((List)((Map)Context.If26_4DIG_LEUK_LYMPH_EXT).getOrDefault(histIcdO3, [])).contains(eod4DigitExtInt))
    return true

if (((List)((Map)((Map)Context.If26_4DIG_SITE_HIST_MALIG_EXT).getOrDefault(site, [:])).getOrDefault(histIcdO3, [])).contains(eod4DigitExtInt))
    return true

if (((List)((Map)Context.If26_4DIG_SITE_MALIG_EXT).getOrDefault(site, [])).contains(eod4DigitExtInt))
    return true

return false]]></expression>
            <message>Primary Site and Malig EOD--Old 4 digit, extent conflict</message>
            <description><![CDATA[For cases coded using the SEER 4-digit Site-specific Extent of Disease (Coding System for Extent of Disease = 3), this edit validates the Extent of Disease according to the codes allowable for each site as defined in Extent of Disease New 4-Digit Schemes - Codes and Coding Instructions (1983).

For death certificate only cases (Type of Reporting Source = 7), the four digit extent of disease must be '9999'.

For an in situ case (Behavior = 2), then the extent of disease must also indicate in situ.

1.  For primary sites where in situs are possible a zero in the Extension
    subfield indicates in situ.  In addition for bladder (sites C670-C679)
    a '1' in Extension indicates in situ and a '2' may indicate either in
    situ or invasive.  For sites where in situs are not considered
    possible, no code is valid with a behavior of '2'.

2.  Any case reported as in situ must have the Lymph Nodes subfield equal
    to '0'.

For invasive cases (Behavior = 3) the Extension codes associated with in situ may not be used.  Thus an Extension code of '0' is invalid for all sites and for bladder (sites C670-C679) an Extension code of '1' is also invalid.]]></description>
            <history>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topology and morphology code from ICD-O-1 to ICD-O-2.  Modified program logic so that when extesion or node is non-numeric the proper malignant or in situ flag is set for each respectively.  Edit now verifies that if reporting source is death certificate only, all four digit extent of disease codes must be all &apos;9&apos;s.</event>
                <event version="SE11-001-08" user="greend" date="1992-01-15">Deleted parts of code that dealt with mycosis fungoides.  The flag was removed.  This error is checked in other edits.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-25" ref="67758">Edit name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-07-27" ref="68443">Replaced EOD--Old 4 Digit Extent sub-field with EOD--Old 4 Digit parent field.</event>
                <event version="SE24-024-06" user="cooki" date="2024-07-18" ref="69509">Deleted deprecated dependency.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Switch from ICD-O-2 to ICD-O-3.</event>
                <event version="SE24-024-08" user="beverung" date="2024-08-14" ref="69527">Updated histologies in If26_4DIG_LEUK_LYMPH_EXT and If26_4DIG_SITE_HIST_MALIG_EXT.</event>
            </history>
        </rule>
        <rule id="IF264DIG_P5" name="EOD--Old 4 digit_5, LymphNodes-In Situ (SEER IF264DIG_P5)" tag="N3104" java-path="lines.line" category="inter-field" depends="Coding_System_for_EOD,EOD--Old_4_Digit_Nodes,Histologic_Type_ICD-O-3,IF264DIG_P1,Primary_Site,Type_of_Reporting_Source">
            <expression><![CDATA[Integer site = Functions.asInt(line.primarySite.substring(1))
Integer histIcdO3 = Functions.asInt(line.histologicTypeIcdO3)
String eodOld4DigitNodes = null
if (line.eodOld4Digit != null && line.eodOld4Digit.length() > 3)
    eodOld4DigitNodes = line.eodOld4Digit.substring(3, 4)
Integer eod4DigitNodesInt = Functions.asInt(eodOld4DigitNodes)

if (line.codingSystemForEod != '3' || line.behaviorCodeIcdO3 != '2')
   return true
if (line.typeOfReportingSource == '7')
   return eodOld4DigitNodes == '9'
if (! (Functions.matches(eodOld4DigitNodes, /^[0-9]$/)))
   return false

if (((List)((Map)((Map)Context.If26_4DIG_SITE_HIST_INSITU_NODES).getOrDefault(site, [:])).getOrDefault(histIcdO3, [])).contains(eod4DigitNodesInt))
    return true

if (((List)((Map)Context.If26_4DIG_SITE_INSITU_NODES).getOrDefault(site, [])).contains(eod4DigitNodesInt))
    return true

return false]]></expression>
            <message>Primary Site and InSitu EOD--Old 4 digit, nodes conflict</message>
            <description><![CDATA[For cases coded using the SEER 4-digit Site-specific Extent of Disease (Coding System for Extent of Disease = 3), this edit validates the Extent of Disease according to the codes allowable for each site as defined in Extent of Disease New 4-Digit Schemes - Codes and Coding Instructions (1983).

For death certificate only cases (Type of Reporting Source = 7), the four digit extent of disease must be '9999'.

For an in situ case (Behavior = 2), then the extent of disease must also indicate in situ.

1.  For primary sites where in situs are possible a zero in the Extension
    subfield indicates in situ.  In addition for bladder (sites C670-C679)
    a '1' in Extension indicates in situ and a '2' may indicate either in
    situ or invasive.  For sites where in situs are not considered
    possible, no code is valid with a behavior of '2'.

2.  Any case reported as in situ must have the Lymph Nodes subfield equal
    to '0'.

For invasive cases (Behavior = 3) the Extension codes associated with in situ may not be used.  Thus an Extension code of '0' is invalid for all sites and for bladder (sites C670-C679) an Extension code of '1' is also invalid.]]></description>
            <history>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topology and morphology code from ICD-O-1 to ICD-O-2.  Modified program logic so that when extesion or node is non-numeric the proper malignant or in situ flag is set for each respectively.  Edit now verifies that if reporting source is death certificate only, all four digit extent of disease codes must be all &apos;9&apos;s.</event>
                <event version="SE11-001-08" user="greend" date="1992-01-15">Deleted parts of code that dealt with mycosis fungoides.  The flag was removed.  This error is checked in other edits.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-25" ref="67758">Edit name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-07-27" ref="68443">Replaced EOD--Old 4 Digit Nodes sub-field with EOD--Old 4 Digit parent field.</event>
                <event version="SE24-024-06" user="cooki" date="2024-07-18" ref="69509">Deleted deprecated dependency.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Switch from ICD-O-2 to ICD-O-3.</event>
            </history>
        </rule>
        <rule id="IF264DIG_P6" name="EOD--Old 4 digit_6, LymphNodes-Malig (SEER IF264DIG_P6)" tag="N3105" java-path="lines.line" category="inter-field" depends="Coding_System_for_EOD,EOD--Old_4_Digit_Nodes,Histologic_Type_ICD-O-3,IF264DIG_P1,Primary_Site,Type_of_Reporting_Source">
            <expression><![CDATA[Integer site = Functions.asInt(line.primarySite.substring(1))
Integer histIcdO3 = Functions.asInt(line.histologicTypeIcdO3)
String eodOld4DigitNodes = null
if (line.eodOld4Digit != null && line.eodOld4Digit.length() > 3)
    eodOld4DigitNodes = line.eodOld4Digit.substring(3, 4)
Integer eod4DigitNodesInt = Functions.asInt(eodOld4DigitNodes)

if (line.codingSystemForEod != '3' || line.behaviorCodeIcdO3 != '3')
   return true
if (line.typeOfReportingSource == '7')
   return (eodOld4DigitNodes == '9')
if (! (Functions.matches(eodOld4DigitNodes, /^[0-9]$/)))
   return false

if (((List)((Map)Context.If26_4DIG_LEUK_LYMPH_NODES).getOrDefault(histIcdO3, [])).contains(eod4DigitNodesInt))
    return true

if (((List)((Map)((Map)Context.If26_4DIG_SITE_HIST_MALIG_NODES).getOrDefault(site, [:])).getOrDefault(histIcdO3, [])).contains(eod4DigitNodesInt))
    return true

if (((List)((Map)Context.If26_4DIG_SITE_MALIG_NODES).getOrDefault(site, [])).contains(eod4DigitNodesInt))
    return true

return false]]></expression>
            <message>Primary Site and Malig EOD--Old 4 digit, nodes conflict</message>
            <description><![CDATA[For cases coded using the SEER 4-digit Site-specific Extent of Disease (Coding System for Extent of Disease = 3), this edit validates the Extent of Disease according to the codes allowable for each site as defined in Extent of Disease New 4-Digit Schemes - Codes and Coding Instructions (1983).

For death certificate only cases (Type of Reporting Source = 7), the four digit extent of disease must be '9999'.

For an in situ case (Behavior = 2), then the extent of disease must also indicate in situ.

1.  For primary sites where in situs are possible a zero in the Extension
    subfield indicates in situ.  In addition for bladder (sites C670-C679)
    a '1' in Extension indicates in situ and a '2' may indicate either in
    situ or invasive.  For sites where in situs are not considered
    possible, no code is valid with a behavior of '2'.

2.  Any case reported as in situ must have the Lymph Nodes subfield equal
    to '0'.

For invasive cases (Behavior = 3) the Extension codes associated with in situ may not be used.  Thus an Extension code of '0' is invalid for all sites and for bladder (sites C670-C679) an Extension code of '1' is also invalid.]]></description>
            <history>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topology and morphology code from ICD-O-1 to ICD-O-2.  Modified program logic so that when extesion or node is non-numeric the proper malignant or in situ flag is set for each respectively.  Edit now verifies that if reporting source is death certificate only, all four digit extent of disease codes must be all &apos;9&apos;s.</event>
                <event version="SE11-001-08" user="greend" date="1992-01-15">Deleted parts of code that dealt with mycosis fungoides.  The flag was removed.  This error is checked in other edits.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-25" ref="67758">Edit name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-07-27" ref="68443">Replaced EOD--Old 4 Digit Nodes sub-field with EOD--Old 4 Digit parent field.</event>
                <event version="SE24-024-06" user="cooki" date="2024-07-18" ref="69509">Deleted deprecated dependency.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Switch from ICD-O-2 to ICD-O-3.</event>
                <event version="SE24-024-08" user="beverung" date="2024-08-14" ref="69527">Updated histologies in If26_4DIG_LEUK_LYMPH_NODES.</event>
            </history>
        </rule>
        <rule id="IF265" name="CS SSF 5, RX Summ--Surg, ColoRectal (CS)" tag="N1118" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_5,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Surg_Prim_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor5 == null || line.csSiteSpecificFactor5 == '988' || line.rxSummSurgPrimSite == null || line.histologicTypeIcdO3 == null || line.primarySite == null)
    return true
if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'colon' || line._csSchemaId == 'rectum') {
    if (['000','010','020','030'].contains(line.csSiteSpecificFactor5) && (line.rxSummSurgPrimSite == '00' || line.rxSummSurgPrimSite == '99'))
        return false
}

return true]]></expression>
            <message>CS SSF5 and RX Summ--surg prim site conflict for ColoRectal</message>
            <description><![CDATA[This edit verifies that for cases coded using the Colon or Rectum schemas, CS Site-Specific Factor 5 (Tumor Regression Grade) and RX Summ--Surg Prim Site are coded consistently.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 5 is blank or = 988
2. RX Summ--Surgery Prim Site is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

For cases using the Colon or Rectum schemas:
If CS Site-specific Factor 5 = 000, 010, 020, or 030 (statement about tumor regression grade), RX Summ--Surg Prim Site must not = 00 or 99 (no surgery of primary site or unknown if surgery performed).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-03">Edit created.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-26" ref="67054">Fixed cases using the Colong or Rectum schemas which was checking for SSF5 value of 101 instead of 010.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF266" name="CS Version Input Current, CS Version Derived (CS)" tag="N1214" java-path="lines.line" category="inter-field">
            <expression><![CDATA[return line.csVersionDerived == null || line.csVersionInputCurrent == null || line.csVersionDerived >= line.csVersionInputCurrent]]></expression>
            <message>CS Version Derived must be &gt; or = CS Version Input Current.</message>
            <description><![CDATA[This edit is skipped if either field is blank.

    CS Version Derived must be greater than or equal to CS Version Input Current.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-03">Edit created.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF268" name="CS Version Input Original, Version Input Curr (CS)" tag="N1213" java-path="lines.line" category="inter-field" depends="CS_Version_Input_Current,CS_Version_Input_Original">
            <expression><![CDATA[return line.csVersionInputCurrent == null || line.csVersionInputOriginal == null || line.csVersionInputCurrent >= line.csVersionInputOriginal]]></expression>
            <message>CS Version Current must be &gt; or  = CS Version Input Original.</message>
            <description><![CDATA[This edit is skipped if either field is blank.

    CS Version Input Current must be greater than or equal to CS Version Input Original.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-03">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF269" name="Obsolete Codes - CS Tumor Size (CS)" tag="N1258" java-path="lines.line" category="inter-field" depends="CS_Tumor_Size,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csTumorSize == null || line.dateOfDiagnosisYear == null || line.csVersionInputOriginal == null)
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csTumorSize', line.csTumorSize)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS Tumor Size</message>
            <description><![CDATA[This edit checks for all obsolete CS Tumor Size codes. Obsolete codes should be
    re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following conditions are true:
    1.  CS Tumor Size is empty.
    2.  Year of Diagnosis is blank.
    3.  CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the
    CS Dynamic Link Library (dll).  The function call passes Primary Site,
    Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to
    the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Tumor Size is table number
    1), and CS Tumor Size code, a table lookup is performed. If the code for a
    particular schema is determined to be obsolete based on the table lookup, the
    type of obsolete code must be evaluated. There are several types of obsolete
    codes:

    1.    OBSOLETE DATA CONVERTED AND RETAINED V0200
    2.    OBSOLETE DATA CONVERTED V0102
    3.    OBSOLETE DATA CONVERTED V0104
    4.    OBSOLETE DATA CONVERTED V0200
    5.    OBSOLETE DATA RETAINED V0100
    6.    OBSOLETE DATA RETAINED V0102
    7.    OBSOLETE DATA RETAINED V0200
    8.    OBSOLETE DATA REVIEWED AND CHANGED V0102
    9.    OBSOLETE DATA REVIEWED AND CHANGED V0103
    10.   OBSOLETE DATA REVIEWED AND CHANGED V0200
    11.   OBSOLETE DATA CONVERTED V0203
    12.   OBSOLETE DATA REVIEWED AND CHANGED V0203
    13.   OBSOLETE DATA REVIEWED V0203
    14.   OBSOLETE DATA RETAINED AND REVIEWED V0203
    15.   OBSOLETE DATA RETAINED V0203
    16.   OBSOLETE DATA RETAINED V0104
    17.   OBSOLETE DATA RETAINED V0202
    18.   OBSOLETE DATA RETAINED AND REVIEWED V0200
    19.   OBSOLETE DATA CONVERTED V0204
    20.   OBSOLETE DATA REVIEWED AND CHANGED V0204
    21.   OBSOLETE DATA RETAINED AND REVIEWED V0204
    22.   OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Tumor Size]

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
       an error is generated.
    [Example: none for CS Tumor Size]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
       an error is generated.
    [Example: none for CS Tumor Size]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
       an error is generated.
    [Example: Schema = HemeRetic, CS Tumor Size = 888]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Tumor Size]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Tumor Size]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: Schema = Conjunctiva, CS Tumor Size = 000]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: none for CS Tumor Size]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: none for CS Tumor Size]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
        an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to
    CSV02.)
    [Example: none for CS Tumor Size]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: Schema = NETAmpulla, CS Tumor Size = 996]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: Schema = CarcinoidAppendix, CS Tumor Size = 998]

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Tumor Size]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Tumor Size]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Tumor Size]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-17">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-06-01">The logic for #1,5,6, and 7 was updated with the following: A. If year of diagnosis is 2010 or higher, an error is genereated. B. if CS Version Input Original is 020100 (incidating the case was originally coded using CSv2), an error is generated.</event>
                <event version="SE12-002-05" user="murphyr" date="2010-10-08">Edit modified to CS Input Original &apos;&gt;= 020100&apos; instead of &apos;=020100&apos; for cases originally coded using CsV2.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Updated for CSv2 version 02.03.02.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66631">Updated for CSv0204 obsolete codes</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF270" name="Obsolete Codes - CS Extension (CS)" tag="N1206" java-path="lines.line" category="inter-field" depends="CS_Extension,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csExtension == null || line.dateOfDiagnosisYear == null || line.csVersionInputOriginal == null)
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csExtension', line.csExtension)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS extension</message>
            <description><![CDATA[This edit checks for all obsolete CS Extension codes. Obsolete codes should be
    re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following coditions are true:
    1.  CS Extension is empty.
    2.  Year of Diagnosis is blank.
    3.  CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the
    CS Dynamic Link Library (dll).  The function call passes Primary Site,
    Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to
    the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Extension is table number
    2), and CS Extension code, a table lookup is performed. If the code for a
    particular schema is determined to be obsolete based on the table lookup, the
    type of obsolete code must be evaluated. There are several types of obsolete
    codes:

    1.    OBSOLETE DATA CONVERTED AND RETAINED V0200
    2.    OBSOLETE DATA CONVERTED V0102
    3.    OBSOLETE DATA CONVERTED V0104
    4.    OBSOLETE DATA CONVERTED V0200
    5.    OBSOLETE DATA RETAINED V0100
    6.    OBSOLETE DATA RETAINED V0102
    7.    OBSOLETE DATA RETAINED V0200
    8.    OBSOLETE DATA REVIEWED AND CHANGED V0102
    9.    OBSOLETE DATA REVIEWED AND CHANGED V0103
    10.   OBSOLETE DATA REVIEWED AND CHANGED V0200
    11.   OBSOLETE DATA CONVERTED V0203
    12.   OBSOLETE DATA REVIEWED AND CHANGED V0203
    13.   OBSOLETE DATA REVIEWED V0203
    14.   OBSOLETE DATA RETAINED AND REVIEWED V0203
    15.   OBSOLETE DATA RETAINED V0203
    16.   OBSOLETE DATA RETAINED V0104
    17.   OBSOLETE DATA RETAINED V0202
    18.   OBSOLETE DATA RETAINED AND REVIEWED V0200
    19.   OBSOLETE DATA CONVERTED V0204
    20.   OBSOLETE DATA REVIEWED AND CHANGED V0204
    21.   OBSOLETE DATA RETAINED AND REVIEWED V0204
    22.   OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Extension]

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
       an error is generated.
    [Example: Schema = Breast, CS Extension = 720]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
       an error is generated.
    [Example: Schema = MelanomaHypopharynx, CS Extension = 510]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
       an error is generated.
    [Example: Schema = MelanomaHypopharynx, CS Extension = 150]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Extension]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Extension]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: Schema = MelanomaHypopharynx, CS Extension = 800]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: Schema = Prostate, CS Extension = 330]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: none for CS Extension]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
        an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to
    CSV02.)
    [Example: Schema = MelanomaConjunctiva CS Extension = 400]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: Schema = SmallIntestine, CS Extension = 095]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: Schema = CarcinoidAppendix, CS Extension = 400]

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: Schema = BileDuctsDistal, CS Extension = 605]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: Schema = Appendix, CS Extension = 460]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: Schema = CarcinoidAppendix, CS Extension = 501]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.
    [Example: none for CS Extension]

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.
    [Example: Schema = Breast, CS Extension = 715]

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Extension]

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)
    [Example: none for CS Extension]

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)
    [Example: none for CS Extension]

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.
    [Example: Schema = BileDuctsIntraHepat, CS Extension = 750]

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.
    [Example: Schema = Ovary, CS Extension = 300]]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-17">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-06-01">The logic for #1,5,6, and 7 was updated with the following: A. If year of diagnosis is 2010 or higher, an error is genereated. B. if CS Version Input Original is 020100 (incidating the case was originally coded using CSv2), an error is generated.</event>
                <event version="SE12-002-05" user="murphyr" date="2010-10-08">Edit modified to CS Input Original &apos;&gt;= 020100&apos; instead of &apos;=020100&apos; for cases originally coded using CsV2.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Updated for CSv2 version 02.03.02.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66608">Updated for CSv0204 obsolete codes</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF271" name="Obsolete Codes - CS Tumor Size/Ext Eval (CS)" tag="N1259" java-path="lines.line" category="inter-field" depends="CS_Tumor_Size_Ext_Eval,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csTumorSizeExtEval == null || line.dateOfDiagnosisYear == null || line.csVersionInputOriginal == null)
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csTumorSizeExtEval', line.csTumorSizeExtEval)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS Tumor Size/Ext Eval</message>
            <description><![CDATA[This edit checks for all obsolete CS Tumor Size Ext/Eval codes. Obsolete codes
    should be re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following coditions are true:
    1.  CS Tumor Size/Ext Eval is empty.
    2.  Year of Diagnosis is blank.
    3.  CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the
    CS Dynamic Link Library (dll).  The function call passes Primary Site,
    Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to
    the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Tumor Size/Ext Eval is table
    number 3, and CS Tumor Size/Ext Eval code, a table lookup is performed. If the
    code for a particular schema is determined to be obsolete based on the table
    lookup, the type of obsolete code must be evaluated. There are several types of
    obsolete codes:

    1.    OBSOLETE DATA CONVERTED AND RETAINED V0200
    2.    OBSOLETE DATA CONVERTED V0102
    3.    OBSOLETE DATA CONVERTED V0104
    4.    OBSOLETE DATA CONVERTED V0200
    5.    OBSOLETE DATA RETAINED V0100
    6.    OBSOLETE DATA RETAINED V0102
    7.    OBSOLETE DATA RETAINED V0200
    8.    OBSOLETE DATA REVIEWED AND CHANGED V0102
    9.    OBSOLETE DATA REVIEWED AND CHANGED V0103
    10.   OBSOLETE DATA REVIEWED AND CHANGED V0200
    11.   OBSOLETE DATA CONVERTED V0203
    12.   OBSOLETE DATA REVIEWED AND CHANGED V0203
    13.   OBSOLETE DATA REVIEWED V0203
    14.   OBSOLETE DATA RETAINED AND REVIEWED V0203
    15.   OBSOLETE DATA RETAINED V0203
    16.   OBSOLETE DATA RETAINED V0104
    17.   OBSOLETE DATA RETAINED V0202
    18.   OBSOLETE DATA RETAINED AND REVIEWED V0200
    19.   OBSOLETE DATA CONVERTED V0204
    20.   OBSOLETE DATA REVIEWED AND CHANGED V0204
    21.   OBSOLETE DATA RETAINED AND REVIEWED V0204
    22.   OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
    EditWriter - NAACCR_v12_EW4 Edit Detail Report  2/18/2010 10:40:04 AM
    Obsolete Codes - CS Tumor Size/Ext Eval (CS) (continued)
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Tumor Size/Ext Eval]

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
       an error is generated.
    [Example: none for CS Tumor Size/Ext Eval]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
       an error is generated.
    [Example: none for CS Tumor Size/Ext Eval]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
       an error is generated.
    [Example: none for CS Tumor Size/Ext Eval]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Tumor Size/Ext Eval]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Tumor Size/Ext Eval]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: Schema = MelanomaEyeOther, CS Tumor Size/Ext Eval = 0]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: none for CS Tumor Size/Ext Eval]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: none for CS Tumor Size/Ext Eval]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
        an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to
    CSV02.)
    [Example: none for CS Tumor Size/Ext Eval]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: none for CS Tumor Size/Ext Eval]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: none for CS Tumor Size/Ext Eval]

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Tumor Size/Ext Eval]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Tumor Size/Ext Eval]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Tumor Size/Ext Eval]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-17">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-06-01">The logic for #1,5,6, and 7 was updated with the following: A. If year of diagnosis is 2010 or higher, an error is genereated. B. if CS Version Input Original is 020100 (incidating the case was originally coded using CSv2), an error is generated.</event>
                <event version="SE12-002-05" user="murphyr" date="2010-10-08">Edit modified to CS Input Original &apos;&gt;= 020100&apos; instead of &apos;=020100&apos; for cases originally coded using CsV2.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Updated for CSv2 version 02.03.02.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66632">Updated for CSv0204 obsolete codes</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF272" name="Obsolete Codes - CS Lymph Nodes (CS)" tag="N1256" java-path="lines.line" category="inter-field" depends="CS_Lymph_Nodes,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csLymphNodes == null || line.dateOfDiagnosisYear == null || line.csVersionInputOriginal == null)
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csLymphNodes', line.csLymphNodes)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS Lymph Nodes</message>
            <description><![CDATA[This edit checks for all obsolete CS Lymph Nodes codes. Obsolete codes should be
    re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following coditions are true:
    1.  CS Lymph Nodes is empty.
    2.  Year of Diagnosis is blank.
    3.  CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the
    CS Dynamic Link Library (dll).  The function call passes Primary Site,
    Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to
    the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Lymph Nodes is table number
    4), and CS Lymph Nodes code, a table lookup is performed. If the code for a
    particular schema is determined to be obsolete based on the table lookup, the
    type of obsolete code must be evaluated. There are several types of obsolete
    codes:

    1.    OBSOLETE DATA CONVERTED AND RETAINED V0200
    2.    OBSOLETE DATA CONVERTED V0102
    3.    OBSOLETE DATA CONVERTED V0104
    4.    OBSOLETE DATA CONVERTED V0200
    5.    OBSOLETE DATA RETAINED V0100
    6.    OBSOLETE DATA RETAINED V0102
    7.    OBSOLETE DATA RETAINED V0200
    8.    OBSOLETE DATA REVIEWED AND CHANGED V0102
    9.    OBSOLETE DATA REVIEWED AND CHANGED V0103
    10.   OBSOLETE DATA REVIEWED AND CHANGED V0200
    11.   OBSOLETE DATA CONVERTED V0203
    12.   OBSOLETE DATA REVIEWED AND CHANGED V0203
    13.   OBSOLETE DATA REVIEWED V0203
    14.   OBSOLETE DATA RETAINED AND REVIEWED V0203
    15.   OBSOLETE DATA RETAINED V0203
    16.   OBSOLETE DATA RETAINED V0104
    17.   OBSOLETE DATA RETAINED V0202
    18.   OBSOLETE DATA RETAINED AND REVIEWED V0200
    19.   OBSOLETE DATA CONVERTED V0204
    20.   OBSOLETE DATA REVIEWED AND CHANGED V0204
    21.   OBSOLETE DATA RETAINED AND REVIEWED V0204
    22.   OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Lymph Nodes]

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
       an error is generated.
    [Example: none for CS Lymph Nodes]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
       an error is generated.
    [Example: none for CS Lymph Nodes]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
       an error is generated.
    [Example: Schema = Thryoid, CS Lymph Nodes = 140]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Lymph Nodes]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Lymph Nodes]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: Schema = Bladder, CS Lymph Nodes = 100]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: Schema = Thyroid, CS Lymph Nodes = 200]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: Schema = Thyroid, CS Lymph Nodes = 100]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
        an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to
    CSV02.)
    [Example: Schema = Vagina, CS Lymph Nodes = 100]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: Schema = Breast, CS Lymph Nodes = 290]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: Schema = Thyroid, CS Lymph Nodes = 130]

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: Schema = BileDuctsIntrahepat, CS Lymph Nodes = 300]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: Schema = Rectum, CS Lymph Nodes = 100]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-17">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-06-01">The logic for #1,5,6, and 7 was updated with the following: A. If year of diagnosis is 2010 or higher, an error is genereated. B. if CS Version Input Original is 020100 (incidating the case was originally coded using CSv2), an error is generated.</event>
                <event version="SE12-002-05" user="murphyr" date="2010-10-08">Edit modified to CS Input Original &apos;&gt;= 020100&apos; instead of &apos;=020100&apos; for cases originally coded using CsV2.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Updated for CSv2 version 02.03.02.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66609">Updated for CSv0204 obsolete codes</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF273" name="Obsolete Codes - CS Lymph Nodes Eval (CS)" tag="N1260" java-path="lines.line" category="inter-field" depends="CS_Reg_Node_Eval,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csLymphNodesEval == null || line.dateOfDiagnosisYear == null || line.csVersionInputOriginal == null)
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csLymphNodesEval', line.csLymphNodesEval)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS Lymph Nodes Eval</message>
            <description><![CDATA[This edit checks for all obsolete CS Lymph Nodes Eval codes. Obsolete codes
    should be re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following coditions are true:
    1.  CS Lymph Nodes Eval is empty.
    2.  Year of Diagnosis is blank.
    3.  CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the
    CS Dynamic Link Library (dll).  The function call passes Primary Site,
    Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to
    the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Lymph Nodes Eval is table
    number 5, and CS Lymph Nodes Eval code, a table lookup is performed. If the code
    for a particular schema is determined to be obsolete based on the table lookup,
    the type of obsolete code must be evaluated. There are several types of obsolete
    codes:

    1.    OBSOLETE DATA CONVERTED AND RETAINED V0200
    2.    OBSOLETE DATA CONVERTED V0102
    3.    OBSOLETE DATA CONVERTED V0104
    4.    OBSOLETE DATA CONVERTED V0200
    5.    OBSOLETE DATA RETAINED V0100
    6.    OBSOLETE DATA RETAINED V0102
    7.    OBSOLETE DATA RETAINED V0200
    8.    OBSOLETE DATA REVIEWED AND CHANGED V0102
    9.    OBSOLETE DATA REVIEWED AND CHANGED V0103
    10.   OBSOLETE DATA REVIEWED AND CHANGED V0200
    11.   OBSOLETE DATA CONVERTED V0203
    12.   OBSOLETE DATA REVIEWED AND CHANGED V0203
    13.   OBSOLETE DATA REVIEWED V0203
    14.   OBSOLETE DATA RETAINED AND REVIEWED V0203
    15.   OBSOLETE DATA RETAINED V0203
    16.   OBSOLETE DATA RETAINED V0104
    17.   OBSOLETE DATA RETAINED V0202
    18.   OBSOLETE DATA RETAINED AND REVIEWED V0200
    19.   OBSOLETE DATA CONVERTED V0204
    20.   OBSOLETE DATA REVIEWED AND CHANGED V0204
    21.   OBSOLETE DATA RETAINED AND REVIEWED V0204
    22.   OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Lymph Nodes Eval]

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
       an error is generated.
    [Example: none for CS Lymph Nodes Eval]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
       an error is generated.
    [Example: none for CS Lymph Nodes Eval]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
       an error is generated.
    [Example: none for CS Lymph Nodes Eval]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Lymph Nodes Eval]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Lymph Nodes Eval]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: Schema = MelanomaEyeOther, CS Lymph Nodes Eval = 0]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: none for CS Lymph Nodes Eval]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: none for CS Lymph Nodes Eval]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
        an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to
    CSV02.)
    [Example: none for CS Lymph Nodes Eval]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: none for CS Lymph Nodes Eval]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: none for CS Lymph Nodes Eval]

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Lymph Nodes Eval]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Lymph Nodes Eval]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Lymph Nodes Eval]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-17">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-06-01">The logic for #1,5,6, and 7 was updated with the following: A. If year of diagnosis is 2010 or higher, an error is genereated. B. if CS Version Input Original is 020100 (incidating the case was originally coded using CSv2), an error is generated.</event>
                <event version="SE12-002-05" user="murphyr" date="2010-10-08">Edit modified to CS Input Original &apos;&gt;= 020100&apos; instead of &apos;=020100&apos; for cases originally coded using CsV2.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Updated for CSv2 version 02.03.02.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66610">Updated for CSv0204 obsolete codes</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF274" name="Obsolete Codes - CS Mets at DX (CS)" tag="N1257" java-path="lines.line" category="inter-field" depends="CS_Mets_at_DX,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csMetsAtDx == null || line.dateOfDiagnosisYear == null || line.csVersionInputOriginal == null)
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csMetsAtDx', line.csMetsAtDx)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS Mets at DX</message>
            <description><![CDATA[This edit checks for all obsolete CS Lymph Nodes codes. Obsolete codes should be
    re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following coditions are true:
    1.  CS Mets at DX is empty.
    2.  Year of Diagnosis is blank.
    3.  CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the
    CS Dynamic Link Library (dll).  The function call passes Primary Site,
    Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to
    the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Mets at DX is table number
    8), and CS Mets at DX code, a table lookup is performed. If the code for a
    particular schema is determined to be obsolete based on the table lookup, the
    type of obsolete code must be evaluated. There are several types of obsolete
    codes:

    1.    OBSOLETE DATA CONVERTED AND RETAINED V0200
    2.    OBSOLETE DATA CONVERTED V0102
    3.    OBSOLETE DATA CONVERTED V0104
    4.    OBSOLETE DATA CONVERTED V0200
    5.    OBSOLETE DATA RETAINED V0100
    6.    OBSOLETE DATA RETAINED V0102
    7.    OBSOLETE DATA RETAINED V0200
    8.    OBSOLETE DATA REVIEWED AND CHANGED V0102
    9.    OBSOLETE DATA REVIEWED AND CHANGED V0103
    10.   OBSOLETE DATA REVIEWED AND CHANGED V0200
    11.   OBSOLETE DATA CONVERTED V0203
    12.   OBSOLETE DATA REVIEWED AND CHANGED V0203
    13.   OBSOLETE DATA REVIEWED V0203
    14.   OBSOLETE DATA RETAINED AND REVIEWED V0203
    15.   OBSOLETE DATA RETAINED V0203
    16.   OBSOLETE DATA RETAINED V0104
    17.   OBSOLETE DATA RETAINED V0202
    18.   OBSOLETE DATA RETAINED AND REVIEWED V0200
    19.   OBSOLETE DATA CONVERTED V0204
    20.   OBSOLETE DATA REVIEWED AND CHANGED V0204
    21.   OBSOLETE DATA RETAINED AND REVIEWED V0204
    22.   OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Mets at DX]

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
       an error is generated.
    [Example: none for CS Mets at DX]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
       an error is generated.
    [Example: none for CS Mets at DX]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
       an error is generated.
    [Example: Schema = Lung, CS Mets at DX = 10]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Mets at DX]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Mets at DX]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: Schema = Bladder, CS Mets at DX = 10]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: none for CS Mets at DX]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: Schema = Thyroid, CS Mets at DX = 10]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
        an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to
    CSV02.)
    [Example: Schema = Esophagus, CS Mets at DX = 12]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: Schema = Appendix, CS Mets at DX = 07]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: Schema = GISTEsophagus, CS Mets at DX = 50]

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: Schema = Ovary, CS Mets at DX = 60]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: Schema = Brain, CS Mets at DX = 10]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Mets at DX]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-17">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-06-01">The logic for #1,5,6, and 7 was updated with the following: A. If year of diagnosis is 2010 or higher, an error is genereated. B. if CS Version Input Original is 020100 (incidating the case was originally coded using CSv2), an error is generated.</event>
                <event version="SE12-002-05" user="murphyr" date="2010-10-08">Edit modified to CS Input Original &apos;&gt;= 020100&apos; instead of &apos;=020100&apos; for cases originally coded using CsV2.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Updated for CSv2 version 02.03.02.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66611">Updated for CSv0204 obsolete codes</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF275" name="Obsolete Codes - CS Mets Eval (CS)" tag="N1261" java-path="lines.line" category="inter-field" depends="CS_Mets_Eval,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csMetsEval == null || line.dateOfDiagnosisYear == null || line.csVersionInputOriginal == null)
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csMetsEval', line.csMetsEval)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS Mets Eval</message>
            <description><![CDATA[This edit checks for all obsolete CS Mets Eval codes. Obsolete codes should be
    re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following coditions are true:
    1.  CS Mets Eval is empty.
    2.  Year of Diagnosis is blank.
    3.  CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the
    CS Dynamic Link Library (dll).  The function call passes Primary Site,
    Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to
    the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Mets Eval is table number 9,
    and CS Mets Eval code, a table lookup is performed. If the code for a particular
    schema is determined to be obsolete based on the table lookup, the type of
    obsolete code must be evaluated. There are several types of obsolete codes:

    1.    OBSOLETE DATA CONVERTED AND RETAINED V0200
    2.    OBSOLETE DATA CONVERTED V0102
    3.    OBSOLETE DATA CONVERTED V0104
    4.    OBSOLETE DATA CONVERTED V0200
    5.    OBSOLETE DATA RETAINED V0100
    6.    OBSOLETE DATA RETAINED V0102
    7.    OBSOLETE DATA RETAINED V0200
    8.    OBSOLETE DATA REVIEWED AND CHANGED V0102
    9.    OBSOLETE DATA REVIEWED AND CHANGED V0103
    10.   OBSOLETE DATA REVIEWED AND CHANGED V0200
    11.   OBSOLETE DATA CONVERTED V0203
    12.   OBSOLETE DATA REVIEWED AND CHANGED V0203
    13.   OBSOLETE DATA REVIEWED V0203
    14.   OBSOLETE DATA RETAINED AND REVIEWED V0203
    15.   OBSOLETE DATA RETAINED V0203
    16.   OBSOLETE DATA RETAINED V0104
    17.   OBSOLETE DATA RETAINED V0202
    18.   OBSOLETE DATA RETAINED AND REVIEWED V0200
    19.   OBSOLETE DATA CONVERTED V0204
    20.   OBSOLETE DATA REVIEWED AND CHANGED V0204
    21.   OBSOLETE DATA RETAINED AND REVIEWED V0204
    22.   OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Mets Eval]

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
       an error is generated.
    [Example: none for CS Mets Eval]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
       an error is generated.
    [Example: none for CS Mets Eval]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
       an error is generated.
    [Example: none for CS Mets Eval]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Mets Eval]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Mets Eval]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: Schema = MelanomaEyeOther, CS Mets Eval = 0]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: none for CS Mets Eval]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: none for CS Mets Eval]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
        an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to
    CSV02.)
    [Example: none for CS Mets Eval]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: none for CS Mets Eval]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: none for CS Mets Eval]

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Mets Eval]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Mets Eval]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Mets Eval]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-17">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-06-01">The logic for #1,5,6, and 7 was updated with the following: A. If year of diagnosis is 2010 or higher, an error is genereated. B. if CS Version Input Original is 020100 (incidating the case was originally coded using CSv2), an error is generated.</event>
                <event version="SE12-002-05" user="murphyr" date="2010-10-08">Edit modified to CS Input Original &apos;&gt;= 020100&apos; instead of &apos;=020100&apos; for cases originally coded using CsV2.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Updated for CSv2 version 02.03.02.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66612">Updated for CSv0204 obsolete codes</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF276" name="Obsolete Codes - CS Site-Specific Factor 1 (CS)" tag="N1262" java-path="lines.line" category="inter-field" depends="CS_Site-Specific_Factor_1,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csSiteSpecificFactor1 == null || line.dateOfDiagnosisYear == null || line.csVersionInputOriginal == null)
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csSiteSpecificFactor1', line.csSiteSpecificFactor1)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS Site-Specific Factor 1</message>
            <description><![CDATA[This edit checks for all obsolete CS Site-Specific Factor 1 codes. Obsolete
    codes should be re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following coditions are true:
    1.  CS Site-Specific Factor 1 is empty.
    2.  Year of Diagnosis is blank.
    3.  CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the
    CS Dynamic Link Library (dll).  The function call passes Primary Site,
    Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to
    the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Site-Specific Factor 1 is
    table number 10), and CS Site-Specific Factor 1 code, a table lookup is
    performed. If the code for a particular schema is determined to be obsolete
    based on the table lookup, the type of obsolete code must be evaluated. There
    are several types of obsolete codes:

    1.    OBSOLETE DATA CONVERTED AND RETAINED V0200
    2.    OBSOLETE DATA CONVERTED V0102
    3.    OBSOLETE DATA CONVERTED V0104
    4.    OBSOLETE DATA CONVERTED V0200
    5.    OBSOLETE DATA RETAINED V0100
    6.    OBSOLETE DATA RETAINED V0102
    7.    OBSOLETE DATA RETAINED V0200
    8.    OBSOLETE DATA REVIEWED AND CHANGED V0102
    9.    OBSOLETE DATA REVIEWED AND CHANGED V0103
    10.   OBSOLETE DATA REVIEWED AND CHANGED V0200
    11.   OBSOLETE DATA CONVERTED V0203
    12.   OBSOLETE DATA REVIEWED AND CHANGED V0203
    13.   OBSOLETE DATA REVIEWED V0203
    14.   OBSOLETE DATA RETAINED AND REVIEWED V0203
    15.   OBSOLETE DATA RETAINED V0203
    16.   OBSOLETE DATA RETAINED V0104
    17.   OBSOLETE DATA RETAINED V0202
    18.   OBSOLETE DATA RETAINED AND REVIEWED V0200
    19.   OBSOLETE DATA CONVERTED V0204
    20.   OBSOLETE DATA REVIEWED AND CHANGED V0204
    21.   OBSOLETE DATA RETAINED AND REVIEWED V0204
    22.   OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 1]

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
       an error is generated.
    [Example: Schema = MelanomaSkin, CS Site-Specific Factor 1 = 990]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
       an error is generated.
    [Example: none for CS Site-Specific Factor 1]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
       an error is generated.
    [Example: Schema = Prostate, CS Site-Specific Factor 1 = 000]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 1]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 1]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: Schema = CarcinoidAppendix, CS Site-Specific Factor 1 = 000]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: none for CS Site-Specific Factor 1]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: none for CS Site-Specific Factor 1]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
        an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to
    CSV02.)
    [Example: none for CS Site-Specific Factor 1]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: Schema = Appendix, CS Site-Specific Factor 1 = 000]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: none for CS Site-Specific Factor 1]

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor 1]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor 1]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: Schema = MyelomaPlasmaCellDisorder, CS Site-Specific Factor 1 = 000]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-17">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-06-01">The logic for #1,5,6, and 7 was updated with the following: A. If year of diagnosis is 2010 or higher, an error is genereated. B. if CS Version Input Original is 020100 (incidating the case was originally coded using CSv2), an error is generated.</event>
                <event version="SE12-002-05" user="murphyr" date="2010-10-08">Edit modified to CS Input Original &apos;&gt;= 020100&apos; instead of &apos;=020100&apos; for cases originally coded using CsV2.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Updated for CSv2 version 02.03.02.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66613">Updated for CSv0204 obsolete codes</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF277" name="Obsolete Codes - CS Site-Specific Factor 2 (CS)" tag="N1263" java-path="lines.line" category="inter-field" depends="CS_Site-Specific_Factor_2,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csSiteSpecificFactor2 == null || line.dateOfDiagnosisYear == null ||
    line.csVersionInputOriginal == null || line._csSchemaId == 'melanoma_iris')
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csSiteSpecificFactor2', line.csSiteSpecificFactor2)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS Site-Specific Factor 2</message>
            <description><![CDATA[This edit checks for all obsolete CS Site-Specific Factor 2 codes. Obsolete
    codes should be re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following coditions are true:
    1.  CS Site-Specific Factor 2 is empty.
    2.  Year of Diagnosis is blank.
    3.  CS Schema is MelanomaIris.
    4.  CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the
    CS Dynamic Link Library (dll).  The function call passes Primary Site,
    Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to
    the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Site-Specific Factor 2 is
    table number 11), and CS Site-Specific Factor 2 code, a table lookup is
    performed. If the code for a particular schema is determined to be obsolete
    based on the table lookup, the type of obsolete code must be evaluated. There
    are several types of obsolete codes:

    1.    OBSOLETE DATA CONVERTED AND RETAINED V0200
    2.    OBSOLETE DATA CONVERTED V0102
    3.    OBSOLETE DATA CONVERTED V0104
    4.    OBSOLETE DATA CONVERTED V0200
    5.    OBSOLETE DATA RETAINED V0100
    6.    OBSOLETE DATA RETAINED V0102
    7.    OBSOLETE DATA RETAINED V0200
    8.    OBSOLETE DATA REVIEWED AND CHANGED V0102
    9.    OBSOLETE DATA REVIEWED AND CHANGED V0103
    10.   OBSOLETE DATA REVIEWED AND CHANGED V0200
    11.   OBSOLETE DATA CONVERTED V0203
    12.   OBSOLETE DATA REVIEWED AND CHANGED V0203
    13.   OBSOLETE DATA REVIEWED V0203
    14.   OBSOLETE DATA RETAINED AND REVIEWED V0203
    15.   OBSOLETE DATA RETAINED V0203
    16.   OBSOLETE DATA RETAINED V0104
    17.   OBSOLETE DATA RETAINED V0202
    18.   OBSOLETE DATA RETAINED AND REVIEWED V0200
    19.   OBSOLETE DATA CONVERTED V0204
    20.   OBSOLETE DATA REVIEWED AND CHANGED V0204
    21.   OBSOLETE DATA RETAINED AND REVIEWED V0204
    22.   OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: Schema = BuccalMucosa, CS Site-Specific Factor 2 = 987]

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
       an error is generated.
    [Example: none for CS Site-Specific Factor 2]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
       an error is generated.
    [Example: none for CS Site-Specific Factor 2]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
       an error is generated.
    [Example: Schema = Prostate, CS Site-Specific Factor 2 = 000]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 2]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 2]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: Schema = BuccalMucosa, CS Site-Specific Factor 2 = 000]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: none for CS Site-Specific Factor 2]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: none for CS Site-Specific Factor 2]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
        an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to
    CSV02.)
    [Example: none for CS Site-Specific Factor 2]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: Schema = Breast, CS Site-Specific Factor 2 = 000]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: Schema = Esophagus, CS Site-Specific Factor 2 = 100]

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor 2]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor 2]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor 2]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-17">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-06-01">The logic for #1,5,6, and 7 was updated with the following: A. If year of diagnosis is 2010 or higher, an error is genereated. B. if CS Version Input Original is 020100 (incidating the case was originally coded using CSv2), an error is generated.</event>
                <event version="SE12-002-05" user="murphyr" date="2010-10-08">Edit modified to CS Input Original &apos;&gt;= 020100&apos; instead of &apos;=020100&apos; for cases originally coded using CsV2.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Updated for CSv2 version 02.03.02.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66614">Updated for CSv0204 obsolete codes.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF278" name="Obsolete Codes - CS Site-Specific Factor 3 (CS)" tag="N1264" java-path="lines.line" category="inter-field" depends="CS_Site-Specific_Factor_3,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csSiteSpecificFactor3 == null || line.dateOfDiagnosisYear == null || line.csVersionInputOriginal == null)
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csSiteSpecificFactor3', line.csSiteSpecificFactor3)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS Site-Specific Factor 3</message>
            <description><![CDATA[This edit checks for all obsolete CS Site-Specific Factor 3 codes. Obsolete
    codes should be re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following coditions are true:
    1.  CS Site-Specific Factor 3 is empty.
    2.  Year of Diagnosis is blank.
    3.  CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the
    CS Dynamic Link Library (dll).  The function call passes Primary Site,
    Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to
    the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Site-Specific Factor 3 is
    table number 12), and CS Site-Specific Factor 3 code, a table lookup is
    performed. If the code for a particular schema is determined to be obsolete
    based on the table lookup, the type of obsolete code must be evaluated. There
    are several types of obsolete codes:

    1.    OBSOLETE DATA CONVERTED AND RETAINED V0200
    2.    OBSOLETE DATA CONVERTED V0102
    3.    OBSOLETE DATA CONVERTED V0104
    4.    OBSOLETE DATA CONVERTED V0200
    5.    OBSOLETE DATA RETAINED V0100
    6.    OBSOLETE DATA RETAINED V0102
    7.    OBSOLETE DATA RETAINED V0200
    8.    OBSOLETE DATA REVIEWED AND CHANGED V0102
    9.    OBSOLETE DATA REVIEWED AND CHANGED V0103
    10.   OBSOLETE DATA REVIEWED AND CHANGED V0200
    11.   OBSOLETE DATA CONVERTED V0203
    12.   OBSOLETE DATA REVIEWED AND CHANGED V0203
    13.   OBSOLETE DATA REVIEWED V0203
    14.   OBSOLETE DATA RETAINED AND REVIEWED V0203
    15.   OBSOLETE DATA RETAINED V0203
    16.   OBSOLETE DATA RETAINED V0104
    17.   OBSOLETE DATA RETAINED V0202
    18.   OBSOLETE DATA RETAINED AND REVIEWED V0200
    19.   OBSOLETE DATA CONVERTED V0204
    20.   OBSOLETE DATA REVIEWED AND CHANGED V0204
    21.   OBSOLETE DATA RETAINED AND REVIEWED V0204
    22.   OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 3]

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
       an error is generated.
    [Example: none for CS Site-Specific Factor 3]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
       an error is generated.
    [Example: none for CS Site-Specific Factor 3]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
       an error is generated.
    [Example: Schema = Prostate, CS Site-Specific Factor 3 = 020]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 3]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 3]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: Schema = Testis, CS Site-Specific Factor 3 = 000]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: Schema = Prostate, CS Site-Specific Factor 3 = 031]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: none for CS Site-Specific Factor 3]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
        an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to
    CSV02.)
    [Example: none for CS Site-Specific Factor 3]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: Schema = Cervix, CS Site-Specific Factor 3 = 000]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: none for CS Site-Specific Factor 3]

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: Schema = Prostate, CS Site-Specific Factor 3 = 410]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor 3]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor 3]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-17">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-06-01">The logic for #1,5,6, and 7 was updated with the following: A. If year of diagnosis is 2010 or higher, an error is genereated. B. if CS Version Input Original is 020100 (incidating the case was originally coded using CSv2), an error is generated.</event>
                <event version="SE12-002-05" user="murphyr" date="2010-10-08">Edit modified to CS Input Original &apos;&gt;= 020100&apos; instead of &apos;=020100&apos; for cases originally coded using CsV2.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Updated for CSv2 version 02.03.02.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66615">Updated for CSv0204 obsolete codes.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF279" name="Obsolete Codes - CS Site-Specific Factor 4 (CS)" tag="N1265" java-path="lines.line" category="inter-field" depends="CS_Site-Specific_Factor_4,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csSiteSpecificFactor4 == null || line.dateOfDiagnosisYear == null || line.csVersionInputOriginal == null)
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csSiteSpecificFactor4', line.csSiteSpecificFactor4)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS Site-Specific Factor 4</message>
            <description><![CDATA[This edit checks for all obsolete CS Site-Specific Factor 4 codes. Obsolete
    codes should be re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following coditions are true:
    1.  CS Site-Specific Factor 4 is empty.
    2.  Year of Diagnosis is blank.
    3.  CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the
    CS Dynamic Link Library (dll).  The function call passes Primary Site,
    Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to
    the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Site-Specific Factor 4 is
    table number 13), and CS Site-Specific Factor 4 code, a table lookup is
    performed. If the code for a particular schema is determined to be obsolete
    based on the table lookup, the type of obsolete code must be evaluated. There
    are several types of obsolete codes:

    1.    OBSOLETE DATA CONVERTED AND RETAINED V0200
    2.    OBSOLETE DATA CONVERTED V0102
    3.    OBSOLETE DATA CONVERTED V0104
    4.    OBSOLETE DATA CONVERTED V0200
    5.    OBSOLETE DATA RETAINED V0100
    6.    OBSOLETE DATA RETAINED V0102
    7.    OBSOLETE DATA RETAINED V0200
    8.    OBSOLETE DATA REVIEWED AND CHANGED V0102
    9.    OBSOLETE DATA REVIEWED AND CHANGED V0103
    10.   OBSOLETE DATA REVIEWED AND CHANGED V0200
    11.   OBSOLETE DATA CONVERTED V0203
    12.   OBSOLETE DATA REVIEWED AND CHANGED V0203
    13.   OBSOLETE DATA REVIEWED V0203
    14.   OBSOLETE DATA RETAINED AND REVIEWED V0203
    15.   OBSOLETE DATA RETAINED V0203
    16.   OBSOLETE DATA RETAINED V0104
    17.   OBSOLETE DATA RETAINED V0202
    18.   OBSOLETE DATA RETAINED AND REVIEWED V0200
    19.   OBSOLETE DATA CONVERTED V0204
    20.   OBSOLETE DATA REVIEWED AND CHANGED V0204
    21.   OBSOLETE DATA RETAINED AND REVIEWED V0204
    22.   OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 4]

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
       an error is generated.
    [Example: none for CS Site-Specific Factor 4]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
       an error is generated.
    [Example: none for CS Site-Specific Factor 4]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
       an error is generated.
    [Example: Schema = Appendix, CS Site-Specific Factor 4 = 888]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 4]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: Schema = Prostate, CS Site-Specific Factor 4 = 000]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 4]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: none for CS Site-Specific Factor 4]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: none for CS Site-Specific Factor 4]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
        an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to
    CSV02.)
    [Example: none for CS Site-Specific Factor 4]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: Schema = Esophagus, CS Site-Specific Factor 4 = 990]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: Schema = Esophagus, CS Site-Specific Factor 4 = 000]

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor 4]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor 4]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor 4]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-17">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-06-01">The logic for #1,5,6, and 7 was updated with the following: A. If year of diagnosis is 2010 or higher, an error is genereated. B. if CS Version Input Original is 020100 (incidating the case was originally coded using CSv2), an error is generated.</event>
                <event version="SE12-002-05" user="murphyr" date="2010-10-08">Edit modified to CS Input Original &apos;&gt;= 020100&apos; instead of &apos;=020100&apos; for cases originally coded using CsV2.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Updated for CSv2 version 02.03.02.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66634">Updated for CSv0204 obsolete codes.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF280" name="Obsolete Codes - CS Site-Specific Factor 5 (CS)" tag="N1266" java-path="lines.line" category="inter-field" depends="CS_Site-Specific_Factor_5,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csSiteSpecificFactor5 == null || line.dateOfDiagnosisYear == null || line.csVersionInputOriginal == null)
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csSiteSpecificFactor5', line.csSiteSpecificFactor5)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS Site-Specific Factor 5</message>
            <description><![CDATA[This edit checks for all obsolete CS Site-Specific Factor 5 codes. Obsolete
    codes should be re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following coditions are true:
    1.  CS Site-Specific Factor 5 is empty.
    2.  Year of Diagnosis is blank.
    3.  CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the
    CS Dynamic Link Library (dll).  The function call passes Primary Site,
    Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to
    the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Site-Specific Factor 5 is
    table number 14), and CS Site-Specific Factor 5 code, a table lookup is
    performed. If the code for a particular schema is determined to be obsolete
    based on the table lookup, the type of obsolete code must be evaluated. There
    are several types of obsolete codes:

    1.    OBSOLETE DATA CONVERTED AND RETAINED V0200
    2.    OBSOLETE DATA CONVERTED V0102
    3.    OBSOLETE DATA CONVERTED V0104
    4.    OBSOLETE DATA CONVERTED V0200
    5.    OBSOLETE DATA RETAINED V0100
    6.    OBSOLETE DATA RETAINED V0102
    7.    OBSOLETE DATA RETAINED V0200
    8.    OBSOLETE DATA REVIEWED AND CHANGED V0102
    9.    OBSOLETE DATA REVIEWED AND CHANGED V0103
    10.   OBSOLETE DATA REVIEWED AND CHANGED V0200
    11.   OBSOLETE DATA CONVERTED V0203
    12.   OBSOLETE DATA REVIEWED AND CHANGED V0203
    13.   OBSOLETE DATA REVIEWED V0203
    14.   OBSOLETE DATA RETAINED AND REVIEWED V0203
    15.   OBSOLETE DATA RETAINED V0203
    16.   OBSOLETE DATA RETAINED V0104
    17.   OBSOLETE DATA RETAINED V0202
    18.   OBSOLETE DATA RETAINED AND REVIEWED V0200
    19.   OBSOLETE DATA CONVERTED V0204
    20.   OBSOLETE DATA REVIEWED AND CHANGED V0204
    21.   OBSOLETE DATA RETAINED AND REVIEWED V0204
    22.   OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 5]

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
       an error is generated.
    [Example: none for CS Site-Specific Factor 5]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
       an error is generated.
    [Example: none for CS Site-Specific Factor 5]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
       an error is generated.
    [Example: Schema = Testis, CS Site-Specific Factor 5 = 001]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 5]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 5]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: Schema = Prostate, CS Site-Specific Factor 5 = 000]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: none for CS Site-Specific Factor 5]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: none for CS Site-Specific Factor 5]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
        an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to
    CSV02.)
    [Example: none for CS Site-Specific Factor 5]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: Schema = Cervix, CS Site-Specific Factor 5 = 000]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: Schema = Esophagus, CS Site-Specific Factor 5 = 000]

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor 5]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor 5]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor 5]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-17">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-06-01">The logic for #1,5,6, and 7 was updated with the following: A. If year of diagnosis is 2010 or higher, an error is genereated. B. if CS Version Input Original is 020100 (incidating the case was originally coded using CSv2), an error is generated.</event>
                <event version="SE12-002-05" user="murphyr" date="2010-10-08">Edit modified to CS Input Original &apos;&gt;= 020100&apos; instead of &apos;=020100&apos; for cases originally coded using CsV2.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Updated for CSv2 version 02.03.02.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66615">Updated for CSv0204 obsolete codes.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF281" name="Obsolete Codes - CS Site-Specific Factor 6 (CS)" tag="N1267" java-path="lines.line" category="inter-field" depends="CS_Site-Specific_Factor_6,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csSiteSpecificFactor6 == null || line.dateOfDiagnosisYear == null || line.csVersionInputOriginal == null)
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csSiteSpecificFactor6', line.csSiteSpecificFactor6)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS Site-Specific Factor 6</message>
            <description><![CDATA[This edit checks for all obsolete CS Site-Specific Factor 6 codes. Obsolete
    codes should be re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following coditions are true:
    1.  CS Site-Specific Factor 6 is empty.
    2.  Year of Diagnosis is blank.
    3.  CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the
    CS Dynamic Link Library (dll).  The function call passes Primary Site,
    Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to
    the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Site-Specific Factor 6 is
    table number 15), and CS Site-Specific Factor 6 code, a table lookup is
    performed. If the code for a particular schema is determined to be obsolete
    based on the table lookup, the type of obsolete code must be evaluated. There
    are several types of obsolete codes:

    1.    OBSOLETE DATA CONVERTED AND RETAINED V0200
    2.    OBSOLETE DATA CONVERTED V0102
    3.    OBSOLETE DATA CONVERTED V0104
    4.    OBSOLETE DATA CONVERTED V0200
    5.    OBSOLETE DATA RETAINED V0100
    6.    OBSOLETE DATA RETAINED V0102
    7.    OBSOLETE DATA RETAINED V0200
    8.    OBSOLETE DATA REVIEWED AND CHANGED V0102
    9.    OBSOLETE DATA REVIEWED AND CHANGED V0103
    10.   OBSOLETE DATA REVIEWED AND CHANGED V0200
    11.   OBSOLETE DATA CONVERTED V0203
    12.   OBSOLETE DATA REVIEWED AND CHANGED V0203
    13.   OBSOLETE DATA REVIEWED V0203
    14.   OBSOLETE DATA RETAINED AND REVIEWED V0203
    15.   OBSOLETE DATA RETAINED V0203
    16.   OBSOLETE DATA RETAINED V0104
    17.   OBSOLETE DATA RETAINED V0202
    18.   OBSOLETE DATA RETAINED AND REVIEWED V0200
    19.   OBSOLETE DATA CONVERTED V0204
    20.   OBSOLETE DATA REVIEWED AND CHANGED V0204
    21.   OBSOLETE DATA RETAINED AND REVIEWED V0204
    22.   OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 6]

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
       an error is generated.
    [Example: none for CS Site-Specific Factor 6]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
       an error is generated.
    [Example: none for CS Site-Specific Factor 6]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
       an error is generated.
    [Example: Schema = Appendix, CS Site-Specific Factor 6 = 888]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 6]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 6]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: Schema = Prostate, CS Site-Specific Factor 6 = 000]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: none for CS Site-Specific Factor 6]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: none for CS Site-Specific Factor 6]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
        an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to
    CSV02.)
    [Example: none for CS Site-Specific Factor 6]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: Schema = GISTEsophagus, CS Site-Specific Factor 6 = 995]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: none for CS Site-Specific Factor 6]

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor 6]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor 6]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor 6]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-17">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-06-01">The logic for #1,5,6, and 7 was updated with the following: A. If year of diagnosis is 2010 or higher, an error is genereated. B. if CS Version Input Original is 020100 (incidating the case was originally coded using CSv2), an error is generated.</event>
                <event version="SE12-002-05" user="murphyr" date="2010-10-08">Edit modified to CS Input Original &apos;&gt;= 020100&apos; instead of &apos;=020100&apos; for cases originally coded using CsV2.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Updated for CSv2 version 02.03.02.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66615">Updated for CSv0204 obsolete codes.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF282" name="Obsolete Codes - CS Site-Specific Factor25 (CS)" tag="N1268" java-path="lines.line" category="inter-field" depends="CS_Site-Specific_Factor_25,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csSiteSpecificFactor25 == null || line.dateOfDiagnosisYear == null || line.csVersionInputOriginal == null)
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csSiteSpecificFactor25', line.csSiteSpecificFactor25)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS Site-Specific Factor 25</message>
            <description><![CDATA[This edit checks for all obsolete CS Site-Specific Factor25 codes. Obsolete
    codes should be re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following coditions are true:
    1.  CS Site-Specific Factor25 is empty.
    2.  Year of Diagnosis is blank.
    3.  CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the
    CS Dynamic Link Library (dll).  The function call passes Primary Site,
    Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to
    the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Site-Specific Factor25 is
    table number 34), and CS Site-Specific Factor25 code, a table lookup is
    performed. If the code for a particular schema is determined to be obsolete
    based on the table lookup, the type of obsolete code must be evaluated. There
    are several types of obsolete codes:

    1.    OBSOLETE DATA CONVERTED AND RETAINED V0200
    2.    OBSOLETE DATA CONVERTED V0102
    3.    OBSOLETE DATA CONVERTED V0104
    4.    OBSOLETE DATA CONVERTED V0200
    5.    OBSOLETE DATA RETAINED V0100
    6.    OBSOLETE DATA RETAINED V0102
    7.    OBSOLETE DATA RETAINED V0200
    8.    OBSOLETE DATA REVIEWED AND CHANGED V0102
    9.    OBSOLETE DATA REVIEWED AND CHANGED V0103
    10.   OBSOLETE DATA REVIEWED AND CHANGED V0200
    11.   OBSOLETE DATA CONVERTED V0203
    12.   OBSOLETE DATA REVIEWED AND CHANGED V0203
    13.   OBSOLETE DATA REVIEWED V0203
    14.   OBSOLETE DATA RETAINED AND REVIEWED V0203
    15.   OBSOLETE DATA RETAINED V0203
    16.   OBSOLETE DATA RETAINED V0104
    17.   OBSOLETE DATA RETAINED V0202
    18.   OBSOLETE DATA RETAINED AND REVIEWED V0200
    19.   OBSOLETE DATA CONVERTED V0204
    20.   OBSOLETE DATA REVIEWED AND CHANGED V0204
    21.   OBSOLETE DATA RETAINED AND REVIEWED V0204
    22.   OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
       an error is generated.
    [Example: none for CS Site-Specific Factor25]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
       an error is generated.
    [Example: none for CS Site-Specific Factor25]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
       an error is generated.
    [Example: none for CS Site-Specific Factor25]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor25]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor25]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
        A. If Year Of Diagnosis is 2010 or higher
            an error is generated.
        B. If CS Version Input Original is 020100 or greater (indicating the case was originally
           coded using CSv2), an error is generated.
    [Example: Schema = BileDuctsDistal, CS Site-Specific Factor25 = 100]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: none for CS Site-Specific Factor25]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
        an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion
    to CSV02.)
    [Example: none for CS Site-Specific Factor25]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
        an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to
    CSV02.)
    [Example: none for CS Site-Specific Factor25]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: Schema = LacrimalGland, CS Site-Specific Factor25 = 020]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: Schema = LacrimalGland, CS Site-Specific Factor25 = 010]

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor25]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor25]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor25]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-17">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-06-01">The logic for #1,5,6, and 7 was updated with the following: A. If year of diagnosis is 2010 or higher, an error is genereated. B. if CS Version Input Original is 020100 (incidating the case was originally coded using CSv2), an error is generated.</event>
                <event version="SE12-002-05" user="murphyr" date="2010-10-08">Edit modified to CS Input Original &apos;&gt;= 020100&apos; instead of &apos;=020100&apos; for cases originally coded using CsV2.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Updated for CSv2 version 02.03.02.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66615">Updated for CSv0204 obsolete codes.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF283" name="CS Mets at DX-Bone, CS Mets at DX (CS)" tag="N1944" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.csMetsAtDx == null || line.csMetsAtDxBone == null || line._csSchemaId == null)
    return true

if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
   return true

if (line.csMetsAtDxBone == '1' && (line.csMetsAtDx == '00' || line.csMetsAtDx == '99'))
    return false

if (line.csMetsAtDx == '00' && line.csMetsAtDxBone != '0')
    return false

if (line.csMetsAtDx == '98' && line._csSchemaId != 'ill_defined_other' && line.csMetsAtDxBone != '8')
    return false

return true]]></expression>
            <message>CS Mets at Dx-Bone and CS Mets at DX conflict</message>
            <description><![CDATA[Purpose: This edit verifies that CS Mets at DX-Bone and CS Mets at DX are coded consistently.

This edit is skipped if any of the following conditions are true:
    1. CS Mets at DX-Bone is empty
    2. CS Mets at DX is empty
    3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and schema is not Brain, CNSOther, or IntracranialGland

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS Mets at DX-Bone = 1 (yes), then CS Mets at DX must not = 00 (none) or 99 (unknown).

If CS Mets at DX = 00 (none), then CS Mets at DX-Bone must = 0 (none: no bone metastases).

If CS Mets at DX = 98 (not applicable) and CS schema is not IllDefinedOther, then CS Mets at DX-Bone must = 8 (not applicable).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-05">Edit created.</event>
                <event version="SE12-007-01" user="murphyr" date="2012-03-12" ref="66684">Added 99 as an invalid code for CS Mets at DX</event>
                <event version="SE12-008-01" user="murphyr" date="2012-08-15" ref="66723">Added &apos;If CS Mets at DX = 00 then CS Mets at DX-Bone must = 0&apos;</event>
                <event version="SE13-010-01" user="murphyr" date="2013-05-13" ref="66873">Added logic for site C809</event>
                <event version="SE14-012-02" user="depryf" date="2014-07-23" ref="67089">Now checking &apos;IllDefinedOther&apos; instead of &apos;C809&apos;; added exclusion for behavior 0/1 for some CS schemas.</event>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-08" ref="67124">Updated description.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF284" name="CS Mets at DX-Brain, CS Mets at DX (CS)" tag="N1945" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.csMetsAtDx == null || line.csMetsAtDxBrain == null || line._csSchemaId == null)
    return true

if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
   return true

if (line.csMetsAtDxBrain == '1' && (line.csMetsAtDx == '00' || line.csMetsAtDx == '99'))
    return false

if (line.csMetsAtDx == '00' && line.csMetsAtDxBrain != '0')
    return false

if (line.csMetsAtDx == '98' && line._csSchemaId != 'ill_defined_other' && line.csMetsAtDxBrain != '8')
    return false

return true]]></expression>
            <message>CS Mets at Dx-Brain and CS Mets at DX conflict</message>
            <description><![CDATA[Purpose: This edit verifies that CS Mets at DX-Brain and CS Mets at DX are coded consistently.

This edit is skipped if any of the following conditions are true:
    1. CS Mets at DX-Brain is empty
    2. CS Mets at DX is empty
    3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and schema is not Brain, CNSOther, or IntracranialGland

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS Mets at DX-Brain = 1 (yes), the CS Mets at DX must not = 00 (none) or 99 (unknown).

If CS Mets at DX = 00 (none), then CS Mets at DX-Brain must = 0 (none: no brain metastases).

If CS Mets at DX = 98 (not applicable) and CS schema is not IllDefinedOther, then CS Mets at DX-Brain must = 8 (not applicable).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-05">Edit created.</event>
                <event version="SE12-007-01" user="murphyr" date="2012-03-12" ref="66685">Added 99 as an invalid code for CS Mets at DX</event>
                <event version="SE12-008-01" user="murphyr" date="2012-08-15" ref="66724">Added &apos;If CS Mets at DX = 00 then CS Mets at DX-Brain must = 0&apos;</event>
                <event version="SE13-010-01" user="murphyr" date="2013-05-13" ref="66874">Added logic for site C809</event>
                <event version="SE14-012-02" user="depryf" date="2014-07-23" ref="67090">Now checking &apos;IllDefinedOther&apos; instead of &apos;C809&apos;; added exclusion for behavior 0/1 for some CS schemas.</event>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-08" ref="67125">Updated description.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF285" name="CS Mets at DX-Liver, CS Mets at DX (CS)" tag="N1947" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.csMetsAtDx == null || line.csMetsAtDxLiver == null || line._csSchemaId == null)
    return true

// this condition is missing from the description, but the metafile contains it...
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
   return true

if (line.csMetsAtDxLiver == '1' && (line.csMetsAtDx == '00' || line.csMetsAtDx == '99'))
    return false

if (line.csMetsAtDx == '00' && line.csMetsAtDxLiver != '0')
    return false

if (line.csMetsAtDx == '98' && line._csSchemaId != 'ill_defined_other' && line.csMetsAtDxLiver != '8')
    return false

return true]]></expression>
            <message>CS Mets at Dx-Liver and CS Mets at DX conflict</message>
            <description><![CDATA[Purpose: This edit verifies that CS Mets at DX-Liver and CS Mets at DX are coded consistently.

This edit is skipped if either field is empty. This edit is skipped if any of the following conditions are true:
    1. CS Mets at DX-Liver is empty
    2. CS Mets at DX is empty
    3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and schema is not Brain, CNSOther, or IntracranialGland

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS Mets at DX-Liver = 1 (yes), the CS Mets at DX must not = 00 (none) or 99 (unknown).

If CS Mets at DX = 00 (none), then CS Mets at DX-Liver must = 0 (none: no liver metastases).

If CS Mets at DX = 98 (not applicable) and CS schema is not IllDefinedOther, then CS Mets at DX-Liver must = 8 (not applicable).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-05">Edit created.</event>
                <event version="SE12-007-01" user="murphyr" date="2012-03-12" ref="66686">Added 99 as an invalid code for CS Mets at DX</event>
                <event version="SE12-008-01" user="murphyr" date="2012-08-15" ref="66725">Added &apos;If CS Mets at DX = 00, then CS Mets at DX-Liver must = 0&apos;&apos;</event>
                <event version="SE13-010-01" user="murphyr" date="2013-05-13" ref="66875">Added logic for site C809</event>
                <event version="SE14-012-02" user="depryf" date="2014-07-23" ref="67091">Now checking &apos;IllDefinedOther&apos; instead of &apos;C809&apos;; added exclusion for behavior 0/1 for some CS schemas.</event>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-08" ref="67126">Updated description.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF286" name="CS Mets at DX-Lung, CS Mets at DX (CS)" tag="N1948" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.csMetsAtDx == null || line.csMetsAtDxLung == null || line._csSchemaId == null)
    return true

if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland')
   return true

if (line.csMetsAtDxLung == '1' && (line.csMetsAtDx == '00' || line.csMetsAtDx == '99'))
    return false

if (line.csMetsAtDx == '00' && line.csMetsAtDxLung != '0')
    return false

if (line.csMetsAtDx == '98' && line._csSchemaId != 'ill_defined_other' && line.csMetsAtDxLung != '8')
    return false

return true]]></expression>
            <message>CS Mets at Dx-Lung and CS Mets at DX conflict</message>
            <description><![CDATA[Purpose:  This edit verifies that CS Mets at DX-Lung and CS Mets at DX are coded consistently.

This edit is skipped if any of the following conditions are true:
    1. CS Mets at DX-Lung is empty
    2. CS Mets at DX is empty
    3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and schema is not Brain, CNSOther, or IntracranialGland

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS Mets at DX-Lung = 1 (yes), the CS Mets at DX must not = 00 (none) or 99 (unknown).

If CS Mets at DX = 98 (not applicable) and CS schema is not IllDefinedOther, then CS Mets at DX-Lung must = 8 (not applicable).

If CS Mets at DX = 00, then CS Mets at DX-Lung must = 0.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-05">Edit created.</event>
                <event version="SE12-007-01" user="murphyr" date="2012-03-12" ref="66687">Added 99 as an invalid code for CS Mets at DX</event>
                <event version="SE12-008-01" user="murphyr" date="2012-08-15" ref="66726">Added &apos;If CS Mets at DX = 00, then CS Mets at DX-Lung must = 0&apos;</event>
                <event version="SE13-010-01" user="murphyr" date="2013-05-13" ref="66876">Added logic for site C809.  Fixed doc.</event>
                <event version="SE14-012-02" user="depryf" date="2014-07-23" ref="67092">Now checking &apos;IllDefinedOther&apos; instead of &apos;C809&apos;; added exclusion for behavior 0/1 for some CS schemas.</event>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-08" ref="67127">Updated description.</event>
                <event version="SE15-013-02" user="kirbyk" date="2015-03-04" ref="67199">Added &apos;If CS Mets at DX = 00, then CS Mets at DX-Lung must = 0&apos; to logic and description.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF287" name="CS SSF 6, RX Summ--Surg, ColoRectal (CS)" tag="N1753" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_6,RX_Summ--Surg_Prim_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csSiteSpecificFactor6 == null || line.csSiteSpecificFactor6 == '988' || line.rxSummSurgPrimSite == null
       || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'colon' || line._csSchemaId == 'rectum') {
    Integer ssf6 = Functions.asInt(line.csSiteSpecificFactor6)
    Integer csVersion = Functions.asInt(line.csVersionInputOriginal)
    Integer rxSummSurgPrimSite = Functions.asInt(line.rxSummSurgPrimSite)
    if (line.csVersionInputOriginal != null && csVersion < 20500) {
        if (rxSummSurgPrimSite == 0 && ssf6 != 998)
            return false
    }
    else if (csVersion >= 20500 || line.dateOfDiagnosisYear > '2015') {
        if (rxSummSurgPrimSite >= 0 && rxSummSurgPrimSite <= 29 && ssf6 != 998 && ssf6 != 999)
            return false
    }
    if (rxSummSurgPrimSite == 99 && ssf6 != 999)
        return false
    if ((ssf6 >= 0 && ssf6 <= 981) || (ssf6 >= 990 && ssf6 <= 996))
        return rxSummSurgPrimSite != 0 && rxSummSurgPrimSite != 99
}

return true]]></expression>
            <message>CS SSF6 and RX Summ-surg prim site conflict for ColoRectal</message>
            <description><![CDATA[This edit verifies that for cases coded using the Colon or Rectum schemas, CS Site-Specific Factor 6 (Circumferential Resection Margin) and RX Summ--Surg Prim Site are coded consistently.

This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 6 is blank or = 988 (obsolete data converted, code 888 was used in version 1 and was converted to 988 for version 2)
    2. RX Summ--Surgery Prim Site is blank
    3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
    4. CS Schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

For cases using the Colon or Rectum schemas:
    1. If CS Version Input Original is less than 020500 and CS Version Input Original is not blank:
          If RX Summ--Surg Prim Site = 00 (no surgery of primary site),
            then
            CS Site-specific Factor 6 must = 998 (no resection of primary site).

       If CS Version Input Original is 020500 or higher OR Year of Date of Diagnosis is greater than 2015:
          If RX Summ--Surg Prim Site = 00-29 (codes indicating no surgery
            of primary site or not enough tissue to measure the CRM)
            then
            CS Site-specific Factor 6 must = 998 (no resection of primary site) or 999 (unknown or CRM not mentioned)
    2. If RX Summ-Surg Prim Site = 99, then CS Site-specific Factor 6 must = 999
    3. If CS Site-specific Factor 6 = 000-981, 990-996, RX Summ-Surg Prim Site must not = 00 or 99]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-05">Edit created.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-21">Changed SSF6 range to 000-981, 990-996.</event>
                <event version="SE12-007-01" user="murphyr" date="2012-03-12" ref="66684">Added &apos;If RX Summ-Surg Prim Site = 00 then CS Site-specific Factor 6 must = 998&apos;</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-21" ref="66792">Added &apos;If RX Summ-Surg Prim Site = 99 then CS Site-specific Factor 6 must = 999&apos;</event>
                <event version="SE14-011-01" user="murphyr" date="2013-10-28" ref="67023">Split first condition into two parts, one for before 020500 and one for after 020500 (CS Version Input Original)</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-20" ref="67339">Updated the logic for the split in the first condition.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF288" name="CS Items - SEER Required - SSF 1 (CS)" tag="N2355" java-path="lines.line" category="inter-field" depends="CS_Version_Input_Current,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.csVersionInputCurrent == null && line.dateOfDiagnosisYear < '2016') ||
     (line.csVersionInputOriginal == null && line.dateOfDiagnosisYear < '2016') || line._csSchemaId == null)
    return true
if (Functions.matches(line.registryId, /^000000156[2356]$/))
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','intracranial_gland','cns_other'].contains(line._csSchemaId))
    return true

// condition 1
if (line.dateOfDiagnosisYear >= '2004' && line.dateOfDiagnosisYear <= '2017' && line.csSiteSpecificFactor1 == null)
    return false

Integer csInputOrig = Functions.asInt(line.csVersionInputOriginal)
Integer csInputCurr = Functions.asInt(line.csVersionInputCurrent)
Integer yearDx = Functions.asInt(line.dateOfDiagnosisYear)
String schemaMatch = ((List)((Map)Context.CS_SSF).get(line._csSchemaId))?.get(0)//ssf1

// R = Required, N = Not required after CSv0204
if (!['N','R'].contains(schemaMatch))
    return true

// condition 2
if (yearDx > 2015 && line.csExtension == null) {
    if (schemaMatch == 'R')
        if (!['retinoblastoma', 'esophagus', 'esophagus_gejunction', 'net_stomach', 'stomach'].contains(line._csSchemaId))
            return line.csSiteSpecificFactor1 != '988'

    return true
}

// condition 3
if ((yearDx >= 2014 && yearDx <= 2015) || ((yearDx == 2016 || yearDx == 2017) && line.csExtension != null) || (yearDx >= 2004 && yearDx <= 2015 && csInputOrig >= 20550)) {
    if (schemaMatch == 'R' && line.csSiteSpecificFactor1 == '988')
        return false

    return true
}

// condition 4
if ((yearDx >= 2010 && yearDx <= 2013) || csInputOrig >= 20001) {
    if (line.csSiteSpecificFactor1 == '988')
        return false

     return true
}

//  condition 5
if (yearDx > 2003 && yearDx < 2010 && csInputOrig < 20000) {
    if (csInputCurr == 20510) {
        if (((List)Context.IF288_Schemas_1).contains(line._csSchemaId)) {
            if (line.csSiteSpecificFactor1 != '988')
                return false
            return true
        }
        else {
            if (['stomach','esophagus_gejunction','net_stomach'].contains(line._csSchemaId))
                return true
        }
        if (line.csSiteSpecificFactor1 == '988')
            return false
    }
    else if (csInputCurr > 20510) {
        if (((List)Context.IF288_Schemas_1).contains(line._csSchemaId) || ['stomach','esophagus_gejunction','net_stomach'].contains(line._csSchemaId))
            return true
        if (line.csSiteSpecificFactor1 == '988')
            return false
    }
}

return true]]></expression>
            <message>CS Site-Specific Factor 1 requirements conflict for this schema</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Site-Specific Factor 1 is entered for the schemas for which it is required by SEER.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Current is blank and year of diagnosis < 2016
2. CS Version Input Original is blank and year of diagnosis < 2016
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland
4. CS schema is invalid
5. Date of Diagnosis is blank or invalid
6. Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

The logic is as follows:
1. For all schemas, if year of Diagnosis is 2004-2017, CS Site-Specific Factor 1 cannot be blank.

2.  If year of Diagnosis > 2015 and CS Extension is blank (CS items NOT collected ):
   A. CS Site-Specific Factor 1 must not be 988 (not applicable) for the schemas in List 1, "Schemas for which CS Site-Specific Factor 1 is Required for CSv0205 by SEER"
      EXCEPT for the following schemas: Retinoblastoma, Esophagus, EsophagusGEJunction, NETStomach and Stomach which can be 988.

3. For cases diagnosed in 2014-2015 OR (year of Diagnosis=2016-2017 and CS Extension is not blank(CS items collected)) OR (year of diagnosis in 2004-2015 and originally coded in CSv0205):
If year of Diagnosis is 2014-2015 OR (year of Diagnosis=2016-2017 and CS Extension is not blank(CS items collected)) OR (year of diagnosis=2004-2015 and CS Version Input Original is 020550 (originally entered in CSv0205) or higher), then CS Site-Specific Factor 1 must not be 988 (not applicable) for the schemas in List 1, "Schemas for which CS Site-Specific Factor 1 is Required for CSv0205 by SEER".

Note: List 2 includes the schemas for which CS Site-Specific Factor 1 was required for earlier versions of CSv02, but no longer required for CSv0205.  The code 988 is allowed for these particular schemas.

4. For cases diagnosed 2010-2013 OR originally coded in CSv0200-CSv0204:
If year of Diagnosis is 2010-2013 OR CS Version Input Original is greater than 020000 and less than 020550 (indicating case originally entered in CSv0200-CSv0204), then CS Site-Specific Factor 1 must not be 988 for the schemas in List 3, "Schemas for which CS Site-Specific Factor 1 is required for CSv0200-CSv0204 by SEER".

5. For cases diagnosed 2004-2009 AND originally coded in CSv01:
If year of Diagnosis is 2004-2009, then CS Site-Specific Factor 1 must not be 988 (not applicable) for the schemas for which CS Site-Specific Factor 1 is required (see List 3 below), with the following exceptions:

  A. If CS Version Input Current = 020510 (not changed since conversion
     from CSv01 to CSv02):

       1. If CS Site-Specific Factor 1 was not defined in CSv01xxxx
          (List 4 below), then CS Site-Specific Factor 1 must be coded 988.

       2. If schema is Stomach, EsophagusGEJunction or NETStomach (both based
          on Stomach) - schemas that were added after the initial implementation
          of CSv01, CS Site-Specific Factor 1 can be any valid code including
          988.

  B. If CS Version Input Current > 020510 (indicating record was at least
     partially updated in CSv02xxxx:

       1. If CS Site-Specific Factor 1 was not defined in CSv01 (see
          List 4 below),or schema is Stomach, EsophagusGEJunction, or
          NETStomach - schemas that were added after the initial implementation
          of CSv01, CS Site-Specific Factor 1 can be any valid code including
          988.


List 1: Schemas for which CS Site-Specific Factor 1 is Required for CSv0205 by SEER
 - "Required" means CS Site-Specific Factor 1 cannot = 988
--------------------------------------------------------------------------------------------------------
Appendix
BileDuctsIntraHepat
Bladder
Brain
Breast
BuccalMucosa
CNSOther
Colon
Conjunctiva
EpiglottisAnterior
Esophagus
EsophagusGEJunction
FloorMouth
GumLower
GumOther
GumUpper
HeartMediastinum
HemeRetic
Hypopharynx
IntracranialGland
KaposiSarcoma
KidneyParenchyma
KidneyRenalPelvis
LarynxGlottic
LarynxOther
LarynxSubglottic
LarynxSupraglottic
LipLower
LipOther
LipUpper
Liver
Lung
Lymphoma
LymphomaOcularAdnexa
MelanomaBuccalMucosa
MelanomaConjunctiva
MelanomaEpiglottisAnterior
MelanomaFloorMouth
MelanomaGumLower
MelanomaGumOther
MelanomaGumUpper
MelanomaHypopharynx
MelanomaLarynxGlottic
MelanomaLarynxOther
MelanomaLarynxSubglottic
MelanomaLarynxSupraglottic
MelanomaLipLower
MelanomaLipOther
MelanomaLipUpper
MelanomaMouthOther
MelanomaNasalCavity
MelanomaNasopharynx
MelanomaOropharynx
MelanomaPalateHard
MelanomaPalateSoft
MelanomaPharynxOther
MelanomaSinusEthmoid
MelanomaSinusMaxillary
MelanomaSinusOther
MelanomaSkin
MelanomaTongueAnterior
MelanomaTongueBase
MiddleEar
MouthOther
MycosisFungoides
NasalCavity
Nasopharynx
NETStomach
Oropharynx
Ovary
PalateHard
PalateSoft
ParotidGland
Peritoneum
PeritoneumFemaleGen
PharyngealTonsil
PharynxOther
Placenta
Pleura
Prostate
Rectum
Retinoblastoma
Retroperitoneum
SalivaryGlandOther
SinusEthmoid
SinusMaxillary
SinusOther
SmallIntestine
SoftTissue
Stomach
SubmandibularGland
Thyroid
TongueAnterior
TongueBase
Urethra

List 2: Schemas for which CS Site-Specific Factor 1, although required for CSv0200-CSv0204, is no longer required as of CSv0205 and 988 is allowed
------------------------------------------------------------------------
Cervix
CorpusAdenosarcoma
CorpusCarcinoma
CorpusSarcoma
FallopianTube
MerkelCellPenis
MerkelCellScrotum
MerkelCellSkin
MerkelCellVulva
Scrotum
Skin
Vagina

List 3: Schemas for which CS Site-Specific Factor 1 is required for CSv0200-CSv0204 by SEER
 - "Required" means CS Site-Specific Factor 1 cannot = 988
--------------------------------------------------------------------------------------------------------
Appendix
BileDuctsIntraHepat
Bladder
Brain
Breast
BuccalMucosa
Cervix
CNSOther
Colon
Conjunctiva
CorpusAdenosarcoma
CorpusCarcinoma
CorpusSarcoma
EpiglottisAnterior
Esophagus
EsophagusGEJunction
FallopianTube
FloorMouth
GumLower
GumOther
GumUpper
HeartMediastinum
HemeRetic
Hypopharynx
IntracranialGland
KaposiSarcoma
KidneyParenchyma
KidneyRenalPelvis
LarynxGlottic
LarynxOther
LarynxSubglottic
LarynxSupraglottic
LipLower
LipOther
LipUpper
Liver
Lung
Lymphoma
LymphomaOcularAdnexa
MelanomaBuccalMucosa
MelanomaConjunctiva
MelanomaEpiglottisAnterior
MelanomaFloorMouth
MelanomaGumLower
MelanomaGumOther
MelanomaGumUpper
MelanomaHypopharynx
MelanomaLarynxGlottic
MelanomaLarynxOther
MelanomaLarynxSubglottic
MelanomaLarynxSupraglottic
MelanomaLipLower
MelanomaLipOther
MelanomaLipUpper
MelanomaMouthOther
MelanomaNasalCavity
MelanomaNasopharynx
MelanomaOropharynx
MelanomaPalateHard
MelanomaPalateSoft
MelanomaPharynxOther
MelanomaSinusEthmoid
MelanomaSinusMaxillary
MelanomaSinusOther
MelanomaSkin
MelanomaTongueAnterior
MelanomaTongueBase
MerkelCellPenis
MerkelCellScrotum
MerkelCellSkin
MerkelCellVulva
MiddleEar
MouthOther
MycosisFungoides
NasalCavity
Nasopharynx
NETStomach
Oropharynx
Ovary
PalateHard
PalateSoft
ParotidGland
Peritoneum
PeritoneumFemaleGen
PharyngealTonsil
PharynxOther
Placenta
Pleura
Prostate
Rectum
Retinoblastoma
Retroperitoneum
SalivaryGlandOther
Scrotum
SinusEthmoid
SinusMaxillary
SinusOther
Skin
SmallIntestine
SoftTissue
Stomach
SubmandibularGland
Thyroid
TongueAnterior
TongueBase
Urethra
Vagina


List 4: Schemas for which CS Site-Specific Factor 1, although required for CSv02, was not defined in CSv01
----------------------------------------------------------------------------------------------------------
Bladder
Cervix
Conjunctiva
CorpusAdenosarcoma
CorpusCarcinoma
CorpusSarcoma
Esophagus
FallopianTube
HeartMediastinum
HemeRetic
KidneyParenchyma
KidneyRenalPelvis
Lung
MerkelCellPenis
MerkelCellScrotum
MerkelCellSkin
MerkelCellVulva
Peritoneum
PeritoneumFemaleGen
Retroperitoneum
Scrotum
Skin
SmallIntestine
SoftTissue
Urethra
Vagina]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-02">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-23">Changed logic. Added year of diagnosis into edit.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-15">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-005-08" user="murphyr" date="2011-12-15" ref="66576">Added Appendix and BileDuctsIntrahepat to List 1</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-20" ref="66577">Update for version CSv0204.</event>
                <event version="SE12-006-03" user="murphyr" date="2012-01-23" ref="66667">Fixed schema lists and comments in code.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-10-30" ref="66995">Updated for Csv0205.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-25" ref="67241">Updated logic for 2016 cases.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-24" ref="67421">Changed edit to not force 988 when DX year is 2016+ and and schema is not defined.</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-08" ref="67565">Updated logic to include 2017 cases where CS is collected.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67723">Updated logic to allow blank SSF 1 for 2018+ cases.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68292">Added skip condition for Massachusetts</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68715">Added skip condition for Illinois and Texas.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF289" name="CS Items - SEER Required - SSF 2 (CS)" tag="N2368" java-path="lines.line" category="inter-field" depends="CS_Version_Input_Current,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.csVersionInputCurrent == null && line.dateOfDiagnosisYear < '2016') ||
     (line.csVersionInputOriginal == null && line.dateOfDiagnosisYear < '2016') || line._csSchemaId == null)
    return true
if (Functions.matches(line.registryId, /^000000156[2356]$/))
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','intracranial_gland','cns_other'].contains(line._csSchemaId))
    return true

// condition 1
if (line.dateOfDiagnosisYear >= '2004' && line.dateOfDiagnosisYear <= '2017' && line.csSiteSpecificFactor2 == null)
    return false

Integer csInputOrig = Functions.asInt(line.csVersionInputOriginal)
Integer csInputCurr = Functions.asInt(line.csVersionInputCurrent)
Integer yearDx = Functions.asInt(line.dateOfDiagnosisYear)
String schemaMatch = ((List)((Map)Context.CS_SSF).get(line._csSchemaId))?.get(1)//ssf2

// R = Required, N = Not required after CSv0204
if (!['N','R'].contains(schemaMatch))
    return true

// condition 2
if (yearDx > 2015 && line.csExtension == null) {
    if (schemaMatch == 'R') {
        if (!['appendix','carcinoid_appendix','colon','net_colon','net_rectum','rectum','small_intestine'].contains(line._csSchemaId))
            return line.csSiteSpecificFactor2 != '988'
    }

    return true
}

// condition 3
if ((yearDx >= 2014 && yearDx <= 2015) || ((yearDx == 2016 || yearDx == 2017) && line.csExtension != null) || (yearDx >= 2004 && yearDx <= 2015 && csInputOrig >= 20550)) {
    if (schemaMatch == 'R' && line.csSiteSpecificFactor2 == '988')
        return false

    return true
}

// condition 4
if ((yearDx >= 2011 && yearDx <= 2013) ||
     csInputOrig >= 20302) {

    if (line.csSiteSpecificFactor2 == '988')
        return false

     return true
}

// skip if schema is MyelomaPlasmaCellDisorder
if (line._csSchemaId == 'myeloma_plasma_cell_disorder')
    return true

// condition 5
if (yearDx == 2010 || Functions.matches(line.csVersionInputOriginal, /(^0201\d\d$)/) || Functions.matches(line.csVersionInputOriginal, /(^0202\d\d$)/)) {
    if (line.csSiteSpecificFactor2 == '988')
        return false
}

// condition 6
if (yearDx > 2003 && yearDx < 2010 && csInputOrig < 20000) {
    if (csInputCurr == 20510) {
        if (((List)Context.IF289_Schemas_1).contains(line._csSchemaId)) {
            if (line.csSiteSpecificFactor2 != '988')
                return false
            return true
        }
        else {
            if (['appendix','carcinoid_appendix','net_colon','colon','net_rectum','rectum'].contains(line._csSchemaId))
                return true
        }
        if (line.csSiteSpecificFactor2 == '988')
            return false
    }
    else if (csInputCurr > 20510) {
        if (((List)Context.IF289_Schemas_1).contains(line._csSchemaId) || ['appendix','carcinoid_appendix','net_colon','colon','net_rectum','rectum'].contains(line._csSchemaId))
            return true
        if (line.csSiteSpecificFactor2 == '988')
            return false
    }
}

return true]]></expression>
            <message>CS Site-Specific Factor 2 requirements conflict for this schema</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Site-Specific Factor 2 is entered for the schemas for which it is required by SEER.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Current is blank and year of diagnosis < 2016
2. CS Version Input Original is blank and year of diagnosis < 2016
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland
4. CS schema is invalid
5. Date of Diagnosis is blank or invalid
6. Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

The logic is as follows:
1. For all schemas, if year of Diagnosis is 2004-2017, CS Site-Specific Factor 2 cannot be blank.

2.  If year of Diagnosis > 2015 and CS Extension is blank (CS items NOT collected ):
   A. CS Site-Specific Factor 2 must not be 988 (not applicable) for the schemas in List 1, "Schemas for which CS Site-Specific Factor 2 is Required for CSv0205 by SEER"
      EXCEPT for the following schemas: Appendix, Carcinoid Appendix, Colon, NETColon, NETRectum, Rectum, and SmallIntestine which can be 988.

3. For cases diagnosed in 2014-15 OR (year of Diagnosis=2016-2017 and CS Extension is not blank (CS items collected)) OR (year of diagnosis in 2004-2015 and originally coded in CSv0205):
If year of Diagnosis is 2014-15 OR (year of Diagnosis=2016-2017 and CS Extension is not blank(CS items collected)) OR (year of diagnosis=2004-2015 and CS Version Input Original is 020550 (originally entered in CSv0205) or higher), then CS Site-Specific Factor 2 must not be 988 (not applicable) for the schemas in List 1, "Schemas for which CS Site-Specific Factor 2 is Required for CSv0205 by SEER".

Note: List 2 includes the schemas for which CS Site-Specific Factor 2 was required for earlier versions of CSv02, but no longer required for CSv0205.  The code 988 is allowed for these particular schemas.

4. For cases diagnosed 2011-2013 OR originally coded in CSv0203-CSv0204:
If year of Diagnosis is 2011-2013 OR CS Version Input Original is 020302 or higher:
then
    CS Site-Specific Factor 2 must not be 988 for the
    schemas for which CS Site-Specific Factor 2 is required (see List 3 below).

Note: For remaining conditions, skip if schema is MyelomaPlasmaCellDisorder, since CS Site-Specific Factor 2 is required only for cases diagnosed 2011 or later OR entered originally in CSv0203 or higher

5. For cases diagnosed 2010 OR originally coded in CSv0201xx or CSv0202xx:
If year of Diagnosis is 2010 OR CS Version Input Original is 0201xx or 0202xx:
then
     CS Site-Specific Factor 2 must not be 988 for the schemas
     for which CS Site-Specific Factor 2 is required (see List 3 below).

6. For cases diagnosed 2004-2009 AND originally coded in CSv01:
If year of Diagnosis is 2004-2009, then CS Site-Specific Factor 2 must not be 988 (not applicable) for the schemas for which CS Site-Specific Factor 2 is required (see List 3 below), with the following exceptions:
  A. If CS Version Input Current = 020510 (not changed since conversion from CSv01 to CSv02):

       1. If CS Site-Specific Factor 2 was not defined in CSv01xxxx
          (List 4 below), then CS Site-Specific Factor 2 must be coded 988.

       2. If schema is = Appendix, CarcinoidAppendix, or NETColon (all three
          based on Colon schema), Colon, NETRectum (based on Rectum schema),
          or Rectum (schemas that were added after the initial implementation
          of CSv01)
          then
             CS Site-Specific Factor 2 can be any valid code including 988.

  B. If CS Version Input Current > 020510 (indicating record was at least
     partially updated in CSv02xxxx:

       1. If CS Site-Specific Factor 2 was not defined in CSv01 (see
          List 4 below),or schema is Appendix,  CarcinoidAppendix,  Colon,
          NETColon, NETRectum, or Rectum - schemas that were added after
          the initial implementation of CSv01, CS Site-Specific Factor 2
          can be any valid code including 988.


List 1: List of Schemas for which CS Site-Specific Factor 2 is required for CSv0205 by SEER
 - "Required" means CS Site-Specific Factor 2 cannot = 988
----------------------------------------------------------------------------------------
Appendix
Bladder
Breast
CarcinoidAppendix
Colon
CorpusAdenosarcoma
CorpusCarcinoma
CorpusSarcoma
KidneyParenchyma
Lung
Lymphoma
LymphomaOcularAdnexa
MelanomaChoroid
MelanomaCiliaryBody
MelanomaConjunctiva
MelanomaSkin
MyelomaPlasmaCellDisorder (required only for cases diagnosed 2011+
                            or entered originally in CSv0203 or later)
NETColon
NETRectum
Pleura
Prostate
Rectum
SmallIntestine

List 2: Schemas for which CS Site-Specific Factor 2, although required for CSv0200-CSv0204, is no longer required as of CSv0205 and 988 is allowed
-----------------------------------------------------------------------------------------
BileDuctsIntraHepat
KidneyRenalPelvis
Liver
Ovary
PeritoneumFemaleGen
Placenta
Vagina

List 3: List of Schemas for which CS Site-Specific Factor 2 is required for CSv0200-CSv0204 by SEER
 - "Required" means CS Site-Specific Factor 2 cannot = 988
----------------------------------------------------------------------------------------
Appendix
BileDuctsIntraHepat
Bladder
Breast
CarcinoidAppendix
Colon
CorpusAdenosarcoma
CorpusCarcinoma
CorpusSarcoma
KidneyParenchyma
KidneyRenalPelvis
Liver
Lung
Lymphoma
LymphomaOcularAdnexa
MelanomaChoroid
MelanomaCiliaryBody
MelanomaConjunctiva
MelanomaSkin
MyelomaPlasmaCellDisorder (required only for cases diagnosed 2011+
                            or entered originally in CSv0203 or later)
NETColon
NETRectum
Ovary
PeritoneumFemaleGen
Placenta
Pleura
Prostate
Rectum
SmallIntestine
Vagina

List 4: List of schemas for which CS Site-Specific Factor 2, although required for CSv02, was not defined in CSv01:
---------------------------------------------------------------------------------
Bladder
CorpusAdenosarcoma
CorpusCarcinoma
CorpusSarcoma
KidneyParenchyma
KidneyRenalPelvis
Lung
MelanomaChoroid
MelanomaCiliaryBody
MelanomaConjunctiva
Ovary
PeritoneumFemaleGen
Placenta
Pleura
SmallIntestine
Vagina]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-02">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-23">Changed logic. Added year of diagnosis into edit.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-15">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-23">Added a skip condition for MyelomaPlasmaCellDisorder.</event>
                <event version="SE12-004-02" user="murphyr" date="2011-03-18" ref="66447">Refined behavior skip condition (made it not skip for certain schemas) and refactored code.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-20" ref="66587">Updated for CSv0204 versioning.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-06-14" ref="66888">Fixed logic for condition &apos;If year of Diagnosis is 2011 or later OR CS Version Input Original is 020302 or higher&apos;.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66905">MyelomaPlasmaCellDisorder was in the wrong IF289 table.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-10-30" ref="67006">Update for CSv0205.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-05" ref="67267">Updated logic for 2016 cases.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-24" ref="67422">Changed edit to not force 988 when DX year is 2016+ and schema is not defined.</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-08" ref="67566">Updated logic to include 2017 cases that collect CS.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67723">Updated logic to allow blank SSF 2 for 2018+ cases.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68292">Added skip condition for Massachusetts</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68715">Added skip condition for Illinois and Texas.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF290" name="CS Items - SEER Required - SSF 3 (CS)" tag="N2369" java-path="lines.line" category="inter-field" depends="CS_Version_Input_Current,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.csVersionInputCurrent == null && line.dateOfDiagnosisYear < '2016') ||
     (line.csVersionInputOriginal == null && line.dateOfDiagnosisYear < '2016') || line._csSchemaId == null)
    return true
if (Functions.matches(line.registryId, /^000000156[2356]$/))
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','intracranial_gland','cns_other'].contains(line._csSchemaId))
    return true

// condition 1
if (line.dateOfDiagnosisYear >= '2004' && line.dateOfDiagnosisYear <= '2017' && line.csSiteSpecificFactor3 == null)
    return false

Integer csInputOrig = Functions.asInt(line.csVersionInputOriginal)
Integer csInputCurr = Functions.asInt(line.csVersionInputCurrent)
Integer yearDx = Functions.asInt(line.dateOfDiagnosisYear)
String schemaMatch = ((List)((Map)Context.CS_SSF).get(line._csSchemaId))?.get(2)//ssf3

// R = Required, N = Not required after CSv0204
if (!['N','R'].contains(schemaMatch))
    return true

// condition 2
if (yearDx > 2015 && line.csExtension == null) {
    if (schemaMatch == 'R') {
        if (!['lacrimal_gland','melanoma_skin','merkel_cell_penis','merkel_cell_scrotum','merkel_cell_skin','merkel_cell_vulva','prostate','skin_eyelid'].contains(line._csSchemaId))
            return line.csSiteSpecificFactor3 != '988'
    }

    return true
}

// condition 3
if ((yearDx >= 2014 && yearDx <= 2015) || ((yearDx == 2016 || yearDx == 2017) && line.csExtension != null) || (yearDx >= 2004 && yearDx <= 2015 && csInputOrig >= 20550)) {
    if (schemaMatch == 'R' && line.csSiteSpecificFactor3 == '988')
        return false

    return true
}

// condition 4
if ((yearDx >= 2011 && yearDx <= 2013) ||csInputOrig >= 20302) {
    if (line.csSiteSpecificFactor3 == '988')
        return false

     return true
}


// skip if schema is MyelomaPlasmaCellDisorder
if (line._csSchemaId == 'myeloma_plasma_cell_disorder')
    return true

// condition 5
if (yearDx == 2010 || Functions.matches(line.csVersionInputOriginal, /(^0201\d\d$)/) || Functions.matches(line.csVersionInputOriginal, /(^0202\d\d$)/)) {
    if (line.csSiteSpecificFactor3 == '988')
        return false
}

// condition 6
if (yearDx > 2003 && yearDx < 2010 && csInputOrig < 20000) {
    if (csInputCurr == 20510) {
        if (((List)Context.IF290_Schemas_1).contains(line._csSchemaId)) {
            if (line.csSiteSpecificFactor3 != '988')
                return false
            return true
        }
        if (line.csSiteSpecificFactor3 == '988')
            return false
    }
    else if (csInputCurr > 20510) {
        if (((List)Context.IF290_Schemas_1).contains(line._csSchemaId))
            return true
        if (line.csSiteSpecificFactor3 == '988')
            return false
    }
}

return true]]></expression>
            <message>CS Site-Specific Factor 3 requirements conflict for this schema</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Site-Specific Factor 3 is entered for the schemas required by SEER.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Current is blank and year of diagnosis < 2016
2. CS Version Input Original is blank and year of diagnosis < 2016
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland
4. CS schema is invalid
5. Date of Diagnosis is blank or invalid
6. Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

The logic is as follows:
1. For all schemas, if year of Diagnosis is 2004-2017, CS Site-Specific Factor 3 cannot be blank.

2. If year of Diagnosis > 2015 and CS Extension is blank (CS items NOT collected):
   A. CS Site-Specific Factor 3 must not be 988 (not applicable) for the schemas in List 1, "Schemas for which CS Site-Specific Factor 3 is Required for CSv0205 by SEER"
      EXCEPT for the following schemas: Lacrimal Gland, Melanoma Skin, MerkelCell Penis, MerkelCell Scrotum, MerkelCell Skin, MerkelCell Vulva, Prostate, and Skin Eyelid which can be 988.

3. For cases diagnosed in 2014-2015 OR (year of Diagnosis=2016-2017 and CS Extension is not blank (CS items collected)) OR (year of diagnosis in 2004-2015 and originally coded in CSv0205):
If year of Diagnosis is 2014-2015 OR (year of Diagnosis=2016-2017 and CS Extension is not blank (CS items collected)) OR (year of diagnosis in 2004-2015 and CS Version Input Original is 020550 (originally entered in CSv0205) or higher), then CS Site-Specific Factor 3 must not be 988 (not applicable) for the schemas in List 1, "Schemas for which CS Site-Specific Factor 3 is Required for CSv0205 by SEER".

Note: List 2 includes the schemas for which CS Site-Specific Factor 3 was required for earlier versions of CSv02, but no longer required for CSv0205.  The code 988 is allowed for these particular schemas.

4. For cases diagnosed 2011-2013 OR originally coded in CSv0203-CSv0204:
If year of Diagnosis is 2011-2013 OR CS Version Input Original is 020302 or higher:
then
    CS Site-Specific Factor 3 must not be 988 for the
    schemas for which CS Site-Specific Factor 3 is required (see List 3 below).

Note: For remaining conditions, skip if schema is MyelomaPlasmaCellDisorder, since CS Site-Specific Factor 3 is required only for cases diagnosed 2011 or later OR entered originally in CSv0203 or higher

5. For cases diagnosed 2010 OR originally coded in CSv0201xx or CSv0202xx:
If year of Diagnosis is 2010 OR CS Version Input Original is 0201xx or 0202xx:
then
     CS Site-Specific Factor 3 must not be 988 for the schemas
     for which CS Site-Specific Factor 3 is required (see List 3 below).

6. For cases diagnosed 2004-2009 AND originally coded in CSv01:
If year of Diagnosis is 2004-2009, then CS Site-Specific Factor 3 must not be 988 (not applicable) for the schemas for which CS Site-Specific Factor 3 is required (see List 3 below), with the following exceptions:

  A. If CS Version Input Current = 020510 (not changed since
     conversion from CSv01 to CSv02):

       CS Site-Specific Factor 3 must not be 988.

       Exceptions:
       1. If CS Site-Specific Factor 3 was not defined in CSv01 (see List 4
          below)
          then
              CS Site-Specific Factor 3 must be coded 988.

  B. If CS Version Input Current > 020510 [indicating record was at least
     partially updated in CSv02 (any version)]:

       CS Site-Specific Factor 3 must not be 988.

       Exceptions:
       1. If CS Site-Specific Factor 3 was not defined in CSv01
          (see List 4 below),
          then
              CS Site-Specific Factor 3 can be any valid code including 988.


List 1: List of Schemas for which CS Site-Specific Factor 3 is required for CSv0205 by SEER
 - "Required" means CS Site-Specific Factor 3 cannot = 988
----------------------------------------------------------------------------------------
Bladder
Breast
BuccalMucosa
CorpusAdenosarcoma
CorpusCarcinoma
CorpusSarcoma
EpiglottisAnterior
FloorMouth
GumLower
GumOther
GumUpper
HeartMediastinum
Hypopharynx
KidneyParenchyma
LarynxGlottic
LarynxOther
LarynxSubglottic
LarynxSupraglottic
LipLower
LipOther
LipUpper
MelanomaBuccalMucosa
MelanomaChoroid
MelanomaCiliaryBody
MelanomaEpiglottisAnterior
MelanomaFloorMouth
MelanomaGumLower
MelanomaGumOther
MelanomaGumUpper
MelanomaHypopharynx
MelanomaIris
MelanomaLarynxGlottic
MelanomaLarynxOther
MelanomaLarynxSubglottic
MelanomaLarynxSupraglottic
MelanomaLipLower
MelanomaLipOther
MelanomaLipUpper
MelanomaMouthOther
MelanomaNasalCavity
MelanomaNasopharynx
MelanomaOropharynx
MelanomaPalateHard
MelanomaPalateSoft
MelanomaPharynxOther
MelanomaSinusEthmoid
MelanomaSinusMaxillary
MelanomaSinusOther
MelanomaSkin
MelanomaTongueAnterior
MelanomaTongueBase
MerkelCellPenis
MerkelCellScrotum
MerkelCellSkin
MerkelCellVulva
MiddleEar
MouthOther
MyelomaPlasmaCellDisorder (required only for cases diagnosed 2011+
                            or entered originally in CSv0203)
NasalCavity
Nasopharynx
Oropharynx
Ovary
PalateHard
PalateSoft
ParotidGland
PeritoneumFemaleGen
PharyngealTonsil
PharynxOther
Prostate
SalivaryGlandOther
SinusEthmoid
SinusMaxillary
SinusOther
SkinEyelid
SoftTissue
SubmandibularGland
TongueAnterior
TongueBase

List 2: Schemas for which CS Site-Specific Factor 3, although required for CSv0200-CSv0204, is no longer required as of CSv0205 and 988 is allowed
----------------------------------------------------------------------------------------
Appendix
Bone
Colon
Liver
Lymphoma
LymphomaOcularAdnexa
Rectum
SmallIntestine
Vagina

List 3: List of Schemas for which CS Site-Specific Factor 3 is required for CSv0200-CSv0204 by SEER
 - "Required" means CS Site-Specific Factor 3 cannot = 988

----------------------------------------------------------------------------------------
Appendix
Bladder
Bone
Breast
BuccalMucosa
Colon
CorpusAdenosarcoma
CorpusCarcinoma
CorpusSarcoma
EpiglottisAnterior
FloorMouth
GumLower
GumOther
GumUpper
HeartMediastinum
Hypopharynx
KidneyParenchyma
LarynxGlottic
LarynxOther
LarynxSubglottic
LarynxSupraglottic
LipLower
LipOther
LipUpper
Liver
Lymphoma
LymphomaOcularAdnexa
MelanomaBuccalMucosa
MelanomaChoroid
MelanomaCiliaryBody
MelanomaEpiglottisAnterior
MelanomaFloorMouth
MelanomaGumLower
MelanomaGumOther
MelanomaGumUpper
MelanomaHypopharynx
MelanomaIris
MelanomaLarynxGlottic
MelanomaLarynxOther
MelanomaLarynxSubglottic
MelanomaLarynxSupraglottic
MelanomaLipLower
MelanomaLipOther
MelanomaLipUpper
MelanomaMouthOther
MelanomaNasalCavity
MelanomaNasopharynx
MelanomaOropharynx
MelanomaPalateHard
MelanomaPalateSoft
MelanomaPharynxOther
MelanomaSinusEthmoid
MelanomaSinusMaxillary
MelanomaSinusOther
MelanomaSkin
MelanomaTongueAnterior
MelanomaTongueBase
MerkelCellPenis
MerkelCellScrotum
MerkelCellSkin
MerkelCellVulva
MiddleEar
MouthOther
MyelomaPlasmaCellDisorder (required only for cases diagnosed 2011+
                            or entered originally in CSv0203)
NasalCavity
Nasopharynx
Oropharynx
Ovary
PalateHard
PalateSoft
ParotidGland
PeritoneumFemaleGen
PharyngealTonsil
PharynxOther
Prostate
Rectum
SalivaryGlandOther
SinusEthmoid
SinusMaxillary
SinusOther
SkinEyelid
SmallIntestine
SoftTissue
SubmandibularGland
TongueAnterior
TongueBase
Vagina


List 4: List of schemas for which CS Site-Specific Factor 3, although required for CSv02, was not defined in CSv01:
---------------------------------------------------------------------------------
Appendix
Bladder
Bone
Colon
CorpusAdenosarcoma
CorpusCarcinoma
CorpusSarcoma
HeartMediastinum
KidneyParenchyma
Liver
MelanomaChoroid
MelanomaCiliaryBody
MelanomaIris
MerkelCellPenis
MerkelCellScrotum
MerkelCellSkin
MerkelCellVulva
Ovary
PeritoneumFemaleGen
Rectum
SkinEyelid
SmallIntestine
SoftTissue
Vagina]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-02">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-23">Changed logic. Added year of diagnosis into edit.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-15">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-23">Added a skip condition for MyelomaPlasmaCellDisorder.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-20" ref="66591">Updated for CSv0204 versioning</event>
                <event version="SE13-010-01" user="murphyr" date="2013-06-14" ref="66888">Fixed logic for condition &apos;If year of Diagnosis is 2011 or later OR CS Version Input Original is 020302 or higher&apos;.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-10-31" ref="67012">Updated for CSv0205</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-07" ref="67268">Updated logic for 2016 cases.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-24" ref="67423">Changed edit to not force 988 when DX year is 2016+ and schema is not defined.</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-08" ref="67567">Updated logic to include 2017 cases that collect CS.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67723">Updated logic to allow blank SSF 3 for 2018+ cases.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68292">Added skip condition for Massachusetts</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68715">Added skip condition for Illinois and Texas.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF291" name="CS Items - SEER Required - SSF 4 (CS)" tag="N2177" java-path="lines.line" category="inter-field" depends="CS_Version_Input_Current,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.csVersionInputCurrent == null && line.dateOfDiagnosisYear < '2016') ||
     (line.csVersionInputOriginal == null && line.dateOfDiagnosisYear < '2016') || line._csSchemaId == null)
    return true
if (Functions.matches(line.registryId, /^000000156[2356]$/))
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','intracranial_gland','cns_other'].contains(line._csSchemaId))
    return true

// condition 1
if (line.dateOfDiagnosisYear >= '2004' && line.dateOfDiagnosisYear <= '2017' && line.csSiteSpecificFactor4 == null)
    return false

Integer csInputOrig = Functions.asInt(line.csVersionInputOriginal)
Integer csInputCurr = Functions.asInt(line.csVersionInputCurrent)
Integer yearDx = Functions.asInt(line.dateOfDiagnosisYear)
String schemaMatch = ((List)((Map)Context.CS_SSF).get(line._csSchemaId))?.get(3)//ssf4

// condition 2
if (yearDx >= 2004 && yearDx <= 2009 && line._csSchemaId == 'prostate') {
    if (line.csSiteSpecificFactor4 == '988')
        return false
    return true
}

// R = Required, N = Not required after CSv0204
if (!['N','R'].contains(schemaMatch))
    return true

// condition 3
if (yearDx >= 2014 || csInputOrig >= 20550) {
    if (schemaMatch == 'R' && line.csSiteSpecificFactor4 == '988')
        return false

    return true
}

// condition 4
if ((yearDx >= 2010 && yearDx <= 2013) || (csInputOrig >= 20001 && csInputOrig < 20550)) {
    if (line.csSiteSpecificFactor4 == '988')
        return false

     return true
}

// condition 5
if (yearDx > 2003 && yearDx < 2010 && csInputOrig < 20000) {
    if (csInputCurr == 20510) {
        if (((List)Context.IF291_Schemas_1).contains(line._csSchemaId)) {
            if (line.csSiteSpecificFactor4 != '988')
                return false
            return true
        }
        if (line.csSiteSpecificFactor4 == '988')
            return false
    }
    else if (csInputCurr > 20510) {
        if (((List)Context.IF291_Schemas_1).contains(line._csSchemaId))
            return true
        if (line.csSiteSpecificFactor4 == '988')
            return false
    }
}

return true]]></expression>
            <message>CS Site-Specific Factor 4 requirements conflict for this schema</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Site-Specific Factor 4 is entered for the schemas required by SEER.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Current is blank and year of diagnosis < 2016
2. CS Version Input Original is blank and year of diagnosis < 2016
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland
4. CS schema is invalid
5. Date of Diagnosis is blank or invalid
6. Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

The logic is as follows:
1. For all schemas, if year of Diagnosis is 2004-2017, CS Site-Specific Factor 4 cannot be blank.

2. If year of Date of Diagnosis is 2004-2009 AND schema is Prostate,
then CS Site-Specific Factor 4 must not be 988 (not applicable; information not collected for this case).

3. For cases diagnosed in 2014 or later OR originally coded in CSv0205:
If year of Diagnosis is 2014 or later OR CS Version Input Original is 020550 (originally entered in CSv0205) or higher, then CS Site-Specific Factor 4 must not be 988 (not applicable) for the schemas in List 1, "Schemas for which CS Site-Specific Factor 4 is Required for CSv0205 by SEER".

Note: List 2 includes the schemas for which CS Site-Specific Factor 4 was required for earlier versions of CSv02, but no longer required for CSv0205.  The code 988 is allowed for these particular schemas.

4. For cases diagnosed 2010-2013 OR originally coded in CSv0200-CSv0204:
If year of Diagnosis is 2010-2013 OR CS Version Input Original is greater than 020000 and less than 020550 (indicating case originally entered in CSv0200-CSv0204), then CS Site-Specific Factor 4 must not be 988 for the schemas in List 3, "Schemas for which CS Site-Specific Factor 1 is required for CSv0200-CSv0204 by SEER".

5.If year of Diagnosis is 2004-2009 AND CS Version Input Original is 01xxxx:

  A. If CS Version Input Current = 020510 (not changed since
     conversion from CSv01 to CSv02):

       CS Site-Specific Factor 4 must not be 988.

       Exceptions:
       1. If CS Site-Specific Factor 4 was not defined in CSv01 (see List 4
          below),
          then
              CS Site-Specific Factor 4 must be coded 988.

  B. If CS Version Input Current > 020510 [indicating record was at least
     partially updated in CSv02 (any version)]:

       CS Site-Specific Factor 4 must not be 988.

       Exceptions:
       1. If CS Site-Specific Factor 4 was not defined in CSv01
          (see List 4 below),
          then
              CS Site-Specific Factor 4 may be any valid code including 988.


List 1: Schemas for which CS Site-Specific Factor 4 is Required for CSv0205 by SEER
 - "Required" means CS Site-Specific Factor 1 cannot = 988
----------------------------------------------------------------------------------------
Breast
BuccalMucosa
Colon
CorpusAdenosarcoma
CorpusCarcinoma
CorpusSarcoma
EpiglottisAnterior
FallopianTube
FloorMouth
GumLower
GumOther
GumUpper
Hypopharynx
KidneyParenchyma
LacrimalGland
LarynxGlottic
LarynxOther
LarynxSubglottic
LarynxSupraglottic
LipLower
LipOther
LipUpper
MelanomaBuccalMucosa
MelanomaChoroid
MelanomaCiliaryBody
MelanomaEpiglottisAnterior
MelanomaFloorMouth
MelanomaGumLower
MelanomaGumOther
MelanomaGumUpper
MelanomaHypopharynx
MelanomaIris
MelanomaLarynxGlottic
MelanomaLarynxOther
MelanomaLarynxSubglottic
MelanomaLarynxSupraglottic
MelanomaLipLower
MelanomaLipOther
MelanomaLipUpper
MelanomaMouthOther
MelanomaNasalCavity
MelanomaNasopharynx
MelanomaOropharynx
MelanomaPalateHard
MelanomaPalateSoft
MelanomaPharynxOther
MelanomaSinusEthmoid
MelanomaSinusMaxillary
MelanomaSinusOther
MelanomaSkin
MelanomaTongueAnterior
MelanomaTongueBase
MiddleEar
MouthOther
NasalCavity
Nasopharynx
Oropharynx
PalateHard
PalateSoft
ParotidGland
PharyngealTonsil
PharynxOther
Rectum
SalivaryGlandOther
SinusEthmoid
SinusMaxillary
SinusOther
SubmandibularGland
Testis
TongueAnterior
TongueBase

List 2: Schemas for which CS Site-Specific Factor 4, although required for CSv0200-CSv0204, is no longer required as of CSv0205 and 988 is allowed
----------------------------------------------------------------------------------------
Brain
CNSOther
Liver
Vagina

List 3: Schemas for which CS Site-Specific Factor 4 is required for CSv0200-CSv0204 by SEER
 - "Required" means CS Site-Specific Factor 1 cannot = 988
----------------------------------------------------------------------------------------
Brain
Breast
BuccalMucosa
CNSOther
Colon
CorpusAdenosarcoma
CorpusCarcinoma
CorpusSarcoma
EpiglottisAnterior
FallopianTube
FloorMouth
GumLower
GumOther
GumUpper
Hypopharynx
KidneyParenchyma
LacrimalGland
LarynxGlottic
LarynxOther
LarynxSubglottic
LarynxSupraglottic
LipLower
LipOther
LipUpper
Liver
MelanomaBuccalMucosa
MelanomaChoroid
MelanomaCiliaryBody
MelanomaEpiglottisAnterior
MelanomaFloorMouth
MelanomaGumLower
MelanomaGumOther
MelanomaGumUpper
MelanomaHypopharynx
MelanomaIris
MelanomaLarynxGlottic
MelanomaLarynxOther
MelanomaLarynxSubglottic
MelanomaLarynxSupraglottic
MelanomaLipLower
MelanomaLipOther
MelanomaLipUpper
MelanomaMouthOther
MelanomaNasalCavity
MelanomaNasopharynx
MelanomaOropharynx
MelanomaPalateHard
MelanomaPalateSoft
MelanomaPharynxOther
MelanomaSinusEthmoid
MelanomaSinusMaxillary
MelanomaSinusOther
MelanomaSkin
MelanomaTongueAnterior
MelanomaTongueBase
MiddleEar
MouthOther
NasalCavity
Nasopharynx
Oropharynx
PalateHard
PalateSoft
ParotidGland
PharyngealTonsil
PharynxOther
Rectum
SalivaryGlandOther
SinusEthmoid
SinusMaxillary
SinusOther
SubmandibularGland
Testis
TongueAnterior
TongueBase
Vagina


List 4: List of schemas for which CS Site-Specific Factor 4, although required for CSv02, was not defined in CSv01:
---------------------------------------------------------------------------------
Brain
CNSOther
Colon
CorpusAdenosarcoma
CorpusCarcinoma
CorpusSarcoma
FallopianTube
KidneyParenchyma
LacrimalGland
Liver
MelanomaChoroid
MelanomaCiliaryBody
MelanomaIris
Rectum
Vagina]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-08">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-23">Changed logic. Added year of diagnosis into edit.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-15">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-20" ref="66592">Updated for CSv0204 versioning</event>
                <event version="SE13-010-01" user="murphyr" date="2013-06-19" ref="66894">Changed &apos;If year of Diagnosis is 2010 OR CS Version Input Original is 020101 or higher&apos; to &apos;If year of Diagnosis is 2010+ OR CS Version Input Original is greater than 020000&apos;</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-10-31" ref="67013">Updated for CSv0205</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-21" ref="67240">Changed CS Version skip conditions to depend on DX year.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-015-07" user="kirbyk" date="2016-08-25" ref="67518">Added upper bound on CS Version Input Original for condition on CSv0203-CSv0204.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67723">Updated logic to allow blank SSF 4 for 2018+ cases.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68292">Added skip condition for Massachusetts</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68715">Added skip condition for Illinois and Texas.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF292" name="CS Items - SEER Required - SSF 5 (CS)" tag="N2178" java-path="lines.line" category="inter-field" depends="CS_Version_Input_Current,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.csVersionInputCurrent == null && line.dateOfDiagnosisYear < '2016') ||
     (line.csVersionInputOriginal == null && line.dateOfDiagnosisYear < '2016') || line._csSchemaId == null)
    return true
if (Functions.matches(line.registryId, /^000000156[2356]$/))
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','intracranial_gland','cns_other'].contains(line._csSchemaId))
    return true

// condition 1
if (line.dateOfDiagnosisYear >= '2004' && line.dateOfDiagnosisYear <= '2017' && line.csSiteSpecificFactor5 == null)
    return false

Integer csInputOrig = Functions.asInt(line.csVersionInputOriginal)
Integer csInputCurr = Functions.asInt(line.csVersionInputCurrent)
Integer yearDx = Functions.asInt(line.dateOfDiagnosisYear)
String schemaMatch =((List)((Map) Context.CS_SSF).get(line._csSchemaId))?.get(4)//ssf5

// R = Required, N = Not required after CSv0204
if (!['N','R'].contains(schemaMatch))
    return true

// condition 2
if (yearDx >= 2014 || csInputOrig >= 20550) {
    if (schemaMatch == 'R' && line.csSiteSpecificFactor5 == '988')
        return false

    return true
}

// condition 3
if ((yearDx >= 2010 && yearDx <= 2013) || (csInputOrig >= 20001 && csInputOrig < 20550)) {
    if (line.csSiteSpecificFactor5 == '988')
        return false

     return true
}

// condition 4
if (yearDx > 2003 && yearDx < 2010 && csInputOrig < 20000) {
    if (csInputCurr == 20510) {
        if (((List)Context.IF292_Schemas_1).contains(line._csSchemaId)) {
            if (line.csSiteSpecificFactor5 != '988')
                return false
            return true
        }
        if (line.csSiteSpecificFactor5 == '988')
            return false
    }
    else if (csInputCurr > 20510) {
        if (((List)Context.IF292_Schemas_1).contains(line._csSchemaId))
            return true
        if (line.csSiteSpecificFactor5 == '988')
            return false
    }
}

return true]]></expression>
            <message>CS Site-Specific Factor 5 requirements conflict for this schema</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Site-Specific Factor 5 is entered for the schemas required by SEER.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Current is blank and year of diagnosis < 2016
2. CS Version Input Original is blank and year of diagnosis < 2016
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland
4. CS schema is invalid
5. Date of Diagnosis is blank or invalid
6. Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

The logic is as follows:

1. For all schemas, if year of Diagnosis is 2004-2017, CS Site-Specific Factor 5 cannot be blank.

2. For cases diagnosed in 2014 or later OR originally coded in CSv0205:
If year of Diagnosis is 2014 or later OR CS Version Input Original is 020550 (originally entered in CSv0205) or higher, then CS Site-Specific Factor 5 must not be 988 (not applicable) for the schemas in List 1, "Schemas for which CS Site-Specific Factor 5 is Required for CSv0205 by SEER".

Note: List 2 includes the schemas for which CS Site-Specific Factor 5 was required for earlier versions of CSv02, but no longer required for CSv0205.  The code 988 is allowed for these particular schemas.

3. For cases diagnosed 2010-2013 OR originally coded in CSv0200-CSv0204:
If year of Diagnosis is 2010-2013 OR CS Version Input Original is greater than 020000 and less than 020550 (indicating case originally entered in CSv0200-CSv0204), then CS Site-Specific Factor 5 must not be 988 for the schemas in List 3, "Schemas for which CS Site-Specific Factor 5 is required for CSv0200-CSv0204 by SEER".

4.If year of Diagnosis is 2004-2009 AND CS Version Input Original is 01xxxx:

  A. If CS Version Input Current = 020510 (not changed since
     conversion from CSv01 to CSv02):

       CS Site-Specific Factor 5 must not be 988.

       Exceptions:
       1. If CS Site-Specific Factor 5 was not defined in CSv01 (see List 4
          below),
          then
              CS Site-Specific Factor 5 must be coded 988.

  B. If CS Version Input Current > 020510 [indicating record was at least
     partially updated in CSv02 (any version)]:

       CS Site-Specific Factor 5 must not be 988.

       Exceptions:
       1. If CS Site-Specific Factor 5 was not defined in CSv01
          (see List 4 below),
          then
              CS Site-Specific Factor 5 may be any valid code including 988.


List 1: Schemas for which CS Site-Specific Factor 5 is Required for CSv0205 by SEER
 - "Required" means CS Site-Specific Factor 5 cannot = 988
----------------------------------------------------------------------------------------
Breast
BuccalMucosa
CorpusAdenosarcoma
CorpusCarcinoma
CorpusSarcoma
EpiglottisAnterior
FallopianTube
FloorMouth
GISTPeritoneum
GumLower
GumOther
GumUpper
Hypopharynx
LarynxGlottic
LarynxOther
LarynxSubglottic
LarynxSupraglottic
LipLower
LipOther
LipUpper
MelanomaBuccalMucosa
MelanomaEpiglottisAnterior
MelanomaFloorMouth
MelanomaGumLower
MelanomaGumOther
MelanomaGumUpper
MelanomaHypopharynx
MelanomaLarynxGlottic
MelanomaLarynxOther
MelanomaLarynxSubglottic
MelanomaLarynxSupraglottic
MelanomaLipLower
MelanomaLipOther
MelanomaLipUpper
MelanomaMouthOther
MelanomaNasalCavity
MelanomaNasopharynx
MelanomaOropharynx
MelanomaPalateHard
MelanomaPalateSoft
MelanomaPharynxOther
MelanomaSinusEthmoid
MelanomaSinusMaxillary
MelanomaSinusOther
MelanomaTongueAnterior
MelanomaTongueBase
MiddleEar
MouthOther
NasalCavity
Nasopharynx
Oropharynx
PalateHard
PalateSoft
ParotidGland
PharyngealTonsil
PharynxOther
SalivaryGlandOther
SinusEthmoid
SinusMaxillary
SinusOther
SubmandibularGland
Testis
TongueAnterior
TongueBase

List 2: Schemas for which CS Site-Specific Factor 5, although required for CSv0200-CSv0204, is no longer required as of CSv0205 and 988 is allowed
----------------------------------------------------------------------------------------
Brain
CNSOther
Liver
MelanomaChoroid
MelanomaCiliaryBody
MelanomaIris
MelanomaSkin
NETAmpulla
Vagina

List 3: Schemas for which CS Site-Specific Factor 5 is required for CSv0200-CSv0204 by SEER
 - "Required" means CS Site-Specific Factor 5 cannot = 988
----------------------------------------------------------------------------------------
Brain
Breast
BuccalMucosa
CNSOther
CorpusAdenosarcoma
CorpusCarcinoma
CorpusSarcoma
EpiglottisAnterior
FallopianTube
FloorMouth
GISTPeritoneum
GumLower
GumOther
GumUpper
Hypopharynx
LarynxGlottic
LarynxOther
LarynxSubglottic
LarynxSupraglottic
LipLower
LipOther
LipUpper
Liver
MelanomaBuccalMucosa
MelanomaChoroid
MelanomaCiliaryBody
MelanomaEpiglottisAnterior
MelanomaFloorMouth
MelanomaGumLower
MelanomaGumOther
MelanomaGumUpper
MelanomaHypopharynx
MelanomaIris
MelanomaLarynxGlottic
MelanomaLarynxOther
MelanomaLarynxSubglottic
MelanomaLarynxSupraglottic
MelanomaLipLower
MelanomaLipOther
MelanomaLipUpper
MelanomaMouthOther
MelanomaNasalCavity
MelanomaNasopharynx
MelanomaOropharynx
MelanomaPalateHard
MelanomaPalateSoft
MelanomaPharynxOther
MelanomaSinusEthmoid
MelanomaSinusMaxillary
MelanomaSinusOther
MelanomaSkin
MelanomaTongueAnterior
MelanomaTongueBase
MiddleEar
MouthOther
NasalCavity
Nasopharynx
NETAmpulla
Oropharynx
PalateHard
PalateSoft
ParotidGland
PharyngealTonsil
PharynxOther
SalivaryGlandOther
SinusEthmoid
SinusMaxillary
SinusOther
SubmandibularGland
Testis
TongueAnterior
TongueBase
Vagina


List 4: List of schemas for which CS Site-Specific Factor 5, although required for CSv02, was not defined in CSv01
---------------------------------------------------------------------------------
Brain
CNSOther
CorpusAdenosarcoma
CorpusCarcinoma
CorpusSarcoma
FallopianTube
GISTPeritoneum
Liver
MelanomaChoroid
MelanomaCiliaryBody
MelanomaIris
MelanomaSkin
NETAmpulla
Vagina]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-08">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-23">Changed logic. Added year of diagnosis into edit.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-15">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-20" ref="66593">Updated for CSv0204 versioning</event>
                <event version="SE13-010-01" user="murphyr" date="2013-06-19" ref="66894">Changed &apos;If year of Diagnosis is 2010 OR CS Version Input Original is 020101 or higher&apos; to &apos;If year of Diagnosis is 2010+ OR CS Version Input Original is greater than 020000&apos;</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-01" ref="67014">Updated for CSv0205.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-01" ref="67244">Changed CS Version skip conditions to depend on DX year.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-015-07" user="kirbyk" date="2016-08-25" ref="67519">Added upper bound on CS Version Input Original for condition on CSv0203-CSv0204.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67723">Updated logic to allow blank SSF 5 for 2018+ cases.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68292">Added skip condition for Massachusetts</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68715">Added skip condition for Illinois and Texas.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF293" name="CS Items - SEER Required - SSF 6 (CS)" tag="N2179" java-path="lines.line" category="inter-field" depends="CS_Version_Input_Current,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.csVersionInputCurrent == null && line.dateOfDiagnosisYear < '2016') ||
     (line.csVersionInputOriginal == null && line.dateOfDiagnosisYear < '2016') || line._csSchemaId == null)
    return true
if (Functions.matches(line.registryId, /^000000156[2356]$/))
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','intracranial_gland','cns_other'].contains(line._csSchemaId))
    return true

// condition 1
if (line.dateOfDiagnosisYear >= '2004' && line.dateOfDiagnosisYear <= '2017' && line.csSiteSpecificFactor6 == null)
    return false

Integer csInputOrig = Functions.asInt(line.csVersionInputOriginal)
Integer csInputCurr = Functions.asInt(line.csVersionInputCurrent)
Integer yearDx = Functions.asInt(line.dateOfDiagnosisYear)
String schemaMatch = ((List)((Map)Context.CS_SSF).get(line._csSchemaId))?.get(5)//ssf6

// R = Required, N = Not required after CSv0204
if (!['N','R'].contains(schemaMatch))
    return true

// condition 2
if (yearDx >= 2014 || csInputOrig >= 20550) {
    if (schemaMatch == 'R' && line.csSiteSpecificFactor6 == '988')
        return false

    return true
}

// condition 3
if ((yearDx >= 2010 && yearDx <= 2013) || (csInputOrig >= 20001 && csInputOrig < 20550)) {
    if (line.csSiteSpecificFactor6 == '988')
        return false

     return true
}

// condition 4
if (yearDx > 2003 && yearDx < 2010 && csInputOrig < 20000) {
    if (csInputCurr == 20510) {
        if (((List)Context.IF293_Schemas_1).contains(line._csSchemaId)) {
            if (line.csSiteSpecificFactor6 != '988')
                return false
            return true
        }
        if (line.csSiteSpecificFactor6 == '988')
            return false
    }
    else if (csInputCurr > 20510) {
        if (((List)Context.IF293_Schemas_1).contains(line._csSchemaId))
            return true
        if (line.csSiteSpecificFactor6 == '988')
            return false
    }
}

return true]]></expression>
            <message>CS Site-Specific Factor 6 requirements conflict for this schema</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Site-Specific Factor 6 is entered for the schemas required by SEER.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Current is blank and year of diagnosis < 2016
2. CS Version Input Original is blank and year of diagnosis < 2016
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland
4. CS schema is invalid
5. Date of Diagnosis is blank or invalid
6. Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

The logic is as follows:

1. For all schemas, if year of Diagnosis is 2004-2017, CS Site-Specific Factor 6 cannot be blank.

2. For cases diagnosed in 2014 or later OR originally coded in CSv0205:
If year of Diagnosis is 2014 or later OR CS Version Input Original is 020550 (originally entered in CSv0205) or higher, then CS Site-Specific Factor 6 must not be 988 (not applicable) for the schemas in List 1, "Schemas for which CS Site-Specific Factor 6 is Required for CSv0205 by SEER".

Note: List 2 includes the schemas for which CS Site-Specific Factor 6 was required for earlier versions of CSv02, but no longer required for CSv0205.  The code 988 is allowed for these particular schemas.

3. For cases diagnosed 2010-2013 OR originally coded in CSv0200-CSv0204:
If year of Diagnosis is 2010-2013 OR CS Version Input Original is greater than 020000 and less than 020550 (indicating case originally entered in CSv0200-CSv0204), then CS Site-Specific Factor 6 must not be 988 for the schemas in List 3, "Schemas for which CS Site-Specific Factor 6 is required for CSv0200-CSv0204 by SEER".

4.If year of Diagnosis is 2004-2009 AND CS Version Input Original is 01xxxx:

  A. If CS Version Input Current = 020510 (not changed since
     conversion from CSv01 to CSv02):

       CS Site-Specific Factor 6 must not be 988.

       Exceptions:
       1. If CS Site-Specific Factor 6 was not defined in CSv01 (see List 4
          below),
          then
              CS Site-Specific Factor 6 must be coded 988.

  B. If CS Version Input Current > 020510 [indicating record was at least
     partially updated in CSv02 (any version)]:

       CS Site-Specific Factor 6 must not be 988.

       Exceptions:
       1. If CS Site-Specific Factor 6 was not defined in CSv01
          (see List 4 below),
          then
              CS Site-Specific Factor 6 may be any valid code including 988.


List 1: Schemas for which CS Site-Specific Factor 6 is Required for CSv0205 by SEER
 - "Required" means CS Site-Specific Factor 6 cannot = 988
----------------------------------------------------------------------------------------
Breast
BuccalMucosa
Colon
CorpusAdenosarcoma
CorpusCarcinoma
CorpusSarcoma
EpiglottisAnterior
FallopianTube
FloorMouth
GISTEsophagus
GISTSmallIntestine
GISTStomach
GumLower
GumOther
GumUpper
Hypopharynx
KidneyParenchyma
LacrimalGland
LarynxGlottic
LarynxOther
LarynxSubglottic
LarynxSupraglottic
LipLower
LipOther
LipUpper
MelanomaBuccalMucosa
MelanomaEpiglottisAnterior
MelanomaFloorMouth
MelanomaGumLower
MelanomaGumOther
MelanomaGumUpper
MelanomaHypopharynx
MelanomaLarynxGlottic
MelanomaLarynxOther
MelanomaLarynxSubglottic
MelanomaLarynxSupraglottic
MelanomaLipLower
MelanomaLipOther
MelanomaLipUpper
MelanomaMouthOther
MelanomaNasalCavity
MelanomaNasopharynx
MelanomaOropharynx
MelanomaPalateHard
MelanomaPalateSoft
MelanomaPharynxOther
MelanomaSinusEthmoid
MelanomaSinusMaxillary
MelanomaSinusOther
MelanomaTongueAnterior
MelanomaTongueBase
MiddleEar
MouthOther
NasalCavity
Nasopharynx
Oropharynx
PalateHard
PalateSoft
ParotidGland
PharyngealTonsil
PharynxOther
Rectum
SalivaryGlandOther
SinusEthmoid
SinusMaxillary
SinusOther
SkinEyelid
SubmandibularGland
TongueAnterior
TongueBase

List 2: Schemas for which CS Site-Specific Factor 6, although required for CSv0200-CSv0204, is no longer required as of CSv0205 and 988 is allowed
----------------------------------------------------------------------------------------
Brain
CNSOther
GISTPeritoneum
Liver
LymphomaOcularAdnexa
MelanomaChoroid
MelanomaCiliaryBody
MelanomaIris
MelanomaSkin
NETAmpulla
Testis
Vagina

List 3: Schemas for which CS Site-Specific Factor 6 is required for CSv0200-CSv0204 by SEER
 - "Required" means CS Site-Specific Factor 6 cannot = 988
----------------------------------------------------------------------------------------
Brain
Breast
BuccalMucosa
CNSOther
Colon
CorpusAdenosarcoma
CorpusCarcinoma
CorpusSarcoma
EpiglottisAnterior
FallopianTube
FloorMouth
GISTEsophagus
GISTPeritoneum
GISTSmallIntestine
GISTStomach
GumLower
GumOther
GumUpper
Hypopharynx
KidneyParenchyma
LacrimalGland
LarynxGlottic
LarynxOther
LarynxSubglottic
LarynxSupraglottic
LipLower
LipOther
LipUpper
Liver
LymphomaOcularAdnexa
MelanomaBuccalMucosa
MelanomaChoroid
MelanomaCiliaryBody
MelanomaEpiglottisAnterior
MelanomaFloorMouth
MelanomaGumLower
MelanomaGumOther
MelanomaGumUpper
MelanomaHypopharynx
MelanomaIris
MelanomaLarynxGlottic
MelanomaLarynxOther
MelanomaLarynxSubglottic
MelanomaLarynxSupraglottic
MelanomaLipLower
MelanomaLipOther
MelanomaLipUpper
MelanomaMouthOther
MelanomaNasalCavity
MelanomaNasopharynx
MelanomaOropharynx
MelanomaPalateHard
MelanomaPalateSoft
MelanomaPharynxOther
MelanomaSinusEthmoid
MelanomaSinusMaxillary
MelanomaSinusOther
MelanomaSkin
MelanomaTongueAnterior
MelanomaTongueBase
MiddleEar
MouthOther
NasalCavity
Nasopharynx
NETAmpulla
Oropharynx
PalateHard
PalateSoft
ParotidGland
PharyngealTonsil
PharynxOther
Rectum
SalivaryGlandOther
SinusEthmoid
SinusMaxillary
SinusOther
SkinEyelid
SubmandibularGland
Testis
TongueAnterior
TongueBase
Vagina

List 4: List of schemas for which CS Site-Specific Factor 6, although required for CSv02, was not defined in CSv01
---------------------------------------------------------------------------------
Brain
CNSOther
Colon
CorpusAdenosarcoma
CorpusCarcinoma
CorpusSarcoma
FallopianTube
GISTEsophagus
GISTPeritoneum
GISTSmallIntestine
GISTStomach
KidneyParenchyma
LacrimalGland
Liver
LymphomaOcularAdnexa
MelanomaChoroid
MelanomaCiliaryBody
MelanomaIris
MelanomaSkin
NETAmpulla
Rectum
SkinEyelid
Testis
Vagina]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-08">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-23">Changed logic. Added year of diagnosis into edit.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-15">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-20" ref="66594">Updated for CSv0204 versioning</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-20" ref="66779">Corrected typo in description: changed &quot;required by COC and COC&quot; to &quot;required by SEER and COC&quot;</event>
                <event version="SE13-010-01" user="murphyr" date="2013-06-19" ref="66894">Changed &apos;If year of Diagnosis is 2010 OR CS Version Input Original is 020101 or higher&apos; to &apos;If year of Diagnosis is 2010+ OR CS Version Input Original is greater than 020000&apos;</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-01" ref="67015">Updated for CSv0205.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-01" ref="67245">Changed CS Version skip conditions to depend on DX year.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-015-07" user="kirbyk" date="2016-08-25" ref="67520">Added upper bound on CS Version Input Original for condition on CSv0203-CSv0204.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67723">Updated logic to allow blank SSF 6 for 2018+ cases.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68292">Added skip condition for Massachusetts</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68715">Added skip condition for Illinois and Texas.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF294" name="CS Items - SEER Required - SSF 7 (CS)" tag="N2180" java-path="lines.line" category="inter-field" depends="CS_Version_Input_Current,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.csVersionInputCurrent == null && line.dateOfDiagnosisYear < '2016') ||
     (line.csVersionInputOriginal == null && line.dateOfDiagnosisYear < '2016') || line._csSchemaId == null)
    return true
if (Functions.matches(line.registryId, /^000000156[2356]$/))
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','intracranial_gland','cns_other'].contains(line._csSchemaId))
    return true

// condition 1
if (line.dateOfDiagnosisYear >= '2004' && line.dateOfDiagnosisYear <= '2017' && line.csSiteSpecificFactor7 == null)
    return false

Integer csInputOrig = Functions.asInt(line.csVersionInputOriginal)
Integer csInputCurr = Functions.asInt(line.csVersionInputCurrent)
Integer yearDx = Functions.asInt(line.dateOfDiagnosisYear)
String schemaMatch = ((List)((Map)Context.CS_SSF).get(line._csSchemaId))?.get(6)//ssf7

// R = Required, N = Not required after CSv0204
if (!['N','R'].contains(schemaMatch))
    return true

// condition 2
if (yearDx >= 2014 || csInputOrig >= 20550) {
    if (schemaMatch == 'R' && line.csSiteSpecificFactor7 == '988')
        return false

    return true
}

// condition 3
if ((yearDx >= 2010 && yearDx <= 2013) || (csInputOrig >= 20001 && csInputOrig < 20550)) {
    if (line.csSiteSpecificFactor7 == '988')
        return false

     return true
}

// condition 4
if (yearDx > 2003 && yearDx < 2010 && csInputOrig < 20000) {
    if (csInputCurr == 20510) {
       if (line.csSiteSpecificFactor7 != '988')
           return false
    }
}

return true]]></expression>
            <message>CS Site-Specific Factor 7 requirements conflict for this schema</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Site-Specific Factor 7 is entered for the schemas required by SEER.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Current is blank and year of diagnosis < 2016
2. CS Version Input Original is blank and year of diagnosis < 2016
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland
4. CS schema is invalid
5. Date of Diagnosis is blank or invalid
6. Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

The logic is as follows:

1. For all schemas, if year of Diagnosis is 2004-2017, CS Site-Specific Factor 7 cannot be blank.

2. For cases diagnosed in 2014 or later OR originally coded in CSv0205:
If year of Diagnosis is 2014 or later OR CS Version Input Original is 020550 (originally entered in CSv0205) or higher, then CS Site-Specific Factor 7 must not be 988 (not applicable) for the schemas in List 1, "Schemas for which CS Site-Specific Factor 7 is Required for CSv0205 by SEER".

Note: List 2 includes the schemas for which CS Site-Specific Factor 7 was required for earlier versions of CSv02, but no longer required for CSv0205.  The code 988 is allowed for these particular schemas.

3. For cases diagnosed 2010-2013 OR originally coded in CSv0200-CSv0204:
If year of Diagnosis is 2010-2013 OR CS Version Input Original is greater than 020000 and less than 020550 (indicating case originally entered in CSv0200-CSv0204), then CS Site-Specific Factor 7 must not be 988 for the schemas in List 3, "Schemas for which CS Site-Specific Factor 7 is required for CSv0200-CSv0204 by SEER".

4.If year of Diagnosis is 2004-2009 AND CS Version Input Original is 01xxxx:

     If CS Version Input Current = 020510 (not changed since
     conversion from CSv01 to CSv02):

          CS Site-Specific Factor 7 must = 988.

      Note: CS Site-Specific Factor 7-24 fields were all populated
      with 988 upon conversion from CSv01 to CSv02.


List 1: Schemas for which CS Site-Specific Factor 7 is Required for CSv0205 by SEER
 - "Required" means CS Site-Specific Factor 7 cannot = 988
----------------------------------------------------------------------------------------
Breast
FallopianTube
MelanomaSkin
Prostate
Testis

List 2: Schemas for which CS Site-Specific Factor 7, although required for CSv0200-CSv0204, is no longer required as of CSv0205 and 988 is allowed
----------------------------------------------------------------------------------------
GISTEsophagus
GISTSmallIntestine
GISTStomach
Liver
MelanomaChoroid
MelanomaCiliaryBody
MelanomaIris
Vagina

List 3: Schemas for which CS Site-Specific Factor 7 is required for CSv0200-CSv0204 by SEER
 - "Required" means CS Site-Specific Factor 7 cannot = 988
----------------------------------------------------------------------------------------
Breast
FallopianTube
GISTEsophagus
GISTSmallIntestine
GISTStomach
Liver
MelanomaChoroid
MelanomaCiliaryBody
MelanomaIris
MelanomaSkin
Prostate
Testis
Vagina]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-02">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-23">Changed logic. Added year of diagnosis into edit.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-15">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-004-02" user="murphyr" date="2011-03-18" ref="66447">Refined behavior skip condition (made it not skip for certain schemas) and refactored code.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-20" ref="66595">Updated for CSv0204 versioning.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-06-19" ref="66894">Changed &apos;If year of Diagnosis is 2010 OR CS Version Input Original is 020101 or higher&apos; to &apos;If year of Diagnosis is 2010+ OR CS Version Input Original is greater than 020000&apos;</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-04" ref="67016">Updated for CSv0205.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-01" ref="67246">Changed CS Version skip conditions to depend on DX year.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-015-07" user="kirbyk" date="2016-08-25" ref="67521">Added upper bound on CS Version Input Original for condition on CSv0203-CSv0204.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67723">Updated logic to allow blank SSF 7 for 2018+ cases.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68292">Added skip condition for Massachusetts</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68715">Added skip condition for Illinois and Texas.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF295" name="CS Items - SEER Required - SSF 8 (CS)" tag="N2181" java-path="lines.line" category="inter-field" depends="CS_Version_Input_Current,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.csVersionInputCurrent == null && line.dateOfDiagnosisYear < '2016') ||
     (line.csVersionInputOriginal == null && line.dateOfDiagnosisYear < '2016') || line._csSchemaId == null)
    return true
if (Functions.matches(line.registryId, /^000000156[2356]$/))
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','intracranial_gland','cns_other'].contains(line._csSchemaId))
    return true

// condition 1
if (line.dateOfDiagnosisYear >= '2004' && line.dateOfDiagnosisYear <= '2017' && line.csSiteSpecificFactor8 == null)
    return false

Integer csInputOrig = Functions.asInt(line.csVersionInputOriginal)
Integer csInputCurr = Functions.asInt(line.csVersionInputCurrent)
Integer yearDx = Functions.asInt(line.dateOfDiagnosisYear)
String schemaMatch = ((List)((Map)Context.CS_SSF).get(line._csSchemaId))?.get(7)//ssf8

// R = Required, N = Not required after CSv0204
if (!['N','R'].contains(schemaMatch))
    return true

// condition 2
if (yearDx >= 2014 || csInputOrig >= 20550) {
    if (schemaMatch == 'R' && line.csSiteSpecificFactor8 == '988')
        return false

    return true
}

// condition 3
if ((yearDx >= 2010 && yearDx <= 2013) || (csInputOrig >= 20001 && csInputOrig < 20550)) {
    if (line.csSiteSpecificFactor8 == '988')
        return false

     return true
}

// condition 4
if (yearDx > 2003 && yearDx < 2010 && csInputOrig < 20000) {
    if (csInputCurr == 20510) {
       if (line.csSiteSpecificFactor8 != '988')
           return false
    }
}

return true]]></expression>
            <message>CS Site-Specific Factor 8 requirements conflict for this schema</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Site-Specific Factor 8 is entered for the schemas required by SEER.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Current is blank and year of diagnosis < 2016
2. CS Version Input Original is blank and year of diagnosis < 2016
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland
4. CS schema is invalid
5. Date of Diagnosis is blank or invalid
6. Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

The logic is as follows:

1. For all schemas, if year of Diagnosis is 2004-2017, CS Site-Specific Factor 8 cannot be blank.

2. For cases diagnosed in 2014 or later OR originally coded in CSv0205:
If year of Diagnosis is 2014 or later OR CS Version Input Original is 020550 (originally entered in CSv0205) or higher, then CS Site-Specific Factor 8 must not be 988 (not applicable) for the schemas in List 1, "Schemas for which CS Site-Specific Factor 8 is Required for CSv0205 by SEER".

Note: List 2 includes the schemas for which CS Site-Specific Factor 8 was required for earlier versions of CSv02, but no longer required for CSv0205.  The code 988 is allowed for these particular schemas.

3. For cases diagnosed 2010-2013 OR originally coded in CSv0200-CSv0204:
If year of Diagnosis is 2010-2013 OR CS Version Input Original is greater than 020000 and less than 020550 (indicating case originally entered in CSv0200-CSv0204), then CS Site-Specific Factor 8 must not be 988 for the schemas in List 3, "Schemas for which CS Site-Specific Factor 8 is required for CSv0200-CSv0204 by SEER".

4.If year of Diagnosis is 2004-2009 AND CS Version Input Original is 01xxxx:

  A. If CS Version Input Current = 020510 (not changed since
     conversion from CSv01 to CSv02):

       CS Site-Specific Factor 8 must = 988.

      Note: CS Site-Specific Factor 8-24 fields were all populated
      with 988 upon conversion from CSv01 to CSv02.


List 1: Schemas for which CS Site-Specific Factor 8 is Required for CSv0205 by SEER
 - "Required" means CS Site-Specific Factor 8 cannot = 988
----------------------------------------------------------------------------------------
Breast
Colon
KidneyParenchyma
LacrimalGland
Prostate
Rectum

List 2: Schemas for which CS Site-Specific Factor 8, although required for CSv0200-CSv0204, is no longer required as of CSv0205 and 988 is allowed
----------------------------------------------------------------------------------------
Liver
SkinEyelid
Testis

List 3: Schemas for which CS Site-Specific Factor 8 is required for CSv0200-CSv0204 by SEER
 - "Required" means CS Site-Specific Factor 8 cannot = 988
----------------------------------------------------------------------------------------
Breast
Colon
KidneyParenchyma
LacrimalGland
Liver
Prostate
Rectum
SkinEyelid
Testis]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-02">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-23">Changed logic. Added year of diagnosis into edit.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-15">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-004-02" user="murphyr" date="2011-03-18" ref="66447">Refined behavior skip condition (made it not skip for certain schemas) and refactored code.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-20" ref="66596">Updated for CSv0204 versioning.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-06-19" ref="66894">Changed &apos;If year of Diagnosis is 2010 OR CS Version Input Original is 020101 or higher&apos; to &apos;If year of Diagnosis is 2010+ OR CS Version Input Original is greater than 020000&apos;</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-04" ref="67017">Update for CSv0205.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-01" ref="67247">Changed CS Version skip conditions to depend on DX year.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-015-07" user="kirbyk" date="2016-08-25" ref="67522">Added upper bound on CS Version Input Original for condition on CSv0203-CSv0204.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67723">Updated logic to allow blank SSF 8 for 2018+ cases.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68292">Added skip condition for Massachusetts</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68715">Added skip condition for Illinois and Texas.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF296" name="CS Items - SEER Required - SSF 9 (CS)" tag="N2182" java-path="lines.line" category="inter-field" depends="CS_Version_Input_Current,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.csVersionInputCurrent == null && line.dateOfDiagnosisYear < '2016') ||
     (line.csVersionInputOriginal == null && line.dateOfDiagnosisYear < '2016') || line._csSchemaId == null)
    return true
if (Functions.matches(line.registryId, /^000000156[2356]$/))
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','intracranial_gland','cns_other'].contains(line._csSchemaId))
    return true

// condition 1
if (line.dateOfDiagnosisYear >= '2004' && line.dateOfDiagnosisYear <= '2017' && line.csSiteSpecificFactor9 == null)
    return false

Integer csInputOrig = Functions.asInt(line.csVersionInputOriginal)
Integer csInputCurr = Functions.asInt(line.csVersionInputCurrent)
Integer yearDx = Functions.asInt(line.dateOfDiagnosisYear)
String schemaMatch = ((List)((Map)Context.CS_SSF).get(line._csSchemaId))?.get(8)//ssf9

// R = Required, N = Not required after CSv0204
if (!['N','R'].contains(schemaMatch))
    return true

// condition 2
if (yearDx >= 2014 || csInputOrig >= 20550) {
    if (schemaMatch == 'R' && line.csSiteSpecificFactor9 == '988')
        return false

    return true
}

// condition 3
if ((yearDx >= 2010 && yearDx <= 2013) || (csInputOrig >= 20001 && csInputOrig < 20550)) {
    if (line.csSiteSpecificFactor9 == '988')
        return false

     return true
}

// condition 4
if (yearDx > 2003 && yearDx < 2010 && csInputOrig < 20000) {
    if (csInputCurr == 20510 && line._csSchemaId != 'breast') {
       if (line.csSiteSpecificFactor9 != '988')
           return false
    }
}

return true]]></expression>
            <message>CS Site-Specific Factor 9 requirements conflict for this schema</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Site-Specific Factor 9 is entered for the schemas required by SEER.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Current is blank and year of diagnosis < 2016
2. CS Version Input Original is blank and year of diagnosis < 2016
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland
4. CS schema is invalid
5. Date of Diagnosis is blank or invalid
6. Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

The logic is as follows:

1. For all schemas, if year of Diagnosis is 2004-2017, CS Site-Specific Factor 9 cannot be blank.

2. For cases diagnosed in 2014 or later OR originally coded in CSv0205:
If year of Diagnosis is 2014 or later OR CS Version Input Original is 020550 (originally entered in CSv0205) or higher, then CS Site-Specific Factor 9 must not be 988 (not applicable) for the schemas in List 1, "Schemas for which CS Site-Specific Factor 9 is Required for CSv0205 by SEER".

Note: List 2 includes the schemas for which CS Site-Specific Factor 9 was required for earlier versions of CSv02, but no longer required for CSv0205.  The code 988 is allowed for these particular schemas.

3. For cases diagnosed 2010-2013 OR originally coded in CSv0200-CSv0204:
If year of Diagnosis is 2010-2013 OR CS Version Input Original is greater than 020000 and less than 020550 (indicating case originally entered in CSv0200-CSv0204), then CS Site-Specific Factor 9 must not be 988 for the schemas in List 3, "Schemas for which CS Site-Specific Factor 9 is required for CSv0200-CSv0204 by SEER".

4.If year of Diagnosis is 2004-2009 AND CS Version Input Original is 01xxxx:

     If CS Version Input Current = 020510 (not changed since
     conversion from CSv01 to CSv02):

       CS Site-Specific Factor 9 must = 988.

      Note: CS Site-Specific Factor 7-24 fields were all populated
      with 988 upon conversion from CSv01 to CSv02.

       Exception:
       - If the schema is Breast, CS Site-Specific Factor 9 must not be blank.
      (For several SEER registries, CS Site-Specific Factor 9 may contain
       HER2 codes for breast cases coded originally in CSv1.)


List 1: Schemas for which CS Site-Specific Factor 9 is Required for CSv0205 by SEER
 - "Required" means CS Site-Specific Factor 9 cannot = 988
----------------------------------------------------------------------------------------
Breast
BuccalMucosa
Colon
EpiglottisAnterior
FloorMouth
GumLower
GumOther
GumUpper
Hypopharynx
LarynxGlottic
LarynxOther
LarynxSubglottic
LarynxSupraglottic
LipLower
LipOther
LipUpper
MelanomaBuccalMucosa
MelanomaEpiglottisAnterior
MelanomaFloorMouth
MelanomaGumLower
MelanomaGumOther
MelanomaGumUpper
MelanomaHypopharynx
MelanomaLarynxGlottic
MelanomaLarynxOther
MelanomaLarynxSubglottic
MelanomaLarynxSupraglottic
MelanomaLipLower
MelanomaLipOther
MelanomaLipUpper
MelanomaMouthOther
MelanomaNasalCavity
MelanomaNasopharynx
MelanomaOropharynx
MelanomaPalateHard
MelanomaPalateSoft
MelanomaPharynxOther
MelanomaSinusEthmoid
MelanomaSinusMaxillary
MelanomaSinusOther
MelanomaTongueAnterior
MelanomaTongueBase
MiddleEar
MouthOther
NasalCavity
Nasopharynx
Oropharynx
PalateHard
PalateSoft
ParotidGland
PharyngealTonsil
PharynxOther
Prostate
Rectum
SalivaryGlandOther
SinusEthmoid
SinusMaxillary
SinusOther
SubmandibularGland
Testis
TongueAnterior
TongueBase

List 2: Schemas for which CS Site-Specific Factor 9, although required for CSv0200-CSv0204, is no longer required as of CSv0205 and 988 is allowed
----------------------------------------------------------------------------------------
MelanomaChoroid
MelanomaCiliaryBody
MelanomaIris

List 3: Schemas for which CS Site-Specific Factor 9 is required for CSv0200-CSv0204 by SEER
 - "Required" means CS Site-Specific Factor 9 cannot = 988
----------------------------------------------------------------------------------------
Breast
BuccalMucosa
Colon
EpiglottisAnterior
FloorMouth
GumLower
GumOther
GumUpper
Hypopharynx
LarynxGlottic
LarynxOther
LarynxSubglottic
LarynxSupraglottic
LipLower
LipOther
LipUpper
MelanomaBuccalMucosa
MelanomaChoroid
MelanomaCiliaryBody
MelanomaEpiglottisAnterior
MelanomaFloorMouth
MelanomaGumLower
MelanomaGumOther
MelanomaGumUpper
MelanomaHypopharynx
MelanomaIris
MelanomaLarynxGlottic
MelanomaLarynxOther
MelanomaLarynxSubglottic
MelanomaLarynxSupraglottic
MelanomaLipLower
MelanomaLipOther
MelanomaLipUpper
MelanomaMouthOther
MelanomaNasalCavity
MelanomaNasopharynx
MelanomaOropharynx
MelanomaPalateHard
MelanomaPalateSoft
MelanomaPharynxOther
MelanomaSinusEthmoid
MelanomaSinusMaxillary
MelanomaSinusOther
MelanomaTongueAnterior
MelanomaTongueBase
MiddleEar
MouthOther
NasalCavity
Nasopharynx
Oropharynx
PalateHard
PalateSoft
ParotidGland
PharyngealTonsil
PharynxOther
Prostate
Rectum
SalivaryGlandOther
SinusEthmoid
SinusMaxillary
SinusOther
SubmandibularGland
Testis
TongueAnterior
TongueBase]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-02">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-23">Changed logic. Added year of diagnosis into edit.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-05-25">Added special case for Breast schema.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-15">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-004-02" user="murphyr" date="2011-03-18" ref="66447">Refined behavior skip condition (made it not skip for certain schemas) and refactored code.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-20" ref="66597">Updated for CSv0204 versioning.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-06-19" ref="66894">Changed &apos;If year of Diagnosis is 2010 OR CS Version Input Original is 020101 or higher&apos; to &apos;If year of Diagnosis is 2010+ OR CS Version Input Original is greater than 020000&apos;</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-05" ref="67018">Updated for CSv0205.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-01" ref="67248">Changed CS Version skip conditions to depend on DX year.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-015-07" user="kirbyk" date="2016-08-24" ref="67523">Added upper bound on CS Version Input Original for condition on CSv0203-CSv0204.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67723">Updated logic to allow blank SSF 9 for 2018+ cases.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68292">Added skip condition for Massachusetts</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68715">Added skip condition for Illinois and Texas.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF297" name="CS Items - SEER Required - SSF 10 (CS)" tag="N2370" java-path="lines.line" category="inter-field" depends="CS_Version_Input_Current,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.csVersionInputCurrent == null && line.dateOfDiagnosisYear < '2016') ||
     (line.csVersionInputOriginal == null && line.dateOfDiagnosisYear < '2016') || line._csSchemaId == null)
    return true
if (Functions.matches(line.registryId, /^000000156[2356]$/))
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','intracranial_gland','cns_other'].contains(line._csSchemaId))
    return true

// condition 1
if (line.dateOfDiagnosisYear >= '2004' && line.dateOfDiagnosisYear <= '2017' && line.csSiteSpecificFactor10 == null)
    return false

Integer csInputOrig = Functions.asInt(line.csVersionInputOriginal)
Integer csInputCurr = Functions.asInt(line.csVersionInputCurrent)
Integer yearDx = Functions.asInt(line.dateOfDiagnosisYear)
String schemaMatch = ((List)((Map)Context.CS_SSF).get(line._csSchemaId))?.get(9)//ssf10

// R = Required, N = Not required after CSv0204
if (!['N','R'].contains(schemaMatch))
    return true

// condition 2
if (yearDx > 2015 && line.csExtension == null) {
    if (schemaMatch == 'R') {
        if (line._csSchemaId != 'bile_ducts_intrahepat')
            return line.csSiteSpecificFactor10 != '988'
    }

    return true
}

// condition 3
if ((yearDx >= 2014 && yearDx <= 2015) || ((yearDx == 2016 || yearDx == 2017) && line.csExtension != null) || (yearDx >= 2004 && yearDx <= 2015 && csInputOrig >= 20550)) {
    if (schemaMatch == 'R' && line.csSiteSpecificFactor10 == '988')
        return false

    return true
}

// condition 4
if ((yearDx >= 2011 && yearDx <= 2013) || (csInputOrig >= 20001 && csInputOrig < 20550)) {
    if (line.csSiteSpecificFactor10 == '988')
        return false

     return true
}

// condition 5
if (yearDx == 2010 || Functions.matches(line.csVersionInputOriginal, /(^0201\d\d$)/) || Functions.matches(line.csVersionInputOriginal, /(^0202\d\d$)/)) {
     if (line._csSchemaId == 'bile_ducts_intrahepat')
        return true

     if (line.csSiteSpecificFactor10 == '988')
        return false
}

// condition 6
if (yearDx > 2003 && yearDx < 2010 && csInputOrig < 20000) {
    if (csInputCurr == 20510) {
       if (line.csSiteSpecificFactor10 != '988')
           return false
    }
}

return true]]></expression>
            <message>CS Site-Specific Factor 10 requirements conflict for this schema</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Site-Specific Factor10 is entered for the schemas required by SEER.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Current is blank and year of diagnosis < 2016
2. CS Version Input Original is blank and year of diagnosis < 2016
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland
4. CS schema is invalid
5. Date of Diagnosis is blank or invalid
6. Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

The logic is as follows:

1. For all schemas, if year of Diagnosis is 2004-2017, CS Site-Specific Factor10 cannot be blank.

2. If year of Diagnosis > 2015 and CS Extension is blank (CS items NOT collected ):
   A. CS Site-Specific Factor 10 must not be 988 (not applicable) for the schemas in List 1, "Schemas for which CS Site-Specific Factor 10 is Required for CSv0205 by SEER"
      EXCEPT for the following schema: BileDuctsIntraHepat which can be 988.

3. For cases diagnosed in 2014-2015 OR (year of Diagnosis=2016-2017 and CS Extension is not blank (CS items collected)) OR (year of diagnosis in 2004-2015 and originally coded in CSv0205):
If year of Diagnosis is 2014-2015 OR (year of Diagnosis=2016-2017 and CS Extension is not blank (CS items collected)) OR (year of diagnosis in 2004-2015 and CS Version Input Original is 020550 (originally entered in CSv0205) or higher), then CS Site-Specific Factor10 must not be 988 (not applicable) for the schemas in List 1, "Schemas for which CS Site-Specific Factor10 is Required for CSv0205 by SEER".

Note: List 2 includes the schemas for which CS Site-Specific Factor10 was required for earlier versions of CSv02, but no longer required for CSv0205.  The code 988 is allowed for these particular schemas.

4. For cases diagnosed 2011-2013 OR originally coded in CSv0203-CSv0204:
If year of Diagnosis is 2011-2013 OR CS Version Input Original is greater than 020000 and less than 020550 (indicating case originally entered in CSv0200-CSv0204), then CS Site-Specific Factor10 must not be 988 for the schemas in List 3, "Schemas for which CS Site-Specific Factor10 is required for CSv0200-CSv0204 by SEER".

5.For cases diagnosed 2010 OR originally coded in CSv0201-CSv0202:
If year of Diagnosis is 2010 OR CS version Input Original is 0201xx or 0202xx:
CS Site-Specific Factor10 must not be 988 for the schemas for which CS Site-Specific Factor10 is required.

       Exceptions:
       1. If schema = BileDuctsIntraHepat, the edit is skipped
          (Note:  BileDuctsIntraHepat was not required prior to CSv0203)

6. If year of Diagnosis is 2004-2009 AND CS version Input Original is 01xxxx:

   If CS Version Input Current = 020510 (not changed since conversion from CSv01 to CSv02):

       CS Site-Specific Factor10 must = 988.

      Note: CS Site-Specific Factor 7-24 fields were all populated
      with 988 upon conversion from CSv01 to CSv02.


List 1: Schemas for which CS Site-Specific Factor10 is Required for CSv0205 by SEER
 - "Required" means CS Site-Specific Factor10 cannot = 988
-----------------------------------------------------------------------------------------
BileDuctsIntraHepat
GISTPeritoneum
Hypopharynx
Nasopharynx
Oropharynx
PalateSoft
Penis
PharyngealTonsil
PharynxOther
Prostate
Testis
TongueBase

List 2: Schemas for which CS Site-Specific Factor10, although required for CSv0200-CSv0204, is no longer required as of CSv0205 and 988 is allowed
-----------------------------------------------------------------------------------------
Breast
MelanomaChoroid
MelanomaCiliaryBody
MelanomaIris
SkinEyelid
Vulva

List 3: Schemas for which CS Site-Specific Factor10 is required for CSv0200-CSv0204 by SEER
 - "Required" means CS Site-Specific Factor10 cannot = 988
-----------------------------------------------------------------------------------------
BileDuctsIntraHepat (required only for cases diagnosed 2011+
                     or entered originally in CSv0203)
Breast
GISTPeritoneum
Hypopharynx
MelanomaChoroid
MelanomaCiliaryBody
MelanomaIris
Nasopharynx
Oropharynx
PalateSoft
Penis
PharyngealTonsil
PharynxOther
Prostate
SkinEyelid
Testis
TongueBase
Vulva]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-02">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-23">Changed logic. Added year of diagnosis into edit.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-15">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-004-02" user="murphyr" date="2011-03-18" ref="66447">Refined behavior skip condition (made it not skip for certain schemas) and refactored code.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-20" ref="66578">Updated for CSv0204 versioning.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-05" ref="66996">Updated for Csv0205.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-06" ref="67269">Updated logic for 2016 cases.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-13" ref="67329">Fixed error in logic for cases diagnosed in 2010.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-24" ref="67424">Changed edit to not force 988 when DX year is 2016+ and schema is not defined.</event>
                <event version="SE16-015-07" user="kirbyk" date="2016-08-24" ref="67512">Added upper bound on CS Version Input Original for condition on CSv0203-CSv0204.</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-08" ref="67568">Updated logic to include 2017 cases that collect CS.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67723">Updated logic to allow blank SSF 10 for 2018+ cases.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68292">Added skip condition for Massachusetts</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68715">Added skip condition for Illinois and Texas.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF298" name="CS Items - SEER Required - SSF 11 (CS)" tag="N2155" java-path="lines.line" category="inter-field" depends="CS_Version_Input_Current,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.csVersionInputCurrent == null && line.dateOfDiagnosisYear < '2016') ||
     (line.csVersionInputOriginal == null && line.dateOfDiagnosisYear < '2016') || line._csSchemaId == null)
    return true
if (Functions.matches(line.registryId, /^000000156[2356]$/))
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','intracranial_gland','cns_other'].contains(line._csSchemaId))
    return true

// condition 1
if (line.dateOfDiagnosisYear >= '2004' && line.dateOfDiagnosisYear <= '2017' && line.csSiteSpecificFactor11 == null)
    return false

Integer csInputOrig = Functions.asInt(line.csVersionInputOriginal)
Integer csInputCurr = Functions.asInt(line.csVersionInputCurrent)
Integer yearDx = Functions.asInt(line.dateOfDiagnosisYear)
String schemaMatch = ((List)((Map)Context.CS_SSF).get(line._csSchemaId))?.get(10)//ssf11

// R = Required, N = Not required after CSv0204
if (!['N','R'].contains(schemaMatch))
    return true

// condition 2
if (yearDx >= 2014 || csInputOrig >= 20550) {
    if (schemaMatch == 'R' && line.csSiteSpecificFactor11 == '988')
        return false

    return true
}

// condition 3
if ((yearDx >= 2010 && yearDx <= 2013) || (csInputOrig >= 20001 && csInputOrig < 20550)) {
    if (line.csSiteSpecificFactor11 == '988')
        return false

     return true
}

// condition 4
if (yearDx > 2003 && yearDx < 2010 && csInputOrig < 20000) {
    if (csInputCurr == 20510 && line._csSchemaId != 'breast') {
       if (line.csSiteSpecificFactor11 != '988')
           return false
    }
}

return true]]></expression>
            <message>CS Site-Specific Factor 11 requirements conflict for this schema</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Site-Specific Factor11 is entered for the schemas required by SEER.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Current is blank and year of diagnosis < 2016
2. CS Version Input Original is blank and year of diagnosis < 2016
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland
4. CS schema is invalid
5. Date of Diagnosis is blank or invalid
6. Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

The logic is as follows:

1. For all schemas, if year of Diagnosis is 2004-2017, CS Site-Specific Factor11 cannot be blank.

2. For cases diagnosed in 2014 or later OR originally coded in CSv0205:
If year of Diagnosis is 2014 or later OR CS Version Input Original is 020550 (originally entered in CSv0205) or higher, then CS Site-Specific Factor11 must not be 988 (not applicable) for the schemas in List 1, "Schemas for which CS Site-Specific Factor11 is Required for CSv0205 by SEER".

Note: List 2 includes the schemas for which CS Site-Specific Factor11 was required for earlier versions of CSv02, but no longer required for CSv0205.  The code 988 is allowed for these particular schemas.

3. For cases diagnosed 2010-2013 OR originally coded in CSv0200-CSv0204:
If year of Diagnosis is 2010-2013 OR CS Version Input Original is greater than 020000 and less than 020550 (indicating case originally entered in CSv0200-CSv0204), then CS Site-Specific Factor11 must not be 988 for the schemas in List 3, "Schemas for which CS Site-Specific Factor11 is required for CSv0200-CSv0204 by SEER".

4. If year of Diagnosis is 2004-2009 AND CS Version Input Original is 01xxxx:

  A. If CS Version Input Current = 020510 (not changed since
     conversion from CSv01 to CSv02):

       CS Site-Specific Factor11 must = 988.

      Note: CS Site-Specific Factor 7-24 fields were all populated
      with 988 upon conversion from CSv01 to CSv02.

       Exception:
       - If the schema is Breast, CS Site-Specific Factor11 must not be blank.
      (For several SEER registries, CS Site-Specific Factor11 may contain
       HER2 codes for breast cases coded originally in CSv1.)


List 1: Schemas for which CS Site-Specific Factor11 is Required for CSv0205 by SEER
 - "Required" means CS Site-Specific Factor11 cannot = 988
----------------------------------------------------------------------------------------
Appendix
Breast
GISTAppendix
GISTColon
GISTRectum
MelanomaBuccalMucosa
MelanomaEpiglottisAnterior
MelanomaFloorMouth
MelanomaGumLower
MelanomaGumOther
MelanomaGumUpper
MelanomaHypopharynx
MelanomaLarynxGlottic
MelanomaLarynxOther
MelanomaLarynxSubglottic
MelanomaLarynxSupraglottic
MelanomaLipLower
MelanomaLipOther
MelanomaLipUpper
MelanomaMouthOther
MelanomaNasalCavity
MelanomaNasopharynx
MelanomaOropharynx
MelanomaPalateHard
MelanomaPalateSoft
MelanomaPharynxOther
MelanomaSinusEthmoid
MelanomaSinusMaxillary
MelanomaSinusOther
MelanomaTongueAnterior
MelanomaTongueBase
MerkelCellVulva
Vulva

List 2: Schemas for which CS Site-Specific Factor11, although required for CSv0200-CSv0204, is no longer required as of CSv0205 and 988 is allowed
----------------------------------------------------------------------------------------
BileDuctsIntraHepat
BileDuctsPerihilar
BuccalMucosa
FloorMouth
GumLower
GumOther
GumUpper
LipLower
LipOther
LipUpper
MelanomaChoroid
MelanomaCiliaryBody
MelanomaIris
MouthOther
NasalCavity
NETSmallIntestine
NETStomach
PalateHard
Prostate
SinusEthmoid
SinusMaxillary
SinusOther
Skin
TongueAnterior

List 3: Schemas for which CS Site-Specific Factor11 is required for CSv0200-CSv0204 by SEER
 - "Required" means CS Site-Specific Factor11 cannot = 988
----------------------------------------------------------------------------------------
Appendix
BileDuctsIntraHepat
BileDuctsPerihilar
Breast
BuccalMucosa
FloorMouth
GISTAppendix
GISTColon
GISTRectum
GumLower
GumOther
GumUpper
LipLower
LipOther
LipUpper
MelanomaBuccalMucosa
MelanomaChoroid
MelanomaCiliaryBody
MelanomaEpiglottisAnterior
MelanomaFloorMouth
MelanomaGumLower
MelanomaGumOther
MelanomaGumUpper
MelanomaHypopharynx
MelanomaIris
MelanomaLarynxGlottic
MelanomaLarynxOther
MelanomaLarynxSubglottic
MelanomaLarynxSupraglottic
MelanomaLipLower
MelanomaLipOther
MelanomaLipUpper
MelanomaMouthOther
MelanomaNasalCavity
MelanomaNasopharynx
MelanomaOropharynx
MelanomaPalateHard
MelanomaPalateSoft
MelanomaPharynxOther
MelanomaSinusEthmoid
MelanomaSinusMaxillary
MelanomaSinusOther
MelanomaTongueAnterior
MelanomaTongueBase
MerkelCellVulva
MouthOther
NasalCavity
NETSmallIntestine
NETStomach
PalateHard
Prostate
SinusEthmoid
SinusMaxillary
SinusOther
Skin
TongueAnterior
Vulva]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-02">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-23">Changed logic. Added year of diagnosis into edit.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-05-25">Added special case for Breast schema.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-15">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-004-02" user="murphyr" date="2011-03-18" ref="66447">Refined behavior skip condition (made it not skip for certain schemas) and refactored code.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-20" ref="66579">Updated for CSv0204 versioning.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-06-19" ref="66894">Changed &apos;If year of Diagnosis is 2010 OR CS Version Input Original is 020101 or higher&apos; to &apos;If year of Diagnosis is 2010+ OR CS Version Input Original is greater than 020000&apos;</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-05" ref="66997">Updated for CSv0205.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-01" ref="67249">Changed CS Version skip conditions to depend on DX year.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-015-07" user="kirbyk" date="2016-08-25" ref="67514">Added upper bound on CS Version Input Original for condition on CSv0203-CSv0204.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67723">Updated logic to allow blank SSF 11 for 2018+ cases.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68292">Added skip condition for Massachusetts</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68715">Added skip condition for Illinois and Texas.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF299" name="CS Items - SEER Required - SSF 12 (CS)" tag="N2156" java-path="lines.line" category="inter-field" depends="CS_Version_Input_Current,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.csVersionInputCurrent == null && line.dateOfDiagnosisYear < '2016') ||
     (line.csVersionInputOriginal == null && line.dateOfDiagnosisYear < '2016') || line._csSchemaId == null)
    return true
if (Functions.matches(line.registryId, /^000000156[2356]$/))
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','intracranial_gland','cns_other'].contains(line._csSchemaId))
    return true

// condition 1
if (line.dateOfDiagnosisYear >= '2004' && line.dateOfDiagnosisYear <= '2017' && line.csSiteSpecificFactor12 == null)
    return false

Integer csInputOrig = Functions.asInt(line.csVersionInputOriginal)
Integer csInputCurr = Functions.asInt(line.csVersionInputCurrent)
Integer yearDx = Functions.asInt(line.dateOfDiagnosisYear)
String schemaMatch = ((List)((Map)Context.CS_SSF).get(line._csSchemaId))?.get(11)//ssf12

// R = Required, N = Not required after CSv0204
if (!['N','R'].contains(schemaMatch))
    return true

// condition 2
if (yearDx >= 2014 || csInputOrig >= 20550) {
    if (schemaMatch == 'R' && line.csSiteSpecificFactor12 == '988')
        return false

    return true
}

// condition 3
if ((yearDx >= 2010 && yearDx <= 2013) || (csInputOrig >= 20001 && csInputOrig < 20550)) {
    if (line.csSiteSpecificFactor12 == '988')
        return false

     return true
}

// condition 4
if (yearDx > 2003 && yearDx < 2010 && csInputOrig < 20000) {
    if (csInputCurr == 20510) {
       if (line.csSiteSpecificFactor12 != '988')
           return false
    }
}

return true]]></expression>
            <message>CS Site-Specific Factor 12 requirements conflict for this schema</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Site-Specific Factor12 is entered for the schemas required by SEER.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Current is blank and year of diagnosis < 2016
2. CS Version Input Original is blank and year of diagnosis < 2016
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland
4. CS schema is invalid
5. Date of Diagnosis is blank or invalid
6. Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

The logic is as follows:

1. For all schemas, if year of Diagnosis is 2004-2017, CS Site-Specific Factor12 cannot be blank.

2. For cases diagnosed in 2014 or later OR originally coded in CSv0205:
If year of Diagnosis is 2014 or later OR CS Version Input Original is 020550 (originally entered in CSv0205) or higher, then CS Site-Specific Factor12 must not be 988 (not applicable) for the schemas in List 1, "Schemas for which CS Site-Specific Factor12 is Required for CSv0205 by SEER".

Note: List 2 includes the schemas for which CS Site-Specific Factor12 was required for earlier versions of CSv02, but no longer required for CSv0205.  The code 988 is allowed for these particular schemas.

3. For cases diagnosed 2010-2013 OR originally coded in CSv0200-CSv0204:
If year of Diagnosis is 2010-2013 OR CS Version Input Original is greater than 020000 and less than 020550 (indicating case originally entered in CSv0200-CSv0204), then CS Site-Specific Factor12 must not be 988 for the schemas in List 3, "Schemas for which CS Site-Specific Factor12 is required for CSv0200-CSv0204 by SEER".

4.If year of Diagnosis is 2004-2009 AND CS Version Input Original is 01xxxx:

  If CS Version Input Current = 020510 (not changed since
     conversion from CSv01 to CSv02):

       CS Site-Specific Factor12 must = 988.

      Note: CS Site-Specific Factor 7-24 fields were all populated
      with 988 upon conversion from CSv01 to CSv02.


List 1: Schemas for which CS Site-Specific Factor12 is Required for CSv0205 by SEER
 - "Required" means CS Site-Specific Factor12 cannot = 988
----------------------------------------------------------------------------------------
Prostate
Scrotum
Skin

List 2: Schemas for which CS Site-Specific Factor12, although required for CSv0200-CSv0204, is no longer required as of CSv0205 and 988 is allowed
----------------------------------------------------------------------------------------
Breast
GISTAppendix
GISTColon
GISTRectum
MelanomaChoroid
MelanomaCiliaryBody
MelanomaIris
NETSmallIntestine
NETStomach


List 3: Schemas for which CS Site-Specific Factor12 is required for CSv0200-CSv0204 by SEER
 - "Required" means CS Site-Specific Factor12 cannot = 988
----------------------------------------------------------------------------------------
Breast
GISTAppendix
GISTColon
GISTRectum
MelanomaChoroid
MelanomaCiliaryBody
MelanomaIris
NETSmallIntestine
NETStomach
Prostate
Scrotum
Skin]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-02">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-23">Changed logic. Added year of diagnosis into edit.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-11">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-004-02" user="murphyr" date="2011-03-18" ref="66447">Refined behavior skip condition (made it not skip for certain schemas) and refactored code.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-20" ref="66580">Updated for CSv0204 versioning.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-06-19" ref="66894">Changed &apos;If year of Diagnosis is 2010 OR CS Version Input Original is 020101 or higher&apos; to &apos;If year of Diagnosis is 2010+ OR CS Version Input Original is greater than 020000&apos;</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-05" ref="66997">Updated for CSv0205.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-01" ref="67250">Changed CS Version skip conditions to depend on DX year.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-015-07" user="kirbyk" date="2016-08-25" ref="67515">Added upper bound on CS Version Input Original for condition on CSv0203-CSv0204.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67723">Updated logic to allow blank SSF 12 for 2018+ cases.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68292">Added skip condition for Massachusetts</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68715">Added skip condition for Illinois and Texas.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF300" name="CS Items - SEER Required - SSF 13 (CS)" tag="N2157" java-path="lines.line" category="inter-field" depends="CS_Version_Input_Current,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.csVersionInputCurrent == null && line.dateOfDiagnosisYear < '2016') ||
     (line.csVersionInputOriginal == null && line.dateOfDiagnosisYear < '2016') || line._csSchemaId == null)
    return true
if (Functions.matches(line.registryId, /^000000156[2356]$/))
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','intracranial_gland','cns_other'].contains(line._csSchemaId))
    return true

// condition 1
if (line.dateOfDiagnosisYear >= '2004' && line.dateOfDiagnosisYear <= '2017' && line.csSiteSpecificFactor13 == null)
    return false

Integer csInputOrig = Functions.asInt(line.csVersionInputOriginal)
Integer csInputCurr = Functions.asInt(line.csVersionInputCurrent)
Integer yearDx = Functions.asInt(line.dateOfDiagnosisYear)
String schemaMatch = ((List)((Map)Context.CS_SSF).get(line._csSchemaId))?.get(12)//ssf13

// R = Required, N = Not required after CSv0204
if (!['N','R'].contains(schemaMatch))
    return true

// condition 2
if (yearDx >= 2014 || csInputOrig >= 20550) {
    if (schemaMatch == 'R' && line.csSiteSpecificFactor13 == '988')
        return false

    return true
}

// condition 3
if ((yearDx >= 2010 && yearDx <= 2013) || (csInputOrig >= 20001 && csInputOrig < 20550)) {

    if (line.csSiteSpecificFactor13 == '988')
        return false

     return true
}

// condition 4
if (yearDx > 2003 && yearDx < 2010 && csInputOrig < 20000) {
    if (csInputCurr == 20510) {
       if (line.csSiteSpecificFactor13 != '988')
           return false
    }
}

return true]]></expression>
            <message>CS Site-Specific Factor 13 requirements conflict for this schema</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Site-Specific Factor13 is entered for the schemas required by SEER.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Current is blank and year of diagnosis < 2016
2. CS Version Input Original is blank and year of diagnosis < 2016
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland
4. CS schema is invalid
5. Date of Diagnosis is blank or invalid
6. Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

The logic is as follows:

1. For all schemas, if year of Diagnosis is 2004-2017, CS Site-Specific Factor13 cannot be blank.

2. For cases diagnosed in 2014 or later OR originally coded in CSv0205:
If year of Diagnosis is 2014 or later OR CS Version Input Original is 020550 (originally entered in CSv0205) or higher, then CS Site-Specific Factor13 must not be 988 (not applicable) for the schemas in List 1, "Schemas for which CS Site-Specific Factor13 is Required for CSv0205 by SEER".

Note: List 2 includes the schemas for which CS Site-Specific Factor13 was required for earlier versions of CSv02, but no longer required for CSv0205.  The code 988 is allowed for these particular schemas.

3. For cases diagnosed 2010-2013 OR originally coded in CSv0200-CSv0204:
If year of Diagnosis is 2010-2013 OR CS Version Input Original is greater than 020000 and less than 020550 (indicating case originally entered in CSv0200-CSv0204), then CS Site-Specific Factor13 must not be 988 for the schemas in List 3, "Schemas for which CS Site-Specific Factor13 is required for CSv0200-CSv0204 by SEER".

4. If year of Diagnosis is 2004-2009 AND CS Version Input Original is 01xxxx:

  If CS Version Input Current = 020510 (not changed since
     conversion from CSv01 to CSv02):

       CS Site-Specific Factor13 must = 988.

      Note: CS Site-Specific Factor 7-24 fields were all populated
      with 988 upon conversion from CSv01 to CSv02.


List 1: Schemas for which CS Site-Specific Factor13 is Required for CSv0205 by SEER
 - "Required" means CS Site-Specific Factor13 cannot = 988
-----------------------------------------------------------------------------------------
Breast
Prostate
Testis


List 2: Schemas for which CS Site-Specific Factor13, although required for CSv0200-CSv0204, is no longer required as of CSv0205 and 988 is allowed
-----------------------------------------------------------------------------------------
MelanomaChoroid
MelanomaCiliaryBody
MelanomaIris


List 3: Schemas for which CS Site-Specific Factor13 is required for CSv0200-CSv0204 by SEER
 - "Required" means CS Site-Specific Factor13 cannot = 988
-----------------------------------------------------------------------------------------
Breast
MelanomaChoroid
MelanomaCiliaryBody
MelanomaIris
Prostate
Testis]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-02">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-23">Changed logic. Added year of diagnosis into edit.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-15">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-004-02" user="murphyr" date="2011-03-18" ref="66447">Refined behavior skip condition (made it not skip for certain schemas) and refactored code.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-21" ref="66581">Updated for CSv0204 versioning.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-06-19" ref="66894">Changed &apos;If year of Diagnosis is 2010 OR CS Version Input Original is 020101 or higher&apos; to &apos;If year of Diagnosis is 2010+ OR CS Version Input Original is greater than 020000&apos;</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-06" ref="66999">Update for CSv0205.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-01" ref="67251">Changed CS Version skip conditions to depend on DX year.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-015-07" user="kirbyk" date="2016-08-25" ref="67516">Added upper bound on CS Version Input Original for condition on CSv0203-CSv0204.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67723">Updated logic to allow blank SSF 13 for 2018+ cases.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68292">Added skip condition for Massachusetts</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68715">Added skip condition for Illinois and Texas.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF301" name="CS Items - SEER Required - SSF 14 (CS)" tag="N2158" java-path="lines.line" category="inter-field" depends="CS_Version_Input_Current,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.csVersionInputCurrent == null && line.dateOfDiagnosisYear < '2016') ||
     (line.csVersionInputOriginal == null && line.dateOfDiagnosisYear < '2016') || line._csSchemaId == null)
    return true
if (Functions.matches(line.registryId, /^000000156[2356]$/))
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','intracranial_gland','cns_other'].contains(line._csSchemaId))
    return true

// condition 1
if (line.dateOfDiagnosisYear >= '2004' && line.dateOfDiagnosisYear <= '2017' && line.csSiteSpecificFactor14 == null)
    return false

Integer csInputOrig = Functions.asInt(line.csVersionInputOriginal)
Integer csInputCurr = Functions.asInt(line.csVersionInputCurrent)
Integer yearDx = Functions.asInt(line.dateOfDiagnosisYear)
String schemaMatch = ((List)((Map)Context.CS_SSF).get(line._csSchemaId))?.get(13)//ssf14

// R = Required, N = Not required after CSv0204
if (schemaMatch != 'R')
    return true

// condition 2
if (yearDx >= 2010 || csInputOrig >= 20001) {
    if (line.csSiteSpecificFactor14 == '988')
        return false

     return true
}

// condition 3
if (yearDx > 2003 && yearDx < 2010 && csInputOrig < 20000) {
    if (csInputCurr == 20510 && line._csSchemaId != 'breast') {
       if (line.csSiteSpecificFactor14 != '988')
           return false
    }
}

return true]]></expression>
            <message>CS Site-Specific Factor 14 requirements conflict for this schema</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Site-Specific Factor14 is entered for the schemas required by SEER.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Current is blank and year of diagnosis < 2016
2. CS Version Input Original is blank and year of diagnosis < 2016
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland
4. CS schema is invalid
5. Date of Diagnosis is blank or invalid
6. Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

The logic is as follows:

1. For all schemas, if year of Diagnosis is 2004-2017, CS Site-Specific Factor14 cannot be blank.

2. If year of Diagnosis is 2010 or later OR CS Version Input Original is 020001 or higher
then
     CS Site-Specific Factor14 must not 988 for the schemas
     for which CS Site-Specific Factor14 is required.

3. If year of Diagnosis is 2004-2009 AND CS Version Input Original is 01xxxx:

     If CS Version Input Current = 020510 (not changed since
     conversion from CSv01 to CSv02):

       CS Site-Specific Factor14 must = 988.

      Note: CS Site-Specific Factor 7-24 fields were all populated
      with 988 upon conversion from CSv01 to CSv02.

       Exception:
       - If the schema is Breast, CS Site-Specific Factor14 must not be blank.
      (For several SEER registries, CS Site-Specific Factor14 may contain
       HER2 codes for breast cases coded originally in CSv1.)


List of Schemas for which CS Site-Specific Factor 14 is Required for CSv2 by SEER
-----------------------------------------------------------------------------------------
Breast]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-02">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-23">Changed logic. Added year of diagnosis into edit.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-05-25">Added special case for Breast schema.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-15">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-004-02" user="murphyr" date="2011-03-18" ref="66447">Refined behavior skip condition (made it not skip for certain schemas) and refactored code.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-21" ref="66582">Updated for CSv0204 versioning.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-06-19" ref="66894">Changed &apos;If year of Diagnosis is 2010 OR CS Version Input Original is 020101 or higher&apos; to &apos;If year of Diagnosis is 2010+ OR CS Version Input Original is greater than 020000&apos;</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-06" ref="67000">Updated for Csv0205.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-01" ref="67252">Changed CS Version skip conditions to depend on DX year.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67723">Updated logic to allow blank SSF 14 for 2018+ cases.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68292">Added skip condition for Massachusetts</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68715">Added skip condition for Illinois and Texas.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF302" name="CS Items - SEER Required - SSF 15 (CS)" tag="N2159" java-path="lines.line" category="inter-field" depends="CS_Version_Input_Current,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.csVersionInputCurrent == null && line.dateOfDiagnosisYear < '2016') ||
     (line.csVersionInputOriginal == null && line.dateOfDiagnosisYear < '2016') || line._csSchemaId == null)
    return true
if (Functions.matches(line.registryId, /^000000156[2356]$/))
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','intracranial_gland','cns_other'].contains(line._csSchemaId))
    return true

// condition 1
if (line.dateOfDiagnosisYear >= '2004' && line.dateOfDiagnosisYear <= '2017' && line.csSiteSpecificFactor15 == null)
    return false

Integer csInputOrig = Functions.asInt(line.csVersionInputOriginal)
Integer csInputCurr = Functions.asInt(line.csVersionInputCurrent)
Integer yearDx = Functions.asInt(line.dateOfDiagnosisYear)
String schemaMatch = ((List)((Map)Context.CS_SSF).get(line._csSchemaId))?.get(14)//ssf15

// R = Required, N = Not required after CSv0204
if (schemaMatch != 'R')
    return true

// condition 2
if (yearDx >= 2011 || csInputOrig >= 20302) {
    if (line.csSiteSpecificFactor15 == '988')
        return false

    return true
}

// condition 3
if (yearDx == 2010 ||
     line.csVersionInputOriginal.startsWith('0201') ||
     line.csVersionInputOriginal.startsWith('0202') ) {

    if (line._csSchemaId == 'breast')
        return true

    if (line.csSiteSpecificFactor15 == '988')
        return false

     return true
}

// condition 4
if (yearDx > 2003 && yearDx < 2010 && csInputOrig < 20000) {
    if (csInputCurr == 20510 && line._csSchemaId != 'breast') {
       if (line.csSiteSpecificFactor15 != '988')
           return false
    }
}

return true]]></expression>
            <message>CS Site-Specific Factor 15 requirements conflict for this schema</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Site-Specific Factor15 is entered for the schemas required by SEER.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Current is blank and year of diagnosis < 2016
2. CS Version Input Original is blank and year of diagnosis < 2016
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland
4. CS schema is invalid
5. Date of Diagnosis is blank or invalid
6. Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

The logic is as follows:

1. For all schemas, if year of Diagnosis is 2004-2017, CS Site-Specific Factor15 cannot be blank.

2. If year of Diagnosis is 2011 or later OR CS Version Input Original is 020302 or higher:
then
    CS Site-Specific Factor15 must not be 988 for the
    schemas for which CS Site-Specific Factor15 is required.

3. If year of Diagnosis is 2010 OR CS Version Input Original is 0201xx or 0202xx:
then
    CS Site-Specific Factor15 must not be 988 for the
    schemas for which CS Site-Specific Factor15 is required.

       Exceptions:
       1. If schema = Breast, the edit is skipped
          (Note:  Breast was not required prior to CSv0203)

4. If year of Diagnosis is 2004-2009 AND CS Version Input Original is 01xxxx:

  A. If CS Version Input Current = 020510 (not changed since conversion
     from CSv01 to CSv02):
     then
         CS Site-Specific Factor15 must = 988.

      Note: CS Site-Specific Factor 7-24 fields were all populated
      with 988 upon conversion from CSv01 to CSv02.

       Exception:
       - If the schema is Breast, CS Site-Specific Factor15 must not be blank.
      (For several SEER registries, CS Site-Specific Factor15 may contain
       HER2 codes for breast cases coded originally in CSv1.)


List of Schemas for which CS Site-Specific Factor 15 is Required for CSv0203 by SEER
---------------------------------------------------------------------------------
Breast (required only for cases diagnosed 2011+
        or entered originally in CSv0203 or higher)
Testis]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-02">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-23">Changed logic. Added year of diagnosis into edit.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-15">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-004-02" user="murphyr" date="2011-03-18" ref="66447">Refined behavior skip condition (made it not skip for certain schemas) and refactored code.</event>
                <event version="SE12-004-02" user="murphyr" date="2011-03-18" ref="66448">Added exclusion for Breast schema if Year of Diagnosis is 2004-2009, CS Version Input Original is 01xxxx, AND CS Version Input Current = 020300.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-21" ref="66583">Updated for CSv0204 versioning.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-06" ref="67001">Updated for CSv0205.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-01" ref="67253">Changed CS Version skip conditions to depend on DX year.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67723">Updated logic to allow blank SSF 15 for 2018+ cases.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68292">Added skip condition for Massachusetts</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68715">Added skip condition for Illinois and Texas.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF303" name="CS Items - SEER Required - SSF 16 (CS)" tag="N2160" java-path="lines.line" category="inter-field" depends="CS_Version_Input_Current,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.csVersionInputCurrent == null && line.dateOfDiagnosisYear < '2016') ||
     (line.csVersionInputOriginal == null && line.dateOfDiagnosisYear < '2016') || line._csSchemaId == null)
    return true
if (Functions.matches(line.registryId, /^000000156[2356]$/))
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','intracranial_gland','cns_other'].contains(line._csSchemaId))
    return true

// condition 1
if (line.dateOfDiagnosisYear >= '2004' && line.dateOfDiagnosisYear <= '2017' && line.csSiteSpecificFactor16 == null)
    return false

Integer csInputOrig = Functions.asInt(line.csVersionInputOriginal)
Integer csInputCurr = Functions.asInt(line.csVersionInputCurrent)
Integer yearDx = Functions.asInt(line.dateOfDiagnosisYear)
String schemaMatch = ((List)((Map)Context.CS_SSF).get(line._csSchemaId))?.get(15)//ssf16

// R = Required, N = Not required after CSv0204
if (schemaMatch != 'R')
    return true

// condition 2
if (yearDx >= 2010 || csInputOrig >= 20001) {

    if (line.csSiteSpecificFactor16 == '988')
        return false

     return true
}

// condition 3
if (yearDx > 2003 && yearDx < 2010 && csInputOrig < 20000) {
    if (csInputCurr == 20510) {
       if (line.csSiteSpecificFactor16 != '988')
           return false
    }
}

return true]]></expression>
            <message>CS Site-Specific Factor 16 requirements conflict for this schema</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Site-Specific Factor16 is entered for the schemas required by SEER.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Current is blank and year of diagnosis < 2016
2. CS Version Input Original is blank and year of diagnosis < 2016
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland
4. CS schema is invalid
5. Date of Diagnosis is blank or invalid
6. Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

The logic is as follows:

1. For all schemas, if year of Diagnosis is 2004-2017, CS Site-Specific Factor16 cannot be blank.

2. If year of Diagnosis is 2010 or later OR CS Version Input Original is 020001 or higher
then
     CS Site-Specific Factor16 must not be 988 for the schemas
     for which CS Site-Specific Factor16 is required.

3. If year of Diagnosis is 2004-2009 AND CS Version Input Original is 01xxxx:

  A. If CS Version Input Current = 020510 (not changed since
     conversion from CSv01 to CSv02):

       CS Site-Specific Factor16 must = 988.

      Note: CS Site-Specific Factor 7-24 fields were all populated
      with 988 upon conversion from CSv01 to CSv02.


List of Schemas for which CS Site-Specific Factor 16 is Required for CSv2 by SEER
-----------------------------------------------------------------------------------------
MerkelCellPenis
MerkelCellScrotum
MerkelCellSkin
MerkelCellVulva
NETColon
NETRectum
Scrotum
Skin
Testis]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-02">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-23">Changed logic. Added year of diagnosis into edit.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-15">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-004-02" user="murphyr" date="2011-03-18" ref="66447">Refined behavior skip condition (made it not skip for certain schemas) and refactored code.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-21" ref="66584">Updated for CSv0204 versioning.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-06-19" ref="66894">Changed &apos;If year of Diagnosis is 2010 OR CS Version Input Original is 020101 or higher&apos; to &apos;If year of Diagnosis is 2010+ OR CS Version Input Original is greater than 020000&apos;</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-06" ref="67002">Updated for CSv0205.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-01" ref="67254">Changed CS Version skip conditions to depend on DX year.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67723">Updated logic to allow blank SSF 16 for 2018+ cases.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68292">Added skip condition for Massachusetts</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68715">Added skip condition for Illinois and Texas.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF304" name="CS Items - SEER Required - SSF 17 (CS)" tag="N2161" java-path="lines.line" category="inter-field" depends="CS_Version_Input_Current,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.csVersionInputCurrent == null && line.dateOfDiagnosisYear < '2016') ||
     (line.csVersionInputOriginal == null && line.dateOfDiagnosisYear < '2016') || line._csSchemaId == null)
    return true
if (Functions.matches(line.registryId, /^000000156[2356]$/))
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','intracranial_gland','cns_other'].contains(line._csSchemaId))
    return true

// condition 1
if (line.dateOfDiagnosisYear >= '2004' && line.dateOfDiagnosisYear <= '2017' && line.csSiteSpecificFactor17 == null)
    return false

Integer csInputOrig = Functions.asInt(line.csVersionInputOriginal)
Integer csInputCurr = Functions.asInt(line.csVersionInputCurrent)
Integer yearDx = Functions.asInt(line.dateOfDiagnosisYear)
String schemaMatch = ((List)((Map)Context.CS_SSF).get(line._csSchemaId))?.get(16)//ssf17

// R = Required, N = Not required after CSv0204
if (schemaMatch != 'R')
    return true

// condition 2
if (yearDx >= 2010 || csInputOrig >= 20001) {
    if (line.csSiteSpecificFactor17 == '988')
        return false

     return true
}

// condition 3
if (yearDx > 2003 && yearDx < 2010 && csInputOrig < 20000) {
    if (csInputCurr == 20510) {
       if (line.csSiteSpecificFactor17 != '988')
           return false
    }
}

return true]]></expression>
            <message>CS Site-Specific Factor 17 requirements conflict for this schema</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Site-Specific Factor17 is entered for the schemas required by SEER.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Current is blank and year of diagnosis < 2016
2. CS Version Input Original is blank and year of diagnosis < 2016
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland
4. CS schema is invalid
5. Date of Diagnosis is blank or invalid
6. Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

The logic is as follows:

1. For all schemas, if year of Diagnosis is 2004-2017, CS Site-Specific Factor17 cannot be blank.

2. If year of Diagnosis is 2010 or later OR CS Version Input Original is 020001 or higher
then
     CS Site-Specific Factor17 must not be 988 for the schemas
     for which CS Site-Specific Factor17 is required.

3. If year of Diagnosis is 2004-2009 AND CS Version Input Original is 01xxxx:

   If CS Version Input Current = 020510 (not changed since
     conversion from CSv01 to CSv02):

       CS Site-Specific Factor17 must = 988.

      Note: CS Site-Specific Factor 7-24 fields were all populated
      with 988 upon conversion from CSv01 to CSv02.


List of Schemas for which CS Site-Specific Factor17 is Required for CSv2 by SEER
----------------------------------------------------------------------------------------
MerkelCellPenis
MerkelCellScrotum
MerkelCellSkin
MerkelCellVulva
NETColon
NETRectum
Penis]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-02">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-23">Changed logic. Added year of diagnosis into edit.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-15">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-004-02" user="murphyr" date="2011-03-18" ref="66447">Refined behavior skip condition (made it not skip for certain schemas) and refactored code.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-21" ref="66585">Updated for CSv0204 versioning.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-06-19" ref="66894">Changed &apos;If year of Diagnosis is 2010 OR CS Version Input Original is 020101 or higher&apos; to &apos;If year of Diagnosis is 2010+ OR CS Version Input Original is greater than 020000&apos;</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-06" ref="67003">Updated for CSv0205.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-01" ref="67255">Changed CS Version skip conditions to depend on DX year.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67723">Updated logic to allow blank SSF 17 for 2018+ cases.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68292">Added skip condition for Massachusetts</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68715">Added skip condition for Illinois and Texas.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF305" name="CS Items - SEER Required - SSF 18 (CS)" tag="N2162" java-path="lines.line" category="inter-field" depends="CS_Version_Input_Current,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.csVersionInputCurrent == null && line.dateOfDiagnosisYear < '2016') ||
     (line.csVersionInputOriginal == null && line.dateOfDiagnosisYear < '2016') || line._csSchemaId == null)
    return true
if (Functions.matches(line.registryId, /^000000156[2356]$/))
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','intracranial_gland','cns_other'].contains(line._csSchemaId))
    return true

// condition 1
if (line.dateOfDiagnosisYear >= '2004' && line.dateOfDiagnosisYear <= '2017' && line.csSiteSpecificFactor18 == null)
    return false

Integer csInputOrig = Functions.asInt(line.csVersionInputOriginal)
Integer csInputCurr = Functions.asInt(line.csVersionInputCurrent)
Integer yearDx = Functions.asInt(line.dateOfDiagnosisYear)
String schemaMatch = ((List)((Map)Context.CS_SSF).get(line._csSchemaId))?.get(17)//ssf18

// R = Required, N = Not required after CSv0204
if (schemaMatch != 'R')
    return true

// condition 2
if (yearDx >= 2010 || csInputOrig >= 20001) {
    if (line.csSiteSpecificFactor18 == '988')
        return false

     return true
}

// condition 3
if (yearDx > 2003 && yearDx < 2010 && csInputOrig < 20000) {
    if (csInputCurr == 20510) {
       if (line.csSiteSpecificFactor18 != '988')
           return false
    }
}

return true]]></expression>
            <message>CS Site-Specific Factor 18 requirements conflict for this schema</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Site-Specific Factor18 is entered for the schemas required by SEER.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Current is blank and year of diagnosis < 2016
2. CS Version Input Original is blank and year of diagnosis < 2016
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland
4. CS schema is invalid
5. Date of Diagnosis is blank or invalid
6. Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

The logic is as follows:

1. For all schemas, if year of Diagnosis is 2004-2017, CS Site-Specific Factor18 cannot be blank.

2. If year of Diagnosis is 2010 or later OR CS Version Input Original is 020001 or higher
then
     CS Site-Specific Factor18 must not be 988 for the schemas
     for which CS Site-Specific Factor18 is required.

3. If year of Diagnosis is 2004-2009 AND CS Version Input Original is 01xxxx:

  A. If CS Version Input Current = 020510 (not changed since
     conversion from CSv01 to CSv02):

       CS Site-Specific Factor18 must = 988.

      Note: CS Site-Specific Factor 7-24 fields were all populated
      with 988 upon conversion from CSv01 to CSv02.


List of Schemas for which CS Site-Specific Factor18 is Required for CSv2 by SEER
----------------------------------------------------------------------------------------
MerkelCellPenis
MerkelCellScrotum
MerkelCellSkin
MerkelCellVulva]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-02">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-23">Changed logic. Added year of diagnosis into edit.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-15">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-004-02" user="murphyr" date="2011-03-18" ref="66447">Refined behavior skip condition (made it not skip for certain schemas) and refactored code.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-21" ref="66586">Updated for CSv0204 versioning.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-06-19" ref="66894">Changed &apos;If year of Diagnosis is 2010 OR CS Version Input Original is 020101 or higher&apos; to &apos;If year of Diagnosis is 2010+ OR CS Version Input Original is greater than 020000&apos;</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-06" ref="67004">Updated for CSv0205.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-01" ref="67256">Changed CS Version skip conditions to depend on DX year.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67723">Updated logic to allow blank SSF 18 for 2018+ cases.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68292">Added skip condition for Massachusetts</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68715">Added skip condition for Illinois and Texas.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF306" name="CS Items - SEER Required - SSF 19 (CS)" tag="N2163" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2004' || line.dateOfDiagnosisYear > '2017')
    return true
if (Functions.matches(line.registryId, /^000000156[2356]$/))
    return true
// Pass if schema isn't found for this edit
if (line._csSchemaId == null)
    return true

if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','intracranial_gland','cns_other'].contains(line._csSchemaId))
    return true

if (line.csSiteSpecificFactor19 == null)
    return false

return true]]></expression>
            <message>CS Site-Specific Factor 19 requirements conflict for this schema</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor19 is populated based on the SEER requirements.

This edit is skipped if:
1. Date of Diagnosis is blank or invalid.
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland
3. Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

For all schemas, if year of Diagnosis is 2004-2017, CS Site-Specific Factor19 cannot be blank.]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2011-02-15">Edit created.</event>
                <event version="SE12-004-02" user="murphyr" date="2011-03-18" ref="66447">Refined behavior skip condition (made it not skip for certain schemas) and refactored code.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-06" ref="67005">Updated for CSv0205.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-16" ref="67473">Edit is skipped if schema cannot be found.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67723">Updated logic to allow blank SSF 19 for 2018+ cases.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68292">Added skip condition for Massachusetts</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68715">Added skip condition for Illinois and Texas.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF307" name="CS Items - SEER Required - SSF 20 (CS)" tag="N2167" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2004' || line.dateOfDiagnosisYear > '2017')
    return true
if (Functions.matches(line.registryId, /^000000156[2356]$/))
    return true
// Pass if schema isn't found for this edit
if (line._csSchemaId == null)
    return true

if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','intracranial_gland','cns_other'].contains(line._csSchemaId))
    return true

if (line.csSiteSpecificFactor20 == null)
    return false

return true]]></expression>
            <message>CS Site-Specific Factor 20 requirements conflict for this schema</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor20 is populated based on the SEER  requirements.

This edit is skipped if:
1. Date of Diagnosis is blank or invalid.
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland
3. Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

For all schemas, if year of Diagnosis is 2004-2017, CS Site-Specific Factor20 cannot be blank.]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2011-02-15">Edit created.</event>
                <event version="SE12-004-02" user="murphyr" date="2011-03-18" ref="66447">Refined behavior skip condition (made it not skip for certain schemas) and refactored code.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-06" ref="67007">Updated for CSv0205.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-16" ref="67474">Edit is skipped if schema cannot be found.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67723">Updated logic to allow blank SSF 20 for 2018+ cases.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68292">Added skip condition for Massachusetts</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68715">Added skip condition for Illinois and Texas.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF308" name="CS Items - SEER Required - SSF 21 (CS)" tag="N2168" java-path="lines.line" category="inter-field" depends="CS_Version_Input_Current,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.csVersionInputCurrent == null && line.dateOfDiagnosisYear < '2016') ||
     (line.csVersionInputOriginal == null && line.dateOfDiagnosisYear < '2016') || line._csSchemaId == null)
    return true
if (Functions.matches(line.registryId, /^000000156[2356]$/))
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','intracranial_gland','cns_other'].contains(line._csSchemaId))
    return true

// condition 1
if (line.dateOfDiagnosisYear >= '2004' && line.dateOfDiagnosisYear <= '2017' && line.csSiteSpecificFactor21 == null)
    return false

Integer csInputOrig = Functions.asInt(line.csVersionInputOriginal)
Integer csInputCurr = Functions.asInt(line.csVersionInputCurrent)
Integer yearDx = Functions.asInt(line.dateOfDiagnosisYear)
String schemaMatch = ((List)((Map)Context.CS_SSF).get(line._csSchemaId))?.get(20)//ssf21

// R = Required, N = Not required after CSv0204
if (!['N','R'].contains(schemaMatch))
    return true

// condition 2
if (yearDx >= 2014 || csInputOrig >= 20550) {
    if (schemaMatch == 'R' && line.csSiteSpecificFactor21 == '988')
        return false

    return true
}

// condition 3
if ((yearDx >= 2010 && yearDx <= 2013) || (csInputOrig >= 20001 && csInputOrig < 20550)) {
    if (line.csSiteSpecificFactor21 == '988')
        return false

     return true
}

// condition 4
if (yearDx > 2003 && yearDx < 2010 && csInputOrig < 20000) {
    if (csInputCurr == 20510) {
       if (line.csSiteSpecificFactor21 != '988')
           return false
    }
}

return true]]></expression>
            <message>CS Site-Specific Factor 21 requirements conflict for this schema</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Site-Specific Factor21 is entered for the schemas required by SEER.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Current is blank and year of diagnosis < 2016
2. CS Version Input Original is blank and year of diagnosis < 2016
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland
4. CS schema is invalid
5. Date of Diagnosis is blank or invalid
6. Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

The logic is as follows:

1. For all schemas, if year of Diagnosis is 2004-2017, CS Site-Specific Factor21 cannot be blank.

2. For cases diagnosed in 2014 or later OR originally coded in CSv0205:
If year of Diagnosis is 2014 or later OR CS Version Input Original is 020550 (originally entered in CSv0205) or higher, then CS Site-Specific Factor21 must not be 988 (not applicable) for the schemas in List 1, "Schemas for which CS Site-Specific Factor21 is Required for CSv0205 by SEER".

Note: List 2 includes the schemas for which CS Site-Specific Factor21 was required for earlier versions of CSv02, but no longer required for CSv0205.  The code 988 is allowed for these particular schemas.

3. For cases diagnosed 2010-2013 OR originally coded in CSv0200-CSv0204:
If year of Diagnosis is 2010-2013 OR CS Version Input Original is greater than 020000 and less than 020550 (indicating case originally entered in CSv0200-CSv0204), then CS Site-Specific Factor21 must not be 988 for the schemas in List 3, "Schemas for which CS Site-Specific Factor21 is required for CSv0200-CSv0204 by SEER".


4.If year of Diagnosis is 2004-2009 AND CS Version Input Original is 01xxxx:

   If CS Version Input Current = 020510 (not changed since
     conversion from CSv01 to CSv02):

       CS Site-Specific Factor21 must = 988.


List 1: Schemas for which CS Site-Specific Factor21 is Required for CSv0205 by SEER
 - "Required" means CS Site-Specific Factor21 cannot = 988
-----------------------------------------------------------------------------------------
None


List 2: Schemas for which CS Site-Specific Factor21, although required for CSv0200-CSv0204, is no longer required as of CSv0205 and 988 is allowed-----------------------------------------------------------------------------------------
Breast

List 3: Schemas for which CS Site-Specific Factor21 is required for CSv0200-CSv0204 by SEER
 - "Required" means CS Site-Specific Factor21 cannot = 988
-----------------------------------------------------------------------------------------
Breast]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-02">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-23">Changed logic. Added year of diagnosis into edit.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-15">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-004-02" user="murphyr" date="2011-03-18" ref="66447">Refined behavior skip condition (made it not skip for certain schemas) and refactored code.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-21" ref="66588">Updated for CSv0204 versioning.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-06-19" ref="66894">Changed &apos;If year of Diagnosis is 2010 OR CS Version Input Original is 020101 or higher&apos; to &apos;If year of Diagnosis is 2010+ OR CS Version Input Original is greater than 020000&apos;</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-06" ref="67008">Updated for CSv0205.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-01" ref="67259">Changed CS Version skip conditions to depend on DX year.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-015-07" user="kirbyk" date="2016-08-25" ref="67517">Added upper bound on CS Version Input Original for condition on CSv0203-CSv0204.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67723">Updated logic to allow blank SSF 21 for 2018+ cases.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68292">Added skip condition for Massachusetts</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68715">Added skip condition for Illinois and Texas.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF309" name="CS Items - SEER Required - SSF 22 (CS)" tag="N2169" java-path="lines.line" category="inter-field" depends="CS_Version_Input_Current,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.csVersionInputCurrent == null && line.dateOfDiagnosisYear < '2016') ||
     (line.csVersionInputOriginal == null && line.dateOfDiagnosisYear < '2016') || line._csSchemaId == null)
    return true
if (Functions.matches(line.registryId, /^000000156[2356]$/))
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','intracranial_gland','cns_other'].contains(line._csSchemaId))
    return true

// condition 1
if (line.dateOfDiagnosisYear >= '2004' && line.dateOfDiagnosisYear <= '2017' && line.csSiteSpecificFactor22 == null)
    return false

Integer csInputOrig = Functions.asInt(line.csVersionInputOriginal)
Integer csInputCurr = Functions.asInt(line.csVersionInputCurrent)
Integer yearDx = Functions.asInt(line.dateOfDiagnosisYear)
String schemaMatch = ((List)((Map)Context.CS_SSF).get(line._csSchemaId))?.get(21)//ssf22

// R = Required, N = Not required after CSv0204
if (schemaMatch != 'R')
    return true

// condition 2
if (yearDx >= 2010 || csInputOrig >= 20001) {

    if (line.csSiteSpecificFactor22 == '988')
        return false

     return true
}

// condition 3
if (yearDx > 2003 && yearDx < 2010 && csInputOrig < 20000) {
    if (csInputCurr == 20510) {
       if (line.csSiteSpecificFactor22 != '988')
           return false
    }
}

return true]]></expression>
            <message>CS Site-Specific Factor 22 requirements conflict for this schema</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Site-Specific Factor22 is entered for the schemas required by SEER.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Current is blank and year of diagnosis < 2016
2. CS Version Input Original is blank and year of diagnosis < 2016
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland
4. CS schema is invalid
5. Date of Diagnosis is blank or invalid
6. Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

The logic is as follows:

1. For all schemas, if year of Diagnosis is 2004-2017, CS Site-Specific Factor22 cannot be blank.

2. If year of Diagnosis is 2010 or later OR CS Version Input Original is 020001 or higher
then
     CS Site-Specific Factor22 must not be 988 for the schemas
     for which CS Site-Specific Factor22 is required.

3. If year of Diagnosis is 2004-2009 AND CS Version Input Original is 01xxxx:

  If CS Version Input Current = 020510 (not changed since
     conversion from CSv01 to CSv02):

       CS Site-Specific Factor22 must = 988.


List of Schemas for which CS Site-Specific Factor 22 is Required for CSv2 by SEER
-----------------------------------------------------------------------------------------
Breast
MerkelCellPenis
MerkelCellScrotum
MerkelCellSkin
MerkelCellVulva]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-02">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-23">Changed logic. Added year of diagnosis into edit.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-15">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-004-02" user="murphyr" date="2011-03-18" ref="66447">Refined behavior skip condition (made it not skip for certain schemas) and refactored code.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-21" ref="66589">Updated for CSv0204 versioning.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-06-19" ref="66894">Changed &apos;If year of Diagnosis is 2010 OR CS Version Input Original is 020101 or higher&apos; to &apos;If year of Diagnosis is 2010+ OR CS Version Input Original is greater than 020000&apos;</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-06" ref="67009">Updated for CSv0205.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-01" ref="67260">Changed CS Version skip conditions to depend on DX year.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67723">Updated logic to allow blank SSF 22 for 2018+ cases.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68292">Added skip condition for Massachusetts</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68715">Added skip condition for Illinois and Texas.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF310" name="CS Items - SEER Required - SSF 23 (CS)" tag="N2170" java-path="lines.line" category="inter-field" depends="CS_Version_Input_Current,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.csVersionInputCurrent == null && line.dateOfDiagnosisYear < '2016') ||
     (line.csVersionInputOriginal == null && line.dateOfDiagnosisYear < '2016') || line._csSchemaId == null)
    return true
if (Functions.matches(line.registryId, /^000000156[2356]$/))
    return true
if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','intracranial_gland','cns_other'].contains(line._csSchemaId))
    return true

// condition 1
if (line.dateOfDiagnosisYear >= '2004' && line.dateOfDiagnosisYear <= '2017' && line.csSiteSpecificFactor23 == null)
    return false

Integer csInputOrig = Functions.asInt(line.csVersionInputOriginal)
Integer csInputCurr = Functions.asInt(line.csVersionInputCurrent)
Integer yearDx = Functions.asInt(line.dateOfDiagnosisYear)
String schemaMatch = ((List)((Map)Context.CS_SSF).get(line._csSchemaId))?.get(22)//ssf23

// R = Required, N = Not required after CSv0204
if (schemaMatch != 'R')
    return true

// condition 2
if (yearDx >= 2010 || csInputOrig >= 20001) {
    if (line.csSiteSpecificFactor23 == '988')
        return false

     return true
}

// condition 3
if (yearDx > 2003 && yearDx < 2010 && csInputOrig < 20000) {
    if (csInputCurr == 20510) {
       if (line.csSiteSpecificFactor23 != '988')
           return false
    }
}

return true]]></expression>
            <message>CS Site-Specific Factor 23 requirements conflict for this schema</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Site-Specific Factor23 is entered for the schemas required by SEER.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Current is blank and year of diagnosis < 2016
2. CS Version Input Original is blank and year of diagnosis < 2016
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland
4. CS schema is invalid
5. Date of Diagnosis is blank or invalid
6. Registry ID = 0000001562 (New York), 0000001563 (Massachusetts), 0000001565 (Illinois), or 0000001566 (Texas)

The logic is as follows:

1. For all schemas, if year of Diagnosis is 2004-2017, CS Site-Specific Factor23 cannot be blank.

2.If year of Diagnosis is 2010 or later OR CS Version Input Original is 020001 or higher
then
     CS Site-Specific Factor23 must not be 988 for the schemas
     for which CS Site-Specific Factor23 is required.

3. If year of Diagnosis is 2004-2009 AND CS Version Input Original is 01xxxx:

   If CS Version Input Current = 020510 (not changed since
     conversion from CSv01 to CSv02):

       CS Site-Specific Factor23 must = 988.


List of Schemas for which CS Site-Specific Factor 23 is Required for CSv2 by SEER
-----------------------------------------------------------------------------------------
Breast]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-02">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-03-23">Changed logic. Added year of diagnosis into edit.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-15">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-004-02" user="murphyr" date="2011-03-18" ref="66447">Refined behavior skip condition (made it not skip for certain schemas) and refactored code.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-21" ref="66590">Updated for CSv0204 versioning</event>
                <event version="SE13-010-01" user="murphyr" date="2013-06-19" ref="66894">Changed &apos;If year of Diagnosis is 2010 OR CS Version Input Original is 020101 or higher&apos; to &apos;If year of Diagnosis is 2010+ OR CS Version Input Original is greater than 020000&apos;</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Added blank schema skip condition.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-06" ref="67010">Updated for CSv0205.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-01" ref="67261">Changed CS Version skip conditions to depend on DX year.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67723">Updated logic to allow blank SSF 23 for 2018+ cases.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68292">Added skip condition for Massachusetts</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68715">Added skip condition for Illinois and Texas.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF311" name="CS Items - SEER Required - SSF 24 (CS)" tag="N2171" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2004' || line.dateOfDiagnosisYear > '2017' ||
     ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !(['brain','cns_other','intracranial_gland'].contains(line._csSchemaId))))
    return true
if (Functions.matches(line.registryId, /^000000156[2356]$/))
    return true
// Pass this edit if schema is invalid
if (line._csSchemaId == null)
    return true

return line.csSiteSpecificFactor24 != null]]></expression>
            <message>CS Site-Specific Factor 24 requirements conflict for this schema</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor24 is populated based on the SEER requirements.

This edit is skipped if:
1. Date of Diagnosis is blank or invalid
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland
3. Registry ID = 0000001562 (New York) or 0000001563 (Massachusetts)


This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

For all schemas, if year of Diagnosis is 2004-2017, CS Site-Specific Factor24 cannot be blank.]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2011-02-15">Edit created.</event>
                <event version="SE12-004-02" user="murphyr" date="2011-03-18" ref="66447">Refined behavior skip condition (made it not skip for certain schemas) and refactored code.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-05-31" ref="66890">Edit now checks CS SSF24 instead of CS SSF25</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-06" ref="67011">Updated for CSv0205.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-16" ref="67475">Edit is skipped if schema cannot be found.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67723">Updated logic to allow blank SSF 24 for 2018+ cases.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68292">Added skip condition for Massachusetts</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-18" ref="68715">Added skip condition for Illinois and Texas.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF312" name="CS Items - SEER Required - Non-SSF (CS)" tag="N2353" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line._csSchemaId == null || ['0000001562','0000001566'].contains(line.registryId) ||
    ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && line._csSchemaId != 'brain' && line._csSchemaId != 'cns_other' && line._csSchemaId != 'intracranial_gland'))
    return true

Integer yeardx = Functions.asInt(line.dateOfDiagnosisYear)
Integer csInputOrig = Functions.asInt(line.csVersionInputOriginal)

if (yeardx > 2015 && (line.csMetsAtDxBone != null || line.csMetsAtDxBrain != null ||
      line.csMetsAtDxLiver != null || line.csMetsAtDxLung != null))
      return false
if (yeardx > 2015 && line.csExtension == null && (line.csTumorSize != null || line.csTumorSizeExtEval != null ||
      line.csLymphNodes != null || line.csLymphNodesEval != null || line.csMetsAtDx != null || line.csMetsEval != null))
      return false
if (yeardx > 2015 && line.csExtension != null && (line.csTumorSize == null || line.csTumorSizeExtEval == null ||
      line.csLymphNodes == null || line.csLymphNodesEval == null || line.csMetsAtDx == null || line.csMetsEval == null))
      return false
if (yeardx > 2009 && yeardx < 2016 && line.registryId != '0000001563' && (line.csMetsAtDxBone == null || line.csMetsAtDxBrain == null ||
      line.csMetsAtDxLiver == null || line.csMetsAtDxLung == null))
      return false
if (((yeardx > 2007 && yeardx < 2016) || (yeardx > 2003 && yeardx < 2016 && csInputOrig >= 20100)) && ( line.csTumorSizeExtEval == null || line.csLymphNodesEval == null ||
      line.csMetsEval == null))
      return false
if (yeardx > 2003 && yeardx < 2016 && (line.csTumorSize == null || line.csExtension == null || line.csLymphNodes == null ||
    line.csMetsAtDx == null || line.csVersionInputOriginal == null || line.csVersionInputCurrent == null))
      return false

return true]]></expression>
            <message>CS Items Non-SSF and Year of Diagnosis conflict</message>
            <description><![CDATA[The purpose of this edit is to verify that all CS data items required by SEER, other than the site-specific factors, are entered (not blank) per the SEER requirements. The site-specific factors are edited schema-specifically in other edits.

This edit is skipped if:
1. Year of Date of Diagnosis is blank.
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and schema is not Brain, CNSOther, or IntracranialGland
3. CS schema is invalid
4. Registry ID = 0000001562 (New York) or 0000001566 (Texas)

If year of Date of Diagnosis is greater than 2003 and less than 2016, then the following CS data items cannot be blank:
    CS Tumor Size
    CS Extension
    CS Lymph Nodes
    CS Mets at DX
    CS Version Input Original
    CS Version Input Current

If year of Date of Diagnosis is greater than 2007 and less than 2016 OR (year of Date of Diagnosis is 2004-2015 and CS Version Input Original is greater than or = 020100 (indicating the case was originally coded using CSv2)), then the following additional CS data items cannot be blank:

    CS Tumor Size/Ext Eval
    CS Lymph Nodes Eval
    CS Mets Eval

If year of Date of Diagnosis is greater than 2009 and less than 2016 and registry is not MA (0000001563), then the following additional CS data items cannot be blank:

    CS Mets at DX-Bone
    CS Mets at DX-Brain
    CS Mets at DX-Liver
    CS Mets at DX-Lung

If CS extension is non-blank and year of Date of Diagnosis is greater than 2015, then the following CS data items must not be blank:

    CS Tumor Size
    CS Extension
    CS Tumor Size/Ext Eval
    CS Lymph Nodes
    CS Lymph Nodes Eval
    CS Mets at DX
    CS Mets Eval

If CS extension is blank and year of Date of Diagnosis is greater than 2015, then the following CS data items must be blank:

    CS Tumor Size
    CS Extension
    CS Tumor Size/Ext Eval
    CS Lymph Nodes
    CS Lymph Nodes Eval
    CS Mets at DX
    CS Mets Eval

If year of Date of Diagnosis is greater than 2015, then the following CS data items must be blank:

    CS Mets at DX-Bone
    CS Mets at DX-Brain
    CS Mets at DX-Liver
    CS Mets at DX-Lung]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-08">Edit created.</event>
                <event version="SE13-009-02" user="murphyr" date="2013-02-28" ref="66837">Fixed issue where some fields were not checked for blank for years of dx 2007+</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-25" ref="67235">Updated logic for 2016+ cases.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-12" user="kirbyk" date="2019-01-29" ref="68095">CS Mets at DX site fields can be blank for cases from MA diagnosed 2010-2015.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68203">Added skip condition for New York.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-09" user="beverung" date="2021-09-03" ref="68737">Added skip condition for TX.</event>
                <event version="SE24-024-03" user="kirbyk" date="2024-04-04" ref="69447">Removed dependency on edit Registry_ID/</event>
            </history>
        </rule>
        <rule id="IF313" name="CS Mets at DX, Colon Schema (CS)" tag="N1171" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.csMetsAtDx == null)
    return true

int i = 0
if (line.csMetsAtDxBone == '1')
   i++
if (line.csMetsAtDxBrain == '1')
   i++
if (line.csMetsAtDxLiver == '1')
   i++
if (line.csMetsAtDxLung == '1')
   i++

if (line._csSchemaId == 'colon') {
    if (i >= 1 && Functions.matches(line.csMetsAtDx, /^00|08|16|18|31|33$/))
        return false
    if (i > 1)
        return line.csMetsAtDx != '26' && line.csMetsAtDx != '27'
}

return true]]></expression>
            <message>Conflict among CS Mets at DX and CS Mets at DX-Bone, Lung, Brain, or Liver codes for Colon schema</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Mets at DX and CS Mets at DX-Bone,
    Lung, Brain, and Liver are coded consistently for the Colon schema.

    This edit is skipped if CS Mets at DX is empty.

    This edit first determines the correct CS schema by doing a function call to the
    CS Dynamic Link Library (dll).  The function call passes Primary Site,
    Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to
    the dll and the CS schema name is returned.

    If schema is Colon:

    If CS Mets at DX-Bone, CS Mets at DX-Lung, CS Mets at DX-Brain, or CS Mets at DX-Liver = 1 (yes), then CS Mets at DX must not = 00, 08, 16, 18, 31, or 33

    If more than one of CS Mets at DX-Bone, CS Mets at DX-Lung, CS Mets at DX-Brain, or CS Mets at DX-Liver = 1 (yes), then CS Mets at DX must not = 26 or 27.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-10">Edit created.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-14">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-16" ref="66601">Removed 29 from list of codes for Mets at DX</event>
                <event version="SE12-007-01" user="murphyr" date="2012-03-12" ref="66683">Removed &apos;If CS Mets at DX-Liver = 1, then CS Mets at DX must = 26, 27, 36, 40, 45, or 48.&apos; logic.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-26" ref="67057">Fixed condition checking for CS Mets at DX 26 or 27; it wasn&apos;t always properly executed because previous condition could sometimes return early.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67741">Edit name change.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF314" name="CS Mets at DX, Rectum Schema (CS)" tag="N1172" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.csMetsAtDx == null)
    return true

if (line._csSchemaId == 'rectum'){
    if (line.csMetsAtDxBone == '1' || line.csMetsAtDxBrain == '1' || line.csMetsAtDxLiver == '1' || line.csMetsAtDxLung == '1')
        return !(Functions.matches(line.csMetsAtDx, /^00|08|16|18|29|31|33$/))
}

return true]]></expression>
            <message>Conflict among CS Mets at DX and CS Mets at DX-Bone, Lung, Brain, or Liver codes for Rectum schema</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Mets at DX and CS Mets at DX-Bone, Lung, Brain, and Liver are coded consistently for the Rectum schema.

    This edit is skipped if CS Mets at DX is empty.

    This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

    If schema is Rectum:

    If CS Mets at DX-Bone, CS Mets at DX-Lung, CS Mets at DX-Brain, or CS Mets at DX-Liver = 1 (yes), then CS Mets at DX must not = 00, 08, 16, 18, 29, 31, or 33.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-03-10">Edit created.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-14">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67741">Edit name change.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF317" name="CS Lymph Nodes, IntracranialGland Schema (CS)" tag="N1346" java-path="lines.line" category="inter-field" depends="CS_Lymph_Nodes">
            <expression><![CDATA[if (line.csLymphNodes == null || line._csSchemaId != 'intracranial_gland')
    return true

return line.csLymphNodes == '988' || line.csLymphNodes == '999']]></expression>
            <message>CS Lymph Nodes and IntraCranialGland Schema conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
            1. CS Lymph Nodes is empty
            2. CS schema is not IntracranialGland

            This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).
            The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25
            (schema discriminator) to the dll and the CS schema name is returned.

            If CS schema is IntracranialGland:
                CS Lymph Nodes must = 988 (Not applicable) or 999 (OBSOLETE DATA RETAINED V0200; Unknown; not stated).]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-05-26">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
            </history>
        </rule>
        <rule id="IF318" name="Lymphovascular Invasion, Histology, Behav (CS)" tag="N1958" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Year_of_Diagnosis">
            <expression><![CDATA[if (line.lymphVascularInvasion == null || line.histologicTypeIcdO3 == null || line.dateOfDiagnosisYear > '2017')
    return true

if (line.histologicTypeIcdO3 >= '9590' && line.histologicTypeIcdO3 <= '9992' && line.lymphVascularInvasion != '8')
    return false

if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.behaviorCodeIcdO3 == '2') && line.lymphVascularInvasion == '1')
    return false

return true]]></expression>
            <message>Lymphovascular Invasion and Histology/Behav conflict</message>
            <description><![CDATA[This edit is skipped if either Lymphovascular Invasion or Histologic Type ICD-O-3 is blank, or if Year of Diagnosis > 2017.

If Histologic Type ICD-O-3 = 9590-9992 (lymphoma and hematopoietic), then Lymphovascular Invasion must = 8 (not applicable).

If Behavior Code ICD-O-3 = 0, 1, or 2, then Lymphovascular Invasion must not = 1 (lymphovascular invasion present/identified).]]></description>
            <history>
                <event version="SE12-002-04" user="murphyr" date="2010-09-10">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE14-012-02" user="depryf" date="2014-07-23" ref="67095">Edit name changed; added logic checking behavior code.</event>
                <event version="SE14-012-03" user="depryf" date="2014-08-13" ref="67103">Changed histology range from 9560-9992 to 9590-9992.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-24" ref="67724">Limit to cases diagnosed before 2018.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68025">Changed &apos;Lymph-vascular Invasion&apos; to &apos;Lymphovascular Invasion&apos; in name and documentation.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF319" name="CS Lymph Nodes, SSF 3, Nodes Eval, MerkelCell (CS)" tag="N1371" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Reg_Node_Eval,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_3,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor3 == null || line.csSiteSpecificFactor3 == '988' || line.csLymphNodes == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'merkel_cell_penis') {
    if (line.csSiteSpecificFactor3 == '000' || line.csSiteSpecificFactor3 == '005')
        return line.csLymphNodes == '000' || line.csLymphNodes == '410' || line.csLymphNodes == '420'
    if (line.csLymphNodes == '110')
        return Functions.matches(line.csLymphNodesEval, /^0|1|5|9$/)
    if (Functions.matches(line.csLymphNodes, /^1[245]0$/))
        return Functions.matches(line.csLymphNodesEval, /^2|3|6|8$/)
    if (line.csSiteSpecificFactor3 == '020')
        return line.csLymphNodesEval != '8'
}
if (line._csSchemaId == 'merkel_cell_scrotum' || line._csSchemaId == 'merkel_cell_skin') {
    if (line.csSiteSpecificFactor3 == '000' || line.csSiteSpecificFactor3 == '005')
        return line.csLymphNodes == '000' || line.csLymphNodes == '390' || line.csLymphNodes == '400'
    if (line.csLymphNodes == '310')
        return Functions.matches(line.csLymphNodesEval, /^0|1|5|9$/)
    if (Functions.matches(line.csLymphNodes, /^3[245]0$/))
        return Functions.matches(line.csLymphNodesEval, /^2|3|6|8$/)
    if (line.csSiteSpecificFactor3 == '020')
        return line.csLymphNodesEval != '8'
}
if (line._csSchemaId == 'merkel_cell_vulva') {
    if (line.csSiteSpecificFactor3 == '000' || line.csSiteSpecificFactor3 == '005')
        return line.csLymphNodes == '000' || line.csLymphNodes == '510' || line.csLymphNodes == '520'
    if (line.csLymphNodes == '114')
        return Functions.matches(line.csLymphNodesEval, /^0|1|5|9$/)
    if (Functions.matches(line.csLymphNodes, /^1[12]5|120$/))
        return Functions.matches(line.csLymphNodesEval, /^2|3|6|8$/)
    if (line.csSiteSpecificFactor3 == '020')
        return line.csLymphNodesEval != '8'
}

return true]]></expression>
            <message>CS Lymph Nodes &amp; CS Site-Specific Factor 3 conflict for MerkelCell Schemas.</message>
            <description><![CDATA[The purpose of this edit is to compare CS Lymph Nodes, CS Site-Specific 3, and CS Lymph Nodes Eval for cases coded using the MerkelCellScrotum, MerkelCellSkin, MerkelCellPenis,and MerkelCellVulva schemas.

If CS schema is MerkelCellScrotum, MerkelCellSkin, MerkelCellPenis, or MerkelCellVulva:

1. If CS schema is MerkelCellScrotum or MerkelCellSkin:
    A. If CS Site-Specific Factor 3 = 000 or 005 (see definitions below)
    then
    CS Lymph Nodes must = 000, 390, or 400, indicating no lymph node mets.

    B. If CS Lymph Nodes = 310 (evaluated clinically)
    then
    CS Lymph Nodes Eval must = 0, 1, 5 (codes that indicate case does not meet criteria for AJCC pathological stage)or 9 (unknown)

    C. If CS Lymph Nodes = 320, 340, 350 (codes that indicate case was evaluated pathologically)
    then
    CS Lymph Nodes Eval must = 2, 3, 6, 8 (codes that indicate case meets requirement for AJCC pathologic staging) or 9 (unknown)

    D. If CS Site-Specific Factor 3 = 020 (clinically apparent)
    then
    CS Lymph Nodes Eval must not = 8 (diagnosed at autopsy)


2. If CS schema is MerkelCellPenis:
    A. If CS Site-Specific Factor 3 = 000 or 005 (see definitions below)
    then
    CS Lymph Nodes must = 000, 410, 420, indicating no lymph node mets.

    B. If CS Lymph Nodes = 110 (evaluated clinically)
    then
    CS Lymph Nodes Eval must = 0, 1, 5 (codes that indicate case does not meet criteria for AJCC pathological stage) or 9 (unknown)

    C. If CS Lymph Nodes = 120, 140, 150 (codes that indicate case was evaluated pathologically)
    then
    CS Lymph Nodes Eval must = 2, 3, 6, 8 (codes that indicate case meets requirement for AJCC pathologic staging) or 9 (unknown)

    D. If CS Site-Specific Factor 3 = 020 (clinically apparent)
    then
    CS Lymph Nodes Eval must not = 8 (diagnosed at autopsy)


3. If CS schema is MerkelCellVulva:
    A. If CS Site-Specific Factor 3 = 000 or 005 (see definitions below)
    then
    CS Lymph Nodes must = 000, 510, 520, indicating no lymph node mets.

    B. If CS Lymph Nodes = 114 (evaluated clinically)
    then
    CS Lymph Nodes Eval must = 0, 1, 5 (codes that indicate case does not meet criteria for AJCC pathological stage)or 9 (unknown)

    C. If CS Lymph Nodes = 115, 120, 125(codes that indicate case was evaluated pathologically) then CS Lymph Nodes Eval must = 2, 3, 6, 8 (codes that indicate case meets requirement for AJCC pathologic staging) or 9 (unknown)

    D. If CS Site-Specific Factor 3 = 020 (clinically apparent)
    then
    CS Lymph Nodes Eval must not = 8 (diagnosed at autopsy)

*************************************************************
CS Site-Specific Factor 3 definitions for codes 000 and 005:
000 = OBSOLETE DATA RETAINED V0204
No lymph node metastasis
005 = Clinically negative lymph node metastasis
AND
No pathologic examination performed
Or unknown if pathologic examination performed
Or nodes negative on pathologic examination
*************************************************************

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 3 is blank or 988
2. CS Lymph Nodes is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2010-12-15">Edit created.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-24">Removed 988 from statement 1.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-20" ref="66600">Logic reworked for CSv0204</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF320" name="CS SSF 16, MerkelCell Schemas (CS)" tag="N1632" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_16,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Scope_Reg_LN_Sur,Regional_Nodes_Positive">
            <expression><![CDATA[if (line.csSiteSpecificFactor16 == null || line.csSiteSpecificFactor16 == '988' || line.csLymphNodes == null ||
    line.rxSummScopeRegLnSur == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.regionalNodesPositive == null)
    return true

if (line._csSchemaId == 'merkel_cell_penis' || line._csSchemaId == 'merkel_cell_scrotum' ||
    line._csSchemaId == 'merkel_cell_skin'  || line._csSchemaId == 'merkel_cell_vulva') {
    if (line.csSiteSpecificFactor16 == '000') {
        if (line._csSchemaId == 'merkel_cell_skin' && !(Functions.matches(line.csLymphNodes, /(^000|390|4[08]0|999$)/)))
            return false
        if (line._csSchemaId == 'merkel_cell_penis' && !(Functions.matches(line.csLymphNodes, /(^000|4[12]0|550|999$)/)))
            return false
        if (line._csSchemaId == 'merkel_cell_scrotum' && !(Functions.matches(line.csLymphNodes, /(^000|4[05]0|999$)/)))
            return false
        if (line._csSchemaId == 'merkel_cell_vulva' && !(Functions.matches(line.csLymphNodes, /(^000|5[12]0|700|999$)/)))
            return false
        if (line.regionalNodesPositive != '00' && line.regionalNodesPositive != '98')
            return false
    }
    if (line.csTumorSizeExtEval != '2' && line.csTumorSizeExtEval != '8' && line.rxSummScopeRegLnSur == '0')
        return  (line.csSiteSpecificFactor16 == '998' || line.csSiteSpecificFactor16 == '999') && line.regionalNodesPositive == '98'
}

return true]]></expression>
            <message>CS Lymph Nodes,RX Summ--Scope Reg LN Sur,CS SSF 16 conflict for MerkelCell Schemas.</message>
            <description><![CDATA[This edit verifies that for cases coded using the MerkelCellPenis, MerkelCellScrotum, MerkelCellSkin, and MerkelCellVulva schemas, CS Site-Specific Factor 16 (Size of Metastasis in Lymph Nodes), RX Summ--Scope Reg LN Sur, and CS Lymph Nodes are coded consistently.

    This edit is skipped if any of the following conditions are true:
        1. CS Site-Specific Factor 16 is blank or 988
        2. CS Lymph Nodes is blank
        3. RX Summ-Scope Reg LN Sur is blank
        4. Regional Nodes Positive is blank
        5. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
        6. CS schema is invalid

    This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

    If CS schema is MerkelCellPenis, MerkelCellScrotum, MerkelCellSkin, or MerkelCellVulva:

    1. If CS Site-Specific Factor16 = 000 (no regional lymph nodes involved):
        A. CS Lymph Nodes must be coded as specified below:
            MerkelCellSkin: CS Lymph Nodes must = 000, 390, 400, 480, or 999
            MerkelCellPenis: CS Lymph Nodes must = 000, 410, 420, 550, or 999
            MerkelCellScrotum: CS Lymph Nodes must = 000, 400, 450, or 999
            MerkelCellVulva: CS Lymph Nodes must = 000, 510, 520, 700, or 999
        B. Regional Nodes Positive must = 00 (all nodes examined negative) or 98 (no nodes examined).

    2. If CS Tumor Size/Ext Eval not = 2 or 8 (codes indicating autopsy):
        If RX Summ-Scope Reg LN Sur = 0 (none), then CS Site-Specific Factor16 must = 998 (no histologic exam of regional nodes) or 999 (unknown) and Regional Nodes Positive must = 98 (no nodes examined).]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2010-12-15">Edit created.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-24">Edit updated for CSv2 version 02.03.02.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-03">Changed error message.</event>
                <event version="SE12-008-01" user="murphyr" date="2012-08-08" ref="66710">Rearranged logic for condition #2</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-21" ref="66793">Added: &apos;If CS Tumor Size/Ext Eval does not = 2 and does not = 8&apos; before condition 2.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE13-010-03" user="murphyr" date="2013-08-05" ref="66913">Updated edit to V13A.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF321" name="CS SSF 16, Skin and Scrotum Schemas (CS)" tag="N1368" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,Regional_Nodes_Positive">
            <expression><![CDATA[if (line.csSiteSpecificFactor16 == null || line.csLymphNodes == null || line.regionalNodesPositive == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId == null)
    return true

if (line._csSchemaId == 'skin' || line._csSchemaId == 'scrotum') {
    if (line.csSiteSpecificFactor16 == '000' && line.regionalNodesPositive != '00' && line.regionalNodesPositive != '98' && line.regionalNodesPositive != '99')
        return false
    if (line.csLymphNodes == '000')
        return line.csSiteSpecificFactor16 == '000' || line.csSiteSpecificFactor16 == '988'
    if (line.csLymphNodes == '999')
        return line.csSiteSpecificFactor16 == '988' || line.csSiteSpecificFactor16 == '999'
}

return true]]></expression>
            <message>CS Lymph Nodes, Regional Nodes Positive, CS SSF 16 Conflict for Skin and Scrotum Schemas.</message>
            <description><![CDATA[This edit verifies that for cases coded using the Skin and Scrotum schemas, CS Site-Specific Factor 16 (Size of Lymph Nodes), Regional Nodes Positive, and CS Lymph Nodes are coded consistently.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor16 is blank
2. CS Lymph Nodes is blank
3. Regional Nodes Positive is blank
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS schema is Skin or Scrotum:

1. If CS Site-Specific Factor16 = 000 (no involved regional lymph nodes), then Regional Nodes Positive must = 00 (all nodes examined negative), 98 (no nodes examined) or 99 (unknown).

2. If CS Lymph Nodes = 000 (no regional lymph nodes involvement), then CS Site-Specific Factor16 must = 000 (no involved regional lymph nodes) or 988 (not applicable).

3. If CS Lymph Nodes = 999 (unknown), then CS Site-Specific Factor16 must = 988 (not applicable) or 999 (unknown if regional lymph nodes involved).]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2010-12-15">Edit created.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-07">Changed error message.</event>
                <event version="SE12-004-03" user="murphyr" date="2011-04-20" ref="66458">Fixed an error were edit was applied to MerkelCell schemas instead of Skin and Scrotum. Also fixed condition &apos;CS schema is invalid&apos; in documentation.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-10-28" ref="67021">Changed edit to allow regional positive nodes 99 when SSF 16 is 000.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF322" name="CS SSF 17, MerkelCell Schemas (CS)" tag="N1633" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_17,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Scope_Reg_LN_Sur,Regional_Nodes_Positive">
            <expression><![CDATA[if (line.csSiteSpecificFactor17 == null || line.csSiteSpecificFactor17 == '988' || line.csLymphNodes == null || line.regionalNodesPositive == null || line.rxSummScopeRegLnSur == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'merkel_cell_penis' || line._csSchemaId == 'merkel_cell_scrotum' ||
    line._csSchemaId == 'merkel_cell_skin'  || line._csSchemaId == 'merkel_cell_vulva') {
    if (line.csSiteSpecificFactor17 == '000') {
        if (line.regionalNodesPositive != '00' && line.regionalNodesPositive != '98')
            return false
        if (line._csSchemaId == 'merkel_cell_penis' && !['000', '420', '999'].contains(line.csLymphNodes))
            return false
        if (line._csSchemaId == 'merkel_cell_scrotum' && !['000', '400', '999'].contains(line.csLymphNodes))
            return false
        if (line._csSchemaId == 'merkel_cell_vulva' && !['000', '520', '999'].contains(line.csLymphNodes))
            return false
        if (line._csSchemaId == 'merkel_cell_skin' && !['000', '400', '480', '999'].contains(line.csLymphNodes))
            return false
    }
    if (line.csSiteSpecificFactor17 == '010' || line.csSiteSpecificFactor17 == '040' || line.csSiteSpecificFactor17 == '070')
        return line.rxSummScopeRegLnSur != '0' && line.rxSummScopeRegLnSur != '9'
    if (line.csTumorSizeExtEval != '2' && line.csTumorSizeExtEval != '8' && line.rxSummScopeRegLnSur == '0')
        return Functions.matches(line.csSiteSpecificFactor17, /(^0[0235689]0|999$)/)
}

return true]]></expression>
            <message>CS Lymph Nodes,RX Summ--Scope Reg LN Sur,CS SSF 17 conflict for MerkelCell Schemas.</message>
            <description><![CDATA[This edit verifies that for cases coded using the MerkelCellPenis, MerkelCellScrotum, MerkelCellSkin, and MerkelCellVulva schemas, CS Site-Specific  Factor 17 (Extracapsular Extension of Regional Lymph Nodes), RX Summ--Scope Reg LN Sur, and CS Lymph Nodes are coded consistently.

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 17 is blank or 988
    2. CS Lymph Nodes is blank
    3. RX Summ--Scope Reg LN Sur is blank
    4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
    5. Regional Nodes Positive is blank


    This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

    If CS schema is MerkelCellPenis, MerkelCellScrotum, MerkelCellSkin, or MerkelCellVulva:

    1.  If CS Site-Specific Factor17 = 000 (no lymph nodes involved) then
        A. Regional Nodes Positive must = 00 (all nodes examined negative) or
        98 (no nodes examined).

        B. If CS schema is MerkelCellPenis:
        CS Lymph Nodes must be one of the following:
        000 (no regional lymph node involvement)
        420 (in-transit metastasis WITHOUT regional lymph node involvement)
        999 (unknown)

        If CS schema is MerkelCellScrotum:
        CS Lymph Nodes must be one of the following:
        000 (no regional lymph node involvement)
        400 (in-transit metastasis WITHOUT regional lymph node involvement)
        999 (unknown)

        If CS schema is MerkelCellVulva:
        CS Lymph Nodes must be one of the following:
        000 (no regional lymph node involvement)
        520 (in-transit metastasis WITHOUT regional lymph node involvement)
        999 (unknown)

        If CS schema is MerkelCellSkin:
        CS Lymph Nodes must be one of the following:
        000 (no regional lymph node involvement)
        400 (in-transit metastasis WITHOUT regional lymph node involvement)
        480 (stated as N2 [NOS] with no other information on regional lymph nodes)
        999 (unknown)

    2.  If CS Site-Specific Factor17 = 010, 040, or 070, indicating nodes assessed pathologically, then RX Summ--Scope Reg LN Sur must not = 0 (none) or 9 (unknown or not applicable).

    3.  If CS Tumor Size/Ext Eval does not = 2 and does not = 8 (codes indicating autopsy)
        If RX Summ-Scope Reg LN Sur = 0 (none), then CS Site-Specific Factor17 must = 000, 020, 030, 050, 060, 080, 090, or 999, indicating nodes may not have been assessed pathologically.]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2010-12-15">Edit created.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-07">Changed error message.</event>
                <event version="SE12-005-04" user="murphyr" date="2011-10-05" ref="66529">Now skips if SSF17 is 988.  Broke down SSF17 equals 000 branch by schema.  Deleted &apos;If CS Lymph Nodes = 999, then SSF17 must = 988 or 999&apos;.</event>
                <event version="SE12-008-01" user="murphyr" date="2012-08-08" ref="66711">Rearranged logic for condition #3</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-21" ref="66794">Added &apos;If CS Tumor Size/Ext Eval != 2 and != 8&apos; before 3rd condition.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF323" name="CS SSF 18, MerkelCell Schemas (CS)" tag="N1370" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_18,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Scope_Reg_LN_Sur,Regional_Nodes_Positive">
            <expression><![CDATA[if (line.csSiteSpecificFactor18 == null || line.csSiteSpecificFactor18 == '988' || line.csLymphNodes == null || line.rxSummScopeRegLnSur == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'merkel_cell_penis' || line._csSchemaId == 'merkel_cell_scrotum' ||
    line._csSchemaId == 'merkel_cell_skin'  || line._csSchemaId == 'merkel_cell_vulva') {
    if (line.csTumorSizeExtEval != '2' && line.csTumorSizeExtEval != '8' && line.rxSummScopeRegLnSur == '0') {
        if (line.csSiteSpecificFactor18 != '000' && line.csSiteSpecificFactor18 != '988' && line.csSiteSpecificFactor18 != '999')
            return false
    }
    if (line.csSiteSpecificFactor18 == '000' || line.csSiteSpecificFactor18 == '010') {
        if (line.regionalNodesPositive != '00' && line.regionalNodesPositive != '98')
            return false
        if (line._csSchemaId == 'merkel_cell_penis' && !['000', '420', '999'].contains(line.csLymphNodes))
            return false
        if (line._csSchemaId == 'merkel_cell_scrotum' && !['000', '400', '999'].contains(line.csLymphNodes))
            return false
        if (line._csSchemaId == 'merkel_cell_vulva' && !['000', '520', '999'].contains(line.csLymphNodes))
            return false
        if (line._csSchemaId == 'merkel_cell_skin' && !['000', '400', '480', '999'].contains(line.csLymphNodes))
            return false
    }
    if (line.csSiteSpecificFactor18 == '020' || line.csSiteSpecificFactor18 == '090' ||
        line.csSiteSpecificFactor18 == '100' || line.csSiteSpecificFactor18 == '200' ||
        line.csSiteSpecificFactor18 == '300')
        return line.csLymphNodes != '000' && line.csLymphNodes != '999'
}

return true]]></expression>
            <message>CS Lymph Nodes,RX Summ--Scope Reg LN Sur,CS SSF 18 conflict for MerkelCell Schemas.</message>
            <description><![CDATA[This edit verifies that for cases coded using the MerkelCellPenis, MerkelCellScrotum, MerkelCellSkin, and MerkelCellVulva schemas, CS Site-Specific Factor 18 [Isolated Tumor Cells (ITCs) in Regional Lymph Node(s)],  RX Summ--Scope Reg LN Sur, and CS Lymph Nodes are coded consistently.

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 18 is blank or 988
    2. CS Lymph Nodes is blank
    3. RX Summ--Scope Reg LN Sur is blank
    4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

    This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

    If CS schema is MerkelCellPenis, MerkelCellScrotum, MerkelCellSkin, or MerkelCellVulva:

    1. If CS Tumor Size/Ext Eval does not = 2 and does not = 8 (codes indicating autopsy):
        If RX Summ--Scope Reg LN Sur = 0 (none), then CS Site-Specific Factor18 must = 000 (nodes not examined pathologically), 988 (not applicable), or 999 (unknown).

    2. If CS Site-Specific Factor18 = 000 or 010 (nodes negative on routine exam and IHC or unknown if IHC)
        then
        A. Regional Nodes Positive must = 00 (all nodes examined negative) or 98 (no nodes examined).

        B. If CS schema is MerkelCellPenis:
        CS Lymph Nodes must be one of the following:
        000 (no regional lymph node involvement)
        420 (in-transit metastasis WITHOUT regional lymph node involvement)
        999 (unknown)

        If CS schema is MerkelCellScrotum:
        CS Lymph Nodes must be one of the following:
        000 (no regional lymph node involvement)
        400 (in-transit metastasis WITHOUT regional lymph node involvement)
        999 (unknown)

        If CS schema is MerkelCellVulva:
        CS Lymph Nodes must be one of the following:
        000 (no regional lymph node involvement)
        520 (in-transit metastasis WITHOUT regional lymph node involvement)
        999 (unknown)

        If CS schema is MerkelCellSkin:
        CS Lymph Nodes must be one of the following:
        000 (no regional lymph node involvement)
        400 (in-transit metastasis WITHOUT regional lymph node involvement)
        480 (stated as N2 [NOS] with no other information on regional lymph nodes
        999 (unknown)

    3. If CS Site-Specific Factor18 = 020, 090, 100, 200, or 300, indicating positive nodes including ITC, then CS Lymph Nodes must not = 000 (no regional nodes examined) or 999 (unknown).]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2010-12-15">Edit created.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-01-24">Added 999 to statements 1 and 2.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-07">Changed error message.</event>
                <event version="SE12-005-04" user="murphyr" date="2011-10-05" ref="66530">Now skips if SSF18 is 988.  Broke down SSF18 equals 000 or 010 branch by schema.  Deleted &apos;If CS Lymph Nodes = 999, then SSF18 must = 988 or 999&apos;.</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-26" ref="66795">Added &apos;If CS Tumor Size/Ext Eval = 2 or 8 (codes indicating autopsy), the following logic is skipped: If RX Summ-Scope Reg LN Sur = 0, then CS Site-Specific Factor18 must = 000 or 999.&apos;</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-12" ref="68498">Changed edit logic to check conditions #2 and #3 when condition #1 is true.</event>
            </history>
        </rule>
        <rule id="IF324" name="Obsolete Codes - CS Site-Specific Factor 7 (CS)" tag="N1408" java-path="lines.line" category="inter-field" depends="CS_Site-Specific_Factor_7,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csSiteSpecificFactor7 == null || line.dateOfDiagnosisYear == null || line.csVersionInputOriginal == null)
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csSiteSpecificFactor7', line.csSiteSpecificFactor7)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS Site-Specific Factor 7</message>
            <description><![CDATA[This edit checks for all obsolete CS Site-Specific Factor 7 codes. Obsolete codes should be re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 7 is blank
    2. Date of Diagnosis is blank
    3. CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Site-Specific Factor 7 is table number 16), and CS Site-Specific Factor 7 code, a table lookup is performed. If the code for a particular schema is determined to be obsolete based on the table lookup, the type of obsolete code must be evaluated. There are several types of obsolete codes:

    1. OBSOLETE DATA CONVERTED AND RETAINED V0200
    2. OBSOLETE DATA CONVERTED V0102
    3. OBSOLETE DATA CONVERTED V0104
    4. OBSOLETE DATA CONVERTED V0200
    5. OBSOLETE DATA RETAINED V0100
    6. OBSOLETE DATA RETAINED V0102
    7. OBSOLETE DATA RETAINED V0200
    8. OBSOLETE DATA REVIEWED AND CHANGED V0102
    9. OBSOLETE DATA REVIEWED AND CHANGED V0103
    10. OBSOLETE DATA REVIEWED AND CHANGED V0200
    11. OBSOLETE DATA CONVERTED V0203
    12. OBSOLETE DATA REVIEWED AND CHANGED V0203
    13. OBSOLETE DATA REVIEWED V0203
    14. OBSOLETE DATA RETAINED AND REVIEWED V0203
    15. OBSOLETE DATA RETAINED V0203
    16. OBSOLETE DATA RETAINED V0104
    17. OBSOLETE DATA RETAINED V0202
    18. OBSOLETE DATA RETAINED AND REVIEWED V0200
    19. OBSOLETE DATA CONVERTED V0204
    20. OBSOLETE DATA REVIEWED AND CHANGED V0204
    21. OBSOLETE DATA RETAINED AND REVIEWED V0204
    22. OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 7]

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
    an error is generated.
    [Example: none for CS Site-Specific Factor 7]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
    an error is generated.
    [Example: none for CS Site-Specific Factor 7]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
    an error is generated.
    [Example: Schema = GISTEsophagus, CS Site-Specific Factor 7 = 888]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 7]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 7]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 7]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
    an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion to CSV02.)
    [Example: none for CS Site-Specific Factor 7]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
    an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion to CSV02.)
    [Example: none for CS Site-Specific Factor 7]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to CSV02.)
    [Example: none for CS Site-Specific Factor 7]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: Schema = Cervix, CS Site-Specific Factor 7 = 000]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: Schema = Brain, CS Site-Specific Factor 7 = 022]

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor 7]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor 7]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor 7]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Edit created.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66618">Updated for CSv0204 obsolete codes.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF325" name="Obsolete Codes - CS Site-Specific Factor 8 (CS)" tag="N1409" java-path="lines.line" category="inter-field" depends="CS_Site-Specific_Factor_8,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csSiteSpecificFactor8 == null || line.dateOfDiagnosisYear == null || line.csVersionInputOriginal == null)
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csSiteSpecificFactor8', line.csSiteSpecificFactor8)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS Site-Specific Factor 8</message>
            <description><![CDATA[This edit checks for all obsolete CS Site-Specific Factor 8 codes. Obsolete codes should be re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 8 is blank
    2. Date of Diagnosis is blank
    3. CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Site-Specific Factor 8 is table number 17), and CS Site-Specific Factor 8 code, a table lookup is performed. If the code for a particular schema is determined to be obsolete based on the table lookup, the type of obsolete code must be evaluated. There are several types of obsolete codes:

    1. OBSOLETE DATA CONVERTED AND RETAINED V0200
    2. OBSOLETE DATA CONVERTED V0102
    3. OBSOLETE DATA CONVERTED V0104
    4. OBSOLETE DATA CONVERTED V0200
    5. OBSOLETE DATA RETAINED V0100
    6. OBSOLETE DATA RETAINED V0102
    7. OBSOLETE DATA RETAINED V0200
    8. OBSOLETE DATA REVIEWED AND CHANGED V0102
    9. OBSOLETE DATA REVIEWED AND CHANGED V0103
    10. OBSOLETE DATA REVIEWED AND CHANGED V0200
    11. OBSOLETE DATA CONVERTED V0203
    12. OBSOLETE DATA REVIEWED AND CHANGED V0203
    13. OBSOLETE DATA REVIEWED V0203
    14. OBSOLETE DATA RETAINED AND REVIEWED V0203
    15. OBSOLETE DATA RETAINED V0203
    16. OBSOLETE DATA RETAINED V0104
    17. OBSOLETE DATA RETAINED V0202
    18. OBSOLETE DATA RETAINED AND REVIEWED V0200
    19. OBSOLETE DATA CONVERTED V0204
    20. OBSOLETE DATA REVIEWED AND CHANGED V0204
    21. OBSOLETE DATA RETAINED AND REVIEWED V0204
    22. OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 8]

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
    an error is generated.
    [Example: none for CS Site-Specific Factor 8]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
    an error is generated.
    [Example: none for CS Site-Specific Factor 8]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
    an error is generated.
    [Example: none for CS Site-Specific Factor 8]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 8]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 8]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 8]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
    an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion to CSV02.)
    [Example: none for CS Site-Specific Factor 8]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
    an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion to CSV02.)
    [Example: none for CS Site-Specific Factor 8]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to CSV02.)
    [Example: none for CS Site-Specific Factor 8]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: Schema = Breast, CS Site-Specific Factor 8 = 001]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: none for CS Site-Specific Factor 8]

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor 8]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor 8]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor 8]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Edit created.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66619">Updated for CSv0204 obsolete codes.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF326" name="Obsolete Codes - CS Site-Specific Factor 9 (CS)" tag="N1410" java-path="lines.line" category="inter-field" depends="CS_Site-Specific_Factor_9,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csSiteSpecificFactor9 == null || line.dateOfDiagnosisYear == null || line.csVersionInputOriginal == null)
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csSiteSpecificFactor9', line.csSiteSpecificFactor9)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS Site-Specific Factor 9</message>
            <description><![CDATA[This edit checks for all obsolete CS Site-Specific Factor 9 codes. Obsolete codes should be re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 9 is blank
    2. Date of Diagnosis is blank
    3. CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Site-Specific Factor 9 is table number 18), and CS Site-Specific Factor 9 code, a table lookup is performed. If the code for a particular schema is determined to be obsolete based on the table lookup, the type of obsolete code must be evaluated. There are several types of obsolete codes:

    1. OBSOLETE DATA CONVERTED AND RETAINED V0200
    2. OBSOLETE DATA CONVERTED V0102
    3. OBSOLETE DATA CONVERTED V0104
    4. OBSOLETE DATA CONVERTED V0200
    5. OBSOLETE DATA RETAINED V0100
    6. OBSOLETE DATA RETAINED V0102
    7. OBSOLETE DATA RETAINED V0200
    8. OBSOLETE DATA REVIEWED AND CHANGED V0102
    9. OBSOLETE DATA REVIEWED AND CHANGED V0103
    10. OBSOLETE DATA REVIEWED AND CHANGED V0200
    11. OBSOLETE DATA CONVERTED V0203
    12. OBSOLETE DATA REVIEWED AND CHANGED V0203
    13. OBSOLETE DATA REVIEWED V0203
    14. OBSOLETE DATA RETAINED AND REVIEWED V0203
    15. OBSOLETE DATA RETAINED V0203
    16. OBSOLETE DATA RETAINED V0104
    17. OBSOLETE DATA RETAINED V0202
    18. OBSOLETE DATA RETAINED AND REVIEWED V0200
    19. OBSOLETE DATA CONVERTED V0204
    20. OBSOLETE DATA REVIEWED AND CHANGED V0204
    21. OBSOLETE DATA RETAINED AND REVIEWED V0204
    22. OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 9]

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
    an error is generated.
    [Example: none for CS Site-Specific Factor 9]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
    an error is generated.
    [Example: none for CS Site-Specific Factor 9]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
    an error is generated.
    [Example: none for CS Site-Specific Factor 9]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 9]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 9]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor 9]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
    an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion to CSV02.)
    [Example: none for CS Site-Specific Factor 9]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
    an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion to CSV02.)
    [Example: none for CS Site-Specific Factor 9]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to CSV02.)
    [Example: none for CS Site-Specific Factor 9]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: Schema = Cervix, CS Site-Specific Factor 9 = 000]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: none for CS Site-Specific Factor 9]

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor 9]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor 9]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor 9]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Edit created.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66620">Updated for CSv0204 obsolete codes.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF327" name="Obsolete Codes - CS Site-Specific Factor10 (CS)" tag="N1411" java-path="lines.line" category="inter-field" depends="CS_Site-Specific_Factor_10,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csSiteSpecificFactor10 == null || line.dateOfDiagnosisYear == null || line.csVersionInputOriginal == null)
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csSiteSpecificFactor10', line.csSiteSpecificFactor10)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS Site-Specific Factor 10</message>
            <description><![CDATA[This edit checks for all obsolete CS Site-Specific Factor10 codes. Obsolete codes should be re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor10 is blank
    2. Date of Diagnosis is blank
    3. CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Site-Specific Factor10 is table number 19), and CS Site-Specific Factor10 code, a table lookup is performed. If the code for a particular schema is determined to be obsolete based on the table lookup, the type of obsolete code must be evaluated. There are several types of obsolete codes:

    1. OBSOLETE DATA CONVERTED AND RETAINED V0200
    2. OBSOLETE DATA CONVERTED V0102
    3. OBSOLETE DATA CONVERTED V0104
    4. OBSOLETE DATA CONVERTED V0200
    5. OBSOLETE DATA RETAINED V0100
    6. OBSOLETE DATA RETAINED V0102
    7. OBSOLETE DATA RETAINED V0200
    8. OBSOLETE DATA REVIEWED AND CHANGED V0102
    9. OBSOLETE DATA REVIEWED AND CHANGED V0103
    10. OBSOLETE DATA REVIEWED AND CHANGED V0200
    11. OBSOLETE DATA CONVERTED V0203
    12. OBSOLETE DATA REVIEWED AND CHANGED V0203
    13. OBSOLETE DATA REVIEWED V0203
    14. OBSOLETE DATA RETAINED AND REVIEWED V0203
    15. OBSOLETE DATA RETAINED V0203
    16. OBSOLETE DATA RETAINED V0104
    17. OBSOLETE DATA RETAINED V0202
    18. OBSOLETE DATA RETAINED AND REVIEWED V0200
    19. OBSOLETE DATA CONVERTED V0204
    20. OBSOLETE DATA REVIEWED AND CHANGED V0204
    21. OBSOLETE DATA RETAINED AND REVIEWED V0204
    22. OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor10]

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
    an error is generated.
    [Example: none for CS Site-Specific Factor10]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
    an error is generated.
    [Example: none for CS Site-Specific Factor10]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
    an error is generated.
    [Example: none for CS Site-Specific Factor10]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor10]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor10]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor10]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
    an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion to CSV02.)
    [Example: none for CS Site-Specific Factor10]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
    an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion to CSV02.)
    [Example: none for CS Site-Specific Factor10]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to CSV02.)
    [Example: none for CS Site-Specific Factor10]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: Schema = Breast, CS Site-Specific Factor10 = 981-986]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: none for CS Site-Specific Factor10]

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor10]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor10]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor10]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Edit created.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66621">Updated for CSv0204 obsolete codes.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF328" name="Obsolete Codes - CS Site-Specific Factor11 (CS)" tag="N1412" java-path="lines.line" category="inter-field" depends="CS_Site-Specific_Factor_11,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csSiteSpecificFactor11 == null || line.dateOfDiagnosisYear == null || line.csVersionInputOriginal == null)
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csSiteSpecificFactor11', line.csSiteSpecificFactor11)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS Site-Specific Factor 11</message>
            <description><![CDATA[This edit checks for all obsolete CS Site-Specific Factor11 codes. Obsolete codes should be re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor11 is blank
    2. Date of Diagnosis is blank
    3. CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Site-Specific Factor11 is table number 20), and CS Site-Specific Factor11 code, a table lookup is performed. If the code for a particular schema is determined to be obsolete based on the table lookup, the type of obsolete code must be evaluated. There are several types of obsolete codes:

    1. OBSOLETE DATA CONVERTED AND RETAINED V0200
    2. OBSOLETE DATA CONVERTED V0102
    3. OBSOLETE DATA CONVERTED V0104
    4. OBSOLETE DATA CONVERTED V0200
    5. OBSOLETE DATA RETAINED V0100
    6. OBSOLETE DATA RETAINED V0102
    7. OBSOLETE DATA RETAINED V0200
    8. OBSOLETE DATA REVIEWED AND CHANGED V0102
    9. OBSOLETE DATA REVIEWED AND CHANGED V0103
    10. OBSOLETE DATA REVIEWED AND CHANGED V0200
    11. OBSOLETE DATA CONVERTED V0203
    12. OBSOLETE DATA REVIEWED AND CHANGED V0203
    13. OBSOLETE DATA REVIEWED V0203
    14. OBSOLETE DATA RETAINED AND REVIEWED V0203
    15. OBSOLETE DATA RETAINED V0203
    16. OBSOLETE DATA RETAINED V0104
    17. OBSOLETE DATA RETAINED V0202
    18. OBSOLETE DATA RETAINED AND REVIEWED V0200
    19. OBSOLETE DATA CONVERTED V0204
    20. OBSOLETE DATA REVIEWED AND CHANGED V0204
    21. OBSOLETE DATA RETAINED AND REVIEWED V0204
    22. OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor11]

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
    an error is generated.
    [Example: none for CS Site-Specific Factor11]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
    an error is generated.
    [Example: none for CS Site-Specific Factor11]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
    an error is generated.
    [Example: Schema = NETColon, CS Site-Specific Factor11 = 888]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor11]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor11]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor11]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
    an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion to CSV02.)
    [Example: none for CS Site-Specific Factor11]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
    an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion to CSV02.)
    [Example: none for CS Site-Specific Factor11]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to CSV02.)
    [Example: none for CS Site-Specific Factor11]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: Schema = GISTAppendix, CS Site-Specific Factor11 = 995]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: Schema = Testis, CS Site-Specific Factor11 = 000]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: none for CS Site-Specific Factor11]
    Note: Although for Testis schema, CS Site-Specific Factor11 of 000, 010, and 999 are listed in CSv0203 as OBSOLETE DATA REVIEWED AND CHANGED V0203, it is a mistake and will be changed to OBSOLETE DATA RETAINED in the next release of CS. These three codes should not generate errors.

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor11]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor11]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor11]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Edit created.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-14">Updated documentation.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-23">Now skipping Testis cases with condition 12.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66622">Updated for CSv0204 obsolete codes.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF329" name="Obsolete Codes - CS Site-Specific Factor12 (CS)" tag="N1413" java-path="lines.line" category="inter-field" depends="CS_Site-Specific_Factor_12,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csSiteSpecificFactor12 == null || line.dateOfDiagnosisYear == null || line.csVersionInputOriginal == null)
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csSiteSpecificFactor12', line.csSiteSpecificFactor12)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS Site-Specific Factor 12</message>
            <description><![CDATA[This edit checks for all obsolete CS Site-Specific Factor12 codes. Obsolete codes should be re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor12 is blank
    2. Date of Diagnosis is blank
    3. CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Site-Specific Factor12 is table number 21), and CS Site-Specific Factor12 code, a table lookup is performed. If the code for a particular schema is determined to be obsolete based on the table lookup, the type of obsolete code must be evaluated. There are several types of obsolete codes:

    1. OBSOLETE DATA CONVERTED AND RETAINED V0200
    2. OBSOLETE DATA CONVERTED V0102
    3. OBSOLETE DATA CONVERTED V0104
    4. OBSOLETE DATA CONVERTED V0200
    5. OBSOLETE DATA RETAINED V0100
    6. OBSOLETE DATA RETAINED V0102
    7. OBSOLETE DATA RETAINED V0200
    8. OBSOLETE DATA REVIEWED AND CHANGED V0102
    9. OBSOLETE DATA REVIEWED AND CHANGED V0103
    10. OBSOLETE DATA REVIEWED AND CHANGED V0200
    11. OBSOLETE DATA CONVERTED V0203
    12. OBSOLETE DATA REVIEWED AND CHANGED V0203
    13. OBSOLETE DATA REVIEWED V0203
    14. OBSOLETE DATA RETAINED AND REVIEWED V0203
    15. OBSOLETE DATA RETAINED V0203
    16. OBSOLETE DATA RETAINED V0104
    17. OBSOLETE DATA RETAINED V0202
    18. OBSOLETE DATA RETAINED AND REVIEWED V0200
    19. OBSOLETE DATA CONVERTED V0204
    20. OBSOLETE DATA REVIEWED AND CHANGED V0204
    21. OBSOLETE DATA RETAINED AND REVIEWED V0204
    22. OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor12]

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
    an error is generated.
    [Example: none for CS Site-Specific Factor12]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
    an error is generated.
    [Example: none for CS Site-Specific Factor12]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
    an error is generated.
    [Example: none for CS Site-Specific Factor12]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor12]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor12]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor12]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
    an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion to CSV02.)
    [Example: none for CS Site-Specific Factor12]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
    an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion to CSV02.)
    [Example: none for CS Site-Specific Factor12]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to CSV02.)
    [Example: none for CS Site-Specific Factor12]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: Schema = Breast, CS Site-Specific Factor12 = 981-986]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: none for CS Site-Specific Factor12]

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor12]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor12]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor12]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Edit created.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66623">Updated for CSv0204 obsolete codes.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF330" name="Obsolete Codes - CS Site-Specific Factor13 (CS)" tag="N1414" java-path="lines.line" category="inter-field" depends="CS_Site-Specific_Factor_13,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csSiteSpecificFactor13 == null || line.dateOfDiagnosisYear == null || line.csVersionInputOriginal == null)
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csSiteSpecificFactor13', line.csSiteSpecificFactor13)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS Site-Specific Factor 13</message>
            <description><![CDATA[This edit checks for all obsolete CS Site-Specific Factor13 codes. Obsolete codes should be re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor13 is blank
    2. Date of Diagnosis is blank
    3. CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Site-Specific Factor13 is table number 22), and CS Site-Specific Factor13 code, a table lookup is performed. If the code for a particular schema is determined to be obsolete based on the table lookup, the type of obsolete code must be evaluated. There are several types of obsolete codes:

    1. OBSOLETE DATA CONVERTED AND RETAINED V0200
    2. OBSOLETE DATA CONVERTED V0102
    3. OBSOLETE DATA CONVERTED V0104
    4. OBSOLETE DATA CONVERTED V0200
    5. OBSOLETE DATA RETAINED V0100
    6. OBSOLETE DATA RETAINED V0102
    7. OBSOLETE DATA RETAINED V0200
    8. OBSOLETE DATA REVIEWED AND CHANGED V0102
    9. OBSOLETE DATA REVIEWED AND CHANGED V0103
    10. OBSOLETE DATA REVIEWED AND CHANGED V0200
    11. OBSOLETE DATA CONVERTED V0203
    12. OBSOLETE DATA REVIEWED AND CHANGED V0203
    13. OBSOLETE DATA REVIEWED V0203
    14. OBSOLETE DATA RETAINED AND REVIEWED V0203
    15. OBSOLETE DATA RETAINED V0203
    16. OBSOLETE DATA RETAINED V0104
    17. OBSOLETE DATA RETAINED V0202
    18. OBSOLETE DATA RETAINED AND REVIEWED V0200
    19. OBSOLETE DATA CONVERTED V0204
    20. OBSOLETE DATA REVIEWED AND CHANGED V0204
    21. OBSOLETE DATA RETAINED AND REVIEWED V0204
    22. OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor13]

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
    an error is generated.
    [Example: none for CS Site-Specific Factor13]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
    an error is generated.
    [Example: none for CS Site-Specific Factor13]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
    an error is generated.
    [Example: none for CS Site-Specific Factor13]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor13]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor13]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor13]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
    an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion to CSV02.)
    [Example: none for CS Site-Specific Factor13]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
    an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion to CSV02.)
    [Example: none for CS Site-Specific Factor13]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to CSV02.)
    [Example: none for CS Site-Specific Factor13]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: Schema = BileDuctsDistal, CS Site-Specific Factor13 = 000]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: none for CS Site-Specific Factor13]

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor13]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor13]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor13]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Edit created.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66624">Updated for CSv0204 obsolete codes.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF332" name="Obsolete Codes - CS Site-Specific Factor15 (CS)" tag="N1415" java-path="lines.line" category="inter-field" depends="CS_Site-Specific_Factor_15,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csSiteSpecificFactor15 == null || line.dateOfDiagnosisYear == null || line.csVersionInputOriginal == null)
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csSiteSpecificFactor15', line.csSiteSpecificFactor15)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS Site-Specific Factor 15</message>
            <description><![CDATA[This edit checks for all obsolete CS Site-Specific Factor15 codes. Obsolete codes should be re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor15 is blank
    2. Date of Diagnosis is blank
    3. CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Site-Specific Factor15 is table number 24), and CS Site-Specific Factor15 code, a table lookup is performed. If the code for a particular schema is determined to be obsolete based on the table lookup, the type of obsolete code must be evaluated. There are several types of obsolete codes:

    1. OBSOLETE DATA CONVERTED AND RETAINED V0200
    2. OBSOLETE DATA CONVERTED V0102
    3. OBSOLETE DATA CONVERTED V0104
    4. OBSOLETE DATA CONVERTED V0200
    5. OBSOLETE DATA RETAINED V0100
    6. OBSOLETE DATA RETAINED V0102
    7. OBSOLETE DATA RETAINED V0200
    8. OBSOLETE DATA REVIEWED AND CHANGED V0102
    9. OBSOLETE DATA REVIEWED AND CHANGED V0103
    10. OBSOLETE DATA REVIEWED AND CHANGED V0200
    11. OBSOLETE DATA CONVERTED V0203
    12. OBSOLETE DATA REVIEWED AND CHANGED V0203
    13. OBSOLETE DATA REVIEWED V0203
    14. OBSOLETE DATA RETAINED AND REVIEWED V0203
    15. OBSOLETE DATA RETAINED V0203
    16. OBSOLETE DATA RETAINED V0104
    17. OBSOLETE DATA RETAINED V0202
    18. OBSOLETE DATA RETAINED AND REVIEWED V0200
    19. OBSOLETE DATA CONVERTED V0204
    20. OBSOLETE DATA REVIEWED AND CHANGED V0204
    21. OBSOLETE DATA RETAINED AND REVIEWED V0204
    22. OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor15]

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
    an error is generated.
    [Example: none for CS Site-Specific Factor15]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
    an error is generated.
    [Example: none for CS Site-Specific Factor15]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
    an error is generated.
    [Example: none for CS Site-Specific Factor15]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor15]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor15]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor15]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
    an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion to CSV02.)
    [Example: none for CS Site-Specific Factor15]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
    an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion to CSV02.)
    [Example: none for CS Site-Specific Factor15]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to CSV02.)
    [Example: none for CS Site-Specific Factor15]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: Schema = Vulva, CS Site-Specific Factor15 = 000]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: none for CS Site-Specific Factor15]

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor15]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor15]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor15]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Edit created.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66625">Updated for CSv0204 obsolete codes.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF336" name="Obsolete Codes - CS Site-Specific Factor19 (CS)" tag="N1416" java-path="lines.line" category="inter-field" depends="CS_Site-Specific_Factor_19,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csSiteSpecificFactor19 == null || line.dateOfDiagnosisYear == null || line.csVersionInputOriginal == null)
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csSiteSpecificFactor19', line.csSiteSpecificFactor19)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS Site-Specific Factor 19</message>
            <description><![CDATA[This edit checks for all obsolete CS Site-Specific Factor19 codes. Obsolete codes should be re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor19 is blank
    2. Date of Diagnosis is blank
    3. CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Site-Specific Factor19 is table number 28), and CS Site-Specific Factor19 code, a table lookup is performed. If the code for a particular schema is determined to be obsolete based on the table lookup, the type of obsolete code must be evaluated. There are several types of obsolete codes:

    1. OBSOLETE DATA CONVERTED AND RETAINED V0200
    2. OBSOLETE DATA CONVERTED V0102
    3. OBSOLETE DATA CONVERTED V0104
    4. OBSOLETE DATA CONVERTED V0200
    5. OBSOLETE DATA RETAINED V0100
    6. OBSOLETE DATA RETAINED V0102
    7. OBSOLETE DATA RETAINED V0200
    8. OBSOLETE DATA REVIEWED AND CHANGED V0102
    9. OBSOLETE DATA REVIEWED AND CHANGED V0103
    10. OBSOLETE DATA REVIEWED AND CHANGED V0200
    11. OBSOLETE DATA CONVERTED V0203
    12. OBSOLETE DATA REVIEWED AND CHANGED V0203
    13. OBSOLETE DATA REVIEWED V0203
    14. OBSOLETE DATA RETAINED AND REVIEWED V0203
    15. OBSOLETE DATA RETAINED V0203
    16. OBSOLETE DATA RETAINED V0104
    17. OBSOLETE DATA RETAINED V0202
    18. OBSOLETE DATA RETAINED AND REVIEWED V0200
    19. OBSOLETE DATA CONVERTED V0204
    20. OBSOLETE DATA REVIEWED AND CHANGED V0204
    21. OBSOLETE DATA RETAINED AND REVIEWED V0204
    22. OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor19]

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
    an error is generated.
    [Example: none for CS Site-Specific Factor19]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
    an error is generated.
    [Example: none for CS Site-Specific Factor19]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
    an error is generated.
    [Example: none for CS Site-Specific Factor19]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor19]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor19]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor19]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
    an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion to CSV02.)
    [Example: none for CS Site-Specific Factor19]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
    an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion to CSV02.)
    [Example: none for CS Site-Specific Factor19]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to CSV02.)
    [Example: none for CS Site-Specific Factor19]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: Schema = Breast, CS Site-Specific Factor19 = 998]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: none for CS Site-Specific Factor19]

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor19]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor19]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor19]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Edit created.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66626">Updated for CSv0204 obsolete codes.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF338" name="Obsolete Codes - CS Site-Specific Factor21 (CS)" tag="N1417" java-path="lines.line" category="inter-field" depends="CS_Site-Specific_Factor_21,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csSiteSpecificFactor21 == null || line.dateOfDiagnosisYear == null || line.csVersionInputOriginal == null)
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csSiteSpecificFactor21', line.csSiteSpecificFactor21)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS Site-Specific Factor 21</message>
            <description><![CDATA[This edit checks for all obsolete CS Site-Specific Factor 21 codes. Obsolete codes should be re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor21 is blank
    2. Date of Diagnosis is blank
    3. CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Site-Specific Factor21 is table number 30), and CS Site-Specific Factor21 code, a table lookup is performed. If the code for a particular schema is determined to be obsolete based on the table lookup, the type of obsolete code must be evaluated. There are several types of obsolete codes:

    1. OBSOLETE DATA CONVERTED AND RETAINED V0200
    2. OBSOLETE DATA CONVERTED V0102
    3. OBSOLETE DATA CONVERTED V0104
    4. OBSOLETE DATA CONVERTED V0200
    5. OBSOLETE DATA RETAINED V0100
    6. OBSOLETE DATA RETAINED V0102
    7. OBSOLETE DATA RETAINED V0200
    8. OBSOLETE DATA REVIEWED AND CHANGED V0102
    9. OBSOLETE DATA REVIEWED AND CHANGED V0103
    10. OBSOLETE DATA REVIEWED AND CHANGED V0200
    11. OBSOLETE DATA CONVERTED V0203
    12. OBSOLETE DATA REVIEWED AND CHANGED V0203
    13. OBSOLETE DATA REVIEWED V0203
    14. OBSOLETE DATA RETAINED AND REVIEWED V0203
    15. OBSOLETE DATA RETAINED V0203
    16. OBSOLETE DATA RETAINED V0104
    17. OBSOLETE DATA RETAINED V0202
    18. OBSOLETE DATA RETAINED AND REVIEWED V0200
    19. OBSOLETE DATA CONVERTED V0204
    20. OBSOLETE DATA REVIEWED AND CHANGED V0204
    21. OBSOLETE DATA RETAINED AND REVIEWED V0204
    22. OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor21]

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
    an error is generated.
    [Example: none for CS Site-Specific Factor21]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
    an error is generated.
    [Example: none for CS Site-Specific Factor21]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
    an error is generated.
    [Example: none for CS Site-Specific Factor21]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor21]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor21]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor21]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
    an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion to CSV02.)
    [Example: none for CS Site-Specific Factor21]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
    an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion to CSV02.)
    [Example: none for CS Site-Specific Factor21]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to CSV02.)
    [Example: none for CS Site-Specific Factor21]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: Schema = Breast, CS Site-Specific Factor21 = 998]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: none for CS Site-Specific Factor21]

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor21]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor21]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor21]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Edit created.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66627">Updated for CSv0204 obsolete codes.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF339" name="Obsolete Codes - CS Site-Specific Factor22 (CS)" tag="N1418" java-path="lines.line" category="inter-field" depends="CS_Site-Specific_Factor_22,CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (line.csSiteSpecificFactor22 == null || line.dateOfDiagnosisYear == null || line.csVersionInputOriginal == null)
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csSiteSpecificFactor22', line.csSiteSpecificFactor22)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS Site-Specific Factor 22</message>
            <description><![CDATA[This edit checks for all obsolete CS Site-Specific Factor 22 codes. Obsolete codes should be re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor22 is blank
    2. Date of Diagnosis is blank
    3. CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Site-Specific Factor22 is table number 31), and CS Site-Specific Factor22 code, a table lookup is performed. If the code for a particular schema is determined to be obsolete based on the table lookup, the type of obsolete code must be evaluated. There are several types of obsolete codes:

    1. OBSOLETE DATA CONVERTED AND RETAINED V0200
    2. OBSOLETE DATA CONVERTED V0102
    3. OBSOLETE DATA CONVERTED V0104
    4. OBSOLETE DATA CONVERTED V0200
    5. OBSOLETE DATA RETAINED V0100
    6. OBSOLETE DATA RETAINED V0102
    7. OBSOLETE DATA RETAINED V0200
    8. OBSOLETE DATA REVIEWED AND CHANGED V0102
    9. OBSOLETE DATA REVIEWED AND CHANGED V0103
    10. OBSOLETE DATA REVIEWED AND CHANGED V0200
    11. OBSOLETE DATA CONVERTED V0203
    12. OBSOLETE DATA REVIEWED AND CHANGED V0203
    13. OBSOLETE DATA REVIEWED V0203
    14. OBSOLETE DATA RETAINED AND REVIEWED V0203
    15. OBSOLETE DATA RETAINED V0203
    16. OBSOLETE DATA RETAINED V0104
    17. OBSOLETE DATA RETAINED V0202
    18. OBSOLETE DATA RETAINED AND REVIEWED V0200
    19. OBSOLETE DATA CONVERTED V0204
    20. OBSOLETE DATA REVIEWED AND CHANGED V0204
    21. OBSOLETE DATA RETAINED AND REVIEWED V0204
    22. OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor22]

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
    an error is generated.
    [Example: none for CS Site-Specific Factor22]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
    an error is generated.
    [Example: none for CS Site-Specific Factor22]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
    an error is generated.
    [Example: none for CS Site-Specific Factor22]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor22]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor22]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor22]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
    an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion to CSV02.)
    [Example: none for CS Site-Specific Factor22]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
    an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion to CSV02.)
    [Example: none for CS Site-Specific Factor22]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to CSV02.)
    [Example: none for CS Site-Specific Factor22]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: Schema = Breast, CS Site-Specific Factor22 = 997]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: none for CS Site-Specific Factor22]

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor22]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor22]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor22]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Edit created.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66628">Updated for CSv0204 obsolete codes.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF340" name="Obsolete Codes - CS Site-Specific Factor23 (CS)" tag="N1419" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.csSiteSpecificFactor23 == null || line.dateOfDiagnosisYear == null || line.csVersionInputOriginal == null)
     return true

if (line._csSchemaId == null)
    return false

String code = Functions.getCsObsoleteReason(line, 'csSiteSpecificFactor23', line.csSiteSpecificFactor23)

if (code != null) {
     if (code == '1' || code == '5' || code == '6' || code == '7' || code == '16' || code == '18') {
         if (line.dateOfDiagnosisYear >= '2010')
            return false
         if (line.csVersionInputOriginal >= '020100')
            return false
     }
     else if (code == '13' || code == '14' || code == '15') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020300')
            return false
     }
     else if (code == '17') {
         if (line.dateOfDiagnosisYear >= '2011')
            return false
         if (line.csVersionInputOriginal >= '020200')
            return false
     }
     else if (code == '21' || code == '22') {
         if (line.dateOfDiagnosisYear >= '2012')
            return false
         if (line.csVersionInputOriginal >= '020440')
            return false
     }
     else
        return false
}

return true]]></expression>
            <message>Obsolete Codes - Invalid CS Site-Specific Factor 23</message>
            <description><![CDATA[This edit checks for all obsolete CS Site-Specific Factor 23 codes. Obsolete codes should be re-coded per Collaborative Stage guidelines.

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor23 is blank
    2. Date of Diagnosis is blank
    3. CS Version Input Original is blank.

    This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

    Using the returned schema name, CS table number (CS Site-Specific Factor23 is table number 32), and CS Site-Specific Factor23 code, a table lookup is performed. If the code for a particular schema is determined to be obsolete based on the table lookup, the type of obsolete code must be evaluated. There are several types of obsolete codes:

    1. OBSOLETE DATA CONVERTED AND RETAINED V0200
    2. OBSOLETE DATA CONVERTED V0102
    3. OBSOLETE DATA CONVERTED V0104
    4. OBSOLETE DATA CONVERTED V0200
    5. OBSOLETE DATA RETAINED V0100
    6. OBSOLETE DATA RETAINED V0102
    7. OBSOLETE DATA RETAINED V0200
    8. OBSOLETE DATA REVIEWED AND CHANGED V0102
    9. OBSOLETE DATA REVIEWED AND CHANGED V0103
    10. OBSOLETE DATA REVIEWED AND CHANGED V0200
    11. OBSOLETE DATA CONVERTED V0203
    12. OBSOLETE DATA REVIEWED AND CHANGED V0203
    13. OBSOLETE DATA REVIEWED V0203
    14. OBSOLETE DATA RETAINED AND REVIEWED V0203
    15. OBSOLETE DATA RETAINED V0203
    16. OBSOLETE DATA RETAINED V0104
    17. OBSOLETE DATA RETAINED V0202
    18. OBSOLETE DATA RETAINED AND REVIEWED V0200
    19. OBSOLETE DATA CONVERTED V0204
    20. OBSOLETE DATA REVIEWED AND CHANGED V0204
    21. OBSOLETE DATA RETAINED AND REVIEWED V0204
    22. OBSOLETE DATA RETAINED V0204

    1. If the type of obsolete code = OBSOLETE DATA CONVERTED AND RETAINED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor23]

    2. If the type of obsolete code = OBSOLETE DATA CONVERTED V0102:
    an error is generated.
    [Example: none for CS Site-Specific Factor23]

    3. If the type of obsolete code = OBSOLETE DATA CONVERTED V0104:
    an error is generated.
    [Example: none for CS Site-Specific Factor23]

    4. If the type of obsolete code = OBSOLETE DATA CONVERTED V0200:
    an error is generated.
    [Example: none for CS Site-Specific Factor23]

    5. If the type of obsolete code = OBSOLETE DATA RETAINED V0100:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor23]

    6. If the type of obsolete code = OBSOLETE DATA RETAINED V0102:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor23]

    7. If the type of obsolete code = OBSOLETE DATA RETAINED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 (indicating the case was originally coded using CSv2), an error is generated.
    [Example: none for CS Site-Specific Factor23]

    8. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0102:
    an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion to CSV02.)
    [Example: none for CS Site-Specific Factor23]

    9. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0103:
    an error is generated.
    (Obsolete codes from CSV01 are expected to have been recoded prior to conversion to CSV02.)
    [Example: none for CS Site-Specific Factor23]

    10.If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0200:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV01 to CSV02.)
    [Example: none for CS Site-Specific Factor23]

    11. If the type of obsolete code = OBSOLETE DATA CONVERTED V0203:
    an error is generated.
    [Example: Schema = Breast, CS Site-Specific Factor23 = 205]

    12. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0203:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV02xx to CSV0203.)
    [Example: none for CS Site-Specific Factor23]

    13. If the type of obsolete code = OBSOLETE DATA REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor23]

    14. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor23]

    15. If the type of obsolete code = OBSOLETE DATA RETAINED V0203:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020300 or higher (indicating the case was originally coded using CSv0203), an error is generated.
    [Example: none for CS Site-Specific Factor23]

    16. If the type of obsolete code = OBSOLETE DATA RETAINED V0104:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv02), an error is generated.

    17. If the type of obsolete code = OBSOLETE DATA RETAINED V0202:
    A. If year of Diagnosis is 2011 or higher, an error is generated.
    B. If CS version Input Original is 020200 or higher (indicating the case was originally coded using CSv0202), an error is generated.

    18. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0200:
    A. If year of Diagnosis is 2010 or higher, an error is generated.
    B. If CS version Input Original is 020100 or higher (indicating the case was originally coded using CSv2), an error is generated.

    19. If the type of obsolete code = OBSOLETE DATA CONVERTED V0204:
    an error is generated.

    20. If the type of obsolete code = OBSOLETE DATA REVIEWED AND CHANGED V0204:
    an error is generated.
    (These particular obsolete codes require review after conversion from CSV0203xx to CSV0204.)

    21. If the type of obsolete code = OBSOLETE DATA RETAINED AND REVIEWED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.

    22. If the type of obsolete code = OBSOLETE DATA RETAINED V0204:
    A. If year of Diagnosis is 2012 or higher, an error is generated.
    B. If CS version Input Original is 020440 or higher (indicating the case was originally coded using CSv0204), an error is generated.]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2011-01-25">Edit created.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-19" ref="66629">Updated for CSv0204 obsolete codes.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66904">Edit now fails if schema is blank.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF342" name="CS Extension, MyelomaPlasmaCellDisorder (CS)" tag="N1377" java-path="lines.line" category="inter-field" depends="CS_Extension,Histologic_Type_ICD-O-3">
            <expression><![CDATA[if (line.csExtension == null)
     return true

if (line._csSchemaId == 'myeloma_plasma_cell_disorder') {
    if (line.csExtension == '100' || line.csExtension == '400')
        return line.histologicTypeIcdO3 == '9731' || line.histologicTypeIcdO3 == '9734'
    if (line.csExtension == '110' || line.csExtension == '200' || line.csExtension == '500')
        return line.histologicTypeIcdO3 == '9731'
    if (line.csExtension == '300')
        return line.histologicTypeIcdO3 == '9734'
    if (line.csExtension == '810' || line.csExtension == '820')
        return line.histologicTypeIcdO3 == '9732'
}

return true]]></expression>
            <message>CS Extension and MyelomaPlasmaCellDisorder schema conflict</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension is coded properly for the MyelomaPlasmaCellDisorder schema. The schema includes histologies 9731, 9732, and 9734, but some of the extension values apply only to a subset of the three histologies.

    This edit is skipped if any of the following conditions are true:
    1. CS Extension is empty

    This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

    If schema is MyelomaPlasmaCellDisorder:
    1. The CS Extension values of 100 (localized disease) and 400 (Multiple osseous or multiple extraosseous plasmacytoma lesion) are allowed only for Histologic Type ICD-O-3 codes 9731 (Plasmacytoma, NOS) and 9734 (Plasmacytoma, extramedullary).

    2. The CS Extension values of 110 (Single plasmacytoma lesion WITHOUT soft tissue extension or unknown if soft tissue extension), 200 (Single plasmacytoma lesion WITH soft tissue extension), and 500 (Plasmacytoma, NOS) are allowed only for Histologic Type ICD-O-3 code 9731 (Plasmacytoma, NOS).

    3. The CS Extension value of 300 (Single plasmacytoma lesion occurring in tissue other than bone) is allowed only for Histologic Type ICD-O-3 code 9734 (Plasmacytoma, extramedullary).

    4. The CS Extension value of 810 (Plasma cell myeloma/multiple myeloma/myelomatosis) and 820 (Myeloma, NOS) are allowed only for Histologic Type ICD-O-3 code 9732 (Multiple myeloma).]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2011-01-26">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF343" name="CS SSF 2, MyelomaPlasmaCellDisorder (CS)" tag="N1378" java-path="lines.line" category="inter-field" depends="CS_Site-Specific_Factor_2,Histologic_Type_ICD-O-3">
            <expression><![CDATA[if (line.csSiteSpecificFactor2 == null)
     return true

if (line._csSchemaId == 'myeloma_plasma_cell_disorder') {
    if (line.csSiteSpecificFactor2  ==~ /^0[123456789]0|999$/)
        return line.histologicTypeIcdO3 == '9732'
    if (line.csSiteSpecificFactor2 == '987')
        return line.histologicTypeIcdO3 == '9731' || line.histologicTypeIcdO3 == '9734'
}

return true]]></expression>
            <message>CS Site-Specific Factor 2 and MyelomaPlasmaCellDisorder schema conflict</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Site-Specific Factor 2 (Durie Salmon Staging System) is coded properly for the MyelomaPlasmaCellDisorder schema. The schema includes histologies 9731, 9732, and 9734, but some of the CS Site-Specific Factor 2 values apply only to a subset of the three histologies.

This edit is skipped if any of the following conditions are true:
1. Site-Specific Factor 2 is empty

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If schema is MyelomaPlasmaCellDisorder:
1. The following CS Site-Specific Factor 2 codes are allowed only for 9732 (Multiple myeloma):
010 Durie Salmon Stage IA
020 Durie Salmon Stage IB
030 Durie Salmon Stage INOS
040 Durie Salmon Stage IIA
050 Durie Salmon Stage IIB
060 Durie Salmon Stage IINOS
070 Durie Salmon Stage IIIA
080 Durie Salmon Stage IIIB
090 Durie Salmon Stage IIINOS
999 Unknown

2. The following CS Site-Specific Factor 2 code is allowed only for 9731 (Plasmacytoma, NOS) and 9734 (Plasmacytoma, extramedullary):
987 Not applicable]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2011-01-26">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF344" name="CS SSF 3, MyelomaPlasmaCellDisorder (CS)" tag="N1379" java-path="lines.line" category="inter-field" depends="CS_Site-Specific_Factor_3,Histologic_Type_ICD-O-3">
            <expression><![CDATA[if (line.csSiteSpecificFactor3 == null)
     return true

if (line._csSchemaId == 'myeloma_plasma_cell_disorder') {
    if (line.csSiteSpecificFactor3  ==~ /^0[01238]0|100|999$/ && line.histologicTypeIcdO3 != '9732')
        return false

    if (line.csSiteSpecificFactor3 == '987' && line.histologicTypeIcdO3 != '9731' && line.histologicTypeIcdO3 != '9734')
        return false
}

return true]]></expression>
            <message>CS Site-Specific Factor 3 and MyelomaPlasmaCellDisorder schema conflict</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Site-Specific Factor 3 (Multiple Myeloma Terminology) is coded properly for the MyelomaPlasmaCellDisorder schema. The schema includes histologies 9731, 9732, and 9734, but some of the CS Site-Specific Factor 3 values apply only to a subset of the three histologies.

This edit is skipped if any of the following conditions are true:
1. Site-Specific Factor 3 is empty

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If schema is MyelomaPlasmaCellDisorder:
1. The following CS Site-Specific Factor 3 codes are allowed only for 9732 (Multiple myeloma):
000 Multiple myeloma/Plasma cell myeloma with no other modifiers
010 Asymptomatic myeloma
020 Early or evolving myeloma
030 Inactive, indolent, or smoldering myeloma
080 Other terminology describing myeloma
100 Any combination of terms in codes 010-080
999 Unknown

2. The following CS Site-Specific Factor 3 code is allowed only for 9731 (Plasmacytoma, NOS) and 9734 (Plasmacytoma, extramedullary):
987 Not applicable]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2011-01-26">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-08" ref="67038">Added SSF3 can be 987 only if hist is 9731 or 9734.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-12" ref="67327">Changed error message.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF345" name="CS SSF 11, Surg, Appendix Schema (CS)" tag="N1420" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_11,RX_Summ--Surg_Prim_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor11 == null || line.csSiteSpecificFactor11 == '988' || line.behaviorCodeIcdO3 == '0' ||
    line.behaviorCodeIcdO3 == '1' || line.rxSummSurgPrimSite == null)
    return true

if (line._csSchemaId == 'appendix' && line.csSiteSpecificFactor11 == '998')
    return Functions.asInt(line.rxSummSurgPrimSite) < 20

return true]]></expression>
            <message>CS SSF 11 and Surgery conflict for Appendix schema</message>
            <description><![CDATA[This edit verifies that for cases coded using the Appendix schema, CS Site-Specific Factor 11 (Histopathologic Grading and RX Summ--Surg Prim Site are coded consistently.

    Please note that there is another edit, "CS SSF 11, Surg, DX/Stg Proc, Appendix Schema (CS)", that is exactly the same as this edit EXCEPT that it also checks the field RX Summ--DX/Stg Proc. It should be used by registries that collect both RX Summ--Surg Prim Site and RX Summ--DX/Stg Proc.

    This edit is skipped if any of the following conditions are true:
    1. CS Site-Specific Factor 11 is blank or 988
    2. RX Summ--Surg prim Site is blank
    3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

    This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

    If CS schema is Appendix:
    - If CS Site-Specific Factor11 = 998 (No pathologic confirmation of primary site tumor), then RX Summ--Surg Prim Site must be less than 20.]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2011-01-27">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF346" name="CS Extension, SSF 3, Behavior, Prostate (CS)" tag="N1434" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_3,Type_of_Reporting_Source">
            <expression><![CDATA[if (line.csExtension == null || line.behaviorCodeIcdO3 == '0' ||
    line.behaviorCodeIcdO3 == '1' || line.typeOfReportingSource == '7')
    return true

if (line._csSchemaId == 'prostate') {
    Integer ext = Functions.asInt(line.csExtension)
    Integer ssf3 = Functions.asInt(line.csSiteSpecificFactor3)
    if ((ext == 0 && ssf3 != 985 && (ssf3 < 200 || ssf3 > 750)) ||
        (ssf3 == 0 && (ext < 100 || ext > 750)))
        return line.behaviorCodeIcdO3 == '2'
}
return true]]></expression>
            <message>CS Exension, SSF 3 &amp; Behavior conflict for Prostate schema</message>
            <description><![CDATA[The purpose of this edit is to verify that the values coded in Behavior Code ICD-O-3 and CS Extension are consistent.

    This edit is skipped if any of the following conditions are true:
    1. CS Extension is empty.
    2. Case is death certificate only (Type of Reporting Source = 7)
    3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

    This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

    If schema is Prostate:
    [If CS Extension = 000 and CS Site-Specific Factor 3 not = 200-750, or 985
    OR
    If CS Site-Specific Factor 3 = 000 and CS Extension not = 100-750]
    then Behavior Code ICD-O-3 must = 2 (in situ).]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2011-01-27">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF347" name="CS Lymph Nodes, MyelomaPlasmaCellDisorder (CS)" tag="N1380" java-path="lines.line" category="inter-field" depends="CS_Lymph_Nodes,Histologic_Type_ICD-O-3">
            <expression><![CDATA[if (line.csLymphNodes == null)
    return true

if (line._csSchemaId == 'myeloma_plasma_cell_disorder') {
    if (line.csLymphNodes == '000' || line.csLymphNodes == '100' || line.csLymphNodes == '999')
        return line.histologicTypeIcdO3 == '9734'
    if (line.csLymphNodes == '987')
        return line.histologicTypeIcdO3 == '9731' || line.histologicTypeIcdO3 == '9732'
}

return true]]></expression>
            <message>CS Lymph Nodes and MyelomaPlasmaCellDisorder schema conflict</message>
            <description><![CDATA[The purpose of this edit is to verify that the data item CS Lymph Nodes is coded properly for the MyelomaPlasmaCellDisorder schema. The schema includes histologies 9731, 9732, and 9734, but some of the Lymph Nodes codes apply only to a subset of the three histologies.

    This edit is skipped if any of the following conditions are true:
    1. CS Lymph Nodes is empty

    This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

    If schema is MyelomaPlasmaCellDisorder:
    1. The CS Lymph Nodes values of 000 (For extraosseous plasmacytomas (9734) only:
        No regional lymph node involvement), 100 (For extraosseous plasmacytomas (9734) only:
        Regional lymph node metastasis), and 999 (unknown) are allowed only for Histologic Type
        ICD-O-3 codes 9734 (Plasmacytoma, extramedullary).

    2. The CS Lymph Nodes value of 987 (Not applicable) is allowed only for 9731 (Plasmacytoma, NOS) and 9732 (Multiple myeloma).]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2011-01-27">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF348" name="Primary Site, Heme Morph, DateDX, NoOverride (SEER)" tag="N2021" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.behaviorCodeIcdO3 == null || line.behaviorCodeIcdO3 != '3' ||
    line.histologicTypeIcdO3 == null || line.histologicTypeIcdO3 < '9590' || line.histologicTypeIcdO3 > '9993' || line.primarySite == null)
    return true

Integer hist = Functions.asInt(line.histologicTypeIcdO3)
String site = line.primarySite

if (line.dateOfDiagnosisYear < '2010' && hist == 9823)
    if (!(site ==~ /^C42[014]$/))
        return false

if (line.dateOfDiagnosisYear > '2017') {
    if (site == 'C420')
        return false
    else if (hist == 9761)
        return site == 'C421'
}

if (line.dateOfDiagnosisYear >= '2010') {
    if (hist == 9761) {
        if (site != 'C420')
            return false
    }
    else if (((List)Context.IF348_Hist_List_1).contains(hist)) {
        if (site != 'C421')
            return false
    }
    else if (((List)Context.IF348_Hist_List_2).contains(hist)) {
        if (site ==~ /^C42[034]$/)
            return false
    }
    else if (((List)Context.IF348_Hist_List_3).contains(hist)) {
        if (site ==~ /^C42[034]$/)
            return false
    }
    else if (hist == 9679) {
        if (!(site ==~ /^C38[123]|C379$/))
            return false
    }
    else if (hist == 9689 || hist == 9716) {
        if (site != 'C422')
            return false
    }
    else if (hist == 9699) {
        if (site ==~ /^C42[0234]$/)
            return false
    }
    else if (hist == 9731) {
        if (!(site ==~ /^C4[01][0-9]$/))
            return false
    }
    else if (hist == 9734) {
        if (site ==~ /^C42[034]$/ || site ==~ /^C4[01][0-9]$/)
            return false
    }
    else if (hist == 9930) {
        if (site ==~ /^C42[0134]$/)
            return false
    }

    if (site == 'C420' && hist != 9761)
        return false
}

return true]]></expression>
            <message>Site, Hist/Beh and Year of diagnosis conflict</message>
            <description><![CDATA[This edit validates the coding of primary site by histology based on the Hematopoietic and Lymphoid Neoplasm Coding Manual and Database. For cases diagnosed 2010 and later, specific histology codes are allowed only for specified sites. One combination (9823/C420, C421, C424) is allowed only for cases diagnosed prior to 2010.

The histology/primary site combinations in this edit are not overridable.

This edit is skipped if any of the following conditions are true:
1. Primary Site is blank
2. Histologic Type ICD-O-3 is blank or not in range 9590-9993
3. Behavior Code ICD-O-3 is blank or not = 3
4. Date of Diagnosis is blank or invalid

If year of diagnosis is less than 2010, the following Histologic Type ICD-O-3 codes (with Behavior ICD-O-3 code 3) are allowed only for the listed Primary Site codes:

9823: C420, C421, C424

If year of diagnosis is 2010 or later, the following Histologic Type ICD-O-3 codes (with Behavior ICD-O-3 code 3) are allowed only for the listed Primary Site codes:

9732, 9741, 9742, 9800, 9801, 9806-9809, 9820, 9826, 9831-9834, 9840, 9860, 9861, 9863, 9865-9867, 9869-9879, 9891, 9895-9898, 9910-9912, 9920, 9931, 9940, 9945, 9946, 9948, 9950, 9961-9968, 9975, 9980, 9982, 9983, 9985, 9986, 9989, 9991-9993
    C421

9590, 9591, 9596, 9597, 9650-9653, 9655, 9659, 9663, 9671, 9673, 9678, 9680, 9687, 9688, 9690, 9691, 9695, 9698, 9700-9702, 9705, 9708, 9709, 9712, 9714, 9717-9719, 9724-9727, 9735, 9737, 9738, 9740, 9751, 9755-9759, 9762, 9811-9818, 9823, 9827, 9837, 9971
    Not C420, C423, C424

9679: C381-C383 or C379

9689: C422

9699: Not C420, C422, C423, C424

9716: C422

9731: C400-C419

9734: Not C400-C419, C420, C423, C424

9930: Not C420, C421, C423, C424

If year of diagnosis is 2010-2017, the following Histologic Type ICD-O-3 codes (with
Behavior ICD-O-3 code 3) are allowed only for the listed Primary Site codes:

9761: C420 - vice versa is also true: if Primary Site is C420, then Histologic Type ICD-O-3
must = 9761.

If year of diagnosis is 2018 or later, the following Histologic Type ICD-O-3 codes (with
Behavior ICD-O-3 code 3) are allowed only for the listed Primary Site codes:

9761: C421.

C420 is not allowed for any Histologic Type ICD-O-3 code 9590-9993.]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2011-02-14">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-20" ref="66776">Updated edit name.</event>
                <event version="SE13-009-03" user="murphyr" date="2013-04-10" ref="66850">Modified edit logic for NAACCR 13.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-06-28" ref="66850">Edit changed to limit Histologic Type ICD-O-3 code 9823 to C420, C421, and C424 for cases diagnosed prior to 2010; previous version of this edit incorrectly checked diagnosis year 2012.</event>
                <event version="SE13-010-07" user="murphyr" date="2013-10-11" ref="66952">Added the following skip: 5. Over-ride Site/Type = 1, indicating the case has already been reviewed and accepted as coded.</event>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-08" ref="67139">Edit name changed. Codes updated for NAACCR 15 and over-ride logic moved to IF510.</event>
                <event version="SE15-013-02" user="kirbyk" date="2015-03-02" ref="67197">Added sites C381, C382 for histology 9679. Updated description.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-04-16" ref="67755">Updated logic for 2018 cases.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-04" user="beverung" date="2020-06-18" ref="68355">Add 9993 to skip condition, update C421 histologies and help text, and add histology lists to context.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-06" ref="68444">Updated description to show correct histology range for 2018 and later.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-23" ref="69202">Added 9819 as a valid histology for primary site C421.</event>
                <event version="SE23-023-07" user="shearerw" date="2023-09-08" ref="69309">Removed 9819 as a valid histology for primary site C421.</event>
            </history>
        </rule>
        <rule id="IF349" name="CS Ext, LN, Mets at DX, SSF 1, Retinoblastoma (CS)" tag="N1433" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Lymph_Nodes,CS_Mets_at_DX,CS_Site-Specific_Factor_1">
            <expression><![CDATA[if (line.csExtension == null || line.csLymphNodes == null ||
    line.csMetsAtDx == null || line.csSiteSpecificFactor1 == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'retinoblastoma') {
    if (line.csExtension == '950') {
        if ((line.csSiteSpecificFactor1 >= '300' && line.csSiteSpecificFactor1 <= '810') || line.csSiteSpecificFactor1 == '999')
            return true
        if (line.csLymphNodes >= '100' && line.csLymphNodes <= '800')
            return true
        if (line.csMetsAtDx >= '10' && line.csMetsAtDx <= '80')
            return true
        return false
    }
    if (line.csSiteSpecificFactor1 == '950') {
        if (line.csExtension >= '110' && line.csExtension <= '800')
            return true
        if (line.csLymphNodes >= '100' && line.csLymphNodes <= '800')
            return true
        if (line.csMetsAtDx >= '10' && line.csMetsAtDx <= '80')
            return true
        return false
    }
}

return true]]></expression>
            <message>CS Ext, LN, Mets &amp; SSF 1 conflict for Retinoblastoma schema</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1. CS Extension, CS Lymph Nodes, CS Mets at DX, or CS Site-Specific Factor 1 is blank
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If schema = Retinoblastoma:

1. If CS Extension = 950 (no evidence of primary tumor), then at least one of the following fields must show that tumor is present; that is, at least one of the following must be true:
CS Site-Specific Factor 1 must = 300-810, or 999
CS Lymph Nodes must = 100-800
CS Mets at DX must = 10-80

2. If CS Site-Specific Factor 1 = 950 (no evidence of primary tumor), then at least one of the following fields must show that tumor is present; that is, at least one of the following must be true:
CS Extension must = 110-800
CS Lymph Nodes must = 100-800
CS Mets at DX must = 10-80]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2011-02-14">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF350" name="CS Ext, LN, Mets at DX, SSF 3, Prostate (CS)" tag="N1432" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Lymph_Nodes,CS_Mets_at_DX,CS_Site-Specific_Factor_3">
            <expression><![CDATA[if (line.csExtension == null || line.csLymphNodes == null ||
    line.csMetsAtDx == null || line.csSiteSpecificFactor3 == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'prostate') {
    if (line.csExtension == '950') {
        if ((line.csSiteSpecificFactor3 >= '200' && line.csSiteSpecificFactor3 <= '750') || line.csSiteSpecificFactor3 == '990' || line.csSiteSpecificFactor3 == '000')
            return true
        if (line.csLymphNodes >= '100' && line.csLymphNodes <= '800')
            return true
        if (line.csMetsAtDx >= '11' && line.csMetsAtDx <= '60')
            return true
        return false
    }
    if (line.csSiteSpecificFactor3 == '950') {
        if (line.csExtension >= '000' && line.csExtension <= '750')
            return true
        if (line.csLymphNodes >= '100' && line.csLymphNodes <= '800')
            return true
        if (line.csMetsAtDx >= '11' && line.csMetsAtDx <= '60')
            return true
        return false
    }
}

return true]]></expression>
            <message>CS Ext, LN, Mets &amp; SSF 3 conflict for Prostate schema</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1. CS Extension, CS Lymph Nodes, CS Mets at DX, or CS Site-Specific Factor 3 is blank
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If schema = Prostate:

1. If CS Extension = 950 (no evidence of primary tumor), then at least one of the following fields must show that tumor is present; that is, at least one of the following must be true:
CS Site-Specific Factor 3 must = 000, 200-750, 990
CS Lymph Nodes must = 100-800
CS Mets at DX must = 11-60

2. If CS Site-Specific Factor 3 = 950 (no evidence of primary tumor), then at least one of the following fields must show that tumor is present; that is, at least one of the following must be true:
CS Extension must = 000-750
CS Lymph Nodes must = 100-800
CS Mets at DX must = 11-60]]></description>
            <history>
                <event version="SE12-004-01" user="murphyr" date="2011-02-14">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF351" name="CS Extension, Hist, Grade, Esophagus Schema (CS)" tag="N1571" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_25,Grade,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csExtension == null || line.grade == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId == null)
    return true

if (line._csSchemaId == 'esophagus' && line.csExtension == '000' &&
    Functions.matches(line.histologicTypeIcdO3, /^(8[01234]\d\d)|(85[0123456]\d)|(857[0123456])|(894\d)|(8950)|(898[01])$/))
        return line.grade == '1' || line.grade == '9'

return true]]></expression>
            <message>CS Ext, Hist and Grade conflict for Esophagus</message>
            <description><![CDATA[This edit verifies that for cases coded using the Esophagus schema, if the case is in situ and the adenocarcinoma or squamous cell carcinoma AJCC 7th Ed. staging applies to the histology, then grade must be coded to either 1 (grade I) or 9 (unknown grade).

Note: This edit was added because AJCC only recognizes grades 1 and 9 for esophagus in situ cases and the CS algorithm will not work properly with any other grades.

If schema is Esophagus:
If CS Extension = 000 (in situ) and Histologic Type ICD-O-3 = 8000-8576, 8940-8950, or 8980-8981, then Grade must = 1 or 9.

This edit is skipped if any of the following conditions are true:
1. CS Extension is empty
2. Grade is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-07-26" ref="66465">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF352" name="CS Extension, Hist, Grade, EsophagusGEJunction (CS)" tag="N1572" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_25,Grade,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csExtension == null || line.grade == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId == null)
    return true

if (line._csSchemaId == 'esophagus_gejunction' && line.csExtension == '000' &&
    ((List)Context.IF352_Histologies).contains(Functions.asInt(line.histologicTypeIcdO3)))
        return line.grade == '1' || line.grade == '9'

return true]]></expression>
            <message>CS Ext, Hist and Grade conflict for EsophagusGEJunction</message>
            <description><![CDATA[This edit verifies that for cases coded using the EsophagusGEJunction schema, if the case is in situ and the squamous cell carcinoma AJCC 7th Ed. staging applies to the histology, then grade must be coded to either 1 (grade I) or 9 (unknown grade).

Note: This edit was added because AJCC only recognizes grades 1 and 9 for EsophagusGEJunction in situ cases and the CS algorithm will not work properly with any other grades.

If schema is EsophagusGEJunction:
If CS Extension = 000 (in situ) and Histologic Type ICD-O-3 = 8000-8046, 8051-8131, 8148-8152, 8154-8157, 8170-8175, 8230-8231, 8243-8245, 8247-8248, 8508-8513, 8560-8570, 8575, 8950, 8980-8981, then Grade must = 1 or 9.

This edit is skipped if any of the following conditions are true:
1. CS Extension is empty
2. Grade is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-07-27" ref="66466">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF353" name="CS Extension, SSF 1, Lung Schema (CS)" tag="N1536" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_1,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csExtension == null || line.csSiteSpecificFactor1 == null ||

    line.csSiteSpecificFactor1 == '988' || line.behaviorCodeIcdO3 == '0' ||
    line.behaviorCodeIcdO3 == '1' || line._csSchemaId == null)
    return true

if (line._csSchemaId == 'lung' && Functions.matches(line.csExtension, /^(000)|(9[58]0)$/))
    return !(Functions.matches(line.csSiteSpecificFactor1, /^(0[1234]0)$/))

return true]]></expression>
            <message>CS Ext and SSF1 conflict for Lung</message>
            <description><![CDATA[This edit verifies that for cases coded using the Lung schema, if extension indicates in situ or no evidence of primary, then SSF 1 must not indicate separate tumor nodules in ipsilateral lung.

If schema is Lung:
If CS Extension code = 000, 950, or 980 (in situ or no evidence of primary)
then CS Site-Specific Factor 1 must not = 010, 020, 030, or 040 which indicate separate tumor nodules in the ipsilateral lung.


This edit is skipped if any of the following conditions are true:
1. CS Extension is empty
2. CS Site-Specific Factor 1 is blank or 988
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-07-28" ref="66467">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF354" name="CS Items, Type Reporting Source-DCO (SEER)" tag="N2414" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[String dxYear = line.dateOfDiagnosisYear
String behav = line.behaviorCodeIcdO3
String schema = line._csSchemaId

if (schema == null || dxYear == null || dxYear < '2004' || dxYear > '2017' || behav == '2' || line.typeOfReportingSource != '7' ||
    ((behav == '0' || behav == '1') && schema != 'brain' && schema != 'cns_other' && schema != 'intracranial_gland') ||
    ((dxYear == '2016' || dxYear == '2017') && line.csExtension == null))
        return true

String tumSize = line.csTumorSize
String tumSizeExtEval = line.csTumorSizeExtEval
String ext = line.csExtension
String nodes =  line.csLymphNodes
String nodesEval = line.csLymphNodesEval
String metsAtDx = line.csMetsAtDx
String metsEval = line.csMetsEval
String ssf1 = line.csSiteSpecificFactor1
String ssf2 = line.csSiteSpecificFactor2
String ssf3 = line.csSiteSpecificFactor3
String ssf4 = line.csSiteSpecificFactor4
String ssf5 = line.csSiteSpecificFactor5
String ssf6 = line.csSiteSpecificFactor6
String ssf7 = line.csSiteSpecificFactor7
String ssf8 = line.csSiteSpecificFactor8
String ssf9 = line.csSiteSpecificFactor9
String ssf10 = line.csSiteSpecificFactor10
String ssf11 = line.csSiteSpecificFactor11
String ssf12 = line.csSiteSpecificFactor12
String ssf13 = line.csSiteSpecificFactor13
String ssf14 = line.csSiteSpecificFactor14
String ssf15 = line.csSiteSpecificFactor15
String ssf16 = line.csSiteSpecificFactor16
String ssf17 = line.csSiteSpecificFactor17
String ssf18 = line.csSiteSpecificFactor18
String ssf19 = line.csSiteSpecificFactor19
String ssf20 = line.csSiteSpecificFactor20
String ssf21 = line.csSiteSpecificFactor21
String ssf22 = line.csSiteSpecificFactor22
String ssf23 = line.csSiteSpecificFactor23
String ssf24 = line.csSiteSpecificFactor24
String metsBone = line.csMetsAtDxBone
String metsBrain = line.csMetsAtDxBrain
String metsLiver = line.csMetsAtDxLiver
String metsLung = line.csMetsAtDxLung
String metsVasc = line.lymphVascularInvasion

String failingProp = null
if (tumSize != '988' && tumSize != '999' && tumSize != null)
    failingProp = 'line.csTumorSize'
else if (((behav == '0' || behav == '1') && (schema == 'brain' ||  schema == 'cns_other' || schema == 'intracranial_gland')) && ext != '050' && ext != '999' && ext != null)
    failingProp = 'line.csExtension'
else if (schema == 'heme_retic' && ext != '800' && ext != '999' && ext != null)
    failingProp = 'line.csExtension'
else if (schema == 'myeloma_plasma_cell_disorder' && ext != '800' && ext != '810' && ext != '820' && ext != '999' && ext != null)
    failingProp = 'line.csExtension'
else if (schema == 'lymphoma_ocular_adnexa' && ext != '989' && ext != '999' && ext != null)
    failingProp = 'line.csExtension'
else if (schema != 'heme_retic' && schema != 'myeloma_plasma_cell_disorder' && (schema != 'brain' || (behav != '0' && behav != '1')) && schema != 'cns_other' && schema != 'intracranial_gland' && ext != '988' && ext != '999' && ext != null)
    failingProp = 'line.csExtension'
else if (tumSizeExtEval != '9' && tumSizeExtEval != null)
    failingProp = 'line.csTumorSizeExtEval'
else if (schema == 'myeloma_plasma_cell_disorder' && nodes != '987' && nodes != '988' && nodes != '999' && nodes != null)
    failingProp = 'line.csLymphNodes'
else if (schema != 'myeloma_plasma_cell_disorder' && nodes != '988' && nodes != '999' && nodes != null)
    failingProp = 'line.csLymphNodes'
else if (nodesEval != '9' && nodesEval != null)
    failingProp = 'line.csLymphNodesEval'
else if (metsAtDx != '98' && metsAtDx != '99' && metsAtDx != null)
    failingProp = 'line.csMetsAtDx'
else if (metsEval != '9' && metsEval != null)
    failingProp = 'line.csMetsEval'
else if (schema == 'retinoblastoma' && ssf1 != '960' && ssf1 != null)
    failingProp = 'line.csSiteSpecificFactor1'
else if ((schema == 'bladder' || schema == 'kidney_renal_pelvis' || schema == 'urethra') &&  ssf1 != '987' && ssf1 != '988' && ssf1 != '999' && ssf1 != null)
    failingProp = 'line.csSiteSpecificFactor1'
else if (schema != 'retinoblastoma' && schema != 'bladder' && schema != 'kidney_renal_pelvis' && schema != 'urethra' && ssf1 != '988' && ssf1 != '999' && ssf1 != null)
    failingProp = 'line.csSiteSpecificFactor1'
else if ((schema == 'myeloma_plasma_cell_disorder' || schema == 'skin_eyelid') && ssf2 != '987' && ssf2 != '988' && ssf2 != '999' && ssf2 != null)
    failingProp = 'line.csSiteSpecificFactor2'
else if (schema != 'myeloma_plasma_cell_disorder' && schema != 'skin_eyelid' && ssf2 != '988' && ssf2 != '999' && ssf2 != null)
    failingProp = 'line.csSiteSpecificFactor2'
else if (schema == 'breast' && ssf3 != '988' && ssf3 != '099' && ssf3 != null)
    failingProp = 'line.csSiteSpecificFactor3'
else if (schema == 'prostate' && ssf3 != '960' && ssf3 != null)
    failingProp = 'line.csSiteSpecificFactor3'
else if (schema == 'myeloma_plasma_cell_disorder' && ssf3 != '987' && ssf3 != '988' && ssf3 != '999' && ssf3 != null)
    failingProp = 'line.csSiteSpecificFactor3'
else if (schema != 'breast' && schema != 'prostate' && schema != 'myeloma_plasma_cell_disorder' && ssf3 != '988' && ssf3 != '999' && ssf3 != null)
    failingProp = 'line.csSiteSpecificFactor3'
else if (schema == 'prostate' && ssf4 != '550' && ssf4 != '988' && ssf4 != '999' && ssf4 != null)
    failingProp = 'line.csSiteSpecificFactor4'
else if (schema != 'prostate' && ssf4 != '987' && ssf4 != '988' && ssf4 != '999' && ssf4 != null)
    failingProp = 'line.csSiteSpecificFactor4'
else if (ssf5 != '987' && ssf5 != '988' && ssf5 != '999' && ssf5 != null)
    failingProp = 'line.csSiteSpecificFactor5'
else if (ssf6 != '987' && ssf6 != '988' && ssf6 != '999' && ssf6 != null)
    failingProp = 'line.csSiteSpecificFactor6'
else if (ssf7 != '987' && ssf7 != '988' && ssf7 != '999' && ssf7 != null)
    failingProp = 'line.csSiteSpecificFactor7'
else if (ssf8 != '988' && ssf8 != '999' && ssf8 != null)
    failingProp = 'line.csSiteSpecificFactor8'
else if (ssf9 != '988' && ssf9 != '999' && ssf9 != null)
    failingProp = 'line.csSiteSpecificFactor9'
else if (ssf10 != '988' && ssf10 != '999' && ssf10 != null)
    failingProp = 'line.csSiteSpecificFactor10'
else if (ssf11 != '988' && ssf11 != '999' && ssf11 != null)
    failingProp = 'line.csSiteSpecificFactor11'
else if (ssf12 != '988' && ssf12 != '999' && ssf12 != null)
    failingProp = 'line.csSiteSpecificFactor12'
else if (ssf13 != '988' && ssf13 != '999' && ssf13 != null)
    failingProp = 'line.csSiteSpecificFactor13'
else if (ssf14 != '988' && ssf14 != '999' && ssf14 != null)
    failingProp = 'line.csSiteSpecificFactor14'
else if (ssf15 != '988' && ssf15 != '999' && ssf15 != null)
    failingProp = 'line.csSiteSpecificFactor15'
else if (ssf16 != '988' && ssf16 != '999' && ssf16 != null)
    failingProp = 'line.csSiteSpecificFactor16'
else if (ssf17 != '988' && ssf17 != '999' && ssf17 != null)
    failingProp = 'line.csSiteSpecificFactor17'
else if (ssf18 != '988' && ssf18 != '999' && ssf18 != null)
    failingProp = 'line.csSiteSpecificFactor18'
else if (ssf19 != '988' && ssf19 != '999' && ssf19 != null)
    failingProp = 'line.csSiteSpecificFactor19'
else if (ssf20 != '988' && ssf20 != '999' && ssf20 != null)
    failingProp = 'line.csSiteSpecificFactor20'
else if (ssf21 != '988' && ssf21 != '999' && ssf21 != null)
    failingProp = 'line.csSiteSpecificFactor21'
else if (ssf22 != '988' && ssf22 != '999' && ssf22 != null)
    failingProp = 'line.csSiteSpecificFactor22'
else if (ssf23 != '988' && ssf23 != '999' && ssf23 != null)
    failingProp = 'line.csSiteSpecificFactor23'
else if (ssf24 != '988' && ssf24 != '999' && ssf24 != null)
    failingProp = 'line.csSiteSpecificFactor24'
else if (metsBone != '8' && metsBone != '9' && metsBone != null)
    failingProp = 'line.csMetsAtDxBone'
else if (metsBrain != '8' && metsBrain != '9' && metsBrain != null)
    failingProp = 'line.csMetsAtDxBrain'
else if (metsLiver != '8' && metsLiver != '9' && metsLiver != null)
    failingProp = 'line.csMetsAtDxLiver'
else if (metsLung != '8' && metsLung != '9' && metsLung != null)
    failingProp = 'line.csMetsAtDxLung'
else if (metsVasc != '8' && metsVasc != '9' && metsVasc != null)
    failingProp = 'line.lymphVascularInvasion'

if (failingProp != null) {
    // only fail the properties we care about.  properties must start with 'line.'
    (List)Context.IF354_properties.each() { prop -> 
        Functions.ignoreFailureOnProperty(binding, 'line.' + prop)
    }
    Functions.forceFailureOnProperty(binding, failingProp)
    return false
}

return true]]></expression>
            <message>CS Item is invalid for DCO case</message>
            <description><![CDATA[The purpose of this edit is to verify that the CS data, when populated, are correctly coded for Death Certificate Only cases (Type of Reporting Source = 7).

This edit is skipped if:
1. Year of Date of Diagnosis is less than 2004, greater than 2017, blank, or invalid
2. Type of Reporting Source is not = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and schema is not Brain, CNSOther, or IntracranialGland
4. Behavior Code ICD-O-3 is 2 (in situ)
5. Schema is invalid
6. If year of Date of Diagnosis is 2016-2017 and CS Extension is blank

The valid codes for each schema can be found in the table, CS Defaults version 020302, available under Support Files and Test Files on the CS web page (http://www.cancerstaging.org/cstage/software/index.html).

The following CS data items must be equal to one of the values specified below.  [Please note that although this edit sometimes allows more than one "correct" code for DCO cases, there are other edits that will only allow codes (for instance, 988 OR 999) based on a particular standard setter's requirements.]

  CS Tumor Size: 988 or 999 or blank
  CS Extension:
    - If Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
      and schema is Brain, CNSOther, or IntracranialGland: 050, 999, or blank
    - If schema is HemeRetic, code 800, 999, or blank
    - If schema is MyelomaPlasmaCellDisorder, code 800, 810, 820, 999, or blank
    - If schema is LymphomaOcularAdnexa, code 989 or 999 or blank
    - For all other schemas: 988, 999, or blank
  CS Tumor Size/Ext Eval: 9 or blank
  CS Lymph Nodes:
    If schema is MyelomaPlasmaCellDisorder, code 987, 988, 999, or blank
    otherwise code 988, 999, or blank
  CS Lymph Nodes Eval: 9 or blank
  CS Mets at DX: 98, 99, or blank
  CS Mets Eval: 9 or blank
  CS Site-Specific Factor 1:
    - If schema is Retinoblastoma, code 960 or blank
    - If schema is Bladder, KidneyRenalPelvis or Urethra, code 987, 988, 999, or blank
    otherwise code 988, 999, or blank
  CS Site-Specific Factor 2:
    - If schema is MyelomaPlasmaCellDisorder or SkinEyelid, code 987, 988, 999, or blank
    otherwise code 988, 999, or blank
  CS Site-Specific Factor 3:
    - If schema is Breast, code 988, 099, or blank
    - If schema is Prostate, code 960 or blank
    - If schema is MyelomaPlasmaCellDisorder, code 987, 988, 999, or blank
    otherwise code 988, 999, or blank
  CS Site-Specific Factor 4:
    - If schema is Prostate, 550, 988, 999, or blank
    otherwise code 987, 988, 999, or blank
  CS Site-Specific Factor 5: 987, 988, 999, or blank
  CS Site-Specific Factor 6: 987, 988, 999, or blank
  CS Site-Specific Factor 7: 987, 988, 999, or blank
  CS Site-Specific Factor 8: 988, 999, or blank
  CS Site-Specific Factor 9: 988, 999, or blank
  CS Site-Specific Factor10: 988, 999, or blank
  CS Site-Specific Factor11: 988, 999, or blank
  CS Site-Specific Factor12: 988, 999, or blank
  CS Site-Specific Factor13: 988, 999, or blank
  CS Site-Specific Factor14: 988, 999, or blank
  CS Site-Specific Factor15: 988, 999, or blank
  CS Site-Specific Factor16: 988, 999, or blank
  CS Site-Specific Factor17: 988, 999, or blank
  CS Site-Specific Factor18: 988, 999, or blank
  CS Site-Specific Factor19: 988, 999, or blank
  CS Site-Specific Factor20: 988, 999, or blank
  CS Site-Specific Factor21: 988, 999, or blank
  CS Site-Specific Factor22: 988, 999, or blank
  CS Site-Specific Factor23: 988, 999, or blank
  CS Site-Specific Factor24: 988, 999, or blank

CS Mets at DX-Bone: 8, 9, or blank
CS Mets at DX-Brain: 8, 9, or blank
CS Mets at DX-Liver: 8, 9, or blank
CS Mets at DX-Lung: 8, 9,  or blank

Lymphovascular Invasion: 8, 9, or blank]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-07-29" ref="66468">Edit created.</event>
                <event version="SE12-005-04" user="murphyr" date="2011-10-04" ref="66526">Changed codes for SSF2 and SSF7.</event>
                <event version="SE12-005-04" user="murphyr" date="2011-10-05" ref="66532">Changed codes for CS Lymph Nodes.</event>
                <event version="SE12-005-05" user="murphyr" date="2011-10-10" ref="66537">Fixed issue where this edit failed to report when CS Tumor Size fails.</event>
                <event version="SE12-007-02" user="murphyr" date="2012-04-09" ref="66700">Fixed issue where value for extension was not being checked for malignant brain.</event>
                <event version="SE12-008-01" user="murphyr" date="2012-08-09" ref="66708">Update for SSF1 &amp; SSF2.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-05-13" ref="66883">Optimized.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-03" ref="66899">Blank values for any of the fields no longer makes the edit fail.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-10-25" ref="67019">Added extension case for LymphomaOcularAdnexa.  Fxied ignoring properties issue.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-12" ref="67328">Added skip condition for 2016 cases when CS Extension is empty.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-08" ref="67569">Edit now skips 2017 cases that do not collect CS.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-06" ref="67836">Changed edit to skip 2018+ cases; changed name.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68025">Changed &apos;Lymph-vascular Invasion&apos; to &apos;Lymphovascular Invasion&apos; in documentation.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit tag changed.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF355" name="CS Lymph Nodes, Nodes Pos, MelanomaSkin (CS)" tag="N2361" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,Regional_Nodes_Positive">
            <expression><![CDATA[if (line.csLymphNodes == null || line.behaviorCodeIcdO3 == '0' ||
    line.behaviorCodeIcdO3 == '1' || line._csSchemaId == null ||
    line.regionalNodesPositive == null)
    return true

if (line._csSchemaId == 'melanoma_skin') {
    if (Functions.matches(line.csLymphNodes, /^(12[234])|(15[238])$/))
        return !(Functions.matches(line.regionalNodesPositive, /^(00)|(98)$/))
}

return true]]></expression>
            <message>CS Lymph Nodes, SSF3 and RNP conflict for MelanomaSkin</message>
            <description><![CDATA[If schema is MelanomaSkin:
1. If CS Lymph Nodes = 122, 123, 124, 152, 153, or 158 (evaluated pathologically) then
    Regional Nodes Positive must not = 00 or 98 (codes indicating no nodes positive pathologically)

This edit is skipped if any of the following conditions are true:
1. CS Lymph Nodes is empty
2. Regional Nodes Positive is empty
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-07-29" ref="66469">Edit created.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-16" ref="66598">Name change.  Logic for SSF 3 removed.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF356" name="CS SSF 1, CS SSF 3, Lower GI Schemas (CS)" tag="N1538" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_1,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_3,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor1 == null || line.csSiteSpecificFactor1 == '988'||
    line.csSiteSpecificFactor3 == null || line.csSiteSpecificFactor3 == '988'||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId == null)
    return true

if (line._csSchemaId == 'small_intestine' || line._csSchemaId == 'appendix' ||
    line._csSchemaId == 'colon' || line._csSchemaId == 'rectum') {
    if (line.csSiteSpecificFactor1 == '998' && line.csSiteSpecificFactor3 != '998')
        return false
    if (line.csSiteSpecificFactor3 == '998' && line.csSiteSpecificFactor1 != '998')
        return false
}

return true]]></expression>
            <message>CS SSF1 and CS SSF3 conflict for Lower GI schemas</message>
            <description><![CDATA[This edit verifies that for cases coded using the Lower GI schemas of SmallIntestine, Appendix, Colon, or Rectum, CS Site-Specific Factor 1 (CEA interpretation) and CS Site-Specific Factor 3 (CEA value) are coded consistently.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 1 is blank or 988
2. CS Site-Specific Factor 3 is blank or 988
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS schema is SmallIntestine, Appendix, Colon, or Rectum:

1. If CS Site-Specific Factor 1 = 998 (test not done),
then CS Site-Specific Factor 3 must = 998 (test not done).

2. If CS Site-Specific Factor 3 = 998 (test not done),
then CS Site-Specific Factor 1 must = 998 (test not done).]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-08-01" ref="66470">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF357" name="CS SSF 1, Extension, Gyn Schemas (CS)" tag="N1539" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_1,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor1 == null || line.csSiteSpecificFactor1 == '988'||
    line.csExtension == null || line._csSchemaId == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'cervix' || line._csSchemaId == 'corpus_adenosarcoma' ||
    line._csSchemaId == 'corpus_carcinoma' || line._csSchemaId == 'corpus_sarcoma' ||
    line._csSchemaId == 'fallopian_tube' || line._csSchemaId == 'vagina' ||
    line._csSchemaId == 'vulva') {
    if (line.csExtension == '000')
        return line.csSiteSpecificFactor1 == '987'
}

return true]]></expression>
            <message>CS SSF1 and CS Ext conflict for Gyn Schemas</message>
            <description><![CDATA[This edit verifies that if CS Extension indicates a non-invasive lesion, then CS Site-Specific Factor 1 (FIGO Stage) is coded consistently for Cervix, CorpusAdenosarcoma, CorpusCarcinoma,CorpusSarcoma, FallopianTube, Vagina, and Vulva schemas.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 1 is blank or = 988
2. CS Extension is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS schema is Cervix, CorpusAdenosarcoma, CorpusCarcinoma, CorpusSarcoma, FallopianTube, Vagina, or Vulva:
If CS Extension = 000 (In situ, intraepithelial, noninvasive, preinvasive), then CS Site-Specific 1 must = 987 [Carcinoma in situ (intraepithelial, noninvasive, preinvasive)]]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-08-01" ref="66471">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF358" name="CS SSF 1, Skin/Scrotum/Merkel Cell Schemas (CS)" tag="N1540" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_1,CS_Site-Specific_Factor_25,CS_Tumor_Size,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor1 == null || line.csSiteSpecificFactor1 == '988'||
    line.csTumorSize == null || line.csExtension == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId == null)
    return true

if (line._csSchemaId == 'skin' || line._csSchemaId == 'scrotum' ||
    line._csSchemaId == 'merkel_cell_penis' || line._csSchemaId == 'merkel_cell_scrotum' ||
    line._csSchemaId == 'merkel_cell_skin' || line._csSchemaId == 'merkel_cell_vulva') {
    if (line.csSiteSpecificFactor1 == '000')
        return line.csTumorSize == '000' && line.csExtension == '950'
}

return true]]></expression>
            <message>CS SSF1 conflicts for Skin/Scrotum/MerkelCell</message>
            <description><![CDATA[This edit verifies that if CS Site-Specific Factor 1 [Measured Thickness (Depth)] indicates that no mass was found, then CS Tumor Size and CS Extension also indicate that there was no evidence of the primary tumor for Skin, Scrotum, MerkelCellPenis, MerkelCellScrotum, MerkelCellSkin, and MerkelCellVulva schemas.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 1 is blank or = 988
2. CS Tumor Size is blank
3. CS Extension is blank
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS schema is Skin, Scrotum, MerkelCellPenis, MerkelCellScrotum, MerkelCellSkin, or MerkelCellVulva:
If CS Site-Specific Factor 1 = 000 (no mass/tumor found), then
CS Tumor Size must = 000 (no mass/tumor found)
CS Extension must = 950 (no evidence of primary tumor)]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-08-01" ref="66472">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF359" name="CS SSF 1, Surg, Sarcomas (CS)" tag="N1543" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_1,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Surg_Prim_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor1 == null || line.csSiteSpecificFactor1 == '988'||
    line.rxSummSurgPrimSite == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId == null)
    return true

if (line._csSchemaId == 'heart_mediastinum' || line._csSchemaId == 'soft_tissue' ||
    line._csSchemaId == 'retroperitoneum' || line._csSchemaId == 'peritoneum') {
    if (line.csSiteSpecificFactor1 == '998')
        return !(Functions.matches(line.rxSummSurgPrimSite, /^([2-8]\d)$/))
}

return true]]></expression>
            <message>CS SSF1 and Surgery conflict for Sarcomas</message>
            <description><![CDATA[This edit verifies that for cases coded using the HeartMediastinum, Soft Tissue, Retroperitoneum, and Peritoneum schemas, if CS Site-Specific Factor 1 (Grade for Sarcomas) indicates that there was not pathologic examination, then RX Summ--Surg Prim Site does not indicate that a specimen was sent to pathology.

Please note that there is another edit, "CS SSF 1, Surg, DX/Stg, Sarcomas CS)", that is exactly the same as this edit EXCEPT that it also checks the field RX Summ--DX/Stg Proc. It should be used by registries that collect both RX Summ--Surg Prim Site and RX Summ--DX/Stg Proc.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 1 is blank or 988
2. RX Summ--Surg prim Site is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS schema is HeartMediastinum, Soft Tissue, Retroperitoneum, or Peritoneum:
- If CS Site-Specific Factor 1 = 998 (No histologic examination), then RX Summ--Surg Prim Site must not be 20-89.]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-08-01" ref="66473">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF360" name="CS SSF 1, Surg, Skin/Scrotum/Merkel (CS)" tag="N1544" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_1,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Surg_Prim_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor1 == '988' || line.csSiteSpecificFactor1 == null ||
    line.rxSummSurgPrimSite == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId == null)
    return true

if (line._csSchemaId == 'skin' || line._csSchemaId == 'scrotum' ||
    line._csSchemaId == 'merkel_cell_penis' || line._csSchemaId == 'merkel_cell_scrotum' ||
    line._csSchemaId == 'merkel_cell_skin' || line._csSchemaId == 'merkel_cell_vulva') {
    if (line.csSiteSpecificFactor1 == '998')
        return !(Functions.matches(line.rxSummSurgPrimSite, /^([2-8]\d)$/))
}

return true]]></expression>
            <message>CS SSF1 and Surgery conflict for Skin/Scrotum/Merkel</message>
            <description><![CDATA[This edit verifies that for cases coded using the Skin, Scrotum, MerkelCellPenis, MerkelCellScrotum, MerkelCellSkin, and MerkelCellVulva schemas, if CS Site-Specific Factor 1 [Measured Thickness (Depth)] indicates that there was not pathologic examination, then RX Summ--Surg Prim does not indicate that a specimen was sent to pathology.

Please note that there is another edit, "CS SSF 1, Surg, DX/Stg, Skin/Scrotum/Merkel(CS)", that is exactly the same as this edit EXCEPT that it does also checks the field RX Summ--DX/Stg Proc. It should be used by registries that collect both RX Summ--Surg prim Site and RX Summ--DX/Stg Proc.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 1 is blank or 988
2. RX Summ--Surg Prim Site is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS schema is Skin, Scrotum, MerkelCellPenis, MerkelCellScrotum, MerkelCellSkin, or MerkelCellVulva :
- If CS Site-Specific Factor 1 = 998 (No histologic examination), then RX Summ--Surg Prim Site must not be 20-89.]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-08-01" ref="66474">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF361" name="CS SSF 1, Upper GI Schemas (CS)" tag="N1545" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_1,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,Regional_Nodes_Positive">
            <expression><![CDATA[if (line.csSiteSpecificFactor1 == null || line.csSiteSpecificFactor1 == '988'||
    line.csLymphNodes == null || line.regionalNodesPositive == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId == null)
    return true

if (['esophagus','esophagus_gejunction','stomach','net_stomach'].contains(line._csSchemaId)) {
    if (line.csSiteSpecificFactor1 == '000' && line.regionalNodesPositive == '00')
        return line.csLymphNodes == '000'
    if (Functions.matches(line.csSiteSpecificFactor1, /^([123]\d\d)|(400)$/) && line.regionalNodesPositive == '98')
        return line.csLymphNodes != '000'
}

return true]]></expression>
            <message>CS SSF1 conflicts for Upper GI Schemas</message>
            <description><![CDATA[This edit verifies that for cases coded using the Upper GI schemas (Esophagus, EsophagusGEJunction, Stomach, and NETStomach), CS Site-Specific Factor 1 (Clinical Assessment of Regional Lymph Nodes), Regional Nodes Positive, and CS Lymph Nodes are coded consistently.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 1 is blank or 988
2. CS Lymph Nodes is blank
3. Regional Nodes Positive is blank
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS schema is Esophagus, EsophagusGEJunction, Stomach, or NETStomach:

1. If CS Site-Specific Factor 1 = 000 (nodes not clinically evident) and Regional Nodes Positive = 00 (negative nodes pathologically),
then CS Lymph Nodes must = 000 (none).

2. If CS Site-Specific Factor 1 = 100-400 (positive nodes clinically) and Regional Nodes Positive = 98 (no nodes examined),
then CS Lymph Nodes must not = 000 (none).]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-08-01" ref="66475">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF362" name="CS SSF 10, SSF 11, Breast (CS)" tag="N1546" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_10,CS_Site-Specific_Factor_11,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor10 == null || line.csSiteSpecificFactor10 == '988' ||
    line.csSiteSpecificFactor11 == null || line.csSiteSpecificFactor11 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId == null)
    return true

if (line._csSchemaId == 'breast') {
    if (line.csSiteSpecificFactor10 == '998')
        return line.csSiteSpecificFactor11 == '998'

    if (line.csSiteSpecificFactor11 == '998')
        return line.csSiteSpecificFactor10 == '998'

    if (line.csSiteSpecificFactor10 == '991')
        return line.csSiteSpecificFactor11 != '010'

    if (line.csSiteSpecificFactor11 == '010')
        return line.csSiteSpecificFactor10 != '991'

    if (line.csSiteSpecificFactor10 > '500' && line.csSiteSpecificFactor10 < '981')
        return line.csSiteSpecificFactor11 != '020'

    if (line.csSiteSpecificFactor11 == '020')
        return line.csSiteSpecificFactor10 <= '500' || line.csSiteSpecificFactor10 == '991' || line.csSiteSpecificFactor10 == '997'
}
return true]]></expression>
            <message>CS SSF 10 and SSF 11 conflict for Breast schema</message>
            <description><![CDATA[This edit verifies that for cases using the Breast schema, SSF 10 (HER2: FISH Lab Value) and SSF 11 (HER2: FISH Test Interpretation) are coded consistently. That is, if one specifies "test not done", the other must also specify "test not done".

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor10 is blank or 988
2. CS Site-Specific Factor11 is blank or 988
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS schema is Breast:
1. If CS Site-Specific Factor10 = 998 (test not done), then CS Site-Specific Factor11 must = 998 (test not done).
2. If CS Site-Specific Factor11 = 998, then CS Site-Specific Factor10 must = 998.
3. If CS Site-Specific Factor10 is 991 (ratio of less than 1.00), then CS Site-Specific Factor11 must not = 010 (positive/elevated; amplified).
4. If CS Site-Specific Factor11 = 010, then CS Site-Specific Factor10 must not = 991.
5. If CS Site-Specific Factor10 is greater than 500 and less than 981, then CS Site-Specific Factor11 must not = 020 (negative/normal; within normal limits; not amplified).
6. If CS Site-Specific Factor11 = 020, then CS Site-Specific Factor10 must be less than or = 500 or = 991 or 997.]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-08-01" ref="66476">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-27" ref="66796">Added additional comparisons added for CS SSF 10 and 11.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF363" name="CS SSF 11, Lip/OralCavity/Nasal Schemas (CS)" tag="N1548" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_11,CS_Site-Specific_Factor_25,CS_Tumor_Size,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Surg_Prim_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor11 == null || line.csSiteSpecificFactor11 == '988'||
    line.csTumorSize == null || line.csExtension == null ||
    line.rxSummSurgPrimSite == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId == null)
    return true

if (((List)Context.IF363_Schemas).contains(line._csSchemaId)) {
    if (line.csSiteSpecificFactor11 == '000')
        return line.csTumorSize == '000' && line.csExtension == '950'

    if (line.csSiteSpecificFactor11 == '998')
        return Functions.asInt(line.rxSummSurgPrimSite) < 20
}

return true]]></expression>
            <message>CS SSF 11 conflicts for Lip/OralCavity/Nasal</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 11 [Measured Thickness (Depth)], CS Tumor Size, CS Extension, and RX Summ--Surg Prim Site are coded consistently for Lip and Oral Cavity, Nasal Cavity and Paranasal Sinuses, and the corresponding Mucosal Melanoma schemas.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor11 is blank or = 988
2. CS Tumor Size is blank
3. CS Extension is blank
4. RX Summ--Surg Prim Site is blank
5. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
6. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

This edit is skipped if CS schema is NOT one of the following Lip and Oral Cavity, Nasal Cavity and Paranasal Sinuses, or corresponding Mucosal Melanoma schemas:
BuccalMucosa
FloorMouth
GumLower
GumOther
GumUpper
LipLower
LipOther
LipUpper
MouthOther
NasalCavity
PalateHard
SinusEthmoid
SinusMaxillary
MelanomaBuccalMucosa
MelanomaFloorMouth
MelanomaGumLower
MelanomaGumOther
MelanomaGumUpper
MelanomaLipLower
MelanomaLipOther
MelanomaLipUpper
MelanomaMouthOther
MelanomaNasalCavity
MelanomaPalateHard
MelanomaSinusEthmoid
MelanomaSinusMaxillary

1. If CS Site-Specific Factor11 = 000 (no mass/tumor found), then
CS Tumor Size must = 000 (no mass/tumor found) and
CS Extension must = 950 (no evidence of primary tumor)

2. If CS Site-Specific Factor11 = 998 (no surgical specimen), then
RX Summ--Surg Prim Site must be less than 20 (indicating no surgical specimen sent to pathology)]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-08-02" ref="66477">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF364" name="CS SSF 11, Surg, Skin Schema (CS)" tag="N1549" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_11,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Surg_Prim_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor11 == null || line.csSiteSpecificFactor11 == '988'||
    line.rxSummSurgPrimSite == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId == null)
    return true

if (line._csSchemaId == 'skin' && line.csSiteSpecificFactor11 == '998')
    return Functions.asInt(line.rxSummSurgPrimSite) < 20

return true]]></expression>
            <message>CS SSF 11 and Surgery conflict for Skin</message>
            <description><![CDATA[This edit verifies that for cases coded using the Skin schema, CS Site-Specific Factor 11 (Perineural Invasion), and RX Summ--Surg Prim Site are coded consistently.

Please note that there is another edit, "CS SSF 11, Surg, DX/Stg Proc, Skin Schema (CS)", that is exactly the same as this edit EXCEPT that it also checks the field RX Summ--DX/Stg Proc. It should be used by registries that collect both RX Summ--Surg Prim Site and RX Summ--DX/Stg Proc.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 11 is blank or 988
2. RX Summ--Surg prim Site is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS schema is Skin:
- If CS Site-Specific Factor11 = 998 (No pathologic confirmation of primary site tumor), then RX Summ--Surg Prim Site must be less than 20.]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-08-02" ref="66478">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF365" name="CS SSF 12, SSF 13, Breast (CS)" tag="N1551" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_12,CS_Site-Specific_Factor_13,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor12 == null || line.csSiteSpecificFactor12 == '988' ||
    line.csSiteSpecificFactor13 == null || line.csSiteSpecificFactor13 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId == null)
    return true

if (line._csSchemaId == 'breast') {
    if (line.csSiteSpecificFactor12 == '998' && line.csSiteSpecificFactor13 != '998')
        return false

    if (line.csSiteSpecificFactor13 == '998' && line.csSiteSpecificFactor12 != '998')
        return false
}

return true]]></expression>
            <message>CS SSF12 and SSF 13 conflict for Breast</message>
            <description><![CDATA[This edit verifies that for cases using the Breast schema, SSF 12 (HER2: CISH Lab Value) and SSF 13 (HER2: CISH Test Interpretation) are coded consistently. That is, if one specifies "test not done", the other must also specify "test not done".

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor12 is blank or 988
2. CS Site-Specific Factor13 is blank or 988
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS schema is Breast:
1. If CS Site-Specific Factor12 = 998 (test not done), then CS Site-Specific Factor13 must = 998 (test not done).
2. If CS Site-Specific Factor13 = 998, then CS Site-Specific Factor12 must = 998.]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-08-02" ref="66479">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF366" name="CS SSF 15, SSF 9, 11, 13, 14, Breast (CS)" tag="N1554" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if ((line.csSiteSpecificFactor9  == null && line.csSiteSpecificFactor11 == null &&
     line.csSiteSpecificFactor13 == null && line.csSiteSpecificFactor14 == null) ||
    (line.csSiteSpecificFactor9  == '988' && line.csSiteSpecificFactor11 == '988' &&
     line.csSiteSpecificFactor13 == '988' && line.csSiteSpecificFactor14 == '988') ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId == null)
    return true

if (line._csSchemaId == 'breast') {
    if (line.csSiteSpecificFactor9   != '998' && line.csSiteSpecificFactor9  != '999' &&
        line.csSiteSpecificFactor9   != '988' && line.csSiteSpecificFactor9  != null &&
        (line.csSiteSpecificFactor15 == '998' || line.csSiteSpecificFactor15 == '999'))
        return false
    if (line.csSiteSpecificFactor11  != '998' && line.csSiteSpecificFactor11 != '999' &&
        line.csSiteSpecificFactor11  != '988' && line.csSiteSpecificFactor11  != null &&
        (line.csSiteSpecificFactor15 == '998' || line.csSiteSpecificFactor15 == '999'))
        return false
    if (line.csSiteSpecificFactor13  != '998' && line.csSiteSpecificFactor13 != '999' &&
        line.csSiteSpecificFactor13  != '988' && line.csSiteSpecificFactor13  != null &&
        (line.csSiteSpecificFactor15 == '998' || line.csSiteSpecificFactor15 == '999'))
        return false
    if (line.csSiteSpecificFactor14  != '998' && line.csSiteSpecificFactor14 != '999' &&
        line.csSiteSpecificFactor14  != '988' && line.csSiteSpecificFactor14  != null &&
        (line.csSiteSpecificFactor15 == '998' || line.csSiteSpecificFactor15 == '999'))
        return false
}

return true]]></expression>
            <message>CS SSF15, 9, 11, 13, 14 conflict for Breast</message>
            <description><![CDATA[This edit applies only to cases coded using the Breast schema. It checks SSFs 9, 11, 13, and 14 (HER2 test interpretations) against SSF 15 (HER2: Summary Result of Testing). If any of SSFs 9, 11, 13, or 14 are not coded to 998 (test not done) or 999 (unknown or no information), then SSF 15 must not = 998 or 999.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 9, 11, 13, and 14 are ALL blank or 988
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
3. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS schema is Breast:
1. If any of the HER2 test interpretations (CS Site-Specific Factor 9, 11, 13, 14) are coded to values other than blank, 988, 998 or 999, then CS Site-Specific Factor 15 must not be coded to 998 or 999.]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-08-02" ref="66480">Edit created.</event>
                <event version="SE12-005-04" user="murphyr" date="2011-10-04" ref="66528">Edit modified so that it is also skipped if CS Site-Specific Factor 9, 11, 13, and 14 are all blank or 988. In the past, it was skipped if any of the contributing factors were blank or 988.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF367" name="CS SSF 2, Extension, Ovary Schema (CS)" tag="N1555" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_2">
            <expression><![CDATA[if (line.csSiteSpecificFactor2 == null || line.csSiteSpecificFactor2 == '988'||
    line.csExtension == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId == null)
    return true

if (line._csSchemaId == 'ovary' && line.csExtension == '000')
    return line.csSiteSpecificFactor2 == '987'

return true]]></expression>
            <message>CS SSF2 and Extension conflict for Ovary</message>
            <description><![CDATA[This edit verifies that if CS Extension indicates a non-invasive lesion, then CS Site-Specific Factor 2 (FIGO Stage) is coded consistently for the Ovary schema.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 2 is blank or = 988
2. CS Extension is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS schema is Ovary:
If CS Extension = 000 (In situ, intraepithelial, noninvasive, preinvasive), then CS Site-Specific 2 must = 987 [Carcinoma in situ (intraepithelial, noninvasive, preinvasive)]]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-08-02" ref="66481">Edit created.</event>
                <event version="SE12-006-02" user="murphyr" date="2012-01-09" ref="66651">Fixed error message.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF368" name="CS SSF 2, LN, LN Eval, RNP, SmallIntestine (CS)" tag="N1574" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Reg_Node_Eval,CS_Site-Specific_Factor_2,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,Regional_Nodes_Positive">
            <expression><![CDATA[if (line.csSiteSpecificFactor2 == null || line.csSiteSpecificFactor2 == '988' ||
    line.csLymphNodes == null || line.csLymphNodesEval == null ||
    line.regionalNodesPositive == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId == null)
    return true

if (line._csSchemaId == 'small_intestine') {
    if (Functions.matches(line.csLymphNodes, /^([12]\d\d)|(300)$/) &&
        Functions.matches(line.csLymphNodesEval, /^([015])$/) &&
        Functions.matches(line.regionalNodesPositive, /^(00)|(9[89])$/))
        return Functions.matches(line.csSiteSpecificFactor2, /^([124]00)$/)
}

return true]]></expression>
            <message>CS SSF 2 and Nodes conflict for SmallIntestine</message>
            <description><![CDATA[This edit checks cases coded using the SmallIntestine schema. If the CS lymph nodes indicate lymph node involvement, lymph nodes eval code indicates clinical assessment, and regional nodes positive show no nodes pathologically, then CS SSF 2 must = 100, 200, or 400 (clinical involvement of nodes).

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 2 is blank or 988
2. CS Lymph Nodes is blank
3. CS Lymph Nodes Eval is blank
4. Regional Nodes Positive is blank
5. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
6. CS schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS schema is SmallIntestine:
If CS Lymph Nodes is 100-300 (nodes involved)
and CS Lymph Nodes Evaluation is 0, 1, 5 (clinical assessment)
and Regional nodes positive = 00, 98, or 99 (no nodes pathologically)
then
CS Site-Specific Factor 2 must = 100, 200, or 400 (clinical involvement of nodes)]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-08-02" ref="66482">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF369" name="CS SSF 2, Lower GI Schemas (CS)" tag="N1556" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_2,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,Regional_Nodes_Positive">
            <expression><![CDATA[if (line.csSiteSpecificFactor2 == null || line.csSiteSpecificFactor2 == '988' ||
    line.csLymphNodes == null || line.regionalNodesPositive == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId == null)
    return true

if (['small_intestine','appendix','carcinoid_appendix','colon','rectum','net_colon','net_rectum'].contains(line._csSchemaId)) {
    if (line.csSiteSpecificFactor2 == '000' && line.regionalNodesPositive == '00')
        return line.csLymphNodes == '000' || line.csLymphNodes == '050'

    if (Functions.matches(line.csSiteSpecificFactor2, /^(0[1-9]\d)|([1-3]\d\d)|(400)$/) && line.regionalNodesPositive == '98')
        return line.csLymphNodes != '000'
}

return true]]></expression>
            <message>CS SSF2 conflicts for Lower GI Schemas</message>
            <description><![CDATA[This edit verifies that for cases coded using the Lower GI schemas (SmallIntestine, Appendix, CarcinoidAppendix, Colon, Rectum, NETColon, and NETRectum), CS Site-Specific Factor 2 (Clinical Assessment of Regional Lymph Nodes), Regional Nodes Positive, and CS Lymph Nodes are coded consistently.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 2 is blank or 988
2. CS Lymph Nodes is blank
3. Regional Nodes Positive is blank
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS schema is SmallIntestine, Appendix, CarcinoidAppendix, Colon, Rectum, NETColon, or NETRectum:

1. If CS Site-Specific Factor 2 = 000 (nodes not clinically evident) and Regional Nodes Positive = 00 (negative nodes pathologically), then CS Lymph Nodes must = 000 (none) or 050 (tumor deposits without regional node metastasis).
    Note: CS Lymph Nodes code 050 is used only in Colon, Rectum, NETColon, and NETRectum schemas.

2. If CS Site-Specific Factor 2 = 010-400 (positive nodes clinically) and Regional Nodes Positive = 98 (no nodes examined), then CS Lymph Nodes must not = 000(none).]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-08-02" ref="66483">Edit created.</event>
                <event version="SE12-005-08" user="murphyr" date="2011-12-14" ref="66561">Added code 050 for allowable lymph nodes</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF371" name="CS SSF 2, RX Summ--Surg, Pleura (CS)" tag="N1559" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_2,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Surg_Prim_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor2 == null || line.csSiteSpecificFactor2 == '988'||
    line.rxSummSurgPrimSite == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId == null)
    return true

if (line._csSchemaId == 'pleura' && line.csSiteSpecificFactor2 == '998')
    return !(Functions.matches(line.rxSummSurgPrimSite, /^([2-8]\d)$/))

return true]]></expression>
            <message>CS SSF2 and Surgery conflict for Pleura</message>
            <description><![CDATA[This edit verifies that for cases coded using the Pleura schema, if CS Site-Specific Factor 2 (Histologic Subtype) indicates that there was not pathologic examination, then RX Summ--Surg Prim Site does not indicate that a specimen was sent to pathology.

Please note that there is another edit, "CS SSF 2, RX Summ--Surg, DX/Stg, Pleura (CS)", that is exactly the same as this edit EXCEPT that it also checks the field RX Summ--DX/Stg Proc. It should be used by registries that collect both RX Summ--Surg Prim Site and RX Summ--DX/Stg Proc.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 2 is blank or 988
2. RX Summ--Surg prim Site is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.


If CS schema is Pleura:
- If CS Site-Specific Factor 2 = 998 (No histologic examination), then RX Summ--Surg Prim Site must not be 20-89.]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-08-02" ref="66485">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF373" name="CS SSF 21, TS/Ext Eval, LN Eval, Breast (CS)" tag="N1561" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Reg_Node_Eval,CS_Site-Specific_Factor_21,CS_Site-Specific_Factor_25,CS_Tumor_Size_Ext_Eval,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor21 == null || line.csSiteSpecificFactor21 == '988' || line.csTumorSizeExtEval == null || line.csLymphNodesEval == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line._csSchemaId == null)
    return true

if (line._csSchemaId == 'breast') {
    if (Functions.matches(line.csSiteSpecificFactor21, /^(0[123]0)$/))
        return line.csTumorSizeExtEval == '5' || line.csTumorSizeExtEval == '6' || line.csLymphNodesEval == '5' || line.csLymphNodesEval == '6'
    if (line.csSiteSpecificFactor21 == '987')
        return line.csTumorSizeExtEval != '5' && line.csTumorSizeExtEval != '6' && line.csLymphNodesEval != '5' && line.csLymphNodesEval != '6'
}

return true]]></expression>
            <message>CS SSF21, TS/Ext Eval and LN eval conflict for Breast</message>
            <description><![CDATA[This edit applies only to cases coded using the Breast schema. If SSF 21 (Response to Neoadjuvant Therapy) indicates the patient received neoadjuvant therapy, then either Tumor Size/Ext Eval or Lymph Nodes Eval must indicate the patient received neoadjuvant therapy. If SSF 21 indicates the patient did not receive neoadjuvant therapy, then both Tumor Size/Ext Eval and Lymph Nodes Eval must also indicate no neoadjuvant therapy.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor21 is blank or 988
2. CS TS/Ext Eval is blank
3. CS Lymph Nodes Eval is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS schema is Breast:
1. If CS Site-Specific Factor21 = 010, 020, or 030 (received neoadjuvant therapy), then either CS Tumor Size/Ext Eval or CS Lymph Nodes Eval must = 5 or 6 indicating patient received neoadjuvant therapy.
2. If CS Site-Specific Factor21 = 987 (neoadjuvant therapy not given), then CS Tumor Size/Ext Eval and CS Lymph Nodes Eval must not = 5 or 6.]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-08-03" ref="66487">Edit created.</event>
                <event version="SE12-008-04" user="depryf" date="2012-10-23" ref="66763">Disabled this edit. The edit is being reviewed by the Edits Committee. It will be re-activated after changes are made to the logic.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-14" ref="67469">Enabled edit.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF374" name="CS SSF 22, SSF 23, Breast (CS)" tag="N1562" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor22 == null || line.csSiteSpecificFactor22 == '988' ||
    line.csSiteSpecificFactor23 == null || line.csSiteSpecificFactor23 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId == null)
    return true

if (line._csSchemaId == 'breast') {
    if (line.csSiteSpecificFactor22 == '998' && line.csSiteSpecificFactor23 != '998')
        return false

    if (line.csSiteSpecificFactor23 == '998' && line.csSiteSpecificFactor22 != '998')
        return false
}

return true]]></expression>
            <message>CS SSF22 and SSF23 conflict for Breast</message>
            <description><![CDATA[This edit verifies that for cases using the Breast schema, SSF 22 (Multigene Signature Method) and SSF 23 (Multigene Signature Results) are coded consistently. That is, if one specifies "test not done", the other must also specify "test not done".

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor22 is blank or 988
2. CS Site-Specific Factor23 is blank or 988
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS schema is Breast:
1. If CS Site-Specific Factor22 = 998 (test not done), then CS Site-Specific Factor23 must = 998 (test not done).
2. If CS Site-Specific Factor23 = 998, then CS Site-Specific Factor22 must = 998.]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-08-03" ref="66488">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF375" name="CS SSF 4, CS SSF 5, Liver Schema (CS)" tag="N1564" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_4,CS_Site-Specific_Factor_5,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor4 == null || line.csSiteSpecificFactor4 == '988' ||
    line.csSiteSpecificFactor5 == null || line.csSiteSpecificFactor5 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId == null)
    return true

if (line._csSchemaId == 'liver') {
    if (line.csSiteSpecificFactor4 == '998' && line.csSiteSpecificFactor5 != '998')
        return false

    if (line.csSiteSpecificFactor5 == '998' && line.csSiteSpecificFactor4 != '998')
        return false
}

return true]]></expression>
            <message>CS SSF4 and CS SSF5 conflict for Liver</message>
            <description><![CDATA[This edit verifies that for cases coded using the Liver schema, if CS Site-Specific Factor 4 (Creatinine Value) indicates that the test was not done, then CS Site-Specific Factor 5 (Creatinine Unit of Measure) is coded consistently, and vice versa.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 4 is blank or 988
2. CS Site-Specific Factor 5 is blank or 988
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS schema is Liver:
1. If CS Site-Specific Factor 4 (Creatinine Value) = 998 (test not done),
then CS Site-Specific Factor 5 (Creatinine Unit of Measure) must = 998 (test not done).
2. If CS Site-Specific Factor 5 = 998 (test not done),
then CS Site-Specific Factor 4 must = 998 (test not done).]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-08-03" ref="66489">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF376" name="CS SSF 6, CS SSF 7, Liver Schema (CS)" tag="N1565" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_6,CS_Site-Specific_Factor_7,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor6 == null || line.csSiteSpecificFactor6 == '988' ||
    line.csSiteSpecificFactor7 == null || line.csSiteSpecificFactor7 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId == null)
    return true

if (line._csSchemaId == 'liver') {
    if (line.csSiteSpecificFactor6 == '998' && line.csSiteSpecificFactor7 != '998')
        return false

    if (line.csSiteSpecificFactor7 == '998' && line.csSiteSpecificFactor6 != '998')
        return false
}

return true]]></expression>
            <message>CS SSF6 and CS SSF7 conflict for Liver</message>
            <description><![CDATA[This edit verifies that for cases coded using the Liver schema, if CS Site-Specific Factor 6 (Total Bilirubin Value) indicates that the test was not done, then CS Site-Specific Factor 7 (Total Bilirubin Unit of Measure) is coded consistently, and vice versa.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 6 is blank or 988
2. CS Site-Specific Factor 7 is blank or 988
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS schema is Liver:
1. If CS Site-Specific Factor 6 (Total Bilirubin Value) = 998 (test not done),
then CS Site-Specific Factor 7 (Total Bilirubin Unit of Measure) must = 998 (test not done).
2. If CS Site-Specific Factor 7 = 998 (test not done),
then CS Site-Specific Factor 6 must = 998 (test not done).]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-08-03" ref="66490">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF377" name="CS SSF 8, CS SSF 9, Breast (CS)" tag="N1566" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_8,CS_Site-Specific_Factor_9,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor8 == null || line.csSiteSpecificFactor8 == '988' ||
    line.csSiteSpecificFactor9 == null || line.csSiteSpecificFactor9 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId == null)
    return true

if (line._csSchemaId == 'breast') {
    if (line.csSiteSpecificFactor8 == '998' && line.csSiteSpecificFactor9 != '998')
        return false

    if (line.csSiteSpecificFactor9 == '998' && line.csSiteSpecificFactor8 != '998')
        return false
}

return true]]></expression>
            <message>CS SSF8 and SSF9 conflict for Breast</message>
            <description><![CDATA[This edit verifies that for cases using the Breast schema, SSF 8 (HER2: IHC Lab Value) and SSF 9 (HER2: IHC Test Interpretation) are coded consistently. That is, if one specifies "test not done", the other must also specify "test not done".

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 8 is blank or 988
2. CS Site-Specific Factor 9 is blank or 988
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If CS schema is Breast:
1. If CS Site-Specific Factor 8 = 998 (test not done), then CS Site-Specific Factor 9 must = 998 (test not done).
2. If CS Site-Specific Factor 9 = 998, then CS Site-Specific Factor 8 must = 998.]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-08-03" ref="66491">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF378" name="CS SSF 8, RX Summ--Surg, ColoRectal (CS)" tag="N1568" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_8,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Surg_Prim_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor8 == '988' || line.csSiteSpecificFactor8 == null ||
    line.rxSummSurgPrimSite == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId == null)
    return true

if (line._csSchemaId == 'colon' || line._csSchemaId == 'rectum') {
    if (line.csSiteSpecificFactor8 == '998')
        return !(Functions.matches(line.rxSummSurgPrimSite, /^([2-8]\d)$/))
}

return true]]></expression>
            <message>CS SSF8 and Surgery conflict for Colorectal</message>
            <description><![CDATA[This edit verifies that for cases coded using the Colon or Rectum schemas, if CS Site-Specific Factor 8 (Perineural Invasion) indicates that there was not pathologic examination of the primary site, then RX Summ--Surg Prim Site does not indicate that a specimen was sent to pathology.

Please note that there is another edit, "CS SSF 8, RX Summ--Surg, DX/Stg, ColoRectal (CS)", that is exactly the same as this edit EXCEPT that it also checks the field RX Summ--DX/Stg Proc. It should be used by registries that collect both RX Summ--Surg Prim Site and RX Summ--DX/Stg Proc.


This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 8 is blank or 988
2. RX Summ--Surg prim Site is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.


If CS schema is Colon or Rectum:
- If CS Site-Specific Factor 8 = 998 (No histologic examination), then RX Summ--Surg Prim Site must not be 20-89.]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-08-03" ref="66492">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF379" name="CS SSF 9, Head and Neck Schemas (CS)" tag="N1634" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_9,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Scope_Reg_LN_Sur,Regional_Nodes_Positive">
            <expression><![CDATA[String ssf9 = line.csSiteSpecificFactor9
String regNodesPos = line.regionalNodesPositive
String scopeRegLnSur = line.rxSummScopeRegLnSur
String behav = line.behaviorCodeIcdO3
String schema = line._csSchemaId

if (ssf9 == null || ssf9 == '988' || regNodesPos == null || scopeRegLnSur == null || behav == '0' || behav == '1' || schema == null || !((List)Context.HEAD_AND_NECK_Schemas).contains(schema))
    return true

// condition #1
if (ssf9 == '000' && regNodesPos != '00')
    return false

// condition #2
if (ssf9 == '998' && regNodesPos != '00' && regNodesPos != '95' && regNodesPos != '98')
    return false

// condition #3
if (ssf9 == '999' && regNodesPos!= '98' && regNodesPos != '99')
    return false

return true]]></expression>
            <message>CS SSF9, Nodes and Surgery conflict for Head and Neck</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 9 (Extracapsular Extension Pathologically, Lymph Nodes for Head and Neck), Regional Nodes Positive, and RX Summ--Scope Reg LN Sur are coded consistently for Head and Neck schemas.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 9 is blank or = 988
2. Regional Nodes Positive is blank
3. RX Summ--Scope Reg LN Sur is blank
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

This edit is skipped if CS schema is NOT one of the following Head and Neck schemas:
BuccalMucosa
EpiglottisAnterior
FloorMouth
GumLower
GumOther
GumUpper
Hypopharynx
LarynxGlottic
LarynxOther
LarynxSubglottic
LarynxSupraglottic
LipLower
LipOther
LipUpper
MiddleEar
MouthOther
NasalCavity
Nasopharynx
Oropharynx
PalateHard
PalateSoft
ParotidGland
PharyngealTonsil
PharynxOther
SalivaryGlandOther
SinusEthmoid
SinusMaxillary
SinusOther
SubmandibularGland
TongueAnterior
TongueBase

MelanomaBuccalMucosa
MelanomaEpiglottisAnterior
MelanomaFloorMouth
MelanomaGumLower
MelanomaGumOther
MelanomaGumUpper
MelanomaHypopharynx
MelanomaLarynxGlottic
MelanomaLarynxOther
MelanomaLarynxSubglottic
MelanomaLarynxSupraglottic
MelanomaLipUpper
MelanomaLipLower
MelanomaLipOther
MelanomaMouthOther
MelanomaNasalCavity
MelanomaNasopharynx
MelanomaOropharynx
MelanomaPalateHard
MelanomaPalateSoft
MelanomaPharynxOther
MelanomaSinusEthmoid
MelanomaSinusMaxillary
MelanomaSinusOther
MelanomaTongueAnterior
MelanomaTongueBase


1. If CS Site-Specific Factor 9 = 000 (no lymph nodes involved pathologically), then Regional Nodes Positive must = 00 (all nodes examined negative)

2. If CS Site-Specific Factor 9 = 998 (no pathologic examination of lymph nodes), then Regional Nodes Positive must = 00 (all nodes examined negative), 95 (positive aspiration or core biopsy of lymph nodes) or 98 (no nodes examined)

3. If CS Site-Specific Factor 9 = 999 (unknown if regional lymph nodes involved pathologically), then Regional Nodes Positive must = 98 (no nodes examined) or 99 (unknown if nodes are positive)]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-08-03" ref="66493">Edit created.</event>
                <event version="SE12-008-01" user="murphyr" date="2012-08-09" ref="66713">Rearranged logic for #2B</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-26" ref="66799">Added code to skip the following logic if CS Tumor Size/Ext Eval is 2, 8 or 9:  &apos;If RX Summ-Scope Reg LN Sur = 0 (none), then CS Site-Specific Factor 9 must = 998 or 999&apos;.  Also fixed the error in that code where 988 was used instead of 998.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-08" ref="66901">Issue where the last condidtion wasn&apos;t beign reached.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-10-28" ref="67024">Updated for CSv0205.</event>
                <event version="SE14-012-02" user="depryf" date="2014-07-23" ref="67094">Now allowing reg nodes ex = 00 for CS SSF9 = 998.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-25" ref="67361">Removed logic that used CS Tumor Size/Ext Eval (will be moved to edit IF558).</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-11" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="IF380" name="Histology ICDO3, Grade, Date of DX (SEER)" tag="N1965" java-path="lines.line" category="inter-field" depends="DateDiagnosisEdit,Grade,Histologic_Type_ICD-O-3">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2010' || line.dateOfDiagnosisYear > '2017' ||
    line.grade == null || line.histologicTypeIcdO3 == null)
    return true

if (((List)Context.IF380_Hist_List_1).contains(line.histologicTypeIcdO3))
    return line.grade == '5'

if (((List)Context.IF380_Hist_List_2).contains(line.histologicTypeIcdO3))
    return line.grade == '6'

if (line.histologicTypeIcdO3 == '9714')
    return line.grade == '5' || line.grade == '6'

if (((List)Context.IF380_Hist_List_3).contains(line.histologicTypeIcdO3))
    return line.grade == '8'

if (((List)Context.IF380_Hist_List_4).contains(line.histologicTypeIcdO3))
    return line.grade == '9'

if (line.histologicTypeIcdO3 == '9831')
    return line.grade == '5' || line.grade == '8' || line.grade == '9'

if (((List)Context.IF380_Hist_List_5).contains(line.histologicTypeIcdO3))
    return !(Functions.matches(line.grade, /^[1234]$/))

return true]]></expression>
            <message>Grade and Histology conflict for Date of DX</message>
            <description><![CDATA[This edit validates the coding of grade by histology based on the Hematopoietic and Lymphoid Neoplasm Coding Manual and applies to cases diagnosed 2010-2017.

Sources:
- Hematopoietic and Lymphoid Neoplasm Database & Coding Manual (Appendix E)
- 2015 Implementation Guidelines and Recommendations (Appendix B)

This edit is skipped if any of the following conditions are true:
1. Date of Diagnosis is blank or invalid
2. Year of Date of Diagnosis is less than 2010 or greater than 2017
3. Grade is blank
4. Histologic Type ICD-O-3 is blank

Source: Hematopoietic and Lymphoid Neoplasm Coding Manual, Rule G2
Grade must be 5 for the following Histologic Type ICD-O-3 codes:
 9700, 9701, 9702, 9705, 9708, 9709, 9716, 9717, 9718, 9724, 9725, 9726, 9827, 9834, 9837

Source: Hematopoietic and Lymphoid Neoplasm Coding Manual, Rule G3
Grade must be 6 for the following Histologic Type ICD-O-3 codes:
 9591, 9596, 9597, 9659, 9671, 9673, 9678, 9679, 9680,
 9687, 9688, 9689, 9690, 9691, 9695, 9698, 9699, 9712,
 9731, 9732, 9734, 9737, 9738, 9761, 9762, 9811, 9812, 9813, 9814,
 9815, 9816, 9817, 9818, 9823, 9826, 9833, 9940

Source: Hematopoietic and Lymphoid Neoplasm Coding Manual, Rule G2
Grade must be 5 or 6 for the following Histologic Type ICD-O-3 codes:
 9714

Source: Hematopoietic and Lymphoid Neoplasm Coding Manual, Rule G4
Grade must be 8 for the following Histologic Type ICD-O-3 codes:
 9719, 9948

Source: Hematopoietic and Lymphoid Neoplasm Coding Manual, Rule G1
Grade must be 9 for the following Histologic Type ICD-O-3 codes:
 9740, 9741, 9742, 9751, 9755, 9756, 9757, 9758, 9759, 9801,
 9806, 9807, 9808, 9809, 9875, 9876, 9945, 9946, 9950, 9961,
 9962, 9963, 9964, 9975, 9980, 9982, 9983, 9985, 9986, 9989,
 9991, 9992

Grade must be 5, 8, or 9 for the following Histologic Type ICD-O-3 code:
 9831

Source: Hematopoietic and Lymphoid Neoplasm Database
Grade must not = 1-4 for the following Histologic Type ICD-O-3 codes:
 9590, 9650, 9651, 9652, 9653, 9655, 9663, 9727, 9735, 9800, 9820, 9832, 9840, 9860, 9861, 9863, 9865-9867, 9869, 9870-9874, 9891, 9895-9898, 9910, 9911, 9920, 9930, 9931, 9965, 9966, 9967, 9971]]></description>
            <history>
                <event version="SE12-005-01" user="murphyr" date="2011-08-03" ref="66494">Edit created.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-15" ref="66606">Now allowing grade 5, 8 or 9 for 9831</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-26" ref="66800">Added some conditions for 2012+ cases.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-09" ref="67129">Histology lists updated. New list added for histologies that cannot have a grade of 1-4.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-25" ref="67728">Limit to cases diagnosed from 2010 to 2017.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF381" name="CS Lymph Nodes, Nodes Pos, MerkelCell Schemas (CS)" tag="N1580" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,Regional_Nodes_Positive">
            <expression><![CDATA[if (line.csLymphNodes == null || line.regionalNodesPositive == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line._csSchemaId == null)
    return true

if (line._csSchemaId == 'merkel_cell_scrotum' || line._csSchemaId == 'merkel_cell_skin') {
    if (Functions.matches(line.csLymphNodes, /(^3[245]0$)/))
        return line.regionalNodesPositive != '00' && line.regionalNodesPositive != '98'
}
else if (line._csSchemaId == 'merkel_cell_penis') {
    if (Functions.matches(line.csLymphNodes, /(^1[245]0$)/))
        return line.regionalNodesPositive != '00' && line.regionalNodesPositive != '98'
}
else if (line._csSchemaId == 'merkel_cell_vulva') {
    if (Functions.matches(line.csLymphNodes, /(^1[12]5|120$)/))
        return line.regionalNodesPositive != '00' && line.regionalNodesPositive != '98'
}

return true]]></expression>
            <message>CS Lymph Nodes &amp; Reg Nodes Pos conflict for MerkelCell Schemas</message>
            <description><![CDATA[The purpose of this edit is to compare CS Lymph Nodes and Regional Nodes Positive for cases coded using the MerkelCell schemas.


If CS schema is MerkelCellScrotum, MerkelCellSkin, MerkelCellPenis, or MerkelCellVulva:

1. If CS schema is MerkelCellScrotum or MerkelCellSkin:
then
If CS Lymph Nodes = 320, 340, 350 (evaluated pathologically)
then
Regional Nodes Positive must not = 00 or 98 (codes
indicating no nodes positive pathologically)

2. If CS schema is MerkelCellPenis:
then
If CS Lymph Nodes = 120, 140, 150 (evaluated pathologically)
then
Regional Nodes Positive must not = 00 or 98

3. If CS schema is MerkelCellVulva:
then
If CS Lymph Nodes = 115, 120, 125 (evaluated pathologically)
then
Regional Nodes Positive must not = 00 or 98


This edit is skipped if any of the following conditions are true:
1. CS Lymph Nodes is empty
2. Regional Nodes Positive is empty
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE12-006-01" user="murphyr" date="2011-12-15" ref="66562">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="IF382" name="CS SSF 10, SSF 16, Testis (CS)" tag="N1582" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_10,CS_Site-Specific_Factor_16,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor10 == '988' || line.csSiteSpecificFactor10 == null ||
    line._csSchemaId == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'testis' && Functions.matches(line.csSiteSpecificFactor10, /(^99[56]$)/))
    return !(Functions.matches(line.csSiteSpecificFactor16, /(^99[89]$)/))

return true]]></expression>
            <message>CS SSF 10 &amp; SSF 16 conflict for Testis schema</message>
            <description><![CDATA[This edit verifies that for cases using the Testis schema, if SSF 10 [Pre-Orchiectomy Lactate Dehydrogenase (LDH) Range] indicates initial LDH recorded in SSF 16 [Post-Orchiectomy Lactate Dehydrogenase (LDH) Range], then SSF 16 must indicate actual results and cannot = 998 (test not done) or 999 (unknown or no information).

If CS schema is Testis:
1. If CS Site-Specific Factor10 = 995 or 996 (Initial LDH recorded in CS Site-Specific Factor16), then CS Site-Specific Factor16 must not = 998 (test not done) or 999 (unknown or no information).

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor10 is blank or 988
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
3. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE12-006-01" user="murphyr" date="2011-12-21" ref="66563">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF383" name="CS SSF 12, SSF 13, Testis (CS)" tag="N1583" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_12,CS_Site-Specific_Factor_13,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor12 == '988' || line.csSiteSpecificFactor12 == null ||
    line.csSiteSpecificFactor13 == '988' || line.csSiteSpecificFactor13 == null ||
    line._csSchemaId == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'testis') {
    if (line.csSiteSpecificFactor12 == '998')
        return line.csSiteSpecificFactor13 == '998'
    if (line.csSiteSpecificFactor13 == '998')
        return line.csSiteSpecificFactor12 == '998'
}

return true]]></expression>
            <message>CS SSF 12 &amp; SSF 13 conflict for Testis schema</message>
            <description><![CDATA[This edit verifies that for cases using the Testis schema, SSF 12 [Post-Orchiectomy Alpha Fetoprotein (AFP) Lab Value] and SSF 13 [Post-Orchiectomy Alpha Fetoprotein (AFP) Range] are coded consistently. That is, if one specifies "test not done", the other must also specify "test not done".

If CS schema is Testis:
1. If CS Site-Specific Factor12 = 998 (test not done), then CS Site-Specific Factor13 must = 998 (test not done).
2. If CS Site-Specific Factor13 = 998, then CS Site-Specific Factor12 must = 998.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor12 is blank or 988
2. CS Site-Specific Factor13 is blank or 988
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE12-006-01" user="murphyr" date="2011-12-21" ref="66564">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF384" name="CS SSF 14, SSF 15, Testis (CS)" tag="N1584" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_14,CS_Site-Specific_Factor_15,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor14 == '988' || line.csSiteSpecificFactor14 == null ||
    line.csSiteSpecificFactor15 == '988' || line.csSiteSpecificFactor15 == null ||
    line._csSchemaId == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'testis') {
    if (line.csSiteSpecificFactor14 == '998')
        return line.csSiteSpecificFactor15 == '998'
    if (line.csSiteSpecificFactor15 == '998')
        return line.csSiteSpecificFactor14 == '998'
}

return true]]></expression>
            <message>CS SSF 14 &amp; SSF 15 conflict for Testis schema</message>
            <description><![CDATA[This edit verifies that for cases using the Testis schema, SSF 14 [Post-Orchiectomy Human Chorionic Gonadotropin (hCG) Lab Value] and SSF 15 [Post-Orchiectomy Human Chorionic Gonadotropin (hCG) Range] are coded consistently. That is, if one specifies "test not done", the other must also specify "test not done".

If CS schema is Testis:
1. If CS Site-Specific Factor14 = 998 (test not done), then CS Site-Specific Factor15 must = 998 (test not done).
2. If CS Site-Specific Factor15 = 998, then CS Site-Specific Factor14 must = 998.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor14 is blank or 988
2. CS Site-Specific Factor15 is blank or 988
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE12-006-01" user="murphyr" date="2011-12-21" ref="66565">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF385" name="CS SSF 5, Lymph Nodes, Testis (CS)" tag="N1585" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_5,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor5 == '988' || line.csSiteSpecificFactor5 == null ||
    line.csLymphNodes == null ||
    line._csSchemaId == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'testis') {
    if (line.csSiteSpecificFactor5 == '000')
        return line.csLymphNodes == '000'
    if (Functions.matches(line.csSiteSpecificFactor5, /(^0[12]\d|030$)/))
        return Functions.matches(line.csLymphNodes, /(^[1-7]\d\d|800$)/)
    if (line.csLymphNodes == '510')
        return Functions.matches(line.csSiteSpecificFactor5, /(^010|999$)/)
    if (line.csLymphNodes == '520')
        return Functions.matches(line.csSiteSpecificFactor5, /(^020|999$)/)
    if (line.csLymphNodes == '530')
        return Functions.matches(line.csSiteSpecificFactor5, /(^030|999$)/)
}

return true]]></expression>
            <message>CS SSF5 and Lymph Nodes conflict for Testis schema</message>
            <description><![CDATA[This edit verifies that for cases using the Testis schema, SSF 5 (Size of Metastasis in Lymph Nodes) and CS Lymph Nodes are coded consistently.

If CS schema is Testis:
1. If CS Site-Specific Factor 5 = 000 (no regional lymph nodes involved), then
CS Lymph Nodes must = 000 (no regional lymph nodes involved)

2. If CS Site-Specific Factor 5 = 010-030 (regional lymph nodes involved), then
CS Lymph Nodes must = 100-800 (regional nodes involved)

3.
a. IF CS Lymph Nodes = 510 (stated as N1), then CS Site-Specific Factor 5 must = 010 or 999.
b. IF CS Lymph Nodes = 520 (stated as N2), then CS Site-Specific Factor 5 must = 020 or 999.
c. IF CS Lymph Nodes = 530 (stated as N3), then CS Site-Specific Factor 5 must = 030 or 999.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 5 is blank or 988
2. CS Lymph Nodes is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE12-006-01" user="murphyr" date="2011-12-21" ref="66566">Edit created.</event>
                <event version="SE12-006-02" user="murphyr" date="2012-01-09" ref="66651">Fixed error message.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF386" name="CS SSF 6, SSF 12, Testis (CS)" tag="N1586" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_12,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_6,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor6 == '988' || line.csSiteSpecificFactor6 == null ||
    line._csSchemaId == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'testis' && Functions.matches(line.csSiteSpecificFactor6, /(^99[56]$)/))
    return !(Functions.matches(line.csSiteSpecificFactor12, /(^99[89]$)/))

return true]]></expression>
            <message>CS SSF 6 and SSF 12 conflict for Testis schema</message>
            <description><![CDATA[This edit verifies that for cases using the Testis schema, if SSF 6 [Pre-Orchiectomy Alpha Fetoprotein (AFP) Lab Value] indicates initial AFP recorded in SSF 12 [Post-Orchiectomy Alpha Fetoprotein (AFP) Lab Value], then SSF 12 must indicate actual results and cannot = 998 (test not done) or 999 (unknown or no information).

If CS schema is Testis:
1. If CS Site-Specific Factor 6 = 995 or 996 (Initial AFP recorded in CS Site-Specific Factor12), then CS Site-Specific Factor12 must not = 998 (test not done) or 999 (unknown or no information).

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 6 is blank or 988
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
3. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE12-006-01" user="murphyr" date="2011-12-21" ref="66567">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF387" name="CS SSF 6, SSF 7, Testis (CS)" tag="N1587" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_6,CS_Site-Specific_Factor_7,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor6 == '988' || line.csSiteSpecificFactor6 == null ||
    line.csSiteSpecificFactor7 == '988' || line.csSiteSpecificFactor7 == null ||
    line._csSchemaId == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'testis') {
    if (line.csSiteSpecificFactor6 == '998')
        return line.csSiteSpecificFactor7 == '998'
    if (line.csSiteSpecificFactor7 == '998')
        return line.csSiteSpecificFactor6 == '998'
}

return true]]></expression>
            <message>CS SSF6 and SSF 7 conflict for Testis schema</message>
            <description><![CDATA[This edit verifies that for cases using the Testis schema, SSF 6 [Pre-Orchiectomy Alpha Fetoprotein (AFP) Lab Value] and SSF 7 [Pre-Orchiectomy Alpha Fetoprotein (AFP) Range] are coded consistently. That is, if one specifies "test not done", the other must also specify "test not done".

If CS schema is Testis:
1. If CS Site-Specific Factor 6 = 998 (test not done), then CS Site-Specific Factor 7 must = 998 (test not done).
2. If CS Site-Specific Factor 7 = 998, then CS Site-Specific Factor 6 must = 998.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 6 is blank or 988
2. CS Site-Specific Factor 7 is blank or 988
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE12-006-01" user="murphyr" date="2011-12-21" ref="66568">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF388" name="CS SSF 7, SSF 13, Testis (CS)" tag="N1588" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_13,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_7,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor7 == '988' || line.csSiteSpecificFactor7 == null ||
    line._csSchemaId == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'testis' && Functions.matches(line.csSiteSpecificFactor7, /(^99[56]$)/))
    return !(Functions.matches(line.csSiteSpecificFactor13, /(^99[89]$)/))

return true]]></expression>
            <message>CS SSF7 &amp; SSF 13 conflict for Testis schema</message>
            <description><![CDATA[This edit verifies that for cases using the Testis schema, if SSF 7 [Pre-Orchiectomy Alpha Fetoprotein (AFP) Range] indicates initial AFP recorded in SSF 13 [Post-Orchiectomy Alpha Fetoprotein (AFP) Range], then SSF 13 must indicate actual results and cannot = 998 (test not done) or 999 (unknown or no information).

If CS schema is Testis:
1. If CS Site-Specific Factor 7 = 995 or 996 (Initial AFP recorded in CS Site-Specific Factor13), then CS Site-Specific Factor13 must not = 998 (test not done) or 999 (unknown or no information).

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 7 is blank or 988
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
3. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE12-006-01" user="murphyr" date="2011-12-21" ref="66569">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF389" name="CS SSF 8, SSF 14, Testis (CS)" tag="N1589" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_14,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_8,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor8 == '988' || line.csSiteSpecificFactor8 == null ||
    line._csSchemaId == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'testis' && Functions.matches(line.csSiteSpecificFactor8, /(^99[56]$)/))
    return !(Functions.matches(line.csSiteSpecificFactor14, /(^99[89]$)/))

return true]]></expression>
            <message>CS SSF8 &amp; SSF 14 conflict for Testis schema</message>
            <description><![CDATA[This edit verifies that for cases using the Testis schema, if SSF 8 [Pre-Orchiectomy Human Chorionic Gonadotropin (hCG) Lab Value] indicates initial hCG recorded in SSF 14 [Post-Orchiectomy Human Chorionic Gonadotropin (hCG) Lab Value], then SSF 14 must indicate actual results and cannot = 998 (test not done) or 999 (unknown or no information).

If CS schema is Testis:
1. If CS Site-Specific Factor 8 = 995 or 996 (Initial hCG recorded in CS Site-Specific Factor14), then CS Site-Specific Factor14 must not = 998 (test not done) or 999 (unknown or no information).

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 8 is blank or 988
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
3. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE12-006-01" user="murphyr" date="2011-12-21" ref="66570">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF390" name="CS SSF 8, SSF 9, Testis (CS)" tag="N1590" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_8,CS_Site-Specific_Factor_9,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor8 == '988' || line.csSiteSpecificFactor8 == null ||
    line.csSiteSpecificFactor9 == '988' || line.csSiteSpecificFactor9 == null ||
    line._csSchemaId == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'testis') {
    if (line.csSiteSpecificFactor8 == '998')
        return line.csSiteSpecificFactor9 == '998'
    if (line.csSiteSpecificFactor9 == '998')
        return line.csSiteSpecificFactor8 == '998'
}

return true]]></expression>
            <message>CS SSF 8 &amp; SSF 9 conflict for Testis schema</message>
            <description><![CDATA[This edit verifies that for cases using the Testis schema, SSF 8 [Pre-Orchiectomy Human Chorionic Gonadotropin (hCG) Lab Value] and SSF 9 [Pre-Orchiectomy Human Chorionic Gonadotropin (hCG) Range] are coded consistently. That is, if one specifies "test not done", the other must also specify "test not done".

If CS schema is Testis:
1. If CS Site-Specific Factor 8 = 998 (test not done), then CS Site-Specific Factor 9 must = 998 (test not done).
2. If CS Site-Specific Factor 9 = 998, then CS Site-Specific Factor 8 must = 998.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 8 is blank or 988
2. CS Site-Specific Factor 9 is blank or 988
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE12-006-01" user="murphyr" date="2011-12-21" ref="66571">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF391" name="CS SSF 9, SSF 15, Testis (CS)" tag="N1591" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_15,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_9,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor9 == '988' || line.csSiteSpecificFactor9 == null ||
    line._csSchemaId == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'testis' && Functions.matches(line.csSiteSpecificFactor9, /(^99[56]$)/))
    return !(Functions.matches(line.csSiteSpecificFactor15, /(^99[89]$)/))

return true]]></expression>
            <message>CS SSF 9 &amp; SSF 15 conflict for Testis schema</message>
            <description><![CDATA[This edit verifies that for cases using the Testis schema, if SSF 9 [Pre-Orchiectomy Human Chorionic Gonadotropin (hCG) Range] indicates initial hCG recorded in SSF 15 [Post-Orchiectomy Human Chorionic Gonadotropin (hCG) Range], then SSF 15 must indicate actual results and cannot = 998 (test not done) or 999 (unknown or no information).

If CS schema is Testis:
1. If CS Site-Specific Factor 9 = 995 or 996 (Initial hCG recorded in CS Site-Specific Factor15), then CS Site-Specific Factor15 must not = 998 (test not done) or 999 (unknown or no information).

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 9 is blank or 988
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
3. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE12-006-01" user="murphyr" date="2011-12-21" ref="66572">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF392" name="CS TS/Ext Eval, Surg/Rad Seq, Prostate (CS)" tag="N1578" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,CS_Tumor_Size_Ext_Eval,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Surg-Rad_Seq">
            <expression><![CDATA[if (line.csTumorSizeExtEval == null || line.rxSummSurgRadSeq == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId == null)
    return true

if (line._csSchemaId == 'prostate' && line.csTumorSizeExtEval == '4')
    return !(Functions.matches(line.rxSummSurgRadSeq, /(^2|4$)/))

return true]]></expression>
            <message>CS TS/Ext Eval &amp; Surg/Rad Seq conflict for Prostate schema</message>
            <description><![CDATA[This edit verifies that for cases coded using the CS Prostate schema, if CS Tumor Size/Ext Eval indicates prostatectomy performed WITHOUT pre-surgical systemic treatment or radiation, then the surgery/radiation sequence field must NOT indicate radiation given before surgery.

If CS schema is Prostate:
If CS Tumor Size/Ext Eval = 4 (prostatectomy performed WITHOUT pre-surgical systemic treatment or radiation), then RX Summ--Surg/Rad Seq must not = 2 or 4 (radiation given before surgery)

This edit is skipped if any of the following conditions are true:
1. CS Tumor Size/Ext Eval is empty
2. RX Summ--Surg/Rad Seq is empty
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS Schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE12-006-01" user="murphyr" date="2011-12-21" ref="66573">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67741">Edit name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF393" name="CS TS/Ext Eval, Sys/Surg Seq, Prostate (CS)" tag="N1579" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,CS_Tumor_Size_Ext_Eval,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csTumorSizeExtEval == null || line.rxSummSystemicSurSeq == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId == null)
    return true

if (line._csSchemaId == 'prostate' && line.csTumorSizeExtEval == '4')
    return !(Functions.matches(line.rxSummSystemicSurSeq, /(^2|4$)/))

return true]]></expression>
            <message>CS TS/Ext Eval &amp; Sys/Surg Seq conflict for Prostate schema</message>
            <description><![CDATA[This edit verifies that for cases coded using the CS Prostate schema, if CS Tumor Size/Ext Eval indicates prostatectomy performed WITHOUT pre-surgical systemic treatment or radiation, then the systemic therapy/surgery sequence field must NOT indicate systemic therapy given before surgery.

If CS schema is Prostate:
If CS Tumor Size/Ext Eval = 4 (prostatectomy performed WITHOUT pre-surgical systemic treatment or radiation), then RX Summ--Systemic/Sur Seq must not = 2 or 4 (systemic therapy given before surgery)

This edit is skipped if any of the following conditions are true:
1. CS Tumor Size/Ext Eval is empty
2. RX Summ--Systemic/Sur Seq is empty
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS Schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE12-006-01" user="murphyr" date="2011-12-21" ref="66574">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67741">Edit name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF394" name="CS Verify CStage Version 0205xx (CS)" tag="N1800" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[return line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear > '2017' || Functions.getCsVersion() ==~ /(^0205\d\d$)/]]></expression>
            <message>CStage DLL must be 0205</message>
            <description><![CDATA[The purpose of this edit is to ensure that the correct CStage DLL is being used. This edit is skipped for diagnosis date > 2017, blank, or invalid. 

The first four digits of the CS version returned from a function call to the CStage DLL must = '0205'.]]></description>
            <history>
                <event version="SE12-006-01" user="murphyr" date="2011-12-22" ref="66575">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2013-01-25" ref="66826">Edit name changed.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-07" ref="66954">Edit updated for Csv0205.</event>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-22" ref="67919">Edit now skips 2018+ cases.</event>
            </history>
        </rule>
        <rule id="IF395" name="Sequence number and year of diagnosis conflict (IF395)" tag="S006" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[return line.dateOfDiagnosisYear == null || (!(Functions.matches(line.sequenceNumberCentral, /(^6\d|7\d|8[0-8]$)/) && line.dateOfDiagnosisYear < '2003'))]]></expression>
            <message>Sequence number and year of diagnosis conflict.</message>
            <description><![CDATA[This edit is skipped if Year of Diagnosis is empty.

Sequence Number-Central codes of 60-88 are only valid for cases diagnosed 2003+.]]></description>
            <history>
                <event version="SE12-008-01" user="murphyr" date="2012-08-09" ref="66679">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-20" ref="66776">Edited name to include edit id.</event>
                <event version="SE14-011-03" user="depryf" date="2014-03-24" ref="67075">Edit is now skipped when DX year is missing.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF396" name="CS SSF 25, PeritoneumFemaleGen (SEER)" tag="N2373" java-path="lines.line" category="inter-field" depends="CS_Extension,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,Sex,Year_of_Diagnosis">
            <expression><![CDATA[String dxYear = line.dateOfDiagnosisYear
if (line.primarySite == null || line.histologicTypeIcdO3 == null ||
    dxYear == null || dxYear < '2004' || dxYear > '2017' || ((dxYear == '2016' || dxYear == '2017') && line.csExtension == null))
    return true

Integer hist = Functions.asInt(line.histologicTypeIcdO3)
if (Functions.matches(line.primarySite, /(^C48[128]$)/) &&
    (Functions.between(hist, 8000, 8576) || Functions.between(hist, 8590, 8671) ||
     Functions.between(hist, 8930, 8934) || Functions.between(hist, 8940, 9110)) &&
     (line.sex == '2' || line.sex == '6'))
     return Functions.matches(line.csSiteSpecificFactor25, /(^002|100$)/)

return true]]></expression>
            <message>CS Schema and Sex conflict</message>
            <description><![CDATA[The purpose of this edit is to verify that Sex and CS Site-Specific Factor 25 are coded consistently for PeritoneumFemaleGen cases.

If Primary Site = C481, C482 or C488
AND Histologic Type ICD-O-3 = 8000-8576, 8590-8671, 8930-8934 or 8940-9110
AND (Sex = 2 (female) or 6 (Transsexual; natal female))
THEN
CS Site-Specific Factor 25 must = 002 (female) or 100 (obsolete data retained v0200).

This edit is skipped if any of the following conditions are true:
1. Primary Site is empty.
2. Histologic Type ICD-O-3 is empty
3. Year of Date of Diagnosis is empty, less than 2004, or greater than 2017
4. Year of Date of Diagnosis is 2016-2017 and CS Extension is empty]]></description>
            <history>
                <event version="SE12-008-01" user="murphyr" date="2012-08-08" ref="66709">Edit created.</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-20" ref="66776">Edited name to include edit id.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-12" ref="67324">Added skip condition for 2016 cases, added new sex code (6).</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-08" ref="67570">Edit now skips 2017 cases that do not collect CS.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-22" ref="67923">Edit now skips all 2018+ cases.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE23-023-02" user="shearerw" date="2023-05-04" ref="69268">Edit name and tag changed.</event>
            </history>
        </rule>
        <rule id="IF400" name="Birthplace--Country, Birthplace--State (NAACCR)" tag="N1672" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.birthplaceCountry == null || line.birthplaceState == null)
    return true

if (line.birthplaceState == 'XX' && line.birthplaceCountry == 'ZZX')
    return false

if (((Map)((Map)Context.Country_State).getOrDefault(line.birthplaceCountry, [:])).containsKey(line.birthplaceState))
    return true

return false]]></expression>
            <message>Birthplace--Country and Birthplace--State conflict</message>
            <description><![CDATA[This edit is skipped if any of the fields are blank.

This edit verifies that the Birthplace--State code is valid for the Birthplace--Country.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE13-009-03" user="murphyr" date="2013-04-15" ref="66846">Removed the dependencies on &apos;Birthplace_Country&apos; and &apos;Birthplace_State&apos;.</event>
                <event version="SE13-009-03" user="murphy" date="2013-04-15" ref="66849">Updated Country_State table.</event>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-09" ref="67122">Country_State table updated. Edit no longer allows Birthplace--State XX with Birthplace--Country ZZX.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-03" ref="67742">Name change.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="IF401" name="Birthplace--State, Date of Diagnosis (NAACCR)" tag="N1693" java-path="lines.line" category="inter-field" depends="DateDiagnosisEdit">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (Functions.asInt(line.dateOfDiagnosisYear) > 2012) {
    if (['NN','MM','PP','XN'].contains(line.birthplaceState))
        return false
}

return true]]></expression>
            <message>Birthplace--State cannot be NN, MM, PP, or XN if Date of Diagnosis is greater than 2012</message>
            <description><![CDATA[This edit is skipped if either field is blank.

If year of Date of Diagnosis is 2013 or later, then Birthplace--State cannot be any of the following "historic" codes:

NN    New England and New Jersey
MM    Maritime Provinces
PP    Prairie Provinces
YN    Yukon and Northwest Territories]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE13-009-03" user="murphyr" date="2013-04-15" ref="66846">Removed the dependencies on &apos;Birthplace_Country&apos; and &apos;Birthplace_State&apos;.</event>
            </history>
        </rule>
        <rule id="IF403" name="CS Ext, Surg, TS/Ext Eval, Prostate (CS)" tag="N1744" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_25,CS_Tumor_Size_Ext_Eval,DateDiagnosisEdit,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Surg_Prim_Site">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || Functions.asInt(line.dateOfDiagnosisYear) < 2012)
    return true

if (line.csExtension == null || line.rxSummSurgPrimSite == null || line.csTumorSizeExtEval == null)
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'prostate')
    return true

Integer csExtensionInt = Functions.asInt(line.csExtension)
Integer rxSummSurgPrimSiteInt = Functions.asInt(line.rxSummSurgPrimSite)
if (csExtensionInt >= 100 && csExtensionInt <= 150) {
    if (rxSummSurgPrimSiteInt >= 0 && rxSummSurgPrimSiteInt <= 29) {
        if (line.csTumorSizeExtEval != '1' && line.csTumorSizeExtEval != '3')
            return false
    }
}

return true]]></expression>
            <message>CS TS/Ext Eval cannot be 1 or 3 when schema is Prostate and RX Summ--Surg Prim Site and CS Extension have certain values</message>
            <description><![CDATA[This edit verifies that, for cases coded using the CS Prostate schema, if CS Extension indicates incidental findings on TURP or needle biopsy, and surgery indicate TURP or other non-prostatectomy procedures, then CS Tumor Size/Ext Eval must indicate no prostatectomy done.

In order to eliminate the need for retrospective review, this edit applies only to cases diagnosed 2012 or later. Although this edit could be applied to all cases, a decision was made that the edit was not warranted for pre-2012 cases.

If CS Extension = 100-150 (incidental findings on TURP or needle biopsy), and RX Summ-Surg Prim < 30 (TURP or other non-prostatectomy procedures), then CS TS/Ext Eval must = 1 (no prostatectomy done) or 3 (no prostatectomy done, but evidence derived from autopsy).

This edit is skipped if any of the following conditions are true:
1. Year of Diagnosis is less than 2012, blank, or invalid
2. Schema is not C619 (prostate)
3. CS Extension is blank
4. RX Summ--Surg Prim Site is blank
5. CS TS/Ext Eval is blank
6. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF404" name="CS Ext,TS/Ext Eval, SSF 1, MelanomaConjunc (CS)" tag="N1707" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_1,CS_Site-Specific_Factor_25,CS_Tumor_Size_Ext_Eval,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || Functions.asInt(line.dateOfDiagnosisYear) < 2010)
    return true

if (line.csExtension == null)
    return true

if (line.csSiteSpecificFactor1 == null || line.csSiteSpecificFactor1 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'melanoma_conjunctiva')
    return true

if (['300','310','315','320','330','335','445','450','470','475','480','485','490','500'].contains(line.csExtension)
    && (['2','3','6','8'].contains(line.csTumorSizeExtEval))) {
        if (line.csSiteSpecificFactor1 == '000' || line.csSiteSpecificFactor1 == '998')
            return false
}

if (['325','495'].contains(line.csExtension) && ['2','3','6','8'].contains(line.csTumorSizeExtEval))
    return false

return true]]></expression>
            <message>CS Extension, Tumor Size/Ext Eval, and Site-Specific Factor 1 combination for MelanomaConjunctive schema failed to derive stage</message>
            <description><![CDATA[This edit applies to AJCC 7 stage only.

This edit generates an error for CS Extension, Tumor Size/Ext Eval and Site-Specific Factor 1 (tumor size) combinations for the MelanomaConjunctive schema that result in a failure to derive stage. It applies only to cases diagnosed 2010 and later.

If schema is MelanomaConjunctiva:

An error will be generated under the following conditions:
1.  If CS Extension code = 300, 310, 315, 320, 330, 335,
       445, 450, 470, 475, 480, 485, 490 or 500 (codes requiring
       CS Site-Specific Factor 1 to generate pathologic T value)
    AND CS Tumor Size/Ext Eval = 2, 3, 6, or 8
    AND CS Site-Specific Factor 1 = 000 or 998

2.  If CS Extension code = 325 or 495 (codes generating only
    clinical T value)
    AND CS Tumor Size/Ext Eval = 2, 3, 6 or 8

This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is blank, invalid or less than 2010
2. CS Extension  is empty
3. CS Site-Specific Factor 1 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF405" name="CS Extension, Histology, Grade, Thyroid (CS)" tag="N1715" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_25,Grade,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || Functions.asInt(line.dateOfDiagnosisYear) < 2010)
    return true

if (line.csExtension == null || line.grade == null)
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'thyroid')
    return true

if (((List)Context.IF405_Hist_List).contains(Functions.asInt(line.histologicTypeIcdO3)) && line.grade == '4') {
    if (['405','410','415','420','490'].contains(line.csExtension))
        return false
}
if (['8020','8021','8030','8031','8032'].contains(line.histologicTypeIcdO3)) {
    if (['405','410','415','420','490'].contains(line.csExtension))
        return false
}

return true]]></expression>
            <message>Histology, Grade, and CS Extension combination for the Thyroid schema failed to derive stage</message>
            <description><![CDATA[This edit applies to AJCC 7 stage only.

This edit generates an error for histology, grade and CS Extension combinations for the Thyroid schema that result in a failure to derive stage. It applies only to cases diagnosed 2010 and later.

This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is blank, invalid or less than 2010
2. Grade is blank
3. CS Extension is empty
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If schema is Thyroid:
  An error will be generated under the following conditions:

  If [Histologic Type ICD-O-3 = 8000-8019, 8022-8029, 8033, 8074, 8153, 8240,
  8300, 8392, 8413, 8525, 8576, 8490, 8950, 8980, or 8981 (anaplastic
  carcinoma and synomyms) AND Grade = 4]
  OR [Histologic Type ICD-O-3 = 8020, 8021, 8030, 8031, or 8032]

  AND
  CS Extension = 405 (stated as T1a), 410 (stated as T1b),
  415 (stated as T1NOS), 420 (stated as T2), or 490 (stated as T3)]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF406" name="CS Extension, SSF 1, Conjunctiva Schema (CS)" tag="N1708" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_1,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || Functions.asInt(line.dateOfDiagnosisYear) < 2010)
    return true

if (line.csExtension == null)
    return true

if (line.csSiteSpecificFactor1 == null || line.csSiteSpecificFactor1 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'conjunctiva')
    return true

if (Functions.matches(line.csExtension, /(^(1[1245]0|350)$)/)) {
    if (line.csSiteSpecificFactor1 == '000')
        return false
}

return true]]></expression>
            <message>CS Extension and Site-Specific Factor 1 combination for the Conjunctiva schema failed to derive stage</message>
            <description><![CDATA[This edit applies to AJCC 7 stage only.

This edit generates an error for CS Extension and Site-Specific Factor 1 (tumor size) combinations for the Conjunctiva schema that result in a failure to derive stage. It applies only to cases diagnosed 2010 and later.

If schema is Conjunctiva:
  An error will be generated under the following conditions:
    If CS Extension code = 110, 120, 140, 150 or 350 (codes requiring
    tumor size to derive T value)
    AND CS Site-Specific Factor 1 = 000 (no mass/tumor found)

This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is blank, invalid or less than 2010
2. CS Extension  is empty
3. CS Site-Specific Factor 1 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF407" name="CS Extension, SSF 2, KidneyRenalPelvis (CS)" tag="N1698" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_2,CS_Site-Specific_Factor_25,CS_Tumor_Size_Ext_Eval,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csExtension == null || line.csSiteSpecificFactor2 == null)
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'kidney_renal_pelvis')
    return true

if (line.csExtension == '600' && ['3','6'].contains(line.csTumorSizeExtEval)) {
    if (['000','999'].contains(line.csSiteSpecificFactor2))
       return false
}

if (line.primarySite == 'C659') {
    Integer ssf2Int = Functions.asInt(line.csSiteSpecificFactor2)
    Integer extInt = Functions.asInt(line.csExtension)
    if ((ssf2Int >= 1 && ssf2Int <= 980) || ssf2Int == 991) {
        if ((extInt >= 50 && extInt <= 400) || extInt == 610 || extInt == 950 || extInt == 999)
            return false
    }
}

return true]]></expression>
            <message>CS Extension and CS Site-Specific Factor 2 are not coded consistently for the KidneyRenalPelvis</message>
            <description><![CDATA[This edit verifies that for cases coded using the KidneyRenalPelvis schema, CS Extension and CS Site-Specific Factor 2 (depth of renal parenchymal invasion) are coded consistently.

This edit is skipped if any of the following conditions are true:
1. CS Extension is blank
2. Site-Specific Factor 2 is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

For cases using the KidneyRenalPelvis schema:

1.  If CS Extension = 600 (for renal pelvis only: ipsilateral kidney
    parenchyma and kidney, NOS    )
    AND CS Tumor Size/Ext Eval= 3 or 6 (codes indicating pathologic
    staging, excluding autopsy)
    Then
        CS Site-Specific Factor 2 must not = 000 (renal parenchymal invasion
        not present/not identified) or 999 (unknown)

2.  If Primary Site = C659 (Renal pelvis)
    AND CS Site-Specific Factor 2 = 001-980 or 991 (codes indicating
       positive statement about invasion)
    THEN
        CS Extension must not = 050-400, 610, 950, 999]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF408" name="CS Extension, SSF 2, Lung Schema (CS)" tag="N1745" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_2,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csExtension == null || line.csSiteSpecificFactor2 == null ||
    line.csSiteSpecificFactor2 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'lung')
    return true

Integer extInt = Functions.asInt(line.csExtension)
if (extInt >= 0 && extInt <= 410) {
    if (!(['000','998','999'].contains(line.csSiteSpecificFactor2)))
        return false
}

if (Functions.matches(line.csSiteSpecificFactor2, /(^0[124]0$)/)) {
    if (!(extInt >= 420 && extInt <= 810) && extInt != 999)
        return false
}

if (line.csSiteSpecificFactor2 == '030') {
    if (!(extInt >= 600 && extInt <= 810) && extInt != 999)
        return false
}

return true]]></expression>
            <message>Extension and SSF 2 are not coded consistently for Lung</message>
            <description><![CDATA[This edit verifies that for cases coded using the Lung schema, extension and SSF 2 (pleural/elastic layer invasion) are coded consistently.  If SSF 2 is coded, a path report is required.

If schema is Lung:
1. If CS Extension code = 000-410 (410 = Extension to but not into pleura, including invasion of elastic layer BUT not through the elastic layer)
   then CS Site-Specific Factor 2 must = 000 (no evidence of visceral invasion),998 (no histologic examination), or 999 (unknown if PL present)
2. If CS Site-Specific Factor 2 = 010, 020, 040 (codes indicating involvement of pleura or more extensive involvement).
   then CS Extension must = 420-810 or 999.
3. If CS Site-Specific Factor 2 = 030 (involvement of parietal pleura)
   then CS Extension must = 600-810 (involvement of parietal pleura or more extensive involvement) or 999.

This edit is skipped if any of the following conditions are true:
1. CS Extension  is empty
2. CS Site-Specific Factor 2 is blank or 988
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF409" name="CS Extension, SSF 2, MelanomaChoroid (CS)" tag="N1709" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_2,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || Functions.asInt(line.dateOfDiagnosisYear) < 2010)
    return true

if (line.csExtension == null || line.csSiteSpecificFactor2 == null ||
    line.csSiteSpecificFactor2 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'melanoma_choroid')
    return true

if (Functions.matches(line.csExtension, /(^1[5678]0$)/)) {
    if (line.csSiteSpecificFactor2 == '000')
        return false
}

return true]]></expression>
            <message>CS Extension and Site-Specific Factor 2 combination for the MelanomaChoroid schema fails to derive stage</message>
            <description><![CDATA[This edit applies to AJCC 7 stage only.

This edit generates an error for CS Extension and Site-Specific Factor 2 (measured basal diameter) combinations for the MelanomaChoroid schema that result in a failure to derive stage. It applies only to cases diagnosed 2010 and later.

If schema is MelanomaChoroid:
  An error will be generated under the following conditions:
    If CS Extension code = 150, 160, 170 or 180 (codes requiring
    CS Site-Specific Factor 2 to derive T value)
    AND CS Site-Specific Factor 2 = 000 (no mass/tumor found)

This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is blank, invalid or less than 2010
2. CS Extension  is empty
3. CS Site-Specific Factor 2 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF410" name="CS Extension, SSF 2, MelanomaCiliaryBody (CS)" tag="N1710" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_2,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || Functions.asInt(line.dateOfDiagnosisYear) < 2010)
    return true

if (line.csExtension == null || line.csSiteSpecificFactor2 == null ||
    line.csSiteSpecificFactor2 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'melanoma_ciliary_body')
    return true

if (Functions.matches(line.csExtension, /(^1[68]0$)/)) {
    if (line.csSiteSpecificFactor2 == '000')
        return false
}

return true]]></expression>
            <message>CS Extension and Site-Specific Factor 2 combination for MelanomaCiliaryBody fails to derive stage</message>
            <description><![CDATA[This edit applies to AJCC 7 stage only.

This edit generates an error for CS Extension and Site-Specific Factor 2 (measured basal diameter) combinations for the MelanomaCiliaryBody schema that result in a failure to derive stage. It applies only to cases diagnosed 2010 and later.

If schema is MelanomaCiliaryBody:
  An error will be generated under the following conditions:
    If CS Extension code = 160 or 180 (codes requiring CS Site-Specific
    Factor 2 to derive T value)
    AND CS Site-Specific Factor 2 = 000 (no mass/tumor found)

This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is blank, invalid or less than 2010
2. CS Extension  is empty
3. CS Site-Specific Factor 2 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67741">Edit name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF411" name="CS Extension, SSF 3, MelanomaChoroid (CS)" tag="N1711" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_3,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || Functions.asInt(line.dateOfDiagnosisYear) < 2010)
    return true

if (line.csExtension == null || line.csSiteSpecificFactor3 == null ||
    line.csSiteSpecificFactor3 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'melanoma_choroid')
    return true

if (Functions.matches(line.csExtension, /(^1[5678]0$)/)) {
    if (line.csSiteSpecificFactor3 == '000')
        return false
}

return true]]></expression>
            <message>CS Extension and Site-Specific Factor 3 combination for MelanomaChoroid fails to derive stage</message>
            <description><![CDATA[This edit applies to AJCC 7 stage only.

This edit generates an error for CS Extension and Site-Specific Factor 3 [Measured thickness (depth)] combinations for the MelanomaChoroid schema that result in a failure to derive stage. It applies only to cases diagnosed 2010 and later.

If schema is MelanomaChoroid:
  An error will be generated under the following conditions:
    If CS Extension code = 150, 160, 170 or 180 (codes requiring
    CS Site-Specific Factor 3 to derive T value)
    AND CS Site-Specific Factor 3 = 000 (no mass/tumor found)

This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is blank, invalid or less than 2010
2. CS Extension  is empty
3. CS Site-Specific Factor 3 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF412" name="CS Extension, SSF 3, MelanomaCiliaryBody (CS)" tag="N1712" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_3,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || Functions.asInt(line.dateOfDiagnosisYear) < 2010)
    return true

if (line.csExtension == null || line.csSiteSpecificFactor3 == null ||
    line.csSiteSpecificFactor3 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'melanoma_ciliary_body')
    return true

if (Functions.matches(line.csExtension, /(^1[68]0$)/)) {
    if (line.csSiteSpecificFactor3 == '000')
        return false
}

return true]]></expression>
            <message>CS Extension and Site-Specific Factor 3 combination for MelanomaCiliaryBody fails to derive stage</message>
            <description><![CDATA[This edit applies to AJCC 7 stage only.

This edit generates an error for CS Extension and Site-Specific Factor 3 [Measured thickness (depth)] combinations for the MelanomaCiliaryBody schema that result in a failure to derive stage. It applies only to cases diagnosed 2010 and later.

If schema is MelanomaCiliaryBody:
  An error will be generated under the following conditions:
    If CS Extension code = 160 or 180 codes requiring
    CS Site-Specific Factor 3 to derive T value)
    AND CS Site-Specific Factor 3 = 000 (no mass/tumor found)

This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is blank, invalid or less than 2010
2. CS Extension  is empty
3. CS Site-Specific Factor 3 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF413" name="CS Extension, Tumor Size, Lung Schema (CS)" tag="N1713" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_25,CS_Tumor_Size,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || Functions.asInt(line.dateOfDiagnosisYear) < 2010)
    return true

if (line.csExtension == null || line.csTumorSize == null)
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'lung')
    return true

if (line.csExtension == '000') {
    if (line.csTumorSize == '997' || line.csTumorSize == '998')
        return false
}

return true]]></expression>
            <message>CS Extension and CS Tumor Size combination for Lung fails to derive stage</message>
            <description><![CDATA[This edit applies to AJCC 7 stage only.

This edit generates an error for CS Extension and CS Tumor Size combinations for the Lung schema that result in a failure to derive stage. It applies only to cases diagnosed 2010 and later.

If schema is Lung:
  An error will be generated under the following conditions:
    If CS Extension code = 000 (in situ)
    AND CS Tumor Size = 997 [(diffuse (entire lobe)] or 998 [diffuse (entire lung or NOS)]

This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is blank, invalid or less than 2010
2. CS Extension  is empty
3. CS Tumor Size is blank
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF414" name="CS LN, Nodes Eval, SSF 3, MelanomaSkin (CS)" tag="N1716" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_3,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || Functions.asInt(line.dateOfDiagnosisYear) < 2010)
    return true

if (line.csLymphNodes == null || line.csLymphNodesEval == null ||
    line.csSiteSpecificFactor3 == null || line.csSiteSpecificFactor3 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'melanoma_skin')
    return true

if (line.csLymphNodes == '010') {
    if (['0','1','5','9'].contains(line.csLymphNodesEval))
       return false
}
if (((List)Context.IF414_Lymph_Nodes).contains(Functions.asInt(line.csLymphNodes))) {
    if (['0','1','5','9'].contains(line.csLymphNodesEval)) {
        if (['010','100'].contains(line.csSiteSpecificFactor3))
            return false
    }
}
if (['124','158'].contains(line.csLymphNodes)) {
    if (['0','1','5','9'].contains(line.csLymphNodesEval)) {
        if (line.csSiteSpecificFactor3 != '150')
            return false
     }
}
if (line.csLymphNodes == '155') {
    if (['0','1','5','9'].contains(line.csLymphNodesEval)) {
        if (line.csSiteSpecificFactor3 == '010')
            return false
     }
}

return true]]></expression>
            <message>CS Lymph Nodes, CS Lymph Nodes Eval, and Site-Specific Factor 3 combination for MelanomaSkin fail to derive stage</message>
            <description><![CDATA[This edit applies to AJCC 7 stage only.

This edit generates an error for CS Lymph Nodes, CS Lymph Nodes Eval and Site-Specific Factor 3 (clinical status of lymph node mets) combinations for the MelanomaSkin schema that result in a failure to derive stage. It applies only to cases diagnosed 2010 and later.

This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is blank, invalid or less than 2010
2. CS Lymph Nodes is empty
3. CS Lymph Nodes Eval is empty
4. CS Site-Specific Factor 3 is empty or = 988
5. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If schema is MelanomaSkin:
  An error will be generated under the following conditions:

1.  If CS Lymph Nodes = 010 (ITCs)
    AND
    CS Lymph Nodes Eval = 0, 1, 5 (codes that indicate
    case does not meet criteria for AJCC pathological stage)
    or 9 (unknown)

2.  If CS Lymph Nodes = 100-118, 121-123, 125-128, 152-153 (codes
    indicating positive lymph nodes)
    AND
    CS Lymph Nodes Eval = 0, 1, 5, 9
    AND
    CS Site-Specific Factor 3 = 010 (clinically occult)
    or 100 (in transit mets only)

3.  If CS Lymph Nodes = 124 (stated as path N1 NOS) or 158 (stated as path
    N2 NOS)
    AND
    CS Lymph Nodes Eval = 0, 1, 5, 9
    AND
    CS Site-Specific Factor 3 not = 150 (clinically apparent in transit
    mets and clinically apparent nodal mets)

4.  If CS Lymph Nodes = 155 (stated as N2 NOS)
    AND
    CS Lymph Nodes Eval = 0, 1, 5, 9
    AND
    CS Site-Specific Factor 3 = 010 (clinically occult)]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-07-12" ref="66906">Fixed condition 3 to fail if SSF3 is anything other than 150.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF415" name="CS LN, Nodes Eval, SSF 3, MerkelCellPenis (CS)" tag="N1717" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Reg_Node_Eval,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_3,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || Functions.asInt(line.dateOfDiagnosisYear) < 2010)
    return true

if (line.csLymphNodes == null ||
    line.csSiteSpecificFactor3 == null || line.csSiteSpecificFactor3 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'merkel_cell_penis')
    return true

Integer lymphNodesInt = Functions.asInt(line.csLymphNodes)
if (lymphNodesInt == 10 || (lymphNodesInt >= 100 && lymphNodesInt <= 400) || lymphNodesInt == 500) {
    if (['000','005','100'].contains(line.csSiteSpecificFactor3))
        return false
}
if (line.csLymphNodes == '010') {
    if (['2','3','6','8'].contains(line.csLymphNodesEval)) {
        if (line.csSiteSpecificFactor3 == '150')
            return false
    }
}
if ((lymphNodesInt >= 100 && lymphNodesInt <= 400) || lymphNodesInt == 500) {
    if (['0','1','5','9'].contains(line.csLymphNodesEval)) {
        if (line.csSiteSpecificFactor3 == '010')
            return false
     }
}

return true]]></expression>
            <message>CS Lymph Nodes, CS Lymph Nodes Eval, and Site-Specific Factor 3 combination for MerkelCellPenis fail to derive stage</message>
            <description><![CDATA[This edit applies to AJCC 7 stage only.

This edit generates an error for CS Lymph Nodes, CS Lymph Nodes Eval and Site-Specific Factor 3 (clinical status of lymph node mets) combinations for the MerkelCellPenis schema that result in a failure to derive stage. It applies only to cases diagnosed 2010 and later.

This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is blank, invalid or less than 2010
2. CS Lymph Nodes is empty
3. CS Site-Specific Factor 3 is empty or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If schema is MerkelCellPenis:
  An error will be generated under the following conditions:

1.  If CS Lymph Nodes = 010 (ITCs) or 100-400, 500 (lymph nodes involved)
    AND
    CS Site-Specific Factor 3 equal any of the following codes:
       000 (no lymph node mets)
       005 (clinically negative mets and no path exam)
       100 (clinically apparent in transit mets only)

2.  If CS Lymph Nodes = 010 (ITCs)
    AND
    CS Lymph Nodes Eval = 2, 3, 6, 8 (path eval)
    AND
    CS Site-Specific Factor 3 = 150 (clinically apparent
    in transit mets and clinically apparent nodal mets)

3.  If CS Lymph Nodes = 100-400, 500 (lymph nodes involved)
    AND
    CS Lymph Nodes Eval = 0, 1, 5, 9 (clin eval)
    AND
    CS Site-Specific Factor 3 = 010 (ITCs)]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF416" name="CS LN, Nodes Eval, SSF 3, MerkelCellScrotum (CS)" tag="N1718" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Reg_Node_Eval,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_3,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || Functions.asInt(line.dateOfDiagnosisYear) < 2010)
    return true

if (line.csLymphNodes == null ||
    line.csSiteSpecificFactor3 == null || line.csSiteSpecificFactor3 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'merkel_cell_scrotum')
    return true

Integer lymphNodesInt = Functions.asInt(line.csLymphNodes)
if (lymphNodesInt == 10 || (lymphNodesInt >= 100 && lymphNodesInt <= 360)) {
    if (['000','005','100'].contains(line.csSiteSpecificFactor3))
        return false
}
if (line.csLymphNodes == '010') {
    if (['2','3','6','8'].contains(line.csLymphNodesEval)) {
        if (line.csSiteSpecificFactor3 == '150')
            return false
    }
}
if (lymphNodesInt >= 100 && lymphNodesInt <= 360) {
    if (['0','1','5','9'].contains(line.csLymphNodesEval)) {
        if (line.csSiteSpecificFactor3 == '010')
            return false
    }
}

return true]]></expression>
            <message>CS Lymph Nodes, CS Lymph Nodes Eval, and Site-Specific Factor 3 combination for MerkelCellScrotum fail to derive stage</message>
            <description><![CDATA[This edit applies to AJCC 7 stage only.

This edit generates an error for CS Lymph Nodes, CS Lymph Nodes Eval and Site-Specific Factor 3 (clinical status of lymph node mets) combinations for the MerkelCellScrotum schema that result in a failure to derive stage. It applies only to cases diagnosed 2010 and later.

This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is blank, invalid or less than 2010
2. CS Lymph Nodes is empty
3. CS Site-Specific Factor 3 is empty or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If schema is MerkelCellScrotum:
  An error will be generated under the following conditions:

1.  If CS Lymph Nodes = 010 (ITCs) or 100-360 (lymph nodes involved)
    AND
    CS Site-Specific Factor 3 equal any of the following codes:
       000 (no lymph node mets)
       005 (clinically negative mets and no path exam)
       100 (clinically apparent in transit mets only)

2.  If CS Lymph Nodes = 010 (ITCs)
    AND
    CS Lymph Nodes Eval = 2, 3, 6, 8 (path eval)
    AND
    CS Site-Specific Factor 3 = 150 (clinically apparent
    in transit mets and clinically apparent nodal mets)

3.  If CS Lymph Nodes = 100-360 (lymph nodes involved)
    AND
    CS Lymph Nodes Eval = 0, 1, 5, 9 (clin eval)
    AND
    CS Site-Specific Factor 3 = 010 (ITCs)]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF417" name="CS LN, Nodes Eval, SSF 3, MerkelCellSkin (CS)" tag="N1719" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Reg_Node_Eval,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_3,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || Functions.asInt(line.dateOfDiagnosisYear) < 2010)
    return true

if (line.csLymphNodes == null ||
    line.csSiteSpecificFactor3 == null || line.csSiteSpecificFactor3 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'merkel_cell_skin')
    return true

Integer lymphNodesInt = Functions.asInt(line.csLymphNodes)
if (lymphNodesInt == 10 || (lymphNodesInt >= 100 && lymphNodesInt <= 360)) {
    if (['000','005','100'].contains(line.csSiteSpecificFactor3))
        return false
}
if (line.csLymphNodes == '010') {
    if (['2','3','6','8'].contains(line.csLymphNodesEval)) {
        if (line.csSiteSpecificFactor3 == '150')
            return false
    }
}
if (lymphNodesInt >= 100 && lymphNodesInt <= 360) {
    if (['0','1','5','9'].contains(line.csLymphNodesEval)) {
        if (line.csSiteSpecificFactor3 == '010')
            return false
    }
}

return true]]></expression>
            <message>CS Lymph Nodes, CS Lymph Nodes Eval, and Site-Specific Factor 3 combination for MerkelCellSkin fail to derive stage</message>
            <description><![CDATA[This edit applies to AJCC 7 stage only.

This edit generates an error for CS Lymph Nodes, CS Lymph Nodes Eval and Site-Specific Factor 3 (clinical status of lymph node mets) combinations for the MerkelCellSkin schema that result in a failure to derive stage. It applies only to cases diagnosed 2010 and later.

This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is blank, invalid or less than 2010
2. CS Lymph Nodes is empty
3. CS Site-Specific Factor 3 is empty or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If schema is MerkelCellSkin:
  An error will be generated under the following conditions:

1.  If CS Lymph Nodes = 010 (ITCs) or 100-360 (lymph nodes involved)
    AND
    CS Site-Specific Factor 3 equal any of the following codes:
       000 (no lymph node mets)
       005 (clinically negative mets and no path exam)
       100 (clinically apparent in transit mets only)

2.  If CS Lymph Nodes = 010 (ITCs)
    AND
    CS Lymph Nodes Eval = 2, 3, 6, 8 (path eval)
    AND
    CS Site-Specific Factor 3 = 150 (clinically apparent
    in transit mets and clinically apparent nodal mets)

3.  If CS Lymph Nodes = 100-360 (lymph nodes involved)
    AND
    CS Lymph Nodes Eval = 0, 1, 5, 9 (clin eval)
    AND
    CS Site-Specific Factor 3 = 010 (ITCs)]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF418" name="CS LN, Nodes Eval, SSF 3, MerkelCellVulva (CS)" tag="N1720" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Reg_Node_Eval,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_3,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || Functions.asInt(line.dateOfDiagnosisYear) < 2010)
    return true

if (line.csLymphNodes == null ||
    line.csSiteSpecificFactor3 == null || line.csSiteSpecificFactor3 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'merkel_cell_vulva')
    return true

Integer lymphNodesInt = Functions.asInt(line.csLymphNodes)
if (lymphNodesInt == 10 || (lymphNodesInt >= 105 && lymphNodesInt <= 109) || (lymphNodesInt >= 114 && lymphNodesInt <= 130) || lymphNodesInt == 600) {
    if (['000','005','100'].contains(line.csSiteSpecificFactor3))
        return false
}
if (line.csLymphNodes == '010') {
    if (['2','3','6','8'].contains(line.csLymphNodesEval)) {
        if (line.csSiteSpecificFactor3 == '150')
            return false
    }
}
if ((lymphNodesInt >= 105 && lymphNodesInt <= 109) || (lymphNodesInt >= 114 && lymphNodesInt <= 130) || lymphNodesInt == 600) {
    if (['0','1','5','9'].contains(line.csLymphNodesEval)) {
        if (line.csSiteSpecificFactor3 == '010')
            return false
    }
}

return true]]></expression>
            <message>CS Lymph Nodes, CS Lymph Nodes Eval, and Site-Specific Factor 3 combination for MerkelCellVulva fail to derive stage</message>
            <description><![CDATA[This edit applies to AJCC 7 stage only.

This edit generates an error for CS Lymph Nodes, CS Lymph Nodes Eval and Site-Specific Factor 3 (clinical status of lymph node mets) combinations for the MerkelCellVulva schema that result in a failure to derive stage. It applies only to cases diagnosed 2010 and later.

This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is blank, invalid or less than 2010
2. CS Lymph Nodes is empty
3. CS Site-Specific Factor 3 is empty or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If schema is MerkelCellVulva:
  An error will be generated under the following conditions:

1.  If CS Lymph Nodes = 010 (ITCs) or 105-109, 114-130, 600 (lymph nodes involved)
    AND
    CS Site-Specific Factor 3 equal any of the following codes:
       000 (no lymph node mets)
       005 (clinically negative mets and no path exam)
       100 (clinically apparent in transit mets only)

2.  If CS Lymph Nodes = 010 (ITCs)
    AND
    CS Lymph Nodes Eval = 2, 3, 6, 8 (path eval)
    AND
    CS Site-Specific Factor 3 = 150 (clinically apparent
    in transit mets and clinically apparent nodal mets)

3.  If CS Lymph Nodes = 105-109, 114-130, 600 (lymph nodes involved)
    AND
    CS Lymph Nodes Eval = 0, 1, 5, 9 (clin eval)
    AND
    CS Site-Specific Factor 3 = 010 (ITCs)]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF419" name="CS Lymph Nodes, LN Nodes Eval, RNP, Testis (CS)" tag="N1721" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Reg_Node_Eval,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,Regional_Nodes_Positive,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || Functions.asInt(line.dateOfDiagnosisYear) < 2010)
    return true

if (line.csLymphNodes == null || line.csLymphNodesEval == null ||
    line.regionalNodesPositive == null)
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'testis')
    return true

Integer csLymphNodesInt = Functions.asInt(line.csLymphNodes)
if (csLymphNodesInt >= 100 && csLymphNodesInt <= 500) {
    if (['2','3','6','8'].contains(line.csLymphNodesEval)) {
        if (['00','98','99'].contains(line.regionalNodesPositive))
           return false
    }
}

return true]]></expression>
            <message>CS Lymph Nodes, CS Lymph Nodes Eval, and Regional Nodes Positive combination for Testis fail to derive stage</message>
            <description><![CDATA[This edit applies to AJCC 7 stage only.

This edit generates an error for CS Lymph Nodes, CS Lymph Nodes Eval and Regional Nodes Positive combinations for the Testis schema that result in a failure to derive stage. It applies only to cases diagnosed 2010 and later.

This edit enforces the Lymph Nodes Pathologic Eval Table note:
Note:  This table is used when CS Lymph Nodes Eval is coded 2 (p), 3 (p), 6 (yp), or 8 (a) and CS Lymph Nodes is coded 100-500 ONLY. The N category is assigned based on the values of CS Site-Specific Factor 5, Size of Metastasis in Lymph Nodes, and Regional Nodes Positive.

This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is blank, invalid or less than 2010
2. CS Lymph Nodes is empty
3. CS Lymph Nodes Eval is empty
4. Regional Nodes Positive is blank
5. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
6. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If schema is Testis:
  An error will be generated under the following conditions:

    If CS Lymph Nodes = 100-500 (positive nodes)
    AND
    CS Lymph Nodes Eval = 2, 3, 6, 8 (pathologic eval)
    AND
    Regional Nodes Positive = 00 (none), 98 (no nodes removed) or 99 (unknown if positive nodes)
    an error is generated]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF420" name="CS Lymph Nodes, SSF 17, Penis (CS)" tag="N1723" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_17,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || Functions.asInt(line.dateOfDiagnosisYear) < 2010)
    return true

if (line.csLymphNodes == null || line.csSiteSpecificFactor17 == null ||
    line.csSiteSpecificFactor17 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'penis')
    return true

if (line.csSiteSpecificFactor17 == '000')
    return line.csLymphNodes == '000'

if (line.csLymphNodes == '000')
    return line.csSiteSpecificFactor17 == '000'

return true]]></expression>
            <message>CS Lymph Nodes and CS Site-Specific Factor17 are not coded consistently for the Penis schema</message>
            <description><![CDATA[This edit verifies that CS Lymph Nodes and CS Site-Specific Factor17 (extranodal extension of regional lymph nodes) are coded consistently for the Penis schema.

This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is blank, invalid or less than 2010
2. CS Lymph Nodes is empty
3. CS Site-Specific Factor17 is empty or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

If schema is Penis:

1.  If CS Site-Specific Factor17 (extranodal extension of regional lymph nodes) =  000 (no regional lymph nodes involved), then CS Lymph Nodes must = 000 (no regional lymph node involvement)

2.  The vice versa condition is also true: If CS Lymph Nodes = 000, then CS Site-Specific Factor17 must also = 000.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF421" name="CS Mets at DX, SSF 4, MelanomaChor/Cil/Iris (CS)" tag="N1714" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Mets_at_DX,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_4,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || Functions.asInt(line.dateOfDiagnosisYear) < 2010)
    return true

if (line.csMetsAtDx == null || line.csSiteSpecificFactor4 == null ||
    line.csSiteSpecificFactor4 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (!['melanoma_choroid','melanoma_ciliary_body','melanoma_iris'].contains(line._csSchemaId))
    return true

if (['10','40','50','52','54','56','60'].contains(line.csMetsAtDx))
    return line.csSiteSpecificFactor4 != '000'

return true]]></expression>
            <message>CS Mets at DX and Site-Specific Factor 4 combination for MelanomaChoroid, MelanomaCiliaryBody and MelanomaIris fail to derive stage</message>
            <description><![CDATA[This edit applies to AJCC 7 stage only.

This edit generates an error for CS Mets at DX and Site-Specific Factor 4 (size of largest metastasis) combinations for the MelanomaChoroid, MelanomaCiliaryBody and MelanomaIris schemas, that result in a failure to derive stage. It applies only to cases diagnosed 2010 and later.

If schema is MelanomaChoroid, MelanomaCiliaryBody or MelanomaIris:
  An error will be generated under the following conditions:
    If CS Mets at DX = 10, 40, 50, 52, 54, 56 or 60
    (codes requiring CS Site-Specific Factor 4 greater than 000
     to derive M value)
    AND CS Site-Specific Factor 4 = 000 (no metastatic disease)

This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is blank, invalid or less than 2010
2. CS Mets at DX is empty
3. CS Site-Specific Factor 4 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF422" name="CS SSF 1, Surg, Urothelial Schemas (CS)" tag="N1747" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_1,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Surg_Prim_Site">
            <expression><![CDATA[if (line.rxSummSurgPrimSite == null || line.csSiteSpecificFactor1 == null ||
    line.csSiteSpecificFactor1 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (!['kidney_renal_pelvis','bladder','urethra'].contains(line._csSchemaId))
    return true

if (line.csSiteSpecificFactor1 == '998')
    return Functions.matches(line.rxSummSurgPrimSite, /(^[01]\d|99$)/)

return true]]></expression>
            <message>CS Site Specific Factor 1  and RX Summ--Surg Prim Site are not coded consistently for KidneyRenalPelvis, Bladder, or Urethra</message>
            <description><![CDATA[This edit verifies that for cases coded using the KidneyRenalPelvis, Bladder, or Urethra schemas, CS Site Specific Factor 1 (WHO/ISUP Grade) and RX Summ--Surg Prim Site are coded consistently.

If schema = KidneyRenalPelvis, Bladder, or Urethra:
 - If CS Site Specific Factor 1 (WHO/ISUP Grade) = 998 (no pathologic examination of primary site), then RX Summ--Surg Prim Site must = 00-19 (codes indicating no surgery of primary site or no specimen sent to pathology from surgical event) or 99 (unknown if surgery performed).

This edit is skipped if any of the following conditions are true:
1. Site-Specific Factor 1 is blank or 988
2. RX Summ--Surg Prim Site is blank
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
3. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF423" name="CS SSF 12, SSF 13, Prostate Schema (CS)" tag="N1757" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_12,CS_Site-Specific_Factor_13,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor12 == null ||
    line.csSiteSpecificFactor13 == null ||
    line.csSiteSpecificFactor12 == '988' ||
    line.csSiteSpecificFactor13 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'prostate')
    return true

Integer ssf12Int = Functions.asInt(line.csSiteSpecificFactor12)
Integer ssf13Int = Functions.asInt(line.csSiteSpecificFactor13)
if (ssf13Int >= 1 && ssf13Int <= 101) {
    if (ssf12Int != 991 && ssf12Int > ssf13Int && ssf12Int != 999)
        return false
}
if (ssf13Int == 991) {
    if (!(ssf12Int >= 0 && ssf12Int <= 101) && ssf12Int != 991 && ssf12Int != 999)
        return false
}
if (ssf13Int == 998 && ssf12Int != 998)
    return false
if (ssf12Int == 998 && ssf13Int != 998)
    return false

return true]]></expression>
            <message>CS Site-Specific Factor12 and CS Site-Specific Factor13 are not coded consistently for Prostate</message>
            <description><![CDATA[Purpose: This edit verifies that, for cases coded using the Prostate Schema,  CS Site-Specific Factor12 (number of cores positive) and CS Site-Specific Factor13 (number of cores examined) are coded consistently.

If CS schema is Prostate:

1. If CS Site Specific Factor13 (number of cores examined) = 001-101, then CS Site Specific Factor12 (number of cores positive) must = 991 (biopsy cores positive, number unknown) or be less than or equal to CS Site Specific Factor13 or equal to 999.

2. If CS Site Specific Factor13 = 991 (biopsy cores examined, number unknown), then CS Site Specific Factor12 must = 000-101, 991 or 999.

3. If CS Site Specific Factor13 = 998 (no needle core biopsy performed), then CS Site Specific Factor12 must = 998 (no needle core biopsy performed).

4. If CS Site Specific Factor12 = 998, then CS Site Specific Factor13 must = 998.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor12 is blank or 988
2. CS Site-Specific Factor13 is blank or 988
3. Schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF424" name="CS SSF 2, Ext, KidneyRenalPelvis (CS)" tag="N1748" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_2,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor2 == null ||
    line.csExtension == null ||
    line.csSiteSpecificFactor2 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'kidney_renal_pelvis')
    return true

Integer ssf2Int = Functions.asInt(line.csSiteSpecificFactor2)
Integer extInt = Functions.asInt(line.csExtension)
if ((ssf2Int >= 1 && ssf2Int <= 980) || ssf2Int == 991) {
    if (!(extInt >= 600 && extInt <= 810) && extInt != 999)
        return false
}

return true]]></expression>
            <message>CS Site-Specific Factor 2 and CS Extension are not coded consistently for KidneyRenalPelvis</message>
            <description><![CDATA[This edit verifies that for cases coded using the KidneyRenalPelvis schema, CS Site-Specific Factor 2 (depth of renal parenchymal invasion) and CS Extension are coded consistently.

If CS schema = KidneyRenalPelvis:
 - If CS Site-Specific Factor 2 = 001-980, 991 (codes indicating invasion of renal parenchyma), then CS Extension must = 600-810 (codes indicating extension to renal parenchyma or beyond) or 999 (unknown).

This edit is skipped if any of the following conditions are true:
1. Site-Specific Factor 2 is blank or 988
2. CS Extension is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67741">Edit name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF425" name="CS SSF 2, Lymph Nodes, Bladder (CS)" tag="N1749" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_2,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor2 == null ||
    line.csLymphNodes == null ||
    line.csSiteSpecificFactor2 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'bladder')
    return true

Integer ssf2Int = Functions.asInt(line.csSiteSpecificFactor2)
Integer lnInt = Functions.asInt(line.csLymphNodes)

if (ssf2Int == 0 && lnInt != 0 && lnInt != 999)
    return false
if (lnInt == 0 && ssf2Int != 0 && ssf2Int != 999)
    return false

if ((ssf2Int >= 1 && ssf2Int <= 980) || (ssf2Int >= 990 && ssf2Int <= 997)) {
    if (lnInt != 150 && lnInt != 250 && !(lnInt >= 350 && lnInt <= 450) &&
        lnInt != 505 && lnInt != 800)
        return false
}
if (lnInt == 999) {
    if (ssf2Int != 0 && ssf2Int != 999)
        return false
}

return true]]></expression>
            <message>CS Site-Specific Factor 2 and CS Lymph Nodes are not coded consistently for Bladder</message>
            <description><![CDATA[This edit verifies that for cases coded using the Bladder schema, CS Site-Specific Factor 2 (size of metastasis in lymph nodes) and CS Lymph Nodes are coded consistently.

If CS schema = Bladder:

1. If CS Site-Specific Factor 2 = 000 (no regional lymph node involvement), then CS Lymph Nodes must = 000 (no regional lymph node involvement) or 999 (unknown).

   The vice versa condition is also true:
   If CS Lymph Nodes = 000, then CS Site-Specific Factor 2 must = 000 or 999.

2. If CS Site-Specific Factor 2 = 001-980, 990-997 (regional lymph node involvement), then CS Lymph Nodes must = 150, 250, 350-450, 505, 800 (regional lymph node involvement).

3. If CS Lymph Nodes = 999 (unknown if nodes involved), then CS Site-Specific Factor 2 must = 000 (no regional lymph nodes involved) or 999 (unknown if nodes involved).

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 2 is blank or 988
2. CS Lymph Nodes is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF426" name="CS SSF 2, Lymph Nodes, Vagina (CS)" tag="N1735" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_2,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor2 == null ||
    line.csLymphNodes == null ||
    line.csSiteSpecificFactor2 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'vagina')
    return true

Integer lnInt = Functions.asInt(line.csLymphNodes)

if ([150,400,425,475].contains(lnInt)) {
    if (line.csSiteSpecificFactor2 != '010')
        return false
}

return true]]></expression>
            <message>CS Site-Specific Factor 2 and CS Lymph Nodes are not coded consistently for Vagina</message>
            <description><![CDATA[This edit verifies that for cases coded using the Vagina schema, CS Site-Specific Factor 2 (pelvic nodal status) and CS Lymph Nodes are coded consistently.

If CS schema = Vagina:
    If CS Lymph Nodes = 150 (upper two thirds of vagina), 400 (pelvic lymph nodes, NOS), 425 (unknown whether primary is in upper two-thirds or lower third of vagina) or 475 (unknown whether primary is in upper two-thirds or lower third of vagina), then CS Site-Specific Factor 2 (pelvic nodal status) must = 010 (positive pelvic lymph nodes).

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 2 is blank or 988
2. CS Lymph Nodes is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF427" name="CS SSF 2, Mets at DX, Vagina (CS)" tag="N1736" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Mets_at_DX,CS_Site-Specific_Factor_2,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor2 == null ||
    line.csMetsAtDx == null ||
    line.csSiteSpecificFactor2 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'vagina')
    return true

Integer metsInt = Functions.asInt(line.csMetsAtDx)

if ([20,22].contains(metsInt)) {
    if (line.csSiteSpecificFactor2 != '010')
        return false
}

return true]]></expression>
            <message>CS Site-Specific Factor 2 and CS Mets at DX are not coded consistently for Vagina</message>
            <description><![CDATA[This edit verifies that for cases coded using the Vagina schema, CS Site-Specific Factor 2 (pelvic nodal status) and CS Mets at DX are coded consistently.

If CS schema = Vagina:
    If CS Mets at DX = 20 (distant lymph nodes, specified pelvic nodes) or 22 (distant pelvic lymph nodes, NOS), then CS Site-Specific Factor 2 (pelvic nodal status) must = 010 (positive pelvic lymph nodes).

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 2 is blank or 988
2. CS Mets at DX is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF428" name="CS SSF 2, SSF 3, Vagina (CS)" tag="N1737" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_2,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_3,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor2 == null ||
    line.csSiteSpecificFactor3 == null ||
    line.csSiteSpecificFactor2 == '988' ||
    line.csSiteSpecificFactor3 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'vagina')
    return true

if (line.csSiteSpecificFactor2 == '998' && line.csSiteSpecificFactor3 != '998')
    return false
if (line.csSiteSpecificFactor3 == '998' && line.csSiteSpecificFactor2 != '998')
    return false

return true]]></expression>
            <message>CS Site-Specific Factor 2 and  CS Site-Specific Factor 3 are not coded consistently for Vagina</message>
            <description><![CDATA[This edit verifies that for cases using the Vagina schema, SSF 2 (Pelvic Nodal Status) and SSF 3 (Assessment Method of Pelvic Nodal Status) are coded consistently. That is, if one specifies "not assessed", the other must also specify "not assessed".

If CS schema is Vagina:
1. If CS Site-Specific Factor 2 = 998 (pelvic lymph nodes not assessed), then CS Site-Specific Factor 3 must = 998 (lymph nodes not assessed).
2. If CS Site-Specific Factor 3 = 998, then CS Site-Specific Factor 2 must = 998.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 2 is blank or 988
2. CS Site-Specific Factor 3 is blank or 988
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF429" name="CS SSF 2, Surg, KidneyRenalPelvis (CS)" tag="N1751" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_2,CS_Site-Specific_Factor_25,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Surg_Prim_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor2 == null ||
    line.rxSummSurgPrimSite == null ||
    line.csSiteSpecificFactor2 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'kidney_renal_pelvis')
    return true

Integer rxSummSurgPrimSiteInt = Functions.asInt(line.rxSummSurgPrimSite)
if (line.csSiteSpecificFactor2 == '998') {
    if (!(rxSummSurgPrimSiteInt >= 0 && rxSummSurgPrimSiteInt <= 19) && rxSummSurgPrimSiteInt != 99)
        return false
}

return true]]></expression>
            <message>CS Site-Specific Factor 2 and  RX Summ--Surg Prim Site are not coded consistently for KidneyRenalPelvis</message>
            <description><![CDATA[This edit verifies that for cases coded using the KidneyRenalPelvis schema, CS Site-Specific Factor 2 (depth of renal parenchymal invasion) and RX Summ--Surg Prim Site are coded consistently.

If CS schema = KidneyRenalPelvis:
 - If CS Site-Specific Factor 2 = 998 (no surgical resection of primary site), then RX Summ--Surg Prim Site must = 00-19 (codes indicating no surgery of primary site or no specimen sent to pathology from surgical event) or 99 (unknown if surgery performed).

This edit is skipped if any of the following conditions are true:
1. Site-Specific Factor 2 is blank or 988
2. RX Summ--Surg Prim Site is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67741">Edit name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF430" name="CS SSF 3, Lymph Nodes, Bladder (CS)" tag="N1752" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_3,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor3 == null ||
    line.csLymphNodes == null ||
    line.csSiteSpecificFactor3 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'bladder')
    return true

if (line.csSiteSpecificFactor3 == '000' &&  line.csLymphNodes != '000' && line.csLymphNodes != '999')
    return false

if (line.csLymphNodes == '000' &&  line.csSiteSpecificFactor3 != '000' && line.csSiteSpecificFactor3 != '999')
    return false

if (line.csLymphNodes == '999' && line.csSiteSpecificFactor3 != '999' && line.csSiteSpecificFactor3 != '000')
    return false

return true]]></expression>
            <message>CS Site-Specific Factor 3 and CS Lymph Nodes are not coded consistently for Bladder</message>
            <description><![CDATA[This edit verifies that for cases coded using the Bladder schema, CS Site-Specific Factor 3 (extranodal extension of regional lymph nodes) and CS Lymph Nodes are coded consistently.

If CS schema = Bladder:

1. If CS Site-Specific Factor 3 = 000 (no regional lymph node involvement), then CS Lymph Nodes must = 000 (no regional lymph node involvement) or 999 (unknown).

   The vice versa condition is also true:
   If CS Lymph Nodes = 000, then CS Site-Specific Factor 3 must = 000 or 999.

2. If CS Lymph Nodes = 999 (unknown if nodes involved), then CS Site-Specific Factor 3 must = 000 or 999 (unknown if nodes involved).

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 3 is blank or 988
2. CS Lymph Nodes is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF431" name="CS SSF 3, RX Summ--Scope Reg LN Sur, Vagina (CS)" tag="N1738" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_3,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Scope_Reg_LN_Sur">
            <expression><![CDATA[if (line.csSiteSpecificFactor3 == null ||
    line.rxSummScopeRegLnSur == null ||
    line.csSiteSpecificFactor3 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'vagina')
    return true

if ((line.csSiteSpecificFactor3 == '030' || line.csSiteSpecificFactor3 == '040') && line.rxSummScopeRegLnSur == '0')
    return false

return true]]></expression>
            <message>CS Site-Specific Factor 3 and RX Summ--Scope Reg LN Surgery are not coded consistently for Vagina</message>
            <description><![CDATA[This edit verifies that for cases coded using the Vagina schema, CS Site-Specific Factor 3 (assessment of pelvic nodal status) and RX Summ--Scope Reg LN Surgery are coded consistently.

If CS schema = Vagina:
    If CS Site-Specific Factor 3 = 030 (incisional biopsy, FNA) or 040 (excisional biopsy or resection with microscopic confirmation), then RX Summ--Scope Reg LN Surgery must not = 0 (no regional lymph node surgery).

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 3 is blank or 988
2. RX Summ--Scope Reg LN Surgery is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF432" name="CS SSF 4, Mets at DX, Vagina (CS)" tag="N1739" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Mets_at_DX,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_4,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor4 == null ||
    line.csMetsAtDx == null ||
    line.csSiteSpecificFactor4 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'vagina')
    return true

if (line.csSiteSpecificFactor4 == '010' && line.csMetsAtDx != '30' && line.csMetsAtDx != '35' &&
        line.csMetsAtDx != '55' && line.csMetsAtDx != '58')
    return false

return true]]></expression>
            <message>CS Site-Specific Factor 4 and CS Mets at DX are not coded consistently for Vagina</message>
            <description><![CDATA[This edit verifies that for cases coded using the Vagina schema, CS Site-Specific Factor 4 (para-aortic nodal status) and CS Mets at DX are coded consistently.

If CS schema = Vagina:
    If CS Site-Specific Factor 4 = 010 (positive para-aortic lymph nodes), then CS Mets at DX must = 30, 35, 55, or 58.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 4 is blank or 988
2. CS Mets at DX is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE13-010-03" user="murphyr" date="2013-08-05" ref="66914">Codes 35, 55, and 58 added to the list of CS Mets at DX codes allowed for SSF4 value &apos;010&apos;.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF433" name="CS SSF 4, SSF 5, Vagina (CS)" tag="N1740" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_4,CS_Site-Specific_Factor_5,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor4 == null ||
    line.csSiteSpecificFactor5 == null ||
    line.csSiteSpecificFactor4 == '988' ||
    line.csSiteSpecificFactor5 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'vagina')
    return true

if (line.csSiteSpecificFactor4 == '998' && line.csSiteSpecificFactor5 != '998')
    return false
if (line.csSiteSpecificFactor5 == '998' && line.csSiteSpecificFactor4 != '998')
    return false

return true]]></expression>
            <message>CS Site-Specific Factor 4 and CS Site-Specific Factor 5 are not coded consistently for Vagina</message>
            <description><![CDATA[This edit verifies that for cases using the Vagina schema, SSF 4 (Para-Aortic Nodal Status) and SSF 5 (Assessment Method of Para-Aortic Nodal Status) are coded consistently. That is, if one specifies "not assessed", the other must also specify "not assessed".

If CS schema is Vagina:
1. If CS Site-Specific Factor 4 = 998 (para-aortic lymph nodes not assessed), then CS Site-Specific Factor 5 must = 998 (para-aortic lymph nodes not assessed).
2. If CS Site-Specific Factor 5 = 998, then CS Site-Specific Factor 4 must = 998.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 4 is blank or 988
2. CS Site-Specific Factor 5 is blank or 988
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF434" name="CS SSF 5, SSF 7, RX Summ--Surg Other, Vagina (CS)" tag="N1741" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_5,CS_Site-Specific_Factor_7,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Surg_Oth_Reg-Dis">
            <expression><![CDATA[if (line.csSiteSpecificFactor5 == null ||
    line.csSiteSpecificFactor7 == null ||
    line.rxSummSurgOthRegDis == null ||
    line.csSiteSpecificFactor5 == '988' ||
    line.csSiteSpecificFactor7 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'vagina')
    return true

if ((line.csSiteSpecificFactor5 == '040' || line.csSiteSpecificFactor7 == '040') && line.rxSummSurgOthRegDis == '0')
    return false

return true]]></expression>
            <message>CS Site-Specific Factor 5, CS Site-Specific Factor 7, and RX Summ--Surg Other are not coded consistently for Vagina</message>
            <description><![CDATA[This edit verifies that for cases coded using the Vagina schema, CS Site-Specific Factor 5 (assessment method of para-aortic nodal status), CS Site-Specific Factor 7 (assessment method of mediastinal nodal status) and RX Summ--Surg Oth Reg/Distant are coded consistently.

If CS schema = Vagina:
    If CS Site-Specific Factor 5 = 040 (lymphadenectomy) or CS Site-Specific Factor 7 = 040 (lymphadenectomy), then RX Summ--Surg Oth Reg/Distant must not = 0 (no procedure to other site).

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 5 is blank or 988
2. CS Site-Specific Factor 7 is blank or 988
3. RX Summ--Surg Oth Reg/Distant is blank
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF435" name="CS SSF 6, Mets at DX, Vagina (CS)" tag="N1742" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Mets_at_DX,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_6,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor6 == null ||
    line.csMetsAtDx == null ||
    line.csSiteSpecificFactor6 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'vagina')
    return true

if (line.csSiteSpecificFactor6 == '010' && line.csMetsAtDx != '35' && line.csMetsAtDx != '55' && line.csMetsAtDx != '58')
    return false

return true]]></expression>
            <message>CS Site-Specific Factor 6 and CS Mets at DX are not coded consistently for Vagina</message>
            <description><![CDATA[This edit verifies that for cases coded using the Vagina schema, CS Site-Specific Factor 6 (mediastinal, scalene nodal status) and CS Mets at DX are coded consistently.

If CS schema = Vagina:
    If CS Site-Specific Factor 6 = 010 (positive mediastinal, scalene lymph nodes), then CS Mets at DX must = 35 (distant lymph nodes other than codes 20-30), 55 (distant mets plus distant lymph nodes), or 58 (FIGO Stage IVB).

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 6 is blank or 988
2. CS Mets at DX is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE13-010-03" user="murphyr" date="2013-08-05" ref="66915">Code 58 added to the list of CS Mets at DX codes allowed if CS Site-Specific Factor 6 = 010.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF436" name="CS SSF 6, SSF 7, Vagina (CS)" tag="N1743" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_6,CS_Site-Specific_Factor_7,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor6 == null ||
    line.csSiteSpecificFactor7 == null ||
    line.csSiteSpecificFactor6 == '988' ||
    line.csSiteSpecificFactor7 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'vagina')
    return true

if (line.csSiteSpecificFactor6 == '998' && line.csSiteSpecificFactor7 != '998')
    return false
if (line.csSiteSpecificFactor7 == '998' && line.csSiteSpecificFactor6 != '998')
    return false

return true]]></expression>
            <message>CS Site-Specific Factor 6 and CS Site-Specific Factor 7 are not coded consistently for Vagina</message>
            <description><![CDATA[This edit verifies that for cases using the Vagina schema, SSF 6 (Mediastinal, Scalene Nodal Status) and SSF 7 (Assessment Method of Mediastinal Nodal Status) are coded consistently. That is, if one specifies "not assessed", the other must also specify "not assessed".

If CS schema is Vagina:
1. If CS Site-Specific Factor 6 = 998 (mediastinal, scalene lymph nodes not assessed), then CS Site-Specific Factor 7 must = 998 (mediastinal, scalene lymph nodes not assessed).
2. If CS Site-Specific Factor 7 = 998, then CS Site-Specific Factor 6 must = 998.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 6 is blank or 988
2. CS Site-Specific Factor 7 is blank or 988
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF437" name="CS SSF 7, 8, 12, 13, Prostate Schema (CS)" tag="N1722" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_12,CS_Site-Specific_Factor_13,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_7,CS_Site-Specific_Factor_8,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Surg_Prim_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor7 == null || line.csSiteSpecificFactor8 == null || line.csSiteSpecificFactor12 == null || line.csSiteSpecificFactor13 == null)
    return true

if (line.csSiteSpecificFactor7 == '988' || line.csSiteSpecificFactor8 == '988' || line.csSiteSpecificFactor12 == '988' || line.csSiteSpecificFactor13 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'prostate')
    return true

if (line.csSiteSpecificFactor7 == '998' && line.csSiteSpecificFactor8 == '998') {
    if (line.csSiteSpecificFactor12 == '998' && line.csSiteSpecificFactor13 == '998')
        return true
    return false
}
Integer rxSummSurgPrimSiteInt = Functions.asInt(line.rxSummSurgPrimSite)
if (line.csSiteSpecificFactor12 == '998' && line.csSiteSpecificFactor13 == '998' &&
    rxSummSurgPrimSiteInt >= 0 && rxSummSurgPrimSiteInt <= 17) {
    if (line.csSiteSpecificFactor7 == '998' && line.csSiteSpecificFactor8 == '998')
        return true
    return false
}

return true]]></expression>
            <message>CS Site-Specific Factors 7, 8, 12 and 13 are not coded consistently for Prostate</message>
            <description><![CDATA[Purpose: This edit verifies that, for cases coded using the Prostate Schema, CS Site-Specific Factors 7, 8, 12 and 13 are coded consistently.

If CS schema is Prostate:

If CS Site Specific Factors 7 and 8 = 998 (no needle core biopsy/TURP performed), then CS Site Specific Factors 12 and 13 must also = 998 (no needle core biopsy performed).

If CS Site Specific Factors 12 and 13 = 998 and RX Summ--Surg Prim Site = 00-17, then CS Site Specific Factors 7 and 8 must also = 998.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 7 is blank or 988
2. CS Site-Specific Factor 8 is blank or 988
3. CS Site-Specific Factor12 is blank or 988
4. CS Site-Specific Factor13 is blank or 988
3. Schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF438" name="CS SSF 7, SSF 8, Prostate Schema (CS)" tag="N1754" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_7,CS_Site-Specific_Factor_8,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor7 == null || line.csSiteSpecificFactor8 == null || line.csSiteSpecificFactor8 == '988' || line.csSiteSpecificFactor7 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'prostate')
    return true


if (line.csSiteSpecificFactor7 == '998' && line.csSiteSpecificFactor8 != '998')
    return false
if (line.csSiteSpecificFactor8 == '998' && line.csSiteSpecificFactor7 != '998')
    return false

if (line.csSiteSpecificFactor7 == '011' && line.csSiteSpecificFactor8 != '002')
    return false
if (line.csSiteSpecificFactor7 == '012' && line.csSiteSpecificFactor8 != '003')
    return false
if (line.csSiteSpecificFactor7 == '013' && line.csSiteSpecificFactor8 != '004')
    return false
if (line.csSiteSpecificFactor7 == '014' && line.csSiteSpecificFactor8 != '005')
    return false
if (line.csSiteSpecificFactor7 == '015' && line.csSiteSpecificFactor8 != '006')
    return false
if (line.csSiteSpecificFactor7 == '019' && !(['002','003','004','005','006','999'].contains(line.csSiteSpecificFactor8)))
    return false
if (line.csSiteSpecificFactor7 == '021' && line.csSiteSpecificFactor8 != '003')
    return false
if (line.csSiteSpecificFactor7 == '022' && line.csSiteSpecificFactor8 != '004')
    return false
if (line.csSiteSpecificFactor7 == '023' && line.csSiteSpecificFactor8 != '005')
    return false
if (line.csSiteSpecificFactor7 == '024' && line.csSiteSpecificFactor8 != '006')
    return false
if (line.csSiteSpecificFactor7 == '025' && line.csSiteSpecificFactor8 != '007')
    return false
if (line.csSiteSpecificFactor7 == '029' && !(['003','004','005','006','007','999'].contains(line.csSiteSpecificFactor8)))
    return false
if (line.csSiteSpecificFactor7 == '031' && line.csSiteSpecificFactor8 != '004')
    return false
if (line.csSiteSpecificFactor7 == '032' && line.csSiteSpecificFactor8 != '005')
    return false
if (line.csSiteSpecificFactor7 == '033' && line.csSiteSpecificFactor8 != '006')
    return false
if (line.csSiteSpecificFactor7 == '034' && line.csSiteSpecificFactor8 != '007')
    return false
if (line.csSiteSpecificFactor7 == '035' && line.csSiteSpecificFactor8 != '008')
    return false
if (line.csSiteSpecificFactor7 == '039' && !(['004','005','006','007','008','999'].contains(line.csSiteSpecificFactor8)))
    return false
if (line.csSiteSpecificFactor7 == '041' && line.csSiteSpecificFactor8 != '005')
    return false
if (line.csSiteSpecificFactor7 == '042' && line.csSiteSpecificFactor8 != '006')
    return false
if (line.csSiteSpecificFactor7 == '043' && line.csSiteSpecificFactor8 != '007')
    return false
if (line.csSiteSpecificFactor7 == '044' && line.csSiteSpecificFactor8 != '008')
    return false
if (line.csSiteSpecificFactor7 == '045' && line.csSiteSpecificFactor8 != '009')
    return false
if (line.csSiteSpecificFactor7 == '049' && !(['005','006','007','008','009','999'].contains(line.csSiteSpecificFactor8)))
    return false
if (line.csSiteSpecificFactor7 == '051' && line.csSiteSpecificFactor8 != '006')
    return false
if (line.csSiteSpecificFactor7 == '052' && line.csSiteSpecificFactor8 != '007')
    return false
if (line.csSiteSpecificFactor7 == '053' && line.csSiteSpecificFactor8 != '008')
    return false
if (line.csSiteSpecificFactor7 == '054' && line.csSiteSpecificFactor8 != '009')
    return false
if (line.csSiteSpecificFactor7 == '055' && line.csSiteSpecificFactor8 != '010')
    return false
if (line.csSiteSpecificFactor7 == '059' && !(['006','007','008','009','010','999'].contains(line.csSiteSpecificFactor8)))
    return false

return true]]></expression>
            <message>CS Site Specific Factor 7 and CS Site-Specific Factor 8 are not coded consistently for Prostate</message>
            <description><![CDATA[Purpose: This edit verifies that, for cases coded using the Prostate Schema,  CS Site Specific Factor 7 (Gleason's Primary Pattern and Secondary Pattern Values on Needle Core Biopsy/Transurethral Resection of Prostate) and CS Site-Specific Factor 8 (Gleason's Score on Needle Core Biopsy/Transurethral Resection of Prostate) are coded consistently.

If CS schema is Prostate:

The recorded CS Site-Specific Factor 7 and 8 codes must correspond to each other as specified in the table below.

If CS Site-Specific Factor 7 = 998, then CS Site-Specific Factor 8 must = 998 and vice versa.

CS Site-Specific Factor 7    CS Site-Specific Factor 8
------------------------------------------------------
        011                          002
        012                          003
        013                          004
        014                          005
        015                          006
        019                          002-006, 999

        021                          003
        022                          004
        023                          005
        024                          006
        025                          007
        029                          003-007, 999

        031                          004
        032                          005
        033                          006
        034                          007
        035                          008
        039                          004-008, 999

        041                          005
        042                          006
        043                          007
        044                          008
        045                          009
        049                          005-009, 999

        051                          006
        052                          007
        053                          008
        054                          009
        055                          010
        059                          006-010, 999

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 7 is blank or 988
2. CS Site-Specific Factor 8 is blank or 988
3. CS schema is invalid

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF439" name="CS SSF 9, SSF 10, Prostate Schema (CS)" tag="N1755" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_10,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_9,CS_Tumor_Size_Ext_Eval,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Surg_Prim_Site,Type_of_Reporting_Source">
            <expression><![CDATA[if (line.typeOfReportingSource == '7' || (line.registryId == '0000001562' && line.dateOfDiagnosisYear < '2003'))
    return true

if (line.csSiteSpecificFactor9 == null || line.csSiteSpecificFactor10 == null || line.csSiteSpecificFactor9 == '988' || line.csSiteSpecificFactor10 == '988')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId != 'prostate')
    return true

if (Functions.matches(line.rxSummSurgPrimSite, /(^[3578]0$)/) ||
    line.typeOfReportingSource == '6' ||
    line.csTumorSizeExtEval == '3' || line.csTumorSizeExtEval == '8') {
    if (line.csSiteSpecificFactor9 == '998' || line.csSiteSpecificFactor10 == '998')
        return false
}
if (!(Functions.matches(line.rxSummSurgPrimSite, /(^[3578]0|99$)/)) &&
    line.typeOfReportingSource != '6' && line.typeOfReportingSource != null &&
    line.csTumorSizeExtEval != '3' && line.csTumorSizeExtEval != '8' && line.csTumorSizeExtEval != '9' && line.csTumorSizeExtEval != null) {
    if (line.csSiteSpecificFactor9 != '998' || line.csSiteSpecificFactor10 != '998')
        return false
    return true
}

if (line.csSiteSpecificFactor9 == '011' && line.csSiteSpecificFactor10 != '002')
    return false
if (line.csSiteSpecificFactor9 == '012' && line.csSiteSpecificFactor10 != '003')
    return false
if (line.csSiteSpecificFactor9 == '013' && line.csSiteSpecificFactor10 != '004')
    return false
if (line.csSiteSpecificFactor9 == '014' && line.csSiteSpecificFactor10 != '005')
    return false
if (line.csSiteSpecificFactor9 == '015' && line.csSiteSpecificFactor10 != '006')
    return false
if (line.csSiteSpecificFactor9 == '019' && !(['002','003','004','005','006','999'].contains(line.csSiteSpecificFactor10)))
    return false
if (line.csSiteSpecificFactor9 == '021' && line.csSiteSpecificFactor10 != '003')
    return false
if (line.csSiteSpecificFactor9 == '022' && line.csSiteSpecificFactor10 != '004')
    return false
if (line.csSiteSpecificFactor9 == '023' && line.csSiteSpecificFactor10 != '005')
    return false
if (line.csSiteSpecificFactor9 == '024' && line.csSiteSpecificFactor10 != '006')
    return false
if (line.csSiteSpecificFactor9 == '025' && line.csSiteSpecificFactor10 != '007')
    return false
if (line.csSiteSpecificFactor9 == '029' && !(['003','004','005','006','007','999'].contains(line.csSiteSpecificFactor10)))
    return false
if (line.csSiteSpecificFactor9 == '031' && line.csSiteSpecificFactor10 != '004')
    return false
if (line.csSiteSpecificFactor9 == '032' && line.csSiteSpecificFactor10 != '005')
    return false
if (line.csSiteSpecificFactor9 == '033' && line.csSiteSpecificFactor10 != '006')
    return false
if (line.csSiteSpecificFactor9 == '034' && line.csSiteSpecificFactor10 != '007')
    return false
if (line.csSiteSpecificFactor9 == '035' && line.csSiteSpecificFactor10 != '008')
    return false
if (line.csSiteSpecificFactor9 == '039' && !(['004','005','006','007','008','999'].contains(line.csSiteSpecificFactor10)))
    return false
if (line.csSiteSpecificFactor9 == '041' && line.csSiteSpecificFactor10 != '005')
    return false
if (line.csSiteSpecificFactor9 == '042' && line.csSiteSpecificFactor10 != '006')
    return false
if (line.csSiteSpecificFactor9 == '043' && line.csSiteSpecificFactor10 != '007')
    return false
if (line.csSiteSpecificFactor9 == '044' && line.csSiteSpecificFactor10 != '008')
    return false
if (line.csSiteSpecificFactor9 == '045' && line.csSiteSpecificFactor10 != '009')
    return false
if (line.csSiteSpecificFactor9 == '049' && !(['005','006','007','008','009','999'].contains(line.csSiteSpecificFactor10)))
    return false
if (line.csSiteSpecificFactor9 == '051' && line.csSiteSpecificFactor10 != '006')
    return false
if (line.csSiteSpecificFactor9 == '052' && line.csSiteSpecificFactor10 != '007')
    return false
if (line.csSiteSpecificFactor9 == '053' && line.csSiteSpecificFactor10 != '008')
    return false
if (line.csSiteSpecificFactor9 == '054' && line.csSiteSpecificFactor10 != '009')
    return false
if (line.csSiteSpecificFactor9 == '055' && line.csSiteSpecificFactor10 != '010')
    return false
if (line.csSiteSpecificFactor9 == '059' && !(['006','007','008','009','010','999'].contains(line.csSiteSpecificFactor10)))
    return false

return true]]></expression>
            <message>CS Site Specific Factor 9 and CS Site-Specific Factor 10 are not coded consistently for Prostate</message>
            <description><![CDATA[Purpose: This edit verifies that, for cases coded using the Prostate Schema,  CS Site Specific Factor 9 (Gleason's Primary Pattern and Secondary Pattern Values on Prostatectomy/Autopsy) and CS Site-Specific Factor 10 (Gleason's Score on Prostatectomy/Autopsy) are coded consistently.

If CS schema is Prostate:

  If RX Summ--Surgery Prim Site = 30, 50, 70, 80 (codes indicating prostatectomy) OR Type of Reporting Source = 6 (autopsy only) OR CS Tumor Size/Ext Eval = 3 or 8 (codes indicating evidence derived from autopsy), then the recorded CS Site-Specific Factor 9 and 10 codes must correspond to each other as specified in the table below AND both CS Site-Specific Factor 9 and 10 codes must not = 998 (no prostatectomy/autopsy performed).

  If RX Summ--Surgery Prim Site not = 30, 50, 70, 80, 99 AND [Type of Reporting Source not = 6 or blank] AND [CS Tumor Size/Ext Eval not = 3, 8, 9 or blank], then the recorded CS Site-Specific Factor 9 and 10 codes must both = 998 (no prostatectomy/autopsy performed).


CS Site-Specific Factor 9    CS Site-Specific Factor 10
-------------------------------------------------------
        011                          002
        012                          003
        013                          004
        014                          005
        015                          006
        019                          002-006, 999

        021                          003
        022                          004
        023                          005
        024                          006
        025                          007
        029                          003-007, 999

        031                          004
        032                          005
        033                          006
        034                          007
        035                          008
        039                          004-008, 999

        041                          005
        042                          006
        043                          007
        044                          008
        045                          009
        049                          005-009, 999

        051                          006
        052                          007
        053                          008
        054                          009
        055                          010
        059                          006-010, 999


This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 9 is blank or 988
2. CS Site-Specific Factor 10 is blank or 988
3. Type of Reporting Source = 7 (DCO)
4. CS schema is invalid
5. Registry ID = 0000001562 (New York) and Year of Diagnosis is < 2003

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-07" ref="68179">Edit now skipped for New York cases when DX Year &lt; 2003.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF440" name="Obsolete Histology ICDO3, Date of DX (SEER)" tag="N1966" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

Integer histInt = Functions.asInt(line.histologicTypeIcdO3)
if (histInt == 8157)
    return false

if (line.dateOfDiagnosisYear >= '1992' && histInt == 9810)
        return false

if (line.dateOfDiagnosisYear >= '2010')
    if ([9654,9661,9662,9664,9665,9667,9670,9675,9684,9728,9729,9733,9750,9752,9753,9754,9760,9764,9805,9835,9836,9960,9984,9987].contains(histInt))
        return false

if (line.dateOfDiagnosisYear >= '2021')
    if ([8471,9150,9826,9991,9992,8444,8462,8463,8473,8965].contains(histInt))
        return false

return true]]></expression>
            <message>Histologic Type ICD-O-3 code is obsolete</message>
            <description><![CDATA[If year of Date of Diagnosis is blank, this edit is skipped.

The following histology is obsolete for all years.
Source: ICD-O-3 Update Implementation (December 2013)
- The current code to be used in place of the obsolete code is shown in the
second column.

Obsolete ICD-O-3 Code    Current ICD-O-3 Code
        8157                     8152

If the year of Date of Diagnosis is 1992 or later, the following Histologic Type
ICD-O-3 code listed in the first column is obsolete and will generate an error if used.
- The current code to be used in place of the obsolete code is shown in the
second column.

Obsolete ICD-O-3 Code    Current ICD-O-3 Code
        9810                     9800

If the year of Date of Diagnosis is 2010 or later, the following Histologic Type
ICD-O-3 codes listed in the first column are obsolete and will generate an error if used.
Source: Hematopoietic and Lymphoid Neoplasm Database & Coding Manual(Appendix E)
- The current code to be used in place of the obsolete code is shown in the
second column.

Obsolete ICD-O-3 Code    Current ICD-O-3 Code
         9654                    9653
         9661                    9650
         9662                    9650
         9664                    9663
         9665                    9663
         9667                    9663
         9670                    9823
         9675                    9690
         9684                    9680
         9728                    9811
         9729                    9837
         9733                    9732
         9750                    9751
         9752                    9751
         9753                    9751
         9754                    9751
         9760                    9761 or 9762
         9764                    9762
         9805                    9806-9809
         9835                    9811
         9836                    9811
         9960                    9975
         9984                    9983
         9987                    9920

If the year of Date of Diagnosis is 2021 or later, the following Histologic Type
ICD-O-3 codes listed in the first column are obsolete and will generate an error if
used.
Source: ICD-O-3.2
- The current code to be used in place of the obsolete code is shown in the
second column.

Obsolete ICD-O-3 Code    Current ICD-O-3 Code
         8471                    8470
         9150                    8815
         9826                    9687
         9991                    9980
         9992                    9980


If the year of Date of Diagnosis is 2021 or later, the following Histologic Type
ICD-O-3 codes are obsolete.  Please check ICD-O-3.2 and Solid Tumor Rules for
reportability and valid histology code.

         8444
         8462
         8463
         8473
         8965]]></description>
            <history>
                <event version="SE13-009-01" user="murphyr" date="2012-12-05" ref="66774">Edit created.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-11-21" ref="67051">Fixed issue where name of histology ICD-O3 field was named wrong.  Also added skip condition for year of dx less than 2012 that was missing.</event>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-09" ref="67130">Listed codes are now obsolete for year of diagnosis 2010+, code 9752 added to list. Added code 8157, obsolete for all years.</event>
                <event version="SE15-013-02" user="kirbyk" date="2015-03-02" ref="67193">Updated error message.</event>
                <event version="SE15-013-02" user="kirbyk" date="2015-03-02" ref="67195">Updated description.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-06" ref="68439">Added logic for 1992+ and 2021+ cases.</event>
            </history>
        </rule>
        <rule id="IF441" name="Registry, County and Census Tract 2010 (SEER IF441)" tag="S007" java-path="lines.line" category="inter-field" depends="Census_Tract_2010,County_at_DX_Geocode2010">
            <expression><![CDATA[String county = line.countyAtDxGeocode2010 ?: line.countyAtDxAnalysis
if (line.censusTract2010 == null || county == null || line.censusTract2010 == '000000' || line.censusTract2010 == '999999' || line.registryId < '0000001500' || line.registryId > '0000001599' || line.registryId == '0000001551')
    return true

Map countyCensusTract = (Map)((Map)Context.registry_county_census2010).get(line.addrAtDxState)
if (countyCensusTract == null)
    return true

return ((List)countyCensusTract.getOrDefault(county, [])).contains(Functions.asInt(line.censusTract2010))]]></expression>
            <message>Registry, County and Census Tract 2010 conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1)  Census Tract 2010[135] is blank, 000000, or 999999
  2)  County at DX Geocode2010[96] is blank
  3)  Registry ID[40] is Cherokee Nation (0000001551)
  4)  Addr at DX State[547] is blank or invalid


Census Tract 2010[135] must be valid within the given County at DX Geocode2010[96] for each Addr at DX State[547].]]></description>
            <history>
                <event version="SE13-009-03" user="murphyr" date="2013-04-19" ref="66853">Edit created.</event>
                <event version="SE13-010-04" user="murphyr" date="2013-08-21" ref="66926">Edit disabled for CNCP registry.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-13" ref="67382">Edit now uses County at DX Geocode2010 instead of County at DX.</event>
                <event version="SE16-015-04" user="kirbyk" date="2016-07-08" ref="67491">Edit now uses County at DX if County at DX Geocode2010 is blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-19" ref="67970">Edit updated for new registries ID, NY, MA, and WI.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-07" user="beverung" date="2020-10-01" ref="68527">Edit now uses countyAtDxAnalysis instead of countyAtDxGeocode2010.</event>
                <event version="SE18-020-09" user="kirbyk" date="2020-10-27" ref="68538">Reverted edit to use countyAtDxGeocode2010.</event>
                <event version="SE21-021-07" user="beverung" date="2021-07-16" ref="68688">Edit updated for new registries IL and TX.</event>
                <event version="SE23-023-06" user="cooki" date="2023-07-31" ref="69294">Updated countyAtDx to countyAtDxAnalysis.</event>
                <event version="SE24-024-05" user="beverung" date="2024-05-23" ref="69467">Update edit to use Addr at DX State instead of Registry ID to determine valid Census tract codes.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF442" name="CS LN, RNP, Nodes Eval, SSF 3, MelanomaSkin (CS)" tag="N1768" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Reg_Node_Eval,CS_Site-Specific_Factor_3,Regional_Nodes_Positive,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2010' ||
    line.csLymphNodes == null || line.regionalNodesPositive == null ||
    line.csSiteSpecificFactor3 == null || line.csSiteSpecificFactor3 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
return true

if (line._csSchemaId == 'melanoma_skin') {
    if ((line.csLymphNodesEval == '0' || line.csLymphNodesEval == '1' ||
        line.csLymphNodesEval == '5' || line.csLymphNodesEval == '9') &&
        Functions.matches(line.csLymphNodes, /(^10\d|11[0-8]|125|155$)/))
        return line.csSiteSpecificFactor3 != '005'
    if (line.csLymphNodes == '010' && (line.csLymphNodesEval == '0' || line.csLymphNodesEval == '1' ||
        line.csLymphNodesEval == '5' || line.csLymphNodesEval == '9'))
        return false
    if (line.csLymphNodesEval == '2' || line.csLymphNodesEval == '3' ||
        line.csLymphNodesEval == '6' || line.csLymphNodesEval == '8') {
        if (line.csLymphNodes == '010' && (line.regionalNodesPositive == '00' ||
            line.regionalNodesPositive == '97' || line.regionalNodesPositive == '98'))
            return !(Functions.matches(line.csSiteSpecificFactor3, /(^005|0[1-9]\d|100$)/))
    }
    if (line.csLymphNodesEval == '2' || line.csLymphNodesEval == '3' ||
        line.csLymphNodesEval == '6' || line.csLymphNodesEval == '8') {
        if (line.csLymphNodes == '010' && (line.regionalNodesPositive == '00' ||
            line.regionalNodesPositive == '97' || line.regionalNodesPositive == '98'))
            return !(Functions.matches(line.csSiteSpecificFactor3, /(^005|0[1-9]\d|100$)/))
        if (line.csLymphNodes == '010' && Functions.matches(line.regionalNodesPositive, /(^0[1-9]|[1-8]\d|9[0-5,9]$)/))
            return line.csSiteSpecificFactor3 != '005' && line.csSiteSpecificFactor3 != '100'
        if (Functions.matches(line.csLymphNodes, /(^10\d|11[0-8]$)/) && line.regionalNodesPositive == '00')
            return line.csSiteSpecificFactor3 != '005' && line.csSiteSpecificFactor3 != '010' &&
                line.csSiteSpecificFactor3 != '050' && line.csSiteSpecificFactor3 != '100'
        if (Functions.matches(line.csLymphNodes, /(^10\d|11[0-8]|125|158$)/) && line.regionalNodesPositive == '98')
            return line.csSiteSpecificFactor3 != '005' && line.csSiteSpecificFactor3 != '010' &&
                line.csSiteSpecificFactor3 != '100'
        if ((line.csLymphNodes == '125' || line.csLymphNodes == '155') && line.regionalNodesPositive == '00')
            return line.csSiteSpecificFactor3 != '005' && line.csSiteSpecificFactor3 != '010' &&
                line.csSiteSpecificFactor3 != '100'
        if (Functions.matches(line.csLymphNodes, /(^10\d|11[0-8]|12[23]|125|15[2-8]$)/) &&
            Functions.matches(line.regionalNodesPositive, /(^0[1-9]|[1-8]\d|9[0-7,9]$)/))
            return line.csSiteSpecificFactor3 != '005' && line.csSiteSpecificFactor3 != '100'
        if (line.csLymphNodes == '124' &&
            Functions.matches(line.regionalNodesPositive, /(^01|9[579]$)/))
            return line.csSiteSpecificFactor3 != '005' && line.csSiteSpecificFactor3 != '100'
        if (line.csLymphNodes == '124' &&
            Functions.matches(line.regionalNodesPositive, /(^0[2-9]|[1-8]\d|90$)/))
            return line.csSiteSpecificFactor3 != '005' && line.csSiteSpecificFactor3 != '050' &&
                line.csSiteSpecificFactor3 != '100'
    }
    if (line.csLymphNodesEval == null) {
        if (line.csLymphNodes == '010' && (line.regionalNodesPositive == '00' ||
            line.regionalNodesPositive == '98'))
            return !(Functions.matches(line.csSiteSpecificFactor3, /(^005|100$)/))
        if (Functions.matches(line.csLymphNodes, /(^10\d|11[0-8]|12[1-8]|15[23]$)/) && (line.regionalNodesPositive == '00' ||
            line.regionalNodesPositive == '98'))
            return line.csSiteSpecificFactor3 != '005' && line.csSiteSpecificFactor3 != '010' &&
                line.csSiteSpecificFactor3 != '100'
        if (Functions.matches(line.csLymphNodes, /(^15[5-8]$)/) && (line.regionalNodesPositive == '00' ||
            line.regionalNodesPositive == '98'))
            return line.csSiteSpecificFactor3 != '005' && line.csSiteSpecificFactor3 != '010'
        if (Functions.matches(line.csLymphNodes, /(^010|10\d|11[0-8]|12[1-8]|15[2-3]|15[5-8]$)/) &&
            Functions.matches(line.regionalNodesPositive, /(^0[1-9]|[1-8]\d|9[0-7]$)/))
            return line.csSiteSpecificFactor3 != '005' && line.csSiteSpecificFactor3 != '100'
        if (Functions.matches(line.csLymphNodes, /(^010|10\d|11[0-8]|12[1-8]|15[2-3]$)/) &&
            line.regionalNodesPositive == '99')
            return line.csSiteSpecificFactor3 != '005' && line.csSiteSpecificFactor3 != '100'
        if (Functions.matches(line.csLymphNodes, /(^15[5-8]$)/) && line.regionalNodesPositive == '99')
            return line.csSiteSpecificFactor3 != '005'
    }
}

return true]]></expression>
            <message>MelanomaSkin schema combination failed to derive stage</message>
            <description><![CDATA[This edit applies to AJCC 7 stage only.

This edit generates an error for CS Lymph Nodes, Regional Nodes Positive, CS Lymph Nodes Eval and CS Site-Specific Factor 3 combinations for the MelanomaSkin schema that result in a failure to derive stage. It applies only to cases diagnosed 2010 and later.

This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is blank, invalid or less than 2010
2. CS Lymph Nodes is empty
3. Regional Nodes Positive is empty
4. CS Site-Specific Factor 3 is empty or = 988
5. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
6. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

Definitions:
  CS Lymph Nodes code 010 = Individual tumor cells only
  CS Lymph Nodes codes 100-118 = named regional nodes
  CS Lymph Nodes codes 121, 128 = evaluated clinically
  CS Lymph Nodes codes 123, 124, 152-153, 158 = evaluated pathologically
  CS Lymph Nodes code 124 = Stated as N1 nodes
  CS Lymph Nodes codes 155-158 = Stated as N2 nodes

  CS Site-Specific Factor 3 code 005 = clinically and pathologically negative nodes
  CS Site-Specific Factor 3 code 010 = clinically occult nodes
  CS Site-Specific Factor 3 code 100 = clinically apparent intransit metastases only

If schema is MelanomaSkin:

1. If CS Lymph Nodes Eval = 0, 1, 5 or 9:
   AND CS Lymph Nodes = 100-118, 125 or 155
   THEN
       CS Site-Specific Factor 3 must not = 005

2. If CS Lymph Nodes = 010
   THEN
       CS Lymph Nodes Eval must not = 0, 1, 5 or 9

3. If CS Lymph Nodes Eval = 2, 3, 6 or 8:

    A. If CS Lymph Nodes = 010
       AND Regional Nodes Positive = 00, 97, 98
       THEN
           CS Site-Specific Factor 3 must not = 005 or 010-100

    B. If CS Lymph Nodes = 010
       AND Regional Nodes Positive = 01-95 or 99
       THEN
           CS Site-Specific Factor 3 must not = 005 or 100

    C. If CS Lymph Nodes = 100-118
       AND Regional Nodes Positive = 00
       THEN
           CS Site-Specific Factor 3 must not = 005, 010, 050 or 100

    D. If CS Lymph Nodes = 100-118, 125 or 158
       AND Regional Nodes Positive = 98
       THEN
           CS Site-Specific Factor 3 must not = 005, 010 or 100

    E. If CS Lymph Nodes = 125 or 155
       AND Regional Nodes Positive = 00
       THEN
           CS Site-Specific Factor 3 must not = 005, 010 or 100

    F. If CS Lymph Nodes = 100-118, 122-123, 125, 152-158
       AND Regional Nodes Positive = 01-97 or 99
       THEN
           CS Site-Specific Factor 3 must not = 005 or 100

    G. If CS Lymph Nodes = 124
       AND Regional Nodes Positive = 01, 95, 97 or 99
       THEN
           CS Site-Specific Factor 3 must not = 005 or 100

    H. If CS Lymph Nodes = 124
       AND Regional Nodes Positive = 02-90
       THEN
           CS Site-Specific Factor 3 must not = 005, 050 or 100

4. If CS Lymph Nodes Eval is blank

    A. If CS Lymph Nodes = 010
       AND Regional Nodes Positive = 00 or 98
       THEN
           CS Site-Specific Factor 3 must not = 005 or 100

    B. If CS Lymph Nodes = 100-118, 121-128 or 152-153
       AND Regional Nodes Positive = 00 or 98
       THEN
           CS Site-Specific Factor 3 must not = 005, 010 or 100

    C. If CS Lymph Nodes = 155-158
       AND Regional Nodes Positive = 00 or 98
       THEN
           CS Site-Specific Factor 3 must not = 005 or 010

    D. If CS Lymph Nodes = 010, 100-118, 121-128, 152-153 or 155-158
       AND Regional Nodes Positive = 01-97
       THEN
           CS Site-Specific Factor 3 must not = 005 or 100

    E. If CS Lymph Nodes = 010, 100-118, 121-128 or 152-153
       AND Regional Nodes Positive = 99
       THEN
           CS Site-Specific Factor 3 must not = 005 or 100

    F. If CS Lymph Nodes = 155-158
       AND Regional Nodes Positive = 99
       THEN
           CS Site-Specific Factor 3 must not = 005]]></description>
            <history>
                <event version="SE13-010-01" user="murphyr" date="2013-05-06" ref="66857">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-05" user="kirbyk" date="2019-10-09" ref="68253">Fixed regular expressions for checking conditions 1 and 3B.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF443" name="CS SSF 1, Extension, KidneyParenchyma Schema (CS)" tag="N1764" java-path="lines.line" category="inter-field" depends="CS_Extension,CS_Site-Specific_Factor_1">
            <expression><![CDATA[if (line.csSiteSpecificFactor1 == null || line.csSiteSpecificFactor1 == '988' ||
    line.csExtension == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId != 'kidney_parenchyma')
    return true

if (line.csSiteSpecificFactor1 == '010' || line.csSiteSpecificFactor1 == '020' || line.csSiteSpecificFactor1 == '030' ||
    line.csSiteSpecificFactor1 == '991')
    return line.csExtension != '000' && line.csExtension != '100'

return true]]></expression>
            <message>CS SSF 1 and Extension conflict for KidneyParenchyma schema</message>
            <description><![CDATA[For cases coded using the KidneyParenchyma schema, if CS SSF 1 indicates invasion beyond capsule, then CS Extension must not indicate in situ or confined to kidney.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 1 is blank or 988
2. CS Extension is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

If schema is KidneyParenchyma:
    If CS Site-Specific Factor 1 = 010, 020, 030 or 991 (invasion beyond capsule)
    THEN
        CS Extension must not = 000 (in situ) or 100 (invasive cancer confined to kidney cortex and/or medulla)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-010-01" user="murphyr" date="2013-05-07" ref="66858">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF444" name="CS SSF 1, SSF 2, SSF 15, SSF 16, Breast (CS)" tag="N1765" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_1,CS_Site-Specific_Factor_15,CS_Site-Specific_Factor_16,CS_Site-Specific_Factor_2">
            <expression><![CDATA[if (line.csSiteSpecificFactor1 == null || line.csSiteSpecificFactor1 == '988' ||
    line.csSiteSpecificFactor2 == null || line.csSiteSpecificFactor2 == '988' ||
    line.csSiteSpecificFactor15 == null || line.csSiteSpecificFactor15 == '988' ||
    line.csSiteSpecificFactor16 == null || line.csSiteSpecificFactor16 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId != 'breast' || line.dateOfDiagnosisYear < '2010')
    return true

if (line.csSiteSpecificFactor1 == '010' && line.csSiteSpecificFactor2 == '010' &&
    line.csSiteSpecificFactor15 == '010')
    return line.csSiteSpecificFactor16 == '111'
if (line.csSiteSpecificFactor1 == '010' && line.csSiteSpecificFactor2 == '010' &&
    line.csSiteSpecificFactor15 == '020')
    return line.csSiteSpecificFactor16 == '110'
if (line.csSiteSpecificFactor1 == '010' && line.csSiteSpecificFactor2 == '020' &&
    line.csSiteSpecificFactor15 == '010')
    return line.csSiteSpecificFactor16 == '101'
if (line.csSiteSpecificFactor1 == '010' && line.csSiteSpecificFactor2 == '020' &&
    line.csSiteSpecificFactor15 == '020')
    return line.csSiteSpecificFactor16 == '100'
if (line.csSiteSpecificFactor1 == '020' && line.csSiteSpecificFactor2 == '010' &&
    line.csSiteSpecificFactor15 == '010')
    return line.csSiteSpecificFactor16 == '011'
if (line.csSiteSpecificFactor1 == '020' && line.csSiteSpecificFactor2 == '010' &&
    line.csSiteSpecificFactor15 == '020')
    return line.csSiteSpecificFactor16 == '010'
if (line.csSiteSpecificFactor1 == '020' && line.csSiteSpecificFactor2 == '020' &&
    line.csSiteSpecificFactor15 == '010')
    return line.csSiteSpecificFactor16 == '001'
if (line.csSiteSpecificFactor1 == '020' && line.csSiteSpecificFactor2 == '020' &&
    line.csSiteSpecificFactor15 == '020')
    return line.csSiteSpecificFactor16 == '000'
if (Functions.matches(line.csSiteSpecificFactor1, /(^030|99[6789]$)/) ||
    Functions.matches(line.csSiteSpecificFactor2, /(^030|99[6789]$)/) ||
    Functions.matches(line.csSiteSpecificFactor15, /(^030|99[789]$)/))
    return line.csSiteSpecificFactor16 == '999'

return true]]></expression>
            <message>CS SSF 1, SSF 2, SSF 15 and SSF 16 conflict for Breast schema</message>
            <description><![CDATA[This edit verifies that for cases using the Breast schema, SSF 1 (Estrogen Receptor Assay), SSF 2 (Progesterone Receptor Assay), SSF 15 (HER2: Summary Result of Testing) and SSF 16 (Combinations of ER, PR, and HER2 Results) are coded consistently. ER results are coded in the first digit of SSF 16: 0 for negative and 1 for positive. PR results are coded in the second digit: 0 for negative and 1 for positive. HER2 results are coded in the third digit: 0 for negative and 1 for positive.

This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is less than 2010
2. CS Site-Specific Factor 1 is blank or 988
3. CS Site-Specific Factor 2 is blank or 988
4. CS Site-Specific Factor15 is blank or 988
5. CS Site-Specific Factor16 is blank or 988
6. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
7. CS schema is invalid

If CS schema is Breast:
1.  If CS Site-Specific Factor 1 = 010 (positive/elevated)
    and CS Site-Specific Factor 2 = 010 (positive/elevated)
    and CS Site-Specific Factor15 = 010 (positive/elevated)
    THEN
        CS Site-Specific Factor16  must = 111 (ER Positive, PR Positive, HER2 Positive)
2.  If CS Site-Specific Factor 1 = 010 (positive/elevated)
    and CS Site-Specific Factor 2 = 010 (positive/elevated)
    and CS Site-Specific Factor15 = 020 (negative/normal)
    THEN
        CS Site-Specific Factor16  must = 110 (ER Positive, PR Positive, HER2 Negative)
3.  If CS Site-Specific Factor 1 = 010 (positive/elevated)
    and CS Site-Specific Factor 2 = 020 (negative/normal)
    and CS Site-Specific Factor15 = 010 (positive/elevated)
    THEN
        CS Site-Specific Factor16  must = 101 (ER Positive, PR Negative, HER2 Positive)
4.  If CS Site-Specific Factor 1 = 010 (positive/elevated)
    and CS Site-Specific Factor 2 = 020 (negative/normal)
    and CS Site-Specific Factor15 = 020 (negative/normal)
    THEN
        CS Site-Specific Factor16  must = 100 (ER Positive, PR Negative, HER2 Negative)
5.  If CS Site-Specific Factor 1 = 020 (negative/normal)
    and CS Site-Specific Factor 2 = 010 (positive/elevated)
    and CS Site-Specific Factor15 = 010 (positive/elevated)
    THEN
        CS Site-Specific Factor16  must = 011 (ER Negative, PR Positive, HER2 Positive)
6.  If CS Site-Specific Factor 1 = 020 (negative/normal)
    and CS Site-Specific Factor 2 = 010 (positive/elevated)
    and CS Site-Specific Factor15 = 020 (negative/normal)
    THEN
        CS Site-Specific Factor16  must = 010 (ER Negative, PR Positive, HER2 Negative)
7.  If CS Site-Specific Factor 1 = 020 (negative/normal)
    and CS Site-Specific Factor 2 = 020 (negative/normal)
    and CS Site-Specific Factor15 = 010 (positive/elevated)
    THEN
        CS Site-Specific Factor16  must = 001 (ER Negative, PR Negative, HER2 Positive)
8.  If CS Site-Specific Factor 1 = 020 (negative/normal)
    and CS Site-Specific Factor 2 = 020 (negative/normal)
    and CS Site-Specific Factor15 = 020 (negative/normal)
    THEN
        CS Site-Specific Factor16  must = 000 (ER Negative, PR Negative, HER2 Negative)
9.  If CS Site-Specific Factor 1 = 030, 996, 997, 998, or 999 (codes
    indicating borderline, results not interpretable or not in chart,
    or test not done or unknown if test done)
      or CS Site-Specific Factor 2 = 030, 996, 997, 998, or 999
      or CS Site-Specific Factor15 = 030, 997, 998, or 999
    THEN
        CS Site-Specific Factor16  must = 999 (one or more tests not performed,
        one or more tests unknown if performed, one or more tests unknown or
        borderline results, unknown)


This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-010-01" user="murphyr" date="2013-05-07" ref="66859">Edit created.</event>
                <event version="SE13-010-03" user="murphyr" date="2013-08-13" ref="66859">Disabled edit (it will always return true).</event>
                <event version="SE14-011-01" user="murphyr" date="2013-10-28" ref="67020">Re-enabled edit and added skip condition for year of Dx less than 2010.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF445" name="CS SSF 1, Surgery, KidneyParenchyma Schema (CS)" tag="N1791" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_1,RX_Summ--Surg_Prim_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor1 == null || line.csSiteSpecificFactor1 == '988' ||
    line.rxSummSurgPrimSite == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId != 'kidney_parenchyma')
    return true

Integer rxSummSurgPrimSiteInt = Functions.asInt(line.rxSummSurgPrimSite)
if (line.csSiteSpecificFactor1 == '998')
    return rxSummSurgPrimSiteInt >= 0 && rxSummSurgPrimSiteInt <= 27

return true]]></expression>
            <message>CS SSF 1 and RX Summ--Surg Prim Site conflict for KidneyParenchyma schema</message>
            <description><![CDATA[For cases coded using the KidneyParenchyma schema, if CS SSF 1 (invasion beyond capsule) indicates no surgical resection of primary site, then RX Summ--Surg Prim Site must not indicate a nephrectomy procedure.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 1 is blank or 988
2. RX Summ--Surg Prim Site is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

If schema is KidneyParenchyma:
    If CS Site-Specific Factor 1 = 998 (no surgical resection of primary site)
    THEN
        RX Summ--Surg Prim Site must = 00-27 (codes indicating no surgery
        of primary site or procedures less than partial or subtotal nephrectomy)


This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-010-01" user="murphyr" date="2013-05-07" ref="66860">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF446" name="CS SSF 11, Lymph Nodes, Vulva (CS)" tag="N1780" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_11">
            <expression><![CDATA[if (line.csSiteSpecificFactor11 == null || line.csSiteSpecificFactor11 == '988' ||
    line.csLymphNodes == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line.behaviorCodeIcdO3 == '2' || line._csSchemaId != 'vulva')
    return true

Integer csLymphNodesInt = Functions.asInt(line.csLymphNodes)
Integer ssf11Int = Functions.asInt(line.csSiteSpecificFactor11)
if (ssf11Int == 0)
    return csLymphNodesInt == 0 || csLymphNodesInt == 999
if (csLymphNodesInt == 0 && ssf11Int != 0 && ssf11Int != 998 && ssf11Int != 999)
    return false
if (ssf11Int == 998)
    return !(csLymphNodesInt >= 110 && csLymphNodesInt <= 800)
if (ssf11Int == 10 || ssf11Int == 20 || ssf11Int == 30)
    return csLymphNodesInt != 0 && csLymphNodesInt != 999
if (ssf11Int == 999)
    return csLymphNodesInt == 999

return true]]></expression>
            <message>CS SSF 11 and Lymph Nodes conflict for Vulva schema</message>
            <description><![CDATA[This edit verifies that for cases coded using the Vulva schema, CS Site-Specific Factor 11 (Regional Lymph Node - Laterality) and CS Lymph Nodes are coded consistently.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor11 is blank or 988
2. CS Lymph Nodes is blank
3. Behavior Code ICD-O-3 = 0 (benign), 1 (borderline), or 2 (in situ)
4. CS schema is invalid

If CS schema = Vulva:

1. If CS Site-Specific Factor11 = 000 (all regional lymph nodes negative), then CS Lymph Nodes must = 000 (no regional lymph node involvement) or 999 (unknown).

   The vice versa condition is also true:
   If CS Lymph Nodes = 000, then CS Site-Specific Factor11 must = 000, 998, or 999.

2. If CS Site-Specific Factor11 = 998 (lymph nodes not assessed), then CS Lymph Nodes must not = 110-800 (positive involvement of regional nodes).

3. If CS Site-Specific Factor11 = 010, 020, or 030 (codes indicating positive nodes), then CS Lymph Nodes must not = 000 or 999.

4. If CS Site-Specific Factor11 = 999 (unknown or no information), then CS Lymph Nodes must = 999 (unknown if nodes involved).

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-010-01" user="murphyr" date="2013-05-08" ref="66861">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF447" name="CS SSF 13, Extension, Prostate Schema (CS)" tag="N1777" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_13">
            <expression><![CDATA[if (line.csSiteSpecificFactor13 == null || line.csSiteSpecificFactor13 == '988' ||
    line.csExtension == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId != 'prostate')
    return true

if (line.csSiteSpecificFactor13 == '998')
    return line.csExtension != '150'

return true]]></expression>
            <message>CS SSF 13 and Extension conflict for Prostate schema</message>
            <description><![CDATA[For cases coded using the Prostate schema, if CS SSF 13 (number of cores examined) indicates no needle core biopsy performed, then CS Extension must not indicate tumor identified by needle core biopsy.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor13 is blank or 988
2. CS Extension is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

If schema is Prostate:
    If CS Site-Specific Factor13 = 998 (no needle core biopsy performed)
    THEN
        CS Extension must not = 150 (tumor identified by needle biopsy)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-010-01" user="murphyr" date="2013-05-08" ref="66862">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF448" name="CS SSF 2, Extension, KidneyParenchyma Schema (CS)" tag="N1767" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_2">
            <expression><![CDATA[if (line.csSiteSpecificFactor2 == null || line.csSiteSpecificFactor2 == '988' ||
    line.csExtension == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId != 'kidney_parenchyma')
    return true

Integer extensionInt = Functions.asInt(line.csExtension)
if (line.csSiteSpecificFactor2 == '010')
    return extensionInt >= 600
if (line.csSiteSpecificFactor2 == '020' || line.csSiteSpecificFactor2 == '040' ||
    line.csSiteSpecificFactor2 == '050' || line.csSiteSpecificFactor2 == '070')
    return extensionInt == 600 || extensionInt >= 610
if (line.csSiteSpecificFactor2 == '030' || line.csSiteSpecificFactor2 == '060' ||
    line.csSiteSpecificFactor2 == '080' || line.csSiteSpecificFactor2 == '090')
    return extensionInt >= 620

return true]]></expression>
            <message>CS SSF 2 and Extension conflict for KidneyParenchyma schema</message>
            <description><![CDATA[For cases coded using the KidneyParenchyma schema, if CS SSF 2 indicates involvement of renal vein only, then CS Extension must indicate involvement of blood vessels.  If CS SSF 2 indicates involvement of IVC below diaphragm, then CS Extension must also indicate involvement of IVC below diaphragm. If CS SSF 2 indicates involvement of IVC above diaphragm, then CS Extension must also indicate involvement of IVC above diaphragm.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 2 is blank or 988
2. CS Extension is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

If schema is KidneyParenchyma:
1.  If CS Site-Specific Factor 2 = 010 (involvement of renal vein only)
    THEN
        CS Extension must be greater than or equal to 600 (involvement of blood vessels)

2.  If CS Site-Specific Factor 2 = 020, 040, 050, 070 (codes indicating involvement of IVC below diaphragm)
    THEN
        CS Extension must be equal to 600 or greater than or equal to 610 (codes indicating involvement of IVC below diaphragm)

3.  If CS Site-Specific Factor 2 = 030, 060, 080, 090 (codes indicating involvement of IVC above diaphragm)
    THEN
        CS Extension must be greater than or equal to 620 (codes indicating involvement of IVC above diaphragm)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-010-01" user="murphyr" date="2013-05-08" ref="66863">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF449" name="CS SSF 2, Surgery, KidneyParenchyma Schema (CS)" tag="N1782" java-path="lines.line" category="inter-field" depends="CS_Site-Specific_Factor_2,RX_Summ--Surg_Prim_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor2 == null || line.csSiteSpecificFactor2 == '988' ||
    line.rxSummSurgPrimSite == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId != 'kidney_parenchyma')
    return true

Integer rxSummSurgPrimSiteInt = Functions.asInt(line.rxSummSurgPrimSite)
if (line.csSiteSpecificFactor2 == '998')
    return rxSummSurgPrimSiteInt >= 0 && rxSummSurgPrimSiteInt <= 27

return true]]></expression>
            <message>CS SSF 2 and Rx Summ--Surg Prim Site conflict for KidneyParenchyma schema</message>
            <description><![CDATA[For cases coded using the KidneyParenchyma schema, if CS SSF 2 (vein involvement)indicates no surgical resection of primary site, then RX Summ--Surg Prim Site must not indicate a nephrectomy procedure.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 2 is blank or 988
2. RX Summ--Surg Prim Site is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

If schema is KidneyParenchyma:
    If CS Site-Specific Factor 2 = 998 (no surgical resection of primary site)
    THEN
        RX Summ--Surg Prim Site must = 00-27 (codes indicating no surgery
        of primary site or procedures less than partial or subtotal nephrectomy)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-010-01" user="murphyr" date="2013-05-08" ref="66864">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF450" name="CS SSF 3, Extension, KidneyParenchyma Schema (CS)" tag="N1771" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_3">
            <expression><![CDATA[if (line.csSiteSpecificFactor3 == null || line.csSiteSpecificFactor3 == '988' ||
    line.csExtension == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId != 'kidney_parenchyma')
    return true

Integer extensionInt = Functions.asInt(line.csExtension)
if (line.csSiteSpecificFactor3 == '010' || line.csSiteSpecificFactor3 == '030')
    return extensionInt >= 630
if (extensionInt == 630 || extensionInt == 640 || extensionInt == 645)
    return line.csSiteSpecificFactor3 != '000' && line.csSiteSpecificFactor3 != '020'

return true]]></expression>
            <message>CS SSF 3 and Extension conflict for KidneyParenchyma schema</message>
            <description><![CDATA[For cases coded using the KidneyParenchyma schema, if CS SSF 3 (ipsilateral adrenal gland involvement) indicates involvement of ipsilateral adrenal gland, then CS Extension must indicate involvement of ipsilateral adrenal gland or more extensive involvement.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 3 is blank or 988
2. CS Extension is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

If schema is KidneyParenchyma:
1.  If CS Site-Specific Factor 3 = 010 or 030 (codes indicating ipsilateral adrenal gland involvement)
    THEN
        CS Extension must be greater than or equal to 630 (involvement
        of ipsilateral adrenal gland)

2.  If CS Extension = 630, 640, or 645 (involvement of ipsilateral
    adrenal gland or more extensive involvement)
    THEN
        CS Site-Specific Factor 3 must not = 000 (ipsilateral adrenal
        gland not involved) or 020 (noncontiguous involvement of
        ipsilateral adrenal gland)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-010-01" user="murphyr" date="2013-05-08" ref="66865">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF451" name="CS SSF 3, Mets at Dx, KidneyParenchyma Schema (CS)" tag="N1794" java-path="lines.line" category="inter-field" depends="CS_Mets_at_DX,CS_Site-Specific_Factor_3">
            <expression><![CDATA[if (line.csSiteSpecificFactor3 == null || line.csSiteSpecificFactor3 == '988' ||
    line.csMetsAtDx == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId != 'kidney_parenchyma')
    return true

if (line.csSiteSpecificFactor3 == '020' || line.csSiteSpecificFactor3 == '030')
    return line.csMetsAtDx == '40' || line.csMetsAtDx == '55'

return true]]></expression>
            <message>CS SSF 3 and Mets at Dx conflict for KidneyParenchyma schema</message>
            <description><![CDATA[For cases coded using the KidneyParenchyma schema, if CS SSF 3 (ipsilateral adrenal gland involvement) indicates noncontiguous adrenal gland involvement, then CS Mets at DX must not indicate no distant mets or contiguous involvement. Noncontiguous involvement of ipsilateral adrenal gland is coded in CS Mets at DX code 40 or 55, which is a combination code including code 40.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 3 is blank or 988
2. CS Mets at DX is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

If schema is KidneyParenchyma:
1.  If CS Site-Specific Factor 3 = 020 or 030 (codes indicating
    noncontiguous adrenal gland involvement)
    THEN
        CS Mets at DX must 40 or 55


This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-010-01" user="murphyr" date="2013-05-08" ref="66866">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF452" name="CS SSF 4, Surgery, KidneyParenchyma Schema (CS)" tag="N1783" java-path="lines.line" category="inter-field" depends="CS_Site-Specific_Factor_4,RX_Summ--Surg_Prim_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor4 == null || line.csSiteSpecificFactor4 == '988' ||
    line.rxSummSurgPrimSite == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId != 'kidney_parenchyma')
    return true

Integer rxSummSurgPrimSiteInt = Functions.asInt(line.rxSummSurgPrimSite)
if (line.csSiteSpecificFactor4 == '998')
    return rxSummSurgPrimSiteInt >= 0 && rxSummSurgPrimSiteInt <= 19

return true]]></expression>
            <message>CS SSF 4 and Rx Summ--Surg Prim Site conflict for KidneyParenchyma schema</message>
            <description><![CDATA[For cases coded using the KidneyParenchyma schema, if CS SSF 4 (sarcomatoid features) indicates no pathologic examination of primary site, then RX Summ--Surg Prim Site must not indicate that a specimen was sent to pathology

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 4 is blank or 988
2. RX Summ--Surg Prim Site is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

If schema is KidneyParenchyma:
    If CS Site-Specific Factor 4 = 998 (no pathologic examination of primary site)
    THEN
        RX Summ--Surg Prim Site must = 00-19 (codes indicating no surgery
        of primary site or no specimen sent to pathology from surgical event)


This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-010-01" user="murphyr" date="2013-05-08" ref="66867">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF453" name="CS SSF 6, Histology, KidneyParenchyma Schema (CS)" tag="N1774" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_6">
            <expression><![CDATA[if (line.csSiteSpecificFactor6 == null || line.csSiteSpecificFactor6 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId != 'kidney_parenchyma')
    return true

Integer histInt = Functions.asInt(line.histologicTypeIcdO3)
if (line.csSiteSpecificFactor6 == '987')
    return (histInt != 8260 && histInt != 8310 && histInt != 8312 &&
        histInt != 8510 && histInt != 8959 &&
        !(histInt >= 8316 && histInt <= 8320))

return true]]></expression>
            <message>CS SSF 6 and Histology ICD-O--3 conflict for KidneyParenchyma Schema</message>
            <description><![CDATA[For cases coded using the KidneyParenchyma schema, if CS SSF 6 (Fuhrman Nuclear Grade) indicates case is not a renal cell carcinoma, then the histology code must not be a renal cell carcinoma code per Multiple Primary/Histology Rules.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 6 is blank or 988
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
3. CS schema is invalid

If schema is KidneyParenchyma:
    If CS Site-Specific Factor 6 = 987 (not applicable: not a renal cell carcinoma morphology)
    THEN
        Histologic Type ICD-O-3 must not = 8260, 8310, 8312, 8316-8320, 8510, or 8959 (renal cell carcinoma codes per MP/H rules)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-010-01" user="murphyr" date="2013-05-08" ref="66868">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF454" name="CS SSF 8, Lymph Nodes, KidneyParenchyma (CS)" tag="N1775" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_8">
            <expression><![CDATA[if (line.csSiteSpecificFactor8 == null || line.csSiteSpecificFactor8 == '988' ||
    line.csLymphNodes == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line._csSchemaId != 'kidney_parenchyma')
    return true

Integer lymphNodesInt = Functions.asInt(line.csLymphNodes)
Integer ssf8Int = Functions.asInt(line.csSiteSpecificFactor8)
if (ssf8Int == 0)
    return !(lymphNodesInt >= 100 && lymphNodesInt <= 800)
if (lymphNodesInt == 0)
    return !(ssf8Int >= 10 && ssf8Int <= 30)

return true]]></expression>
            <message>CS SSF 8 and Lymph Nodes conflict for KidneyParenchyma schema</message>
            <description><![CDATA[This edit verifies that for cases using the KidneyParenchyma schema, CS SSF 8 (extranodal extension of regional lymph nodes) and CS Lymph Nodes are coded consistently.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 8 is blank or 988
2. CS Lymph Nodes is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

If CS schema is KidneyParenchyma:
1. If CS Site-Specific Factor 8 = 000 (no regional lymph nodes involved)
   THEN
       CS Lymph Nodes must not = 100-800 (codes indicating regional lymph node involvement)
2. If CS Lymph Nodes = 000 (no regional lymph node involvement)
   THEN
       CS Site-Specific Factor 8 must not = 010-030 (codes indicating regional lymph node involvement)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-010-01" user="murphyr" date="2013-05-09" ref="66869">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF455" name="CS SSF 9, Surgery, MelanomaChor/Cil/Iris (CS)" tag="N1779" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_9,RX_Summ--Surg_Prim_Site">
            <expression><![CDATA[if (line.csSiteSpecificFactor9 == null || line.csSiteSpecificFactor9 == '988' ||
    line.rxSummSurgPrimSite == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    (line._csSchemaId != 'melanoma_choroid' && line._csSchemaId != 'melanoma_ciliary_body' &&
    line._csSchemaId != 'melanoma_iris'))
    return true

Integer rxSummSurgPrimSiteInt = Functions.asInt(line.rxSummSurgPrimSite)
if (line.csSiteSpecificFactor9 == '998')
    return rxSummSurgPrimSiteInt >= 0 && rxSummSurgPrimSiteInt <= 19

return true]]></expression>
            <message>CS SSF 9 and Rx Summ--Surg Prim Site conflict for MelanomaChor/Cil/Iris schemas</message>
            <description><![CDATA[For cases coded using the MelanomaChoroid, MelanomaCiliaryBody and MelanomaIris schemas, if CS SSF 9 (mitotic count) indicates no histologic specimen from primary site, then RX Summ--Surg Prim Site must not indicate that a specimen was sent to pathology.

This edit is skipped if any of the following conditions are true:
1. CS Site-Specific Factor 9 is blank or 988
2. RX Summ--Surg Prim Site is blank
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. CS schema is invalid

If schema is MelanomaChoroid, MelanomaCiliaryBody or MelanomaIris:
    If CS Site-Specific Factor 9 = 998 (no histologic specimen from primary site)
    THEN
        RX Summ--Surg Prim Site must = 00-19 (codes indicating no surgery
        of primary site or no specimen sent to pathology from surgical event)


This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-010-01" user="murphyr" date="2013-05-09" ref="66870">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF456" name="CS Lymph Nodes, Lymph Nodes Eval, RNP (CS)" tag="N1803" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Reg_Node_Eval">
            <expression><![CDATA[if (line.csLymphNodes == null || line.csLymphNodesEval == null || line.regionalNodesPositive == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || Functions.asInt(line.dateOfDiagnosisYear) < 2010)
    return true

if (line._csSchemaId == 'lymphoma_ocular_adnexa' || line._csSchemaId == 'retinoblastoma' ||
    line._csSchemaId == 'melanoma_skin' || line._csSchemaId == 'merkel_cell_penis' ||
    line._csSchemaId == 'merkel_cell_scrotum' || line._csSchemaId == 'merkel_cell_skin' ||
    line._csSchemaId == 'merkel_cell_vulva')
    return true

if (line._csSchemaId == 'breast' && line.csLymphNodes == '050')
    return true

if (line._csSchemaId == 'esophagus_gejunction' && line.csLymphNodes == '100')
    return true

if (line._csSchemaId == 'stomach' && (line.csLymphNodes == '100' || line.csLymphNodes == '110'))
    return true

if (line._csSchemaId == 'colon' && line.csLymphNodes == '050')
    return true

if (line._csSchemaId == 'rectum' && line.csLymphNodes == '050')
    return true

if ((line._csSchemaId == 'net_stomach' || line._csSchemaId == 'net_colon' || line._csSchemaId == 'net_rectum') && (line.csLymphNodes == '050' || line.csLymphNodes == '100'))
    return true

if ((line._csSchemaId == 'gist_appendix' || line._csSchemaId == 'gist_stomach') && (line.csLymphNodes == '050' || line.csLymphNodes == '100'))
    return true

if ((line._csSchemaId == 'gist_colon' || line._csSchemaId == 'gist_rectum') && (line.csLymphNodes == '050' || line.csLymphNodes == '100'))
    return true

if (line.csLymphNodes != '000' && line.csLymphNodes != '999' &&
    (line.csLymphNodesEval == '3' || line.csLymphNodesEval == '6'))
    return line.regionalNodesPositive != '00' && line.regionalNodesPositive != '98'

return true]]></expression>
            <message>CS Lymph Nodes and Lymph Nodes Eval conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is less than 2010
2. CS Lymph Nodes is blank
3. CS Lymph Nodes Eval is blank
4. Regional Nodes Positive is blank
5. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
6. CS schema is invalid

This edit is skipped for the following schemas where something other than regional nodes is also coded in CS Lymph Nodes:
  LymphomaOcularAdnexa - distant nodes also coded in CS Lymph Nodes
  Retinoblastoma - distant nodes also coded in CS Lymph Nodes
  MelanomaSkin - satellite nodules also coded in CS Lymph Nodes
  MerkelCellPenis - satellite nodules also coded in CS Lymph Nodes
  MerkelCellScrotum - satellite nodules also coded in CS Lymph Nodes
  MerkelCellSkin - satellite nodules also coded in CS Lymph Nodes
  MerkelCellVulva - satellite nodules also coded in CS Lymph Nodes

This edit is also skipped for the following schemas for certain CS Lymph Nodes codes that indicate something other than regional nodes is coded in CS Lymph Nodes:
  Breast and CS Lymph Nodes = 050 (individual tumor cells coded in CS Lymph Nodes)
  EsophagusGEJunction and CS Lymph Nodes = 100 (tumor deposits coded in CS Lymph Nodes)
  Stomach and CS Lymph Nodes = 100 or 110 (tumor deposits coded in CS Lymph Nodes)
  Colon and CS Lymph Nodes = 050 (tumor deposits coded in CS Lymph Nodes)
  Rectum and CS Lymph Nodes = 050 (tumor deposits coded in CS Lymph Nodes)
  NETStomach and CS Lymph Nodes = 050 or 100 (nodules in perigastric fat coded in CS Lymph Nodes)
  NETColon and CS Lymph Nodes = 050 or 100 (nodules in pericolic fat coded in CS Lymph Nodes)
  NETRectum and CS Lymph Nodes = 050 or 100 (nodules in perirectal fat coded in CS Lymph Nodes)
  GISTAppendix and CS Lymph Nodes = 050 or 100 (nodules in pericolic fat coded in CS Lymph Nodes)
  GISTStomach and CS Lymph Nodes = 050 or 100 (nodules in perigastric fat coded in CS Lymph Nodes)
  GISTColon and CS Lymph Nodes = 050 or 100 (nodules in pericolic fat coded in CS Lymph Nodes)
  GISTRectum and CS Lymph Nodes = 050 or 100 (nodules in perirectal fat coded in CS Lymph Nodes)

If CS Lymph Nodes is not = 000 (no regional lymph node involvement)
     or 999 (unknown)
AND CS Lymph Nodes Eval = 3 or 6 (codes indicating pathologic eval)
THEN
    Regional Nodes Positive must not = 00 (all nodes examined negative) or
     98 (no nodes examined)

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-010-01" user="murphyr" date="2013-05-09" ref="66880">Edit created.</event>
                <event version="SE13-010-03" user="murphyr" date="2013-08-05" ref="66916">Disabled edit for now.</event>
                <event version="SE14-011-01" user="murphyr" date="2013-10-24" ref="66992">Re-enabled edit.  Added skip condition for cases diagnosed before 2010.</event>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-16" ref="67190">Added NetStomach, NetColon, NetRectum, GISTAppendix, GISTStomach, GISTColon, GISTRectum schemas to skip for CS Lymph Node codes 050 and 100.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF460" name="CS Extension, SSF 1, MelanomaConjunctiva (CS)" tag="N1778" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_1,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2010' ||
    line.csExtension == null ||
    line.csSiteSpecificFactor1 == null || line.csSiteSpecificFactor1 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'melanoma_conjunctiva') {
    Integer csExtInt = Functions.asInt(line.csExtension)
    if (csExtInt >= 300 && csExtInt <= 500 && line.csSiteSpecificFactor1 == '000')
        return false
}

return true]]></expression>
            <message>CS Extension and SSF 1 conflict for MelanomaConjunctiva schema</message>
            <description><![CDATA[This edit applies to AJCC 7 stage only.

This edit generates an error for CS Extension and Site-Specific Factor 1 (tumor size) combinations for the MelanomaConjunctiva schema that result in a failure to derive stage. It applies only to cases diagnosed 2010 and later.

If schema is MelanomaConjunctiva:
  An error will be generated under the following conditions:
    If CS Extension code = 300-500 (codes requiring
    tumor size to derive T value)
    AND CS Site-Specific Factor 1 = 000 (no mass/tumor found)

This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is blank, invalid or less than 2010
2. CS Extension  is empty
3. CS Site-Specific Factor 1 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE13-010-01" user="murphyr" date="2013-05-10" ref="66856">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF461" name="Census Tract 2010 and Year of Diagnosis" tag="S008" java-path="lines.line" category="inter-field" depends="Census_Tract_2010,Year_of_Diagnosis">
            <expression><![CDATA[if (line.registryId == '0000001565')
    return true

if (line.dateOfDiagnosisYear > '2005' && line.dateOfDiagnosisYear < '2022')
    return line.censusTract2010 != null

return true]]></expression>
            <message>Census Tract 2010 and Year of Diagnosis conflict</message>
            <description><![CDATA[This edit is skipped if Registry ID[40] is 0000001565 (Illinois).

If Year of Diagnosis[390] > 2005 and < 2022, Census Tract 2010 cannot be blank.]]></description>
            <history>
                <event version="SE13-010-04" user="murphyr" date="2013-08-21" ref="66924">Edit created.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-05" ref="68702">Add skip condition for IL.</event>
                <event version="SE23-023-07" user="cooki" date="2023-09-22" ref="69312">Added upper limit of 2022 to logic.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-06-26" ref="69508">Fixed typo in message.</event>
            </history>
        </rule>
        <rule id="IF462" name="Census Tr Certainty 2010 and Year of Diagnosis(SEER IF462)" tag="S009" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.registryId != '0000001533' && line.dateOfDiagnosisYear > '2005')
    return line.censusTrCertainty2010 != null

return true]]></expression>
            <message>Census Tr Certainty 2010 and Year of Diagnosis conflict</message>
            <description><![CDATA[If Registry ID[40] = 0000001533 (Arizona Indians), Census Tr Certainty 2010 can be blank.

For all other values of Registry ID[40]:
If Year of Diagnosis[390] > 2005, Census Tr Certainty 2010 cannot be blank.]]></description>
            <history>
                <event version="SE13-010-04" user="murphyr" date="2013-08-21" ref="66925">Edit created.</event>
                <event version="SE13-010-05" user="murphyr" date="2013-09-11" ref="66925">Changed edit name and added skip condition for Arizona Indians.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF463" name="CS Extension, CS Tumor Size, MycosisFungoides (CS)" tag="N1867" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Tumor_Size,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 || line._csSchemaId != 'mycosis_fungoides' ||
    line.csExtension == null || line.csTumorSize == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (Functions.matches(line.csExtension, /(^1[1235]0|2[123]0|300$)/))
    return line.csTumorSize == '000' || line.csTumorSize == '999'
if (line.csExtension == '600')
    return line.csTumorSize != '990' && line.csTumorSize != '991'

return true]]></expression>
            <message>Conflict among CS Schema, CS Extension, and CS Tumor Size.</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Tumor Size are coded consistently for MycosisFungoides cases that are originally coded using CSv02.05 or higher.

CSv02.05 contains the following Note for MycosisFungoised Tumor Size:
Record the size of the largest tumor only.  For Mycosis Fungoides, a tumor is described as a solid or nodular lesion at least 1 cm in diameter with evidence of depth and/or vertical growth.  Do not record the size of individual patches, papules, or plaques. Use code 999 if it is unknown if tumors are present, or if the size of the largest tumor is unknown.

This edit is skipped under the following conditions:
1. CS Version Input Original is less than 020500
2. CS schema is not MycosisFungoides
3. CS Extension is empty
4. CS Tumor Size is empty.
5. Behavior Code ICD-O-3 = 0 (benign)or 1 (borderline)

If schema is MycosisFungoides:

    If CS Extension = 110, 120, 130, 150, 210, 220, 230, 300 (codes
    not indicating tumor)
    then
        CS Tumor Size must = 000 (no tumors present) or 999 (unknown)

    If CS Extension = 600 (one or more tumors equal to 1 cm or greater
    or cutaneous tumor, size not stated)
    then
        CS Tumor Size must not = 990 (microscopic focus or foci only
        and no size of focus given) or 991 (described as "less than 1
        centimeter")

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-21" ref="66955">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF464" name="CS Extension, SSF 1, Head and Neck Schemas (CS)" tag="N1868" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_1,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 || line.csExtension == null ||
    line.csSiteSpecificFactor1 == null || line.csSiteSpecificFactor1 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (((List)Context.HEAD_AND_NECK_Schemas).contains(line._csSchemaId) && line.csExtension == '000')
    return line.csSiteSpecificFactor1 == '000' || line.csSiteSpecificFactor1 == '999'

return true]]></expression>
            <message>Conflict among CS Schema, CS Extension, and CS SSF1</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 1 (size of lymph nodes) are coded consistently for head and neck cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor 1 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

This edit is skipped if CS schema is NOT one of the following Head and Neck schemas:
 BuccalMucosa
 EpiglottisAnterior
 FloorMouth
 GumLower
 GumOther
 GumUpper
 Hypopharynx
 LarynxGlottic
 LarynxOther
 LarynxSupraglottic
 LarynxSubglottic
 LipLower
 LipOther
 LipUpper
 MelanomaLipUpper
 MelanomaLipLower
 MelanomaLipOther
 MelanomaTongueAnterior
 MelanomaGumUpper
 MelanomaGumLower
 MelanomaGumOther
 MelanomaFloorMouth
 MelanomaPalateHard
 MelanomaMouthOther
 MelanomaBuccalMucosa
 MelanomaTongueBase
 MelanomaPalateSoft
 MelanomaOropharynx
 MelanomaNasopharynx
 MelanomaHypopharynx
 MelanomaPharynxOther
 MelanomaEpiglottisAnterior
 MelanomaLarynxGlottic
 MelanomaLarynxSupraglottic
 MelanomaLarynxSubglottic
 MelanomaLarynxOther
 MelanomaNasalCavity
 MelanomaSinusMaxillary
 MelanomaSinusEthmoid
 MelanomaSinusOther
 MiddleEar
 MouthOther
 NasalCavity
 Nasopharynx
 Oropharynx
 PalateHard
 PalateSoft
 ParotidGland
 PharyngealTonsil
 PharynxOther
 SalivaryGlandOther
 SinusEthmoid
 SinusMaxillary
 SinusOther
 SubmandibularGland
 TongueAnterior
 TongueBase

If CS Extension = 000 (in situ, intraepithelial, noninvasive)
Then
    CS Site-Specific Factor 1 (size of lymph nodes) must = 000 (no involved regional
    nodes) or 999 (unknown)


This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-21" ref="66956">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF465" name="CS Extension, SSF 11, MerkelCellVulva Schema (CS)" tag="N1869" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_11,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 || line._csSchemaId != 'merkel_cell_vulva' ||
    line.csExtension == null ||
    line.csSiteSpecificFactor11 == null || line.csSiteSpecificFactor11 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line.csExtension == '000')
    return line.csSiteSpecificFactor11 == '000' || line.csSiteSpecificFactor11 == '998' || line.csSiteSpecificFactor11 == '999'

return true]]></expression>
            <message>Conflict among CS Extension and CS SSF11 for MerkelCellVulva</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 11 (regional lymph node - laterality) are coded consistently for MerkelCellVulva non-invasive cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor11 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

If schema is MerkelCellVulva:

    If CS Extension = 000 (In situ, intraepidermal, intraepithelial, noninvasive)
    Then
        CS Site-Specific Factor11 (regional lymph node - laterality)
        must = 000 (all regional lymph nodes negative), 998 (lymph nodes
        not assessed) or 999 (unknown)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-21" ref="66957">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IF466" name="CS Extension, SSF 11, Vulva Schema (CS)" tag="N1870" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 || line._csSchemaId != 'vulva' ||
    line.csExtension == null ||
    line.csSiteSpecificFactor11 == null || line.csSiteSpecificFactor11 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line.csExtension == '000')
    return line.csSiteSpecificFactor11 == '000' || line.csSiteSpecificFactor11 == '998' || line.csSiteSpecificFactor11 == '999'

return true]]></expression>
            <message>Conflict among CS Extension and CS SSF11 for Vulva</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 11 (regional lymph node - laterality) are coded consistently for non-invasive Vulva cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor11 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

If schema is Vulva:

    If CS Extension = 000 (In situ, intraepithelial, noninvasive)
    Then
        CS Site-Specific Factor11 (regional lymph node - laterality)
        must = 000 (all regional lymph nodes negative), 998 (lymph
        nodes not assessed), or 999 (unknown)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IF467" name="CS Extension, SSF 16, MerkelCell Schemas (CS)" tag="N1871" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_16,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 ||
    line.csExtension == null ||
    line.csSiteSpecificFactor16 == null || line.csSiteSpecificFactor16 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if ((line._csSchemaId == 'merkel_cell_scrotum' || line._csSchemaId == 'merkel_cell_vulva' ||
     line._csSchemaId == 'merkel_cell_skin' || line._csSchemaId == 'merkel_cell_penis') &&
    line.csExtension == '000')
    return line.csSiteSpecificFactor16 == '000' || line.csSiteSpecificFactor16 == '998' || line.csSiteSpecificFactor16 == '999'

return true]]></expression>
            <message>Conflict among MerkelCell Schemas, CS Extension, and CS SSF16</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 16 (size of metastasis in lymph nodes) are coded consistently for non-invasive cases coded using the MerkelCellPenis, MerkelCellScrotum, MerkelCellSkin, and MerkelCellVulva schemas that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor16 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

If schema is MerkelCellPenis, MerkelCellScrotum, MerkelCellSkin, or MerkelCellVulva:

    If CS Extension = 000 (In situ, intraepidermal, intraepithelial, noninvasive)
    Then
        CS Site-Specific Factor16 (size of metastasis in lymph nodes)
        must = 000 (no regional lymph node involvement), 998 (no histologic
        examination of regional lymph nodes) or 999 (unknown)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-21" ref="66959">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF468" name="CS Extension, SSF 16, Scrotum Schema (CS)" tag="N1872" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_16,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 ||
    line.csExtension == null ||
    line.csSiteSpecificFactor16 == null || line.csSiteSpecificFactor16 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'scrotum' && line.csExtension == '000')
    return line.csSiteSpecificFactor16 == '000' || line.csSiteSpecificFactor16 == '999'

return true]]></expression>
            <message>Conflict among Scrotum Schema, CS Extension, and CS SSF16</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 16 (size of lymph nodes) are coded consistently for non-invasive Scrotum cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor16 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

If schema is Scrotum:

    If CS Extension = 000 (In situ, intraepidermal, intraepithelial, noninvasive)
    Then
        CS Site-Specific Factor16 (size of lymph nodes)
        must = 000 (no involved regional lymph nodes) or 999 (unknown)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66960">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF469" name="CS Extension, SSF 16, Skin Schema (CS)" tag="N1873" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_16,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 ||
    line.csExtension == null ||
    line.csSiteSpecificFactor16 == null || line.csSiteSpecificFactor16 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'skin' && line.csExtension == '000')
    return line.csSiteSpecificFactor16 == '000' || line.csSiteSpecificFactor16 == '999'

return true]]></expression>
            <message>Conflict among Skin Schema, CS Extension, and CS SSF16</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 16 (size of lymph nodes) are coded consistently for non-invasive Skin cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor16 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

If schema is Skin:

    If CS Extension = 000 (In situ, intraepidermal, intraepithelial, noninvasive)
    Then
        CS Site-Specific Factor16 (size of lymph nodes)
        must = 000 (no involved regional lymph nodes) or 999 (unknown)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66961">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF470" name="CS Extension, SSF 17, MerkelCell Schemas (CS)" tag="N1874" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_17,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 ||
    line.csExtension == null ||
    line.csSiteSpecificFactor17 == null || line.csSiteSpecificFactor17 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if ((line._csSchemaId == 'merkel_cell_scrotum' || line._csSchemaId == 'merkel_cell_vulva' ||
     line._csSchemaId == 'merkel_cell_skin' || line._csSchemaId == 'merkel_cell_penis') &&
    line.csExtension == '000')
    return !(line.csSiteSpecificFactor17 == '010' || line.csSiteSpecificFactor17 == '040' || line.csSiteSpecificFactor17 == '070')

return true]]></expression>
            <message>Conflict among MerkelCell Schemas, CS Extension, and CS SSF17</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 17 (extracapsular extension of regional lymph nodes) are coded consistently for non-invasive cases coded using the MerkelCellPenis, MerkelCellScrotum, MerkelCellSkin, and MerkelCellVulva schemas that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor17 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

If schema is MerkelCellPenis, MerkelCellScrotum, MerkelCellSkin, or MerkelCellVulva:

    If CS Extension = 000 (In situ, intraepidermal, intraepithelial, noninvasive)
    Then
        CS Site-Specific Factor17 (extracapsular extension of regional lymph
        nodes) must not equal any of the following codes:
            010 No extracapsular extension clinically AND extracapsular
                extension present on pathology
            040 Extracapsular extension clinically  AND extracapsular
                extension present on pathology
            070 Extracapsular extension clinically unknown AND extracapsular
                extension present on pathology

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66962">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF471" name="CS Extension, SSF 17, Penis Schema (CS)" tag="N1875" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_17,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 ||
    line.csExtension == null ||
    line.csSiteSpecificFactor17 == null || line.csSiteSpecificFactor17 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'penis' && line.csExtension == '000')
    return line.csSiteSpecificFactor17 == '000' || line.csSiteSpecificFactor17 == '999'

return true]]></expression>
            <message>Conflict among Penis Schema, CS Extension, and CS SSF17</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 17 (extranodal extension of regional lymph nodes) are coded consistently for Penis non-invasive cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor17 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

If schema is Penis:

    If CS Extension = 000 (In situ, intraepidermal, intraepithelial, noninvasive)
    Then
        CS Site-Specific Factor17 (extranodal extension of regional lymph nodes)
        must = 000 (no regional nodes involved) or 999 (unknown)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66963">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF472" name="CS Extension, SSF 18, MerkelCell Schemas (CS)" tag="N1876" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_18,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 ||
    line.csExtension == null ||
    line.csSiteSpecificFactor18 == null || line.csSiteSpecificFactor18 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if ((line._csSchemaId == 'merkel_cell_scrotum' || line._csSchemaId == 'merkel_cell_vulva' ||
     line._csSchemaId == 'merkel_cell_skin' || line._csSchemaId == 'merkel_cell_penis') &&
     line.csExtension == '000')
    return line.csSiteSpecificFactor18 == '000' || line.csSiteSpecificFactor18 == '010' || line.csSiteSpecificFactor18 == '999'

return true]]></expression>
            <message>Conflict among MerkelCell Schemas, CS Extension, and CS SSF18</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 18 (isolated tumor cells in regional lymph nodes) are coded consistently for non-invasive cases coded using the MerkelCellPenis, MerkelCellScrotum, MerkelCellSkin, and MerkelCellVulva schemas that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor18 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

If schema is MerkelCellPenis, MerkelCellScrotum, MerkelCellSkin, or MerkelCellVulva:

    If CS Extension = 000 (In situ, intraepidermal, intraepithelial, noninvasive)
    Then
        CS Site-Specific Factor18 (isolated tumor cells in regional lymph
        nodes) must = 000 (regional lymph nodes negative on H and E, no IHC),
        010 (regional lymph nodes negative on H and E, IHC done and ITCs not
        present) or 999 (unknown)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66964">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF473" name="CS Extension, SSF 2, Bladder Schema (CS)" tag="N1877" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_2,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 ||
    line.csExtension == null ||
    line.csSiteSpecificFactor2 == null || line.csSiteSpecificFactor2 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'bladder' && Functions.matches(line.csExtension, /(^0[136]0$)/))
    return line.csSiteSpecificFactor2 == '000' || line.csSiteSpecificFactor2 == '999'

return true]]></expression>
            <message>Conflict among Bladder Schema, CS Extension, and CS SSF2</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 2 (size of metastasis in lymph nodes) are coded consistently for Bladder cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor 2 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. Schema is not Bladder

If schema is Bladder:

    If CS Extension = 010, 030, or 060 (codes indicating noninvasive
     or in situ carcinoma)
    Then
        CS Site-Specific Factor 2 (size of metastasis in lymph nodes)
        must = 000 (no regional lymph nodes involved) or 999 (unknown)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66965">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF474" name="CS Extension, SSF 2, Vagina Schema (CS)" tag="N1878" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_2,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 ||
    line.csExtension == null ||
    line.csSiteSpecificFactor2 == null || line.csSiteSpecificFactor2 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'vagina' && line.csExtension == '000')
    return line.csSiteSpecificFactor2 == '000' || line.csSiteSpecificFactor2 == '998' || line.csSiteSpecificFactor2 == '999'

return true]]></expression>
            <message>Conflict among Vagina Schema, CS Extension, and CS SSF2</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 2 (pelvic nodal status) are coded consistently for non-invasive Vagina cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor 2 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

If schema is Vagina:

    If CS Extension = 000 (In situ, intraepithelial, noninvasive)
    Then
        CS Site-Specific Factor 2 (pelvic nodal status)
        must = 000 (negative pelvic lymph nodes), 998 (pelvic lymph
        nodes not assessed) or 999 (unknown)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66966">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF475" name="CS Extension, SSF 3, Bladder Schema (CS)" tag="N1879" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_3,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 ||
    line.csExtension == null ||
    line.csSiteSpecificFactor3 == null || line.csSiteSpecificFactor3 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'bladder' && Functions.matches(line.csExtension, /(^0[136]0$)/))
    return line.csSiteSpecificFactor3 == '000' || line.csSiteSpecificFactor3 == '999'

return true]]></expression>
            <message>Conflict among Bladder Schema, CS Extension, and CS SSF3</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 3 (extranodal extension of regional lymph nodes) are coded consistently for Bladder cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor 3 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. Schema is not Bladder

If schema is Bladder:

    If CS Extension = 010, 030, or 060 (codes indicating noninvasive
    or in situ carcinoma)
    Then
        CS Site-Specific Factor 3 (extranodal extension of regional lymph nodes)
        must = 000 (no regional lymph nodes involved) or 999 (unknown)


This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66967">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF476" name="CS Extension, SSF 3, Breast Schema (CS)" tag="N1880" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_3,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 ||
    line.csExtension == null ||
    line.csSiteSpecificFactor3 == null || line.csSiteSpecificFactor3 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'breast' && line.csExtension == '000')
    return line.csSiteSpecificFactor3 == '000' || line.csSiteSpecificFactor3 == '098' || line.csSiteSpecificFactor3 == '099'

return true]]></expression>
            <message>Conflict among Breast Schema, CS Extension, and CS SSF3</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 3 (number of positive ipsilateral level I-II axillary lymph nodes) are coded consistently for Breast cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor 3 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. Schema is not Breast

If schema is Breast:

    If CS Extension = 000 (mapping to in situ for AJCC staging)
    Then
        CS Site-Specific Factor 3 (number of positive ipsilateral level
        I-II axillary lymph nodes) must = 000 (all ipsilateral axillary
        nodes examined negative), 098 (no axillary nodes examined) or
        099 (unknown)


This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66968">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF477" name="CS Extension, SSF 3, CorpusCarcinoma Schema (CS)" tag="N1881" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_3,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 ||
    line.csExtension == null ||
    line.csSiteSpecificFactor3 == null || line.csSiteSpecificFactor3 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'corpus_carcinoma' && line.csExtension == '000')
    return line.csSiteSpecificFactor3 == '000' || line.csSiteSpecificFactor3 == '098' || line.csSiteSpecificFactor3 == '999'

return true]]></expression>
            <message>Conflict among CorpusCarcinoma Schema, CS Extension, and CS SSF3</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 3 (number of positive pelvic nodes) are coded consistently for CorpusCarcinoma cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor 3 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. Schema is not CorpusCarcinoma

If schema is CorpusCarcinoma:

    If CS Extension = 000 (In situ, intraepithelial, noninvasive, preinvasive)
    Then
        CS Site-Specific Factor 3 (number of positive pelvic nodes)
        must = 000 (all pelvic nodes examined negative), 098 (no pelvic nodes
        examined) or 999 (unknown if pelvic nodes positive)


This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66969">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF478" name="CS Extension, SSF 3, Head and Neck Schemas (CS)" tag="N1882" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_3,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 || line.csExtension == null ||
    line.csSiteSpecificFactor3 == null || line.csSiteSpecificFactor3 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (((List)Context.HEAD_AND_NECK_Schemas).contains(line._csSchemaId) && line.csExtension == '000')
    return line.csSiteSpecificFactor3 == '000' || line.csSiteSpecificFactor3 == '999'

return true]]></expression>
            <message>Conflict among Head and Neck Schemas, CS Extension, and CS SSF3</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 3 (levels I-III, lymph nodes for head and neck) are coded consistently for head and neck cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor 3 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

This edit is skipped if CS schema is NOT one of the following Head and Neck schemas:
 BuccalMucosa
 EpiglottisAnterior
 FloorMouth
 GumLower
 GumOther
 GumUpper
 Hypopharynx
 LarynxGlottic
 LarynxOther
 LarynxSupraglottic
 LarynxSubglottic
 LipLower
 LipOther
 LipUpper
 MelanomaLipUpper
 MelanomaLipLower
 MelanomaLipOther
 MelanomaTongueAnterior
 MelanomaGumUpper
 MelanomaGumLower
 MelanomaGumOther
 MelanomaFloorMouth
 MelanomaPalateHard
 MelanomaMouthOther
 MelanomaBuccalMucosa
 MelanomaTongueBase
 MelanomaPalateSoft
 MelanomaOropharynx
 MelanomaNasopharynx
 MelanomaHypopharynx
 MelanomaPharynxOther
 MelanomaEpiglottisAnterior
 MelanomaLarynxGlottic
 MelanomaLarynxSupraglottic
 MelanomaLarynxSubglottic
 MelanomaLarynxOther
 MelanomaNasalCavity
 MelanomaSinusMaxillary
 MelanomaSinusEthmoid
 MelanomaSinusOther
 MiddleEar
 MouthOther
 NasalCavity
 Nasopharynx
 Oropharynx
 PalateHard
 PalateSoft
 ParotidGland
 PharyngealTonsil
 PharynxOther
 SalivaryGlandOther
 SinusEthmoid
 SinusMaxillary
 SinusOther
 SubmandibularGland
 TongueAnterior
 TongueBase

If CS Extension = 000 (in situ, intraepithelial, noninvasive)
Then
    CS Site-Specific Factor 3 (levels I-III, lymph nodes for head and neck)
    must = 000 (no involvement in Levels I, II, or III lymph nodes) or 999
   (unknown)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66970">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF479" name="CS Extension, SSF 4, FallopianTube Schema (CS)" tag="N1883" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_4,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 ||
    line.csExtension == null ||
    line.csSiteSpecificFactor4 == null || line.csSiteSpecificFactor4 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'fallopian_tube' && line.csExtension == '000')
    return line.csSiteSpecificFactor4 == '000' || line.csSiteSpecificFactor4 == '098' || line.csSiteSpecificFactor4 == '999'

return true]]></expression>
            <message>Conflict among FallopianTube Schema, CS Extension, and CS SSF4</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 4 (number of positive pelvic nodes) are coded consistently for FallopianTube cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor 4 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. Schema is not FallopianTube

If schema is FallopianTube:

    If CS Extension = 000 (In situ, intraepithelial, noninvasive; limited
    to tubal mucosa)
    Then
        CS Site-Specific Factor 4 (number of positive pelvic nodes)
        must = 000 (all pelvic nodes examined negative), 098 (no pelvic nodes
        examined) or 999 (unknown if pelvic nodes positive)


This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66971">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF480" name="CS Extension, SSF 4, Head and Neck Schemas (CS)" tag="N1884" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_4,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 || line.csExtension == null ||
    line.csSiteSpecificFactor4 == null || line.csSiteSpecificFactor4 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (((List)Context.HEAD_AND_NECK_Schemas).contains(line._csSchemaId) && line.csExtension == '000')
      return line.csSiteSpecificFactor4 == '000' || line.csSiteSpecificFactor4 == '999'

return true]]></expression>
            <message>Conflict among Head and Neck Schemas, CS Extension, and CS SSF4</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 4 (levels IV-V and retropharyngeal lymph nodes for head and neck) are coded consistently for head and neck cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor 4 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

This edit is skipped if CS schema is NOT one of the following Head and Neck schemas:
 BuccalMucosa
 EpiglottisAnterior
 FloorMouth
 GumLower
 GumOther
 GumUpper
 Hypopharynx
 LarynxGlottic
 LarynxOther
 LarynxSupraglottic
 LarynxSubglottic
 LipLower
 LipOther
 LipUpper
 MelanomaLipUpper
 MelanomaLipLower
 MelanomaLipOther
 MelanomaTongueAnterior
 MelanomaGumUpper
 MelanomaGumLower
 MelanomaGumOther
 MelanomaFloorMouth
 MelanomaPalateHard
 MelanomaMouthOther
 MelanomaBuccalMucosa
 MelanomaTongueBase
 MelanomaPalateSoft
 MelanomaOropharynx
 MelanomaNasopharynx
 MelanomaHypopharynx
 MelanomaPharynxOther
 MelanomaEpiglottisAnterior
 MelanomaLarynxGlottic
 MelanomaLarynxSupraglottic
 MelanomaLarynxSubglottic
 MelanomaLarynxOther
 MelanomaNasalCavity
 MelanomaSinusMaxillary
 MelanomaSinusEthmoid
 MelanomaSinusOther
 MiddleEar
 MouthOther
 NasalCavity
 Nasopharynx
 Oropharynx
 PalateHard
 PalateSoft
 ParotidGland
 PharyngealTonsil
 PharynxOther
 SalivaryGlandOther
 SinusEthmoid
 SinusMaxillary
 SinusOther
 SubmandibularGland
 TongueAnterior
 TongueBase

If CS Extension = 000 (in situ, intraepithelial, noninvasive)
Then
    CS Site-Specific Factor 4 (levels IV-V and retropharyngeal lymph nodes
    for head and neck) must = 000 (no involvement in Levels IV or V or
    retropharyngeal lymph nodes) or 999 (unknown)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66972">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF481" name="CS Extension, SSF 4, Vagina Schema (CS)" tag="N1885" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_4,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 ||
    line.csExtension == null ||
    line.csSiteSpecificFactor4 == null || line.csSiteSpecificFactor4 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'vagina' && line.csExtension == '000')
    return line.csSiteSpecificFactor4 == '000' || line.csSiteSpecificFactor4 == '998' || line.csSiteSpecificFactor4 == '999'

return true]]></expression>
            <message>Conflict among Vagina Schema, CS Extension, and CS SSF4</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 4 (para-aortic nodal status) are coded consistently for Vagina cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor 4 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

If schema is Vagina:

    If CS Extension = 000 (In situ, intraepithelial, noninvasive)
    Then
        CS Site-Specific Factor 4 (para-aortic nodal status)
        must = 000 (negative para-aortic lymph nodes), 998 (para-aortic lymph
        nodes not assessed) or 999 (unknown)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66973">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF482" name="CS Extension, SSF 5, CorpusCarcinoma Schema (CS)" tag="N1886" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_5,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 ||
    line.csExtension == null ||
    line.csSiteSpecificFactor5 == null || line.csSiteSpecificFactor5 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'corpus_carcinoma' && line.csExtension == '000')
    return line.csSiteSpecificFactor5 == '000' || line.csSiteSpecificFactor5 == '098' || line.csSiteSpecificFactor5 == '999'

return true]]></expression>
            <message>Conflict among CorpusCarcinoma Schema, CS Extension, and CS SSF5</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 5 (number of positive para-aortic nodes) are coded consistently for CorpusCarcinoma cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor 5 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. Schema is not CorpusCarcinoma

If schema is CorpusCarcinoma:

    If CS Extension = 000 (In situ, intraepithelial, noninvasive, preinvasive)
    Then
        CS Site-Specific Factor 5 (number of positive para-aortic nodes)
        must = 000 (all para-aortic nodes examined negative), 098 (no
        para-aortic nodes examined) or 999 (unknown if para-aortic nodes
        positive)


This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66974">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF483" name="CS Extension, SSF 5, Head and Neck Schemas (CS)" tag="N1887" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_5,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 || line.csExtension == null ||
    line.csSiteSpecificFactor5 == null || line.csSiteSpecificFactor5 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (((List)Context.HEAD_AND_NECK_Schemas).contains(line._csSchemaId) && line.csExtension == '000')
    return line.csSiteSpecificFactor5 == '000' || line.csSiteSpecificFactor5 == '999'

return true]]></expression>
            <message>Conflict among Head and Neck Schemas, CS Extension, and CS SSF5</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 5 (levels VI-VII and facial lymph nodes for head and neck) are coded consistently for head and neck cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor 5 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

This edit is skipped if CS schema is NOT one of the following Head and Neck schemas:
 BuccalMucosa
 EpiglottisAnterior
 FloorMouth
 GumLower
 GumOther
 GumUpper
 Hypopharynx
 LarynxGlottic
 LarynxOther
 LarynxSupraglottic
 LarynxSubglottic
 LipLower
 LipOther
 LipUpper
 MelanomaLipUpper
 MelanomaLipLower
 MelanomaLipOther
 MelanomaTongueAnterior
 MelanomaGumUpper
 MelanomaGumLower
 MelanomaGumOther
 MelanomaFloorMouth
 MelanomaPalateHard
 MelanomaMouthOther
 MelanomaBuccalMucosa
 MelanomaTongueBase
 MelanomaPalateSoft
 MelanomaOropharynx
 MelanomaNasopharynx
 MelanomaHypopharynx
 MelanomaPharynxOther
 MelanomaEpiglottisAnterior
 MelanomaLarynxGlottic
 MelanomaLarynxSupraglottic
 MelanomaLarynxSubglottic
 MelanomaLarynxOther
 MelanomaNasalCavity
 MelanomaSinusMaxillary
 MelanomaSinusEthmoid
 MelanomaSinusOther
 MiddleEar
 MouthOther
 NasalCavity
 Nasopharynx
 Oropharynx
 PalateHard
 PalateSoft
 ParotidGland
 PharyngealTonsil
 PharynxOther
 SalivaryGlandOther
 SinusEthmoid
 SinusMaxillary
 SinusOther
 SubmandibularGland
 TongueAnterior
 TongueBase

If CS Extension = 000 (in situ, intraepithelial, noninvasive)
Then
    CS Site-Specific Factor 5 (levels VI-VII and facial lymph nodes for
    head and neck) must = 000 (no involvement in Levels VI or VII or
    facial lymph nodes) or 999 (unknown)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66975">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF484" name="CS Extension, SSF 5, Testis Schema (CS)" tag="N1888" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_5,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 ||
    line.csExtension == null ||
    line.csSiteSpecificFactor5 == null || line.csSiteSpecificFactor5 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'testis' && line.csExtension == '000')
    return line.csSiteSpecificFactor5 == '000' || line.csSiteSpecificFactor5 == '999'

return true]]></expression>
            <message>Conflict among Testis Schema, CS Extension, and CS SSF5</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 5 (size of metastasis in lymph nodes) are coded consistently for non-invasive Testis cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor 5 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

If schema is Testis:

    If CS Extension = 000 (In situ, intraepithelial, noninvasive)
    Then
        CS Site-Specific Factor 5 (size of metastasis in lymph nodes)
        must = 000 (no lymph node metastasis) or 999 (unknown)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66976">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF485" name="CS Extension, SSF 6, FallopianTube Schema (CS)" tag="N1889" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_6,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 ||
    line.csExtension == null ||
    line.csSiteSpecificFactor6 == null || line.csSiteSpecificFactor6 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'fallopian_tube' && line.csExtension == '000')
    return line.csSiteSpecificFactor6 == '000' || line.csSiteSpecificFactor6 == '098' || line.csSiteSpecificFactor6 == '999'

return true]]></expression>
            <message>Conflict among FallopianTube Schema, CS Extension, and CS SSF6</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 6 (number of positive para-aortic nodes) are coded consistently for FallopianTube cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor 6 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. Schema is not FallopianTube

If schema is FallopianTube:

    If CS Extension = 000 (In situ, intraepithelial, noninvasive; limited
    to tubal mucosa)
    Then
        CS Site-Specific Factor 6 (number of positive para-aortic nodes)
        must = 000 (all para-aortic nodes examined negative), 098 (no para-
        aortic nodes examined) or 999 (unknown if para-aortic nodes positive)


This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66977">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF486" name="CS Extension, SSF 6, Head and Neck Schemas (CS)" tag="N1890" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_6,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 || line.csExtension == null ||
    line.csSiteSpecificFactor6 == null || line.csSiteSpecificFactor6 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (((List)Context.HEAD_AND_NECK_Schemas).contains(line._csSchemaId) && line.csExtension == '000')
    return line.csSiteSpecificFactor6 == '000' || line.csSiteSpecificFactor6 == '999'

return true]]></expression>
            <message>Conflict among Head and Neck Schemas, CS Extension, and CS SSF6</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 6 (parapharyngeal, parotid, and suboccipital/retroauricular lymph nodes for head and neck) are coded consistently for head and neck cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor 6 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

This edit is skipped if CS schema is NOT one of the following Head and Neck schemas:
 BuccalMucosa
 EpiglottisAnterior
 FloorMouth
 GumLower
 GumOther
 GumUpper
 Hypopharynx
 LarynxGlottic
 LarynxOther
 LarynxSupraglottic
 LarynxSubglottic
 LipLower
 LipOther
 LipUpper
 MelanomaLipUpper
 MelanomaLipLower
 MelanomaLipOther
 MelanomaTongueAnterior
 MelanomaGumUpper
 MelanomaGumLower
 MelanomaGumOther
 MelanomaFloorMouth
 MelanomaPalateHard
 MelanomaMouthOther
 MelanomaBuccalMucosa
 MelanomaTongueBase
 MelanomaPalateSoft
 MelanomaOropharynx
 MelanomaNasopharynx
 MelanomaHypopharynx
 MelanomaPharynxOther
 MelanomaEpiglottisAnterior
 MelanomaLarynxGlottic
 MelanomaLarynxSupraglottic
 MelanomaLarynxSubglottic
 MelanomaLarynxOther
 MelanomaNasalCavity
 MelanomaSinusMaxillary
 MelanomaSinusEthmoid
 MelanomaSinusOther
 MiddleEar
 MouthOther
 NasalCavity
 Nasopharynx
 Oropharynx
 PalateHard
 PalateSoft
 ParotidGland
 PharyngealTonsil
 PharynxOther
 SalivaryGlandOther
 SinusEthmoid
 SinusMaxillary
 SinusOther
 SubmandibularGland
 TongueAnterior
 TongueBase

If CS Extension = 000 (in situ, intraepithelial, noninvasive)
Then
    CS Site-Specific Factor 6 (parapharyngeal, parotid, and
    suboccipital/retroauricular lymph nodes for head and neck)
    must = 000 (no involvement in parapharyngeal, parotid, and
    suboccipital/retroauricular lymph nodes) or 999 (unknown)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66978">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF487" name="CS Extension, SSF 6, Vagina Schema (CS)" tag="N1891" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_6,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 ||
    line.csExtension == null ||
    line.csSiteSpecificFactor6 == null || line.csSiteSpecificFactor6 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'vagina' && line.csExtension == '000')
    return line.csSiteSpecificFactor6 == '000' || line.csSiteSpecificFactor6 == '998' || line.csSiteSpecificFactor6 == '999'

return true]]></expression>
            <message>Conflict among Vagina Schema, CS Extension, and CS SSF6</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 6 [distant (mediastinal, scalene) nodal status] are coded consistently for non-invasive Vagina cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor 6 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

If schema is Vagina:

    If CS Extension = 000 (In situ, intraepithelial, noninvasive)
    Then
        CS Site-Specific Factor 6 [distant(mediastinal, scalene) nodal status]
        must = 000 (negative mediastinal, scalene lymph nodes), 998 (mediastinal,
        scalene lymph nodes not assessed), or 999 (unknown)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66980">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF488" name="CS Extension, SSF 8, KidneyParenchyma (CS)" tag="N1892" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_8,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 ||
    line.csExtension == null ||
    line.csSiteSpecificFactor8 == null || line.csSiteSpecificFactor8 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'kidney_parenchyma' && line.csExtension == '000')
    return line.csSiteSpecificFactor8 == '000' || line.csSiteSpecificFactor8 == '999'

return true]]></expression>
            <message>Conflict among KidneyParenchyma Schema, CS Extension, and CS SSF8</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 8 (extranodal extension of regional nodes) are coded consistently for KidneyParenchyma cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor 8 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. Schema is not KidneyParenchyma

If schema is KidneyParenchyma:

    If CS Extension = 000 (In situ, intraepithelial, noninvasive)
    Then
        CS Site-Specific Factor 8 (extranodal extension of regional nodes)
        must = 000 (no regional lymph nodes involved) or 999 (unknown)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66981">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF489" name="CS Extension, SSF 9, Head and Neck Schemas (CS)" tag="N1866" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_9,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 || line.csExtension == null ||
    line.csSiteSpecificFactor9 == null || line.csSiteSpecificFactor9 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (((List)Context.HEAD_AND_NECK_Schemas).contains(line._csSchemaId) && line.csExtension == '000')
    return line.csSiteSpecificFactor9 == '000' || line.csSiteSpecificFactor9 == '998' || line.csSiteSpecificFactor9 == '999'

return true]]></expression>
            <message>Conflict among Head and Neck Schemas, CS Extension, and CS SSF9</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Extension and CS Site-Specific Factor 9 (extracapsular extension pathologically, lymph nodes for head and neck) are coded consistently for head and neck cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Extension is blank
3. Site-Specific Factor 9 is blank or 988
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

This edit is skipped if CS schema is NOT one of the following Head and Neck schemas:
 BuccalMucosa
 EpiglottisAnterior
 FloorMouth
 GumLower
 GumOther
 GumUpper
 Hypopharynx
 LarynxGlottic
 LarynxOther
 LarynxSupraglottic
 LarynxSubglottic
 LipLower
 LipOther
 LipUpper
 MelanomaLipUpper
 MelanomaLipLower
 MelanomaLipOther
 MelanomaTongueAnterior
 MelanomaGumUpper
 MelanomaGumLower
 MelanomaGumOther
 MelanomaFloorMouth
 MelanomaPalateHard
 MelanomaMouthOther
 MelanomaBuccalMucosa
 MelanomaTongueBase
 MelanomaPalateSoft
 MelanomaOropharynx
 MelanomaNasopharynx
 MelanomaHypopharynx
 MelanomaPharynxOther
 MelanomaEpiglottisAnterior
 MelanomaLarynxGlottic
 MelanomaLarynxSupraglottic
 MelanomaLarynxSubglottic
 MelanomaLarynxOther
 MelanomaNasalCavity
 MelanomaSinusMaxillary
 MelanomaSinusEthmoid
 MelanomaSinusOther
 MiddleEar
 MouthOther
 NasalCavity
 Nasopharynx
 Oropharynx
 PalateHard
 PalateSoft
 ParotidGland
 PharyngealTonsil
 PharynxOther
 SalivaryGlandOther
 SinusEthmoid
 SinusMaxillary
 SinusOther
 SubmandibularGland
 TongueAnterior
 TongueBase

If CS Extension = 000 (in situ, intraepithelial, noninvasive)
Then
    CS Site-Specific Factor 9 (extracapsular extension pathologically,
    lymph nodes for head and neck) must = 000 (no regional lymph nodes
    involved pathologically), 998 (no histopathologic examination of
    regional lymph nodes) or 999 (unknown)

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66982">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF490" name="CS Mets at DX-BBLL, LymphomaOcularAdnexa (CS)" tag="N1893" java-path="lines.line" category="inter-field" depends="CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 || line._csSchemaId != 'lymphoma_ocular_adnexa' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.dateOfDiagnosisYear > '2015')
    return true
    
if (line.registryId == '0000001563')
    return true

if (line.csMetsAtDxBrain == '8' || line.csMetsAtDxBone == '8' || line.csMetsAtDxLung == '8' || line.csMetsAtDxLiver == '8')
    return false

return true]]></expression>
            <message>Conflict among LymphomaOcularAdnexa Schema and CS Mets at DX</message>
            <description><![CDATA[The purpose of this edit is to verify that the CS Mets at DX-Bone, Brain, Liver, and Lung fields are not coded to 8 (not applicable) for LymphomaOcularAdnexa cases that are originally coded using CSv02.05 or higher.

This edit is skipped under the following conditions:
1. CS Version Input Original is less than 020500
2. CS schema is not LymphomaOcularAdnexa
3. Behavior Code ICD-O-3 = 0 (benign)or 1 (borderline)
4. Year of Date of Diagnosis is greater than 2015
5. Registry ID = 0000001563 (Massachusetts)

If schema is LymphomaOcularAdnexa:
  An error will be generated under any of the following conditions:

1.  If CS Mets at DX-Bone = 8
2.  If CS Mets at DX-Brain = 8
3.  If CS Mets at DX-Liver = 8
4.  If CS Mets at DX-Lung = 8

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66983">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-20" ref="67330">Added skip condition for DX year.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-018-12" user="kirbyk" date="2019-01-29" ref="68095">Edit is skipped for cases from Massachusetts.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF491" name="CS Mets at DX-BBLL, MycosisFungoides (CS)" tag="N1894" java-path="lines.line" category="inter-field" depends="CS_Version_Input_Original,Year_of_Diagnosis">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 || line._csSchemaId != 'mycosis_fungoides' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.dateOfDiagnosisYear > '2015')
    return true

if (line.registryId == '0000001563')
    return true

if (line.csMetsAtDxBrain == '8' || line.csMetsAtDxBone == '8' || line.csMetsAtDxLung == '8' || line.csMetsAtDxLiver == '8')
    return false

return true]]></expression>
            <message>Conflict among MycosisFungoides Schema and CS Mets at DX</message>
            <description><![CDATA[The purpose of this edit is to verify that the CS Mets at DX-Bone, Brain, Liver, and Lung fields are not coded to 8 (not applicable) for MycosisFungoides cases that are originally coded using CSv02.05 or higher.

This edit is skipped under the following conditions:
1. CS Version Input Original is less than 020500
2. CS schema is not MycosisFungoides
3. Behavior Code ICD-O-3 = 0 (benign)or 1 (borderline)
4. Year of Date of Diagnosis is greater than 2015
5. Registry ID = 0000001563 (Massachusetts)

If schema is MycosisFungoides:
  An error will be generated under any of the following conditions:

1.  If CS Mets at DX-Bone = 8
2.  If CS Mets at DX-Brain = 8
3.  If CS Mets at DX-Liver = 8
4.  If CS Mets at DX-Lung = 8

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66984">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-20" ref="67331">Added skip condition for DX year.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-018-12" user="kirbyk" date="2019-01-29" ref="68095">Edit is skipped for cases from Massachusetts.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF492" name="CS SSF 1, Behavior, Lung Schema (CS)" tag="N1895" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_1,CS_Version_Input_Original">
            <expression><![CDATA[if ((line.csVersionInputOriginal != null && Functions.asInt(line.csVersionInputOriginal) < 20500) ||
    line.csSiteSpecificFactor1 == null || line.csSiteSpecificFactor1 == '988')
    return true

if (line._csSchemaId == 'lung' && line.behaviorCodeIcdO3 == '2')
    return line.csSiteSpecificFactor1 == '000'

return true]]></expression>
            <message>Conflict among Lung Schema, Behavior, and CS SSF1</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Site-Specific Factor 1 and Behavior Code ICD-O-3 are coded consistently for Lung cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500 and CS Version Input Original is not blank
2. CS schema is not Lung
3. CS Site-Specific Factor 1 is blank or 988

If schema is Lung:
    If Behavior Code ICD-O-3 = 2 (in situ)
    then
        CS Site-Specific Factor 1 must = 000 (no separate tumor nodules noted)]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66985">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-20" ref="67332">Updated skip condition for CS Version Input Original.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF493" name="CS SSF 1, Lymph Nodes, CorpusAdenosarcoma (CS)" tag="N1896" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_1,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 ||
    line.csLymphNodes == null ||
    line.csSiteSpecificFactor1 == null || line.csSiteSpecificFactor1 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'corpus_adenosarcoma' && line.csLymphNodes != '000' && line.csLymphNodes != '999')
    return !(['100','120','130','140','200','210','220','310','320'].contains(line.csSiteSpecificFactor1))

return true]]></expression>
            <message>Conflict among CorpusAdenoSarcoma Schema, CS Lymph Nodes, and CS SSF1</message>
            <description><![CDATA[The purpose of this edit is to verify that the CS Site-Specific Factor 1 (FIGO Stage) and CS Lymph Nodes are coded consistently for CorpusAdenoSarcoma cases when there is no lymph node involvement.  This edit applies only to cases originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS schema is not CorpusAdenoSarcoma
3. CS Site-Specific Factor 1 is blank or 988
4. CS Lymph Nodes is blank
5. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

If schema is CorpusAdenoSarcoma:
    If CS Lymph Nodes not = 000 (no regional lymph nodes involvement)
    or 999 (unknown)
    then
        CS Site-Specific Factor 1 must not = 100, 120, 130, 140,
        200, 210, 220, 310, 320 (codes indicating FIGO Stage I, II, IIIA, IIIB)]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66986">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF494" name="CS SSF 1, Lymph Nodes, CorpusCarcinoma (CS)" tag="N1897" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_1,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 ||
    line.csLymphNodes == null ||
    line.csSiteSpecificFactor1 == null || line.csSiteSpecificFactor1 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'corpus_carcinoma' && line.csLymphNodes != '000' && line.csLymphNodes != '999')
    return !(['100','110','120','200','310','320'].contains(line.csSiteSpecificFactor1))

return true]]></expression>
            <message>Conflict among CorpusCarcinoma Schema, CS Lymph Nodes, and CS SSF1</message>
            <description><![CDATA[The purpose of this edit is to verify that the CS Site-Specific Factor 1 (FIGO Stage) and CS Lymph Nodes are coded consistently for CorpusCarcinoma cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS schema is not CorpusCarcinoma
3. CS Site-Specific Factor 1 is blank or 988
4. CS Lymph Nodes is blank
5. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

If schema is CorpusCarcinoma:
    If CS Lymph Nodes not = 000 (no regional lymph nodes involvement)
    or 999 (unknown)
    then
        CS Site-Specific Factor 1 must not = 100, 110, 120,
        200, 310, or 320 (codes indicating FIGO Stage I, II, IIIA, IIIB)]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66987">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF495" name="CS SSF 1, Lymph Nodes, CorpusSarcoma (CS)" tag="N1898" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_1,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 ||
    line.csLymphNodes == null ||
    line.csSiteSpecificFactor1 == null || line.csSiteSpecificFactor1 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'corpus_carcinoma' && line.csLymphNodes != '000' && line.csLymphNodes != '999')
    return !(['100','110','120','200','210','220','310','320'].contains(line.csSiteSpecificFactor1))

return true]]></expression>
            <message>Conflict among CorpusSarcoma Schema, CS Lymph Nodes, and CS SSF1</message>
            <description><![CDATA[The purpose of this edit is to verify that the CS Site-Specific Factor 1 (FIGO Stage) and CS Lymph Nodes are coded consistently for CorpusSarcoma cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS schema is not CorpusSarcoma
3. CS Site-Specific Factor 1 is blank or 988
4. CS Lymph Nodes is blank
5. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

If schema is CorpusSarcoma:
    If CS Lymph Nodes not = 000 (no regional lymph nodes involvement)
    or 999 (unknown)
    then
        CS Site-Specific Factor 1 must not = 100, 110, 120,
        200, 210, 220, 310, or 320 (codes indicating FIGO Stage I, II, IIIA, IIIB)]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66988">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF496" name="CS SSF 10, Lymph Nodes, Vulva Schema (CS)" tag="N1899" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_10,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 ||
    line.csLymphNodes == null ||
    line.csSiteSpecificFactor10 == null || line.csSiteSpecificFactor10 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'vulva' && line.csLymphNodes != '000' && line.csLymphNodes != '999')
    return !(line.csSiteSpecificFactor10 == '100' || line.csSiteSpecificFactor10 == '110' || line.csSiteSpecificFactor10 == '120' || line.csSiteSpecificFactor10 == '200')

return true]]></expression>
            <message>Conflict among Vulva Schema, CS Lymph Nodes, and CS SSF 10</message>
            <description><![CDATA[The purpose of this edit is to verify that the CS Site-Specific Factor 10 (FIGO Stage) and CS Lymph Nodes are coded consistently for Vulva cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS schema is not Vulva
3. CS Site-Specific Factor10 is blank or 988
4. CS Lymph Nodes is blank
5. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

If schema is Vulva:
    If CS Lymph Nodes not = 000 (no regional lymph nodes involvement) or 999 (unknown)
    then
        CS Site-Specific Factor10 must not = 100, 110, 120, or 200 (codes indicating FIGO Stage I or II)]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66989">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF497" name="CS SSF 2, Lymph Nodes, Ovary (CS)" tag="N1900" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_2,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 ||
    line.csLymphNodes == null ||
    line.csSiteSpecificFactor2 == null || line.csSiteSpecificFactor2 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'ovary' && line.csLymphNodes != '000' && line.csLymphNodes != '999')
    return !(['100','110','120','130','200','210','220','230'].contains(line.csSiteSpecificFactor2))

return true]]></expression>
            <message>Conflict among Ovary Schema, CS Lymph Nodes, and CS SSF2</message>
            <description><![CDATA[The purpose of this edit is to verify that the CS Site-Specific Factor 2 (FIGO Stage) and CS Lymph Nodes are coded consistently for Ovary cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS schema is not Ovary
3. CS Site-Specific Factor 2 is blank or 988
4. CS Lymph Nodes is blank
5. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

If schema is Ovary:
    If CS Lymph Nodes not = 000 (no regional lymph nodes involvement)
    or 999 (unknown)
    then
        CS Site-Specific Factor 2 must not =  100, 110, 120, 130,
        200, 210, 220, or 230 (codes indicating FIGO I, II, IIIA, IIIB)]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66990">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-03-29" ref="67234">Removed codes 310 and 320 from the invalid list.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF498" name="CS SSF 2, Lymph Nodes, PeritoneumFemaleGen (CS)" tag="N1901" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Lymph_Nodes,CS_Site-Specific_Factor_2,CS_Version_Input_Original">
            <expression><![CDATA[if (Functions.asInt(line.csVersionInputOriginal) < 20500 ||
    line.csLymphNodes == null ||
    line.csSiteSpecificFactor2 == null || line.csSiteSpecificFactor2 == '988' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line._csSchemaId == 'peritoneum_female_gen' && line.csLymphNodes != '000' && line.csLymphNodes != '999')
    return !(['100','110','120','130','200','210','220','230','310','320'].contains(line.csSiteSpecificFactor2))

return true]]></expression>
            <message>Conflict among PeritoneumFemaleGen Schema, CS Lymph Nodes, and CS SSF2</message>
            <description><![CDATA[The purpose of this edit is to verify that the CS Site-Specific Factor 2 (FIGO Stage) and CS Lymph Nodes are coded consistently for PeritoneumFemaleGen cases that are originally coded using CSv02.05 or higher.

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS schema is not PeritoneumFemaleGen
3. CS Site-Specific Factor 2 is blank or 988
4. CS Lymph Nodes is blank
5. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

If schema is PeritoneumFemaleGen:
    If CS Lymph Nodes not = 000 (no regional lymph nodes involvement)
    or 999 (unknown)
    then
        CS Site-Specific Factor 2 must not = 100, 110, 120, 130,
        200, 210, 220, 230, 310, or 320 (codes indicating FIGO Stage I,
        II, IIIA, IIIB)]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-10-22" ref="66991">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF499" name="CS SSF 1, Brain, CNSOther, IntracranialGland (CS)" tag="N1908" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_1,CS_Version_Input_Original,RX_Summ--Surg_Prim_Site">
            <expression><![CDATA[if (line._csSchemaId == null || (line.csVersionInputOriginal != null && Functions.asInt(line.csVersionInputOriginal) < 20500) ||
    line.rxSummSurgPrimSite == null || line.behaviorCodeIcdO3 == '0' ||
    line.behaviorCodeIcdO3 == '1' || line.csSiteSpecificFactor1 == null ||
    line.csSiteSpecificFactor1 == '988')
    return true

if (['brain','cns_other','intracranial_gland'].contains(line._csSchemaId) && line.csSiteSpecificFactor1 == '998')
    return Functions.between(Functions.asInt(line.rxSummSurgPrimSite), 0, 19)

return true]]></expression>
            <message>Conflict between CS SSF 1, RX Summ--Surg Prim Site, and CS Schema</message>
            <description><![CDATA[This edit verifies that for cases using the Brain, CNSOther, or IntracranialGland schema, CS Site-Specific Factor 1 (WHO grade) and RX Summ--Surg Prim Site are coded consistently. If CS Site-Specific Factor 1 specifies "no histologic examination of primary site", then RX Summ--Surg Prim Site must indicate "no specimen sent to pathology from surgical event."


This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500 and CS Version Input Original is not blank
2. CS Site-Specific Factor 1 is blank or 988
3. RX Summ--Surg Prim Site is blank
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

If CS schema is Brain, CNSOther, or IntracranialGland:
    If CS Site-Specific Factor 1 = 998 (no histologic examination of primary site), then RX Summ--Surg Prim Site must = 00-19 (no specimen sent to pathology from surgical event).

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-11-18" ref="67042">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-20" ref="67333">Updated skip condition for CS Version Input Original.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF500" name="CS SSF 1, TS/Ext Eval, Retinoblastoma Schema (CS)" tag="N1909" java-path="lines.line" category="inter-field" depends="CS_Site-Specific_Factor_1,CS_Tumor_Size_Ext_Eval,CS_Version_Input_Original">
            <expression><![CDATA[if (line._csSchemaId == null || Functions.asInt(line.csVersionInputOriginal) < 20500 ||
    line.csTumorSizeExtEval == null || line.csSiteSpecificFactor1 == null ||
    line.csSiteSpecificFactor1 == '988')
    return true

if (line._csSchemaId == 'retinoblastoma') {
    if (['3','5','6'].contains(line.csTumorSizeExtEval) && line.csSiteSpecificFactor1 == '970')
        return false
    if (line.csTumorSizeExtEval == '6' && line.csSiteSpecificFactor1 == '950')
        return false
}

return true]]></expression>
            <message>Conflict between SSF 1, TS/Ext Eval, and Retinoblastoma Schema</message>
            <description><![CDATA[Purpose: For cases coded using the Retinoblastoma schema, if CS Tumor Size/Ext Eval indicates surgical resection (codes 3, 5, 6), then CS Site Specific Factor 1 (extension evaluated at enucleation) must not indicate "no enucleation performed" (code 970).  If CS Tumor Size/Ext Eval = 6 (surgical resection performed WITH pre-surgical systemic treatment or radiation; tumor size and/or extension based on pathologic evidence), then CS Site Specific Factor 1 must not indicate "no evidence of primary tumor" (code 950).

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500
2. CS Tumor Size/Ext Eval is blank
3. CS Site-Specific Factor 1 is blank or 988
4. CS schema is invalid

If CS schema is Retinoblastoma:

If CS Tumor Size/Ext Eval = 3, 5, 6 (codes indicating surgical resection)
then
    CS Site Specific Factor 1 must not = 970 (no enucleation performed)

If CS Tumor Size/Ext Eval = 6 (surgical resection performed WITH pre-surgical systemic treatment or radiation; tumor size and/or extension based on pathologic evidence)
then
    CS Site Specific Factor 1 must not = 950 (no evidence of primary tumor)

This edit first determines the CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-11-18" ref="67043">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF501" name="CS SSF 11, GISTAppendix, Colon, Rectum (CS)" tag="N1910" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_11,CS_Version_Input_Original,RX_Summ--Surg_Prim_Site">
            <expression><![CDATA[if (line._csSchemaId == null || (line.csVersionInputOriginal != null && Functions.asInt(line.csVersionInputOriginal) < 20500) ||
    line.rxSummSurgPrimSite == null || line.behaviorCodeIcdO3 == '0' ||
    line.behaviorCodeIcdO3 == '1' || line.csSiteSpecificFactor11 == null ||
    line.csSiteSpecificFactor11 == '988')
    return true

if (['gist_appendix','gist_colon','gist_rectum'].contains(line._csSchemaId) && line.csSiteSpecificFactor11 == '998')
    return Functions.between(Functions.asInt(line.rxSummSurgPrimSite), 0, 19)

return true]]></expression>
            <message>Conflict between CS SSF 11, RX Summ--Surg Prim Site, and CS Schema</message>
            <description><![CDATA[This edit verifies that for cases using the GISTAppendix, GISTColon, or GISTRectum  schemas, CS Site-Specific Factor11 (mitotic count) and RX Summ--Surg Prim Site are coded consistently. If CS Site-Specific Factor11 specifies "no histologic specimen from primary site", then RX Summ--Surg Prim Site must indicate "no specimen sent to pathology from surgical event."

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500 and CS Version Input Original is not blank
2. CS Site-Specific Factor11 is blank or 988
3. RX Summ--Surg Prim Site is blank
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

If CS schema is GISTAppendix, GISTColon, or GISTRectum:
    If CS Site-Specific Factor11 = 998 (no histologic specimen from primary site), then RX Summ--Surg Prim Site must = 00-19 (no specimen sent to pathology from surgical event).

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-11-18" ref="67044">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-20" ref="67334">Updated skip condition for CS Version Input Original.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF502" name="CS SSF 4, 5, 6, MelanomaSkin (CS)" tag="N1911" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_4,CS_Site-Specific_Factor_5,CS_Site-Specific_Factor_6,CS_Version_Input_Original">
            <expression><![CDATA[if (line._csSchemaId == null || (line.csVersionInputOriginal != null && Functions.asInt(line.csVersionInputOriginal) < 20500) ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    line.csSiteSpecificFactor4 == null || line.csSiteSpecificFactor4 == '988' ||
    line.csSiteSpecificFactor5 == null || line.csSiteSpecificFactor5 == '988' ||
    line.csSiteSpecificFactor6 == null || line.csSiteSpecificFactor6 == '988')
    return true

if (line._csSchemaId == 'melanoma_skin') {
    if (line.csSiteSpecificFactor4 == '998' && (line.csSiteSpecificFactor5 != '998' || line.csSiteSpecificFactor6 != '998'))
        return false
    if (line.csSiteSpecificFactor5 == '998' && (line.csSiteSpecificFactor4 != '998' || line.csSiteSpecificFactor6 != '998'))
        return false
    if (line.csSiteSpecificFactor6 == '998' && (line.csSiteSpecificFactor4 != '998' || line.csSiteSpecificFactor5 != '998'))
        return false
}

return true]]></expression>
            <message>Conflict between CS SSF 4, 5, 6, and MelanomaSkin Schema</message>
            <description><![CDATA[This edit verifies that for cases using the MelanomaSkin schema, CS Site-Specific Factor 4 (LDH), CS Site-Specific Factor 5 (LDH lab value), and CS Site-Specific Factor 6 (LDH upper limits of normal) are coded consistently. If one specifies "test not done", the others must also specify "test not done".

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500 and CS Version Input Original is not blank
2. CS Site-Specific Factor 4 is blank or 988
3. CS Site-Specific Factor 5 is blank or 988
4. CS Site-Specific Factor 6 is blank or 988
5. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
6. CS schema is invalid

If CS schema is MelanomaSkin:
1. If CS Site-Specific Factor 4 = 998, then CS Site-Specific Factor 5 and CS Site-Specific Factor 6 must = 998.

2. If CS Site-Specific Factor 5 = 998, then CS Site-Specific Factor 4 and CS Site-Specific Factor 6 must = 998.

3. If CS Site-Specific Factor 6 = 998, then CS Site-Specific Factor 4 and CS Site-Specific Factor 5 must = 998.

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-11-18" ref="67045">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-20" ref="67335">Updated skip condition for CS Version Input Original.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF503" name="CS SSF 5, GISTPeritoneum (CS)" tag="N1912" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_5,CS_Version_Input_Original,RX_Summ--Surg_Prim_Site">
            <expression><![CDATA[if (line._csSchemaId == null || (line.csVersionInputOriginal != null && Functions.asInt(line.csVersionInputOriginal) < 20500) ||
    line.rxSummSurgPrimSite == null || line.behaviorCodeIcdO3 == '0' ||
    line.behaviorCodeIcdO3 == '1' || line.csSiteSpecificFactor5 == null ||
    line.csSiteSpecificFactor5 == '988')
    return true

if (line._csSchemaId == 'gist_peritoneum' && line.csSiteSpecificFactor5 == '998')
    return Functions.between(Functions.asInt(line.rxSummSurgPrimSite), 0, 19)

return true]]></expression>
            <message>Conflict between CS SSF 5, RX Summ--Surg Prim Site, GISTPeritoneum Schema</message>
            <description><![CDATA[This edit verifies that for cases using the GISTPeritoneum schema, CS Site-Specific Factor 5 (mitotic count) and RX Summ--Surg Prim Site are coded consistently. If CS Site-Specific Factor 5 specifies "no histologic specimen from primary site", then RX Summ--Surg Prim Site must indicate "no specimen sent to pathology from surgical event."

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500 and CS Version Input Original is not blank
2. CS Site-Specific Factor 5 is blank or 988
3. RX Summ--Surg Prim Site is blank
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

If CS schema is GISTPeritoneum:
    If CS Site-Specific Factor 5 = 998 (no histologic specimen from primary site), then RX Summ--Surg Prim Site must = 00-19 (no specimen sent to pathology from surgical event).

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-11-18" ref="67046">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-20" ref="67336">Updated skip condition for CS Version Input Original.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF504" name="CS SSF 6, GISTEsoph, SmallIntest, Stomach (CS)" tag="N1913" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_6,CS_Version_Input_Original,RX_Summ--Surg_Prim_Site">
            <expression><![CDATA[if (line._csSchemaId == null || (line.csVersionInputOriginal != null && Functions.asInt(line.csVersionInputOriginal) < 20500) ||
    line.rxSummSurgPrimSite == null || line.behaviorCodeIcdO3 == '0' ||
    line.behaviorCodeIcdO3 == '1' || line.csSiteSpecificFactor6 == null ||
    line.csSiteSpecificFactor6 == '988')
    return true

if (['gist_esophagus','gist_small_intestine','gist_stomach'].contains(line._csSchemaId) && line.csSiteSpecificFactor6 == '998')
    return Functions.between(Functions.asInt(line.rxSummSurgPrimSite), 0, 19)

return true]]></expression>
            <message>Conflict between CS SSF 6, RX Summ--Surg Prim Site, and CS Schema</message>
            <description><![CDATA[This edit verifies that for cases using the GISTEsophagus, GISTSmallIntestine, or GISTStomach schemas, CS Site-Specific Factor 6 (mitotic count) and RX Summ--Surg Prim Site are coded consistently. If CS Site-Specific Factor 6 specifies "no histologic specimen from primary site", then RX Summ--Surg Prim Site must indicate "no specimen sent to pathology from surgical event."

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500 and CS Version Input Original is not blank
2. CS Site-Specific Factor 6 is blank or 988
3. RX Summ--Surg Prim Site is blank
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

If CS schema is GISTEsophagus, GISTSmallIntestine, or GISTStomach:
    If CS Site-Specific Factor 6 = 998 (no histologic specimen from primary site), then RX Summ--Surg Prim Site must = 00-19 (no specimen sent to pathology from surgical event).

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-11-18" ref="67047">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-20" ref="67337">Updated skip condition for CS Version Input Original.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF505" name="CS SSF 7, MelanomaSkin (CS)" tag="N1914" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_7,CS_Version_Input_Original,RX_Summ--Surg_Prim_Site">
            <expression><![CDATA[if (line._csSchemaId == null || (line.csVersionInputOriginal != null && Functions.asInt(line.csVersionInputOriginal) < 20500) ||
    line.rxSummSurgPrimSite == null || line.behaviorCodeIcdO3 == '0' ||
    line.behaviorCodeIcdO3 == '1' || line.csSiteSpecificFactor7 == null ||
    line.csSiteSpecificFactor7 == '988')
    return true

if (line._csSchemaId == 'melanoma_skin' && line.csSiteSpecificFactor7 == '998')
    return Functions.between(Functions.asInt(line.rxSummSurgPrimSite), 0, 19)

return true]]></expression>
            <message>Conflict between CS SSF 7, RX Summ--Surg Prim Site, MelanomaSkin Schema</message>
            <description><![CDATA[This edit verifies that for cases using the MelanomaSkin schema, CS Site-Specific Factor 7 (mitotic count) and RX Summ--Surg Prim Site are coded consistently. If CS Site-Specific Factor 7 specifies "no histologic examination of primary site", then RX Summ--Surg Prim Site must indicate "no specimen sent to pathology from surgical event."

This edit is skipped if any of the following conditions are true:
1. CS Version Input Original is less than 020500 and CS Version Input Original is not blank
2. CS Site-Specific Factor 7 is blank or 988
3. RX Summ--Surg Prim Site is blank
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. CS schema is invalid

If CS schema is MelanomaSkin:
    If CS Site-Specific Factor 7 = 998 (no histologic examination of primary site), then RX Summ--Surg Prim Site must = 00-19 (no specimen sent to pathology from surgical event).

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll).  The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.]]></description>
            <history>
                <event version="SE14-011-01" user="murphyr" date="2013-11-18" ref="67048">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-20" ref="67338">Updated skip condition for CS Version Input Original.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-04" ref="67370">Changed edit to use schema IDs instead of schema names</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF506" name="Primary Site, AJCC M - Ed 7, ICDO3 (SEER)" tag="N2298" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_10,CS_Site-Specific_Factor_25,Grade,Histologic_Type_ICD-O-3,Primary_Site,TNM_Clin_M,TNM_Path_M,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear != '2015' || (line.tnmEditionNumber != '07' && line.tnmEditionNumber != '88') ||
    (line.tnmClinM == null && line.tnmPathM == null) || line.histologicTypeIcdO3 == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.typeOfReportingSource == '7')
    return true

Integer site = Functions.asInt(line.primarySite.substring(1))
Integer hist = Functions.asInt(line.histologicTypeIcdO3)
String clin = Functions.matches(line.tnmClinM, /^[pc].+$/) ? line.tnmClinM.substring(1) : line.tnmClinM
String path = Functions.matches(line.tnmPathM, /^[pc].+$/) ? line.tnmPathM.substring(1) : line.tnmPathM

if (line.tnmEditionNumber == '88' && (clin == null || clin == '88') && (path == null || path == '88') && line.overRideSiteTnmStggrp == '1')
    return true

String code = ((Map)((Map)Context.AJCC7SiteHistTable).getOrDefault(site, [:])).getOrDefault(hist, '999')

if (Functions.expandList((List)[0..419, 422, 423, 425..440, 442..689, 691..694, 698..809]).contains(site) &&
    Functions.expandList((List)[9590..9699, 9702..9729, 9735, 9737, 9738, 9811..9818, 9823, 9827, 9837]).contains(hist))
    code = '57A'
else if (code == '04C') {
    if (line.csSiteSpecificFactor25 == '020')
        code = '04D'
    else if (line.csSiteSpecificFactor25 != '010')
        code = '999'
}
else if (code == '008') {
    if (Functions.matches(line.grade, /^[1239]$/)) {
        if (line.ageAtDiagnosis <= '044')
            code = '08A'
        else if (line.ageAtDiagnosis <= '998')
            code = '08B'
        else
            code = '08C'
    }
    else if (line.grade == '4')
        code = '08F'
    else
        code = '999'
}
else if (code == '08D') {
    if (line.grade == '4')
        code = '08F'
    else if (!(Functions.matches(line.grade, /^[1239]$/)))
        code = '999'
}
else if (code == '011') {
    if ((site == 161 || site == 162) && Functions.matches(line.csSiteSpecificFactor25, /^0[246]0$/))
        code = '10B'
}
else if (code == '16B') {
    if ((480 <= site && site <= 488) && line.csSiteSpecificFactor10 == '020')
        code = '16A'
}
else if (code == '021') {
    if (site == 240) {
        if (line.csSiteSpecificFactor25 == '030')
            code = '020'
        else if (line.csSiteSpecificFactor25 == '040' || line.csSiteSpecificFactor25 == '070')
            code = '022'
    }
}
else if (code == '37B') {
    if ((481 <= site && site <= 488) && line.csSiteSpecificFactor25 != '002')
        code = '999'
}
else if (code == '051') {
    if (site == 693)
        code = '51A'
    else if (site == 694) {
        if (line.csSiteSpecificFactor25 == '010' || line.csSiteSpecificFactor25 == '999')
            code = '51A'
        else if (line.csSiteSpecificFactor25 == '020')
            code = '51B'
        else
            code = '999'
    }
}
else if (code == '053') {
    if (line.csSiteSpecificFactor25 != '015')
        code = '999'
}

if (code == '999') {
    if (site == 739 && Functions.expandList((List)[8000..8576, 8940..8950, 8980..8981]).contains(hist) && line.grade == '4')
        code = '08F'
    else if ((481 <= site && site <= 488) && Functions.expandList((List)[8800..8820, 8823..8934, 8940..9136, 9142..9582]).contains(hist) && line.csSiteSpecificFactor25 != '002')
        code = '028'
    else if ((481 <= site && site <= 488) && Functions.expandList((List)[8800..8820, 8823..8921, 9120..9136, 9142..9582]).contains(hist) && line.csSiteSpecificFactor25 == '002')
        code = '028'
    else if ((490 <= site && site <= 499) && Functions.expandList((List)[8800..8934, 8940..9044, 9060..9136, 9141..9582]).contains(hist))
        code = '028'
}

boolean validClin = false
boolean validPath = false
if ((code == '028' || code == '37B') && Functions.expandList((List)[9050..9055]).contains(hist)) {
    if (clin != null && clin == '88')
        validClin = true
    if (path != null && path == '88')
        validPath = true
}

if (!validClin && clin != null && !((List)((Map)Context.IF506_TNM_CODES_Table).getOrDefault(code, [])).contains(clin))
    return false

if (!validPath && path != null && !((List)((Map)Context.IF506_TNM_CODES_Table).getOrDefault(code, [])).contains(path))
    return false

return true]]></expression>
            <message>Conflict between Primary Site, Histology ICDO3, and AJCC M - Ed 7.</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2015, blank(unknown), invalid, or date of diagnosis is greater than 2015
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Histologic Type ICD-O-3 is blank
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. TNM Edition Number is not = 07 and not = 88
6. TNM Clin M and TNM Path M are both blank


TNM Clin M and TNM Path M may be blank.  If entered, they will be edited site-specifically.

Pediatric cases not staged according to AJCC are skipped and are identified in this edit by TNM Edition Number = 88, AJCC Clin M = 88 or blank, AJCC Path M = 88 or blank, and Over-ride Site/TNM-Stgrp = 1.  The use of over-ride for cases over age 24 is checked in other edits.

The site-specific TNM M values are listed below. The number next to each site group indicates the chapter in the AJCC Cancer Staging Manual, Edition 7. The sites for each chapter are listed along with the histologies requiring AJCC staging.  The allowable values for the clinical and pathologic M codes are listed under TNM M.  When there is a difference in allowable values for clinical and pathologic M codes, they will be specified separately.

3. Lip and Oral Cavity

Sites:
     C000-C006,C008,C009
     C020-C023,C028,C029
     C030,C031,C039
     C040,C041,C048,C049
     C050,C058,C059
     C060-C062,C068,C069
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1


4. Pharynx

4A. Oropharynx and Hypopharynx
Sites:
     C019, C024
     C051-C052
     C090-C091, C098-C099
     C100, C102-C104, C108-C109
     C129
     C130-C132, C138-C139

Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1

4B. Nasopharynx
Sites:
    C110, C112-C113, C118-C119
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981

4C. Nasopharynx
Sites:
    C111
Discriminator (CS Site-Specific Factor25):
    010
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1

4D. Oropharynx
Sites:
    C111
Discriminator (CS Site-Specific Factor25):
    020
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1

5. Larynx

5A. Supraglottis, Subglottis, Other
Sites:
     C101, C321-C322
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1


5B. Glottis
Sites:
     C320, C328-C329
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980, 8981
TNM M:
     Clin: 0,1
     Path: 1


6. Nasal Cavity and Paranasal Sinuses

Sites:
     C300, C310-C311
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1


7. Major Salivary Glands

Sites:
     C079
     C080,C081,C088,C089
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8982
TNM M:
     Clin: 0,1, 88
     Path: 1, 88


8. Thyroid Gland

8A. Thyroid: Papillary/follicular, age less than 045
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8015, 8022, 8033-8344, 8350-8420, 8440-8508,
     8514-8576, 8940-8950, 8980-8981
Age at Diagnosis: less than 045
Grade: 1-3 or 9

TNM M:
     Clin: 0,1, 88
     Path: 1, 88

8B. Thyroid: Papillary/follicular, age greater than or equal 045 but not 999
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8015, 8022, 8033-8344, 8350-8420, 8440-8508,
     8514-8576, 8940-8950, 8980-8981
Age at Diagnosis: greater than or equal to 045, but not equal 999
Grade: 1-3 or 9

TNM M:
     Clin: 0,1, 88
     Path: 1, 88

8C. Thyroid: Papillary/follicular, age equal 999 (unknown)
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8015, 8022, 8033-8344, 8350-8420, 8440-8508,
     8514-8576, 8940-8950, 8980-8981
Age at Diagnosis: equal 999
Grade: 1-3 or 9

TNM M:
     Clin: 0,1, 88
     Path: 1, 88

8D. Thyroid: Medullary
Sites:
     C739
Histologies Requiring AJCC Staging:
     8345-8347, 8430, 8510, 8512-8513
Grade: 1-3 or 9

TNM M:
     Clin: 0,1, 88
     Path: 1, 88

8E. Thyroid: Anaplastic
Sites:
     C739
Histologies Requiring AJCC Staging:
     8020-8021, 8030-8032
TNM M:
     Clin: 0,1
     Path: 1

8F. Thyroid: Anaplastic
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Grade: 4

TNM M:
     Clin: 0,1
     Path: 1


9. Mucosal Melanoma of the Head and Neck

Sites:
     C000-C006, C008-C009
     C019
     C020-C024, C028-C029
     C030-C031, C039
     C040-C041, C048-C049
     C050-C052, C058-C059
     C060-C062, C068-C069
     C090-C091, C098-C099
     C100-C104, C108-C109
     C110-C113, C118-C119
     C129
     C132, C138-C139
     C140, C142, C148
     C300
     C310-C311
     C320-C323, C328-C329
Histologies Requiring AJCC Staging:
     8720-8790
TNM M:
     Clin: 0,1, 88
     Path: 1, 88


10. Esophagus and Esophagus Gastric Junction

10A. Esophagus
Sites:
     C150-C155, C158-C159
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1

10B. Esophagus Gastric Junction
Sites:
     C160-C162
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
Discriminator (CS Site-Specific Factor25):
    020, 040, 060 (for C161-C162), 982 (982 is for C160 only)
TNM M:
     Clin: 0,1
     Path: 1


11. Stomach

Sites:
     C161-C162 and Discriminator (CS Site-Specific Factor 25) =
        000, 030, 100, 999
     C163-C166, C168-C169 and Discriminator (CS Site-Specific Factor 25) =
        981
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8990
TNM M:
     Clin: 0,1
     Path: 1


12. Small Intestine

Sites:
     C170-C172, C178-C179
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1


13. Appendix

13A. Appendix: Carcinoma
Sites:
     C181
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1,1A,1B
     Path: 1,1A,1B

13B. Appendix: Carcinoid
Sites:
     C181
Histologies Requiring AJCC Staging:
     8240-8242, 8246, 8249, 8153
TNM M:
     Clin: 0,1, 88
     Path: 1, 88


14. Colon and Rectum

Sites:
     C180, C182-C189
     C199
     C209
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1,1A,1B
     Path: 1,1A,1B


15. Anus

Sites:
     C210-C212, C218
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1


16. Gatrointestinal Stromal Tumor (GIST)

16A. GIST: Gastric
Sites:
     C160-C169
     C480-C488 and CS Site-Specific Factor 10 = 020 (Omentum)
Histologies Requiring AJCC Staging:
     8935-8936
TNM M:
     Clin: 0,1, 88
     Path: 1, 88

16B. GIST: Small Intestine
Sites:
     C150-C159
     C170-C172, C178, C179
     C180-C189
     C199
     C209
     C480-C488 and CS Site-Specific Factor 10 not = 020 (Omentum)
Histologies Requiring AJCC Staging:
     8935-8936
TNM M:
     Clin: 0,1, 88
     Path: 1, 88


17. Neuroendocrine Tumors (NET)

17A. NET: Stomach
Sites:
     C160-C169
Histologies Requiring AJCC Staging:
     8153, 8240-8242, 8246, 8249
TNM M:
     Clin: 0,1
     Path: 1

17B. NET: Small Intestine and Ampulla of Vater
Sites:
     C170-C179
     C241
Histologies Requiring AJCC Staging:
     8153, 8240-8242, 8246, 8249
TNM M:
     Clin: 0,1, 88
     Path: 1, 88

17C. NET: Colon and Rectum
Sites:
     C180, C182-C189
     C199, C209
Histologies Requiring AJCC Staging:
     8153, 8240-8242, 8246, 8249
TNM M:
     Clin: 0,1, 88
     Path: 1, 88


18. Liver

18A. Sites:
     C220
Histologies Requiring AJCC Staging:
     8170-8175
TNM M:
     Clin: 0,1,88
     Path: 1,88

18B. Sites:
     C221
Histologies Requiring AJCC Staging:
     8170-8175
TNM M:
     Clin: 0,1,88
     Path: 1,88


19. Intrahepatic Bile Ducts

19A. Sites:
     C220
Histologies Requiring AJCC Staging:
     8160, 8161, 8180
TNM M:
     Clin: 0,1,88
     Path: 1,88

19B. Sites:
     C221
Histologies Requiring AJCC Staging:
     8160, 8161, 8180
TNM M:
     Clin: 0,1
     Path: 1


20. Gallbladder

Sites:
     C239
     C240 and Discriminator (CS Site-Specific Factor 25) = 030
Histologies Requiring AJCC Staging:
     8000-8152,8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1


21. Perihilar Bile Ducts

Sites:
     C240 and Discriminator (CS Site-Specific Factor 25) = 010, 020, 050,
        060, 999
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1


22. Distal Bile Duct

Sites:
     C240 and Discriminator (CS Site-Specific Factor 25) = 040, 070
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1


23. Ampulla of Vater

Sites:
     C241
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
TNM N:
TNM M:
     Clin: 0,1
     Path: 1


24. Exocrine and Endocrine Pancreas

Sites:
     C250-C254, C257-C259
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8971, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1


25. Lung

Sites:
     C340-C343,C348,C349
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1,1A,1B
     Path: 1,1A,1B


26. Pleural Mesothelioma

Sites:
     C384
Histologies Requiring AJCC Staging:
     9050-9053
TNM M:
     Clin: 0,1,88
     Path: 1,88


27. Bone

Sites:
     C400-C403, C408-C409
     C410-C414, C418-C419
Histologies Permitting AJCC Staging:
     8800-9136, 9142-9582
TNM M:
     Clin: 0,1.1A.1B
     Path: 1.1A,1B


28. Soft Tissue Sarcoma

Peritoneum - not female
Sites:
     C481-C482, C488
Histologies:
    8800-8820, 8823-8934, 8940-9136, 9142-9582
CS Site-Specific Factor25 = not 002 (that is, not female)

Peritoneum - female
Sites:
     C481-C482, C488
Histologies:
    8800-8820, 8823-8921, 9120-9136, 9142-9582
CS Site-Specific Factor25 = 002 (female)

Heart,Mediastinum, Soft Tissue
Sites:
     C380-C383, C388
     C470-C476, C478-C479
     C490-C496, C498-C499
Histologies:
    8800-8820, 8823-8935, 8940-9136, 9142-9582

Retroperitoneum
Sites:
     C480
Histologies:
    8800-8820, 8823-8934, 8940-9136, 9142-9582

TNM M:
     Clin: 0,1
     Path: 1

NOTE: TNM M 88 allowed for Mesothelioma, 9050-9055

29. Cutaneous Squamous Cell Carcinoma and other Cutaneous Carcinomas

Sites:
     C440, C442-C449, C632
Histologies Requiring AJCC Staging:
     8000-8246, 8248-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1


30. Merkel Cell Carcinoma

Sites:
     C440, C442-C449,
     C510-C512, C518-C519
     C600-C602, C608-C609
     C632
Histologies Requiring AJCC Staging:
     8247
TNM M:
     Clin: 0,1,1A,1B,1C
     Path: 1,1A,1B,1C


31. Melanoma of the Skin

Sites:
     C440-C449
     C510-C512,C518,C519
     C600-C602, C608, C609
     C632
Histologies Requiring AJCC Staging:
     8720-8790
TNM M:
     Clin: 0,1,1A,1B,1C
     Path: 1,1A,1B,1C


32. Breast

Sites:
     C500-C506,C508,C509
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981, 9020
TNM M:
     Clin: 0,0I+,1
     Path: 1


33.  Vulva

Sites:
     C510-C512,C518,C519
Histologies Requiring AJCC Staging:
     8000-8246, 8248-8276, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1


34.  Vagina

Sites:
     C529
Histologies Requiring AJCC Staging:
     8000-8576, 8800-8801, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1


35. Cervix Uteri

Sites:
     C530,C531,C538,C539
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1


36. Corpus Uteri

36A. Corpus Uteri: Carcinomas
Sites
     C540-C543, C548-C549
     C559
Histologies Requiring AJCC Staging:
     8000-8790, 8950-8951, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1

36B. Corpus Uteri: Leiomyosarcoma and Endometrial Stromal Sarcoma
Sites:
     C540-C543, C548-C549
     C559
Histologies Requiring AJCC Staging:
     8800, 8890-8898, 8900-8921, 8930-8931, 8935
TNM M:
     Clin: 0,1,88
     Path: 1,88

36C. Corpus Uteri: Adenosarcoma
Sites:
     C540-C543, C548-C549
     C559
Histologies Requiring AJCC Staging:
     8933
TNM M:
     Clin: 0,1,88
     Path: 1,88

37. Ovary and Peritoneal Carcinomas

37A. Ovary
Sites:
     C569
Histologies Requiring AJCC Staging:
     8000-8576, 8590-8671, 8930-9110
TNM M:
     Clin: 0,1, 88
     Path: 1, 88

37B. Peritoneal Carcinomas
Sites:
     C481-C482, C488 (Sex = 2,female) and Discriminator (CS Site-Specific
        Factor 25) = 002
Histologies Requiring AJCC Staging:
     8000-8576, 8590-8671, 8930-8934, 8940-9110
TNM M:
     Clin: 0,1
     Path: 1

NOTE: TNM M 88 allowed for Mesothelioma, 9050-9055

38. Fallopian Tube

Sites:
     C570
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1


39. Gestational Trophoblastic Tumors

Sites:
     C589
Histologies Requiring AJCC Staging:
     9100-9105
TNM M:
     Clin: 0,1,1A,1B,88
     Path: 1,1A,1B,88


40. Penis

Sites:
     C600-C602,C608,C609
Histologies Requiring AJCC Staging:
     8000-8246, 8248-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1


41. Prostate

Sites:
     C619
Histologies Requiring AJCC Staging:
     8000-8110, 8140-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1,1A,1B,1C, 88
     Path: 1,1A,1B,1C, 88

42. Testis

Sites:
     C620,C621,C629

Histologies Requiring AJCC Staging:
     8000-8576, 8590-8670, 8940-8950, 8980-8981, 9060-9090, 9100-9105

TNM M:
     Clin: 0,1,1A,1B
     Path: 1,1A,1B


43. Kidney

Sites:
     C649
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1, 88
     Path: 1, 88


44. Renal Pelvis and Ureter

Sites:
     C659
     C669
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1


45. Urinary Bladder

Sites:
     C670-C679
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1


46. Urethra

Sites:
     C680
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1


47. Adrenal

47A. Adrenal Cortex
Sites:
     C740
Histologies Requiring AJCC Staging:
     8010, 8140, 8370
TNM M:
     Clin: 0,1, 88
     Path: 1, 88

47B. Adrenal Cortical Carcinoma
Sites:
     C749
Histologies Requiring AJCC Staging:
     8370
TNM M:
     Clin: 0,1, 88
     Path: 1, 88


48. Carcinoma of the Eyelid

Sites:
     C441
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1


49. Conjunctiva

Sites:
     C690
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1


50.  Malignant Melanoma of the Conjunctiva

Sites:
     C690
Histologies Requiring AJCC Staging:
     8720-8790
TNM M:
     Clin: 0,1
     Path: 1


51.  Malignant Melanoma of Uvea


51A. Ciliary Body and Choroid
Sites:
     C693
     C694 (CS Site-Specific Factor 25 = 010 or 999)
Histologies Requiring AJCC Staging:
     8720-8790
TNM M:
     Clin: 0,1,1A,1B,1C,88
     Path: 1,1A,1B,1C,88

51B. Iris
Sites:
    C694 (CS Site-Specific Factor 25 = 020)
Histologies Requiring AJCC Staging:
     8720-8790
TNM M:
     Clin: 0,1,1A,1B,1C,88
     Path: 1,1A,1B,1C,88


52. Retinoblastoma

Sites:
     C692
Histologies Requiring AJCC Staging:
     9510-9514
TNM M:
     Clin: 0,1,1A,1B,1C,1D,1E
     Path: 1,1A,1B,1C,1D,1E


53. Carcinoma of the Lacrimal Gland
Sites:
     C695 and CS Site-Specific Factor25 = 015
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     Clin: 0,1
     Path: 1


54. Sarcoma of the Orbit

Sites:
     C696, C698
Histologies Requiring AJCC Staging:
     8800-8936, 8940-9136, 9141-9508, 9520-9582
TNM M:
     Clin: 0,1, 88
     Path: 1, 88


55. Ocular Adnexal Lymphoma

Sites:
     C441, C690, C695-C696
Histologies Requiring AJCC Staging:
     9590-9699, 9702-9738, 9811-9818, 9820-9837
TNM M:
     Clin: 0,1,1A,1B,1C
     Path: 1,1A,1B,1C


56. Brain and Spinal Cord

Sites:
     C700, C701, C709, C710-C719, C720-C729, C751-C753
Histologies Requiring AJCC Staging:
     8000, 8680-9136,9141-9582
TNM M:
     88


57. Lymphoid Neoplasms

57A. Hodgkin and Non-Hodgkin
Sites:
     C000-C419, C422-C423, C425-C440, C442-C689, C691-C694, C698-C809
Histologies Requiring AJCC Staging:
     9590-9699, 9702-9729, 9735, 9737-9738, 9811-9818, 9823, 9827, 9837
TNM M:
     88

57B. Primary Cutaneous Lymphomas
Sites:
     C440-C449
     C510-C512, C518-C519
     C600-C602, C608-C609, C632
Histologies Requiring AJCC Staging:
     9700,9701
TNM M:
     Clin: 0,1,88
     Path: 1,88

All Others
TNM M:
     88]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-13" ref="67135">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-03" ref="67365">Added 88 as valid Clin and Path code for several chapters; updated skip conditions.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-01" ref="67429">Valid codes can have a leading &apos;c&apos; or &apos;p&apos;.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-13" ref="67468">Fixed values in AJCC7SiteHistTable.</event>
                <event version="SE16-015-06" user="depryf" date="2016-08-09" ref="67504">Modified context table to allow more codes for Path M fields.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="beverung" date="2021-03-03" ref="68573">Add code 88 for AJCC groups 28, 37B when histology is 9050-9055.</event>
            </history>
        </rule>
        <rule id="IF507" name="Primary Site, AJCC N - Ed 7, ICDO3 (SEER)" tag="N2420" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_10,CS_Site-Specific_Factor_25,Grade,Histologic_Type_ICD-O-3,Primary_Site,TNM_Clin_N,TNM_Path_N,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear != '2015' || (line.tnmEditionNumber != '07' && line.tnmEditionNumber != '88') ||
    (line.tnmClinN == null && line.tnmPathN == null) || line.histologicTypeIcdO3 == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.typeOfReportingSource == '7')
    return true

Integer site = Functions.asInt(line.primarySite.substring(1))
Integer hist = Functions.asInt(line.histologicTypeIcdO3)
String clin = Functions.matches(line.tnmClinN, /^[pc].+$/) ? line.tnmClinN.substring(1) : line.tnmClinN
String path = Functions.matches(line.tnmPathN, /^[pc].+$/) ? line.tnmPathN.substring(1) : line.tnmPathN

if (line.tnmEditionNumber == '88' && (clin == null || clin == '88') && (path == null || path == '88') && line.overRideSiteTnmStggrp == '1')
    return true

String code = ((Map)((Map)Context.AJCC7SiteHistTable).getOrDefault(site, [:])).getOrDefault(hist, '999')

if (Functions.expandList((List)[0..419, 422, 423, 425..440, 442..689, 691..694, 698..809]).contains(site) &&
    Functions.expandList((List)[9590..9699, 9702..9729, 9735, 9737, 9738, 9811..9818, 9823, 9827, 9837]).contains(hist))
    code = '57A'
else if (code == '04C') {
    if (line.csSiteSpecificFactor25 == '020')
        code = '04D'
    else if (line.csSiteSpecificFactor25 != '010')
        code = '999'
}
else if (code == '008') {
    if (Functions.matches(line.grade, /^[1239]$/)) {
        if (line.ageAtDiagnosis <= '044')
            code = '08A'
        else if (line.ageAtDiagnosis <= '998')
            code = '08B'
        else
            code = '08C'
    }
    else if (line.grade == '4')
        code = '08F'
    else
        code = '999'
}
else if (code == '08D') {
    if (line.grade == '4')
        code = '08F'
    else if (!(Functions.matches(line.grade, /^[1239]$/)))
        code = '999'
}
else if (code == '011') {
    if ((site == 161 || site == 162) && Functions.matches(line.csSiteSpecificFactor25, /^0[246]0$/))
        code = '10B'
}
else if (code == '16B') {
    if ((480 <= site && site <= 488) && line.csSiteSpecificFactor10 == '020')
        code = '16A'
}
else if (code == '021') {
    if (site == 240) {
        if (line.csSiteSpecificFactor25 == '030')
            code = '020'
        else if (line.csSiteSpecificFactor25 == '040' || line.csSiteSpecificFactor25 == '070')
            code = '022'
    }
}
else if (code == '37B') {
    if ((481 <= site && site <= 488) && line.csSiteSpecificFactor25 != '002')
        code = '999'
}
else if (code == '051') {
    if (site == 693)
        code = '51A'
    else if (site == 694) {
        if (line.csSiteSpecificFactor25 == '010' || line.csSiteSpecificFactor25 == '999')
            code = '51A'
        else if (line.csSiteSpecificFactor25 == '020')
            code = '51B'
        else
            code = '999'
    }
}
else if (code == '053') {
    if (line.csSiteSpecificFactor25 != '015')
        code = '999'
}

if (code == '999') {
    if (site == 739 && Functions.expandList((List)[8000..8576, 8940..8950, 8980..8981]).contains(hist) && line.grade == '4')
        code = '08F'
    else if ((481 <= site && site <= 488) && Functions.expandList((List)[8800..8820, 8823..8934, 8940..9136, 9142..9582]).contains(hist) && line.csSiteSpecificFactor25 != '002')
        code = '028'
    else if ((481 <= site && site <= 488) && Functions.expandList((List)[8800..8820, 8823..8921, 9120..9136, 9142..9582]).contains(hist) && line.csSiteSpecificFactor25 == '002')
        code = '028'
}

boolean validClin = false
boolean validPath = false
if ((code == '028' || code == '37B') && Functions.expandList((List)[9050..9055]).contains(hist)) {
    if (clin != null && clin == '88')
        validClin = true
    if (path != null && path == '88')
        validPath = true
}

if (!validClin && clin != null && !((List)((Map)((Map)Context.IF507_TNM_CODES_Table).getOrDefault(code, [:])).getOrDefault('C', [])).contains(clin))
    return false

if (!validPath && path != null && !((List)((Map)((Map)Context.IF507_TNM_CODES_Table).getOrDefault(code, [:])).getOrDefault('P', [])).contains(path))
    return false

return true]]></expression>
            <message>Conflict between Primary Site, AJCC N - Ed 7, and Histology ICDO3.</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2015,blank (unknown), invalid, or year of diagnosis is greater than 2015
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Histologic Type ICD-O-3 is blank
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. TNM Edition Number is not = 07 and not = 88
6. TNM Clin N and TNM Path N are both blank


TNM Clin N and TNM Path N may be blank.  If entered, they will be edited site-specifically.

Pediatric cases not staged according to AJCC are skipped and are identified in this edit by TNM Edition Number = 88, AJCC Clin N = 88 or blank, AJCC Path N = 88 or blank, and Over-ride Site/TNM-Stgrp = 1.  The use of over-ride for cases over age 24 is checked in other edits.

The site-specific TNM N values are listed below.The number next to each site group indicates the chapter in the AJCC Cancer Staging Manual, Edition 7. The sites for each chapter are listed along with the histologies requiring AJCC staging.  The allowable values for the clinical and pathologic N codes are listed under TNM N.  When there is a difference in allowable values for clinical and pathologic N codes, they will be specified separately.

3. Lip and Oral Cavity

Sites:
     C000-C006,C008,C009
     C020-C023,C028,C029
     C030,C031,C039
     C040,C041,C048,C049
     C050,C058,C059
     C060-C062,C068,C069
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
      X,0,1,2,2A,2B,2C,3


4. Pharynx

4A. Oropharynx and Hypopharynx
Sites:
     C019, C024
     C051-C052
     C090-C091, C098-C099
     C100, C102-C104, C108-C109
     C129
     C130-C132, C138-C139

Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
      X,0,1,2,2A,2B,2C,3

4B. Nasopharynx
Sites:
    C110, C112-C113, C118-C119
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
      X,0,1,2,3,3A,3B

4C. Nasopharynx
Sites:
    C111
Discriminator (CS Site-Specific Factor25):
    010
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
      X,0,1,2,3,3A,3B

4D. Oropharynx
Sites:
    C111
Discriminator (CS Site-Specific Factor25):
    020
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
      X,0,1,2,2A,2B,2C,3


5. Larynx

5A. Supraglottis, Subglottis, Other
Sites:
     C101, C321-C322
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
      X,0,1,2,2A,2B,2C,3

5B. Glottis
Sites:
     C320, C328-C329
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980, 8981
TNM N:
      X,0,1,2,2A,2B,2C,3


6. Nasal Cavity and Paranasal Sinuses

Sites:
     C300, C310-C311
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
      X,0,1,2,2A,2B,2C,3


7. Major Salivary Glands

Sites:
     C079
     C080,C081,C088,C089
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8982
TNM N:
      X,0,1,2,2A,2B,2C,3, 88


8. Thyroid Gland

8A. Thyroid: Papillary/follicular, age less than 045
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8015, 8022, 8033-8344, 8350-8420, 8440-8508,
     8514-8576, 8940-8950, 8980-8981
Age at Diagnosis: less than 045
Grade: 1-3 or 9
TNM N:
     X,0,1,1A,1B, 88

8B. Thyroid: Papillary/follicular, age greater than or equal 045 but not 999
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8015, 8022, 8033-8344, 8350-8420, 8440-8508,
     8514-8576, 8940-8950, 8980-8981
Age at Diagnosis: greater than or equal to 045, but not equal 999
Grade: 1-3 or 9
TNM N:
     X,0,1,1A,1B, 88

8C. Thyroid: Papillary/follicular, age equal 999 (unknown)
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8015, 8022, 8033-8344, 8350-8420, 8440-8508,
     8514-8576, 8940-8950, 8980-8981
Age at Diagnosis: equal 999
Grade: 1-3 or 9
TNM N:
     X,0,1,1A,1B, 88

8D. Thyroid: Medullary
Sites:
     C739
Histologies Requiring AJCC Staging:
     8345-8347, 8430, 8510, 8512-8513
Grade: 1-3 or 9
TNM N:
     X,0,1,1A,1B, 88

8E. Thyroid: Anaplastic
Sites:
     C739
Histologies Requiring AJCC Staging:
     8020-8021, 8030-8032
TNM N:
     X,0,1,1A,1B

8F. Thyroid: Anaplastic
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Grade: 4
TNM N:
     X,0,1,1A,1B


9. Mucosal Melanoma of the Head and Neck

Sites:
     C000-C006, C008-C009
     C019
     C020-C024, C028-C029
     C030-C031, C039
     C040-C041, C048-C049
     C050-C052, C058-C059
     C060-C062, C068-C069
     C090-C091, C098-C099
     C100-C104, C108-C109
     C110-C113, C118-C119
     C129
     C132, C138-C139
     C140, C142, C148
     C300
     C310-C311
     C320-C323, C328-C329
Histologies Requiring AJCC Staging:
     8720-8790
TNM N:
      X,0,1, 88


10. Esophagus and Esophagus Gastric Junction

10A. Esophagus
Sites:
     C150-C155, C158-C159
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1,2,3

10B. Esophagus Gastric Junction
Sites:
     C160-C162
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
Discriminator (CS Site-Specific Factor25):
    020, 040, 060 (for C161-C162), 982 (982 is for C160 only)

TNM N:
     X,0,1,2,3

11. Stomach

Sites:
     C161-C162 and Discriminator (CS Site-Specific Factor 25) =
        000, 030, 100, 999
     C163-C166, C168-C169 and Discriminator (CS Site-Specific Factor 25) =
        981
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8990
TNM N:
     X,0,1,2,3.3A,3B


12. Small Intestine

Sites:
     C170-C172, C178-C179
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1,2


13. Appendix

13A. Appendix: Carcinoma
Sites:
     C181
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1,2,3

13B. Appendix: Carcinoid
Sites:
     C181
Histologies Requiring AJCC Staging:
     8240-8242, 8246, 8249, 8153
TNM N:
     X,0,1, 88


14. Colon and Rectum

Sites:
     C180, C182-C189
     C199
     C209
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1,1A,1B,1C,2,2A,2B


15. Anus

Sites:
     C210-C212, C218
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1,2,3


16. Gatrointestinal Stromal Tumor (GIST)

16A. GIST: Gastric
Sites:
     C160-C169
     C480-C488 and CS Site-Specific Factor 10 = 020 (Omentum)
Histologies Requiring AJCC Staging:
     8935-8936
TNM N:
      X,0,1, 88

16B. GIST: Small Intestine
Sites:
     C150-C159
     C170-C172, C178, C179
     C180-C189
     C199
     C209
     C480-C488 and CS Site-Specific Factor 10 not = 020 (Omentum)
Histologies Requiring AJCC Staging:
     8935-8936
TNM N:
     X,0,1, 88


17. Neuroendocrine Tumors (NET)

17A. NET: Stomach
Sites:
     C160-C169
Histologies Requiring AJCC Staging:
     8153, 8240-8242, 8246, 8249
TNM N:
     X,0,1

17B. NET: Small Intestine and Ampulla of Vater
Sites:
     C170-C179
     C241
Histologies Requiring AJCC Staging:
     8153, 8240-8242, 8246, 8249
TNM N:
     X,0,1, 88

17C. NET: Colon and Rectum
Sites:
     C180, C182-C189
     C199, C209
Histologies Requiring AJCC Staging:
     8153, 8240-8242, 8246, 8249
TNM N:
     X,0,1, 88


18. Liver

18A. Sites:
     C220
Histologies Requiring AJCC Staging:
     8170-8175
TNM N:
     X,0,1,88

18B. Sites:
     C221
Histologies Requiring AJCC Staging:
     8170-8175
TNM N:
     X,0,1,88


19. Intrahepatic Bile Ducts

19A. Sites:
     C220
Histologies Requiring AJCC Staging:
     8160, 8161, 8180
TNM N:
     X,0,1, 88

19B. Sites:
     C221
Histologies Requiring AJCC Staging:
     8160, 8161, 8180
TNM N:
     X,0,1


20. Gallbladder

Sites:
     C239
     C240 and Discriminator (CS Site-Specific Factor 25) = 030
Histologies Requiring AJCC Staging:
     8000-8152,8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1,2


21. Perihilar Bile Ducts

Sites:
     C240 and Discriminator (CS Site-Specific Factor 25) = 010, 020, 050,
        060, 999
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1,2


22. Distal Bile Duct

Sites:
     C240 and Discriminator (CS Site-Specific Factor 25) = 040, 070
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1


23. Ampulla of Vater

Sites:
     C241
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1


24. Exocrine and Endocrine Pancreas

Sites:
     C250-C254, C257-C259
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8971, 8980-8981
TNM N:
     X,0,1


25. Lung

Sites:
     C340-C343,C348,C349
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1,2,3


26. Pleural Mesothelioma

Sites:
     C384
Histologies Requiring AJCC Staging:
     9050-9053
TNM N:
     X,0,1,2,3,88


27. Bone

Sites:
     C400-C403, C408-C409
     C410-C414, C418-C419
Histologies Permitting AJCC Staging:
     8800-9136, 9142-9582
TNM N:
     X,0,1


28. Soft Tissue Sarcoma

Peritoneum - not female
Sites:
     C481-C482, C488
Histologies:
    8800-8820, 8823-8934, 8940-9136, 9142-9582
CS Site-Specific Factor25 = not 002 (that is, not female)

Peritoneum - female
Sites:
     C481-C482, C488
Histologies:
    8800-8820, 8823-8921, 9120-9136, 9142-9582
CS Site-Specific Factor25 = 002 (female)

Heart,Mediastinum, Soft Tissue
Sites:
     C380-C383, C388
     C470-C476, C478-C479
     C490-C496, C498-C499
Histologies:
    8800-8820, 8823-8935, 8940-9136, 9142-9582

Retroperitoneum
Sites:
     C480
Histologies:
    8800-8820, 8823-8934, 8940-9136, 9142-9582

TNM N:
     X,0,1

NOTE: TNM N 88 allowed for Mesothelioma, 9050-9055

29. Cutaneous Squamous Cell Carcinoma and other Cutaneous Carcinomas

Sites:
     C440, C442-C449, C632
Histologies Requiring AJCC Staging:
     8000-8246, 8248-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1,2,2A,2B,2C,3


30. Merkel Cell Carcinoma

Sites:
     C440, C442-C449,
     C510-C512, C518-C519
     C600-C602, C608-C609
     C632
Histologies Requiring AJCC Staging:
     8247
TNM N:
      X,0,1,1A,1B,2


31. Melanoma of the Skin

Sites:
     C440-C449
     C510-C512,C518,C519
     C600-C602, C608, C609
     C632
Histologies Requiring AJCC Staging:
     8720-8790
TNM N:
     X,0,1,1A,1B,2,2A,2B,2C,3


32. Breast

Sites:
     C500-C506,C508,C509
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981, 9020
TNM N:
     Clin: X,0,1,2,2A,2B,3,3A,3B,3C
     Path: X,0,0I-,0I+,0M-,0M+,1,1A,1B,1C,1MI,2,2A,2B,3,3A,3B,3C


33.  Vulva

Sites:
     C510-C512,C518,C519
Histologies Requiring AJCC Staging:
     8000-8246, 8248-8576, 8940-8950, 8980-8981
TNM N:
    X,0,1,1A,1B,2,2A,2B,2C,3


34.  Vagina

Sites:
     C529
Histologies Requiring AJCC Staging:
     8000-8576, 8800-8801, 8940-8950, 8980-8981
TNM N:
     X,0,1


35. Cervix Uteri

Sites:
     C530,C531,C538,C539
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1


36. Corpus Uteri

36A. Corpus Uteri: Carcinomas
Sites
     C540-C543, C548-C549
     C559
Histologies Requiring AJCC Staging:
      8000-8790, 8950-8951, 8980-8981
TNM N:
     X,0,1,2

36B. Corpus Uteri: Leiomyosarcoma and Endometrial Stromal Sarcoma
Sites:
     C540-C543, C548-C549
     C559
Histologies Requiring AJCC Staging:
     8800, 8890-8898, 8900-8921, 8930-8931, 8935
TNM N:
     X,0,1,88

36C. Corpus Uteri: Adenosarcoma
Sites:
     C540-C543, C548-C549
     C559
Histologies Requiring AJCC Staging:
     8933
TNM N:
     X,0,1,88


37. Ovary and Peritoneal Carcinomas

37A. Ovary
Sites:
     C569
Histologies Requiring AJCC Staging:
     8000-8576, 8590-8671, 8930-9110
TNM N:
     X,0,1, 88

37B. Peritoneal Carcinomas
Sites:
     C481-C482, C488 (Sex = 2,female) and Discriminator (CS Site-Specific
        Factor 25) = 002
Histologies Requiring AJCC Staging:
     8000-8576, 8590-8671, 8930-8934, 8940-9110
TNM N:
     X,0,1

NOTE: TNM N 88 allowed for Mesothelioma, 9050-9055

38. Fallopian Tube

Sites:
     C570
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1


39. Gestational Trophoblastic Tumors

Sites:
     C589
Histologies Requiring AJCC Staging:
     9100-9105
TNM N:
      88


40. Penis

Sites:
     C600-C602,C608,C609
Histologies Requiring AJCC Staging:
     8000-8246, 8248-8576, 8940-8950, 8980-8981
TNM N:
      X,0,1,2,3


41. Prostate

Sites:
     C619
Histologies Requiring AJCC Staging:
     8000-8110, 8140-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1, 88

42. Testis

Sites:
     C620,C621,C629
Histologies Requiring AJCC Staging:
     8000-8576, 8590-8670, 8940-8950, 8980-8981, 9060-9090, 9100-9105
TNM N:
     X,0,1,2,3


43. Kidney

Sites:
     C649
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1, 88


44. Renal Pelvis and Ureter

Sites:
     C659
     C669
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1,2,3


45. Urinary Bladder

Sites:
     C670-C679
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1,2,3


46. Urethra

Sites:
     C680
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1,2


47. Adrenal

47A. Adrenal Cortex
Sites:
     C740
Histologies Requiring AJCC Staging:
     8010, 8140, 8370
TNM N:
     X,0,1, 88

47B. Adrenal Cortical Carcinoma
Sites:
     C749
Histologies Requiring AJCC Staging:
     8370
TNM N:
     X,0,1, 88


48. Carcinoma of the Eyelid

Sites:
     C441
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1


49. Conjunctiva

Sites:
     C690
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1


50.  Malignant Melanoma of the Conjunctiva

Sites:
     C690
Histologies Requiring AJCC Staging:
     8720-8790
TNM N:
     Clin: X,0,0A,0B,1
     Path: X,0,1


51.  Malignant Melanoma of Uvea

51A. Ciliary Body and Choroid
Sites:
     C693
     C694 (CS Site-Specific Factor 25 = 010 or 999)
Histologies Requiring AJCC Staging:
     8720-8790
TNM N:
     X,0,1,88

51B. Iris
Sites:
    C694 (CS Site-Specific Factor 25 = 020)
Histologies Requiring AJCC Staging:
     8720-8790
TNM N:
     X,0,1,88


52. Retinoblastoma

Sites:
     C692
Histologies Requiring AJCC Staging:
     9510-9514
TNM N:
     X,0,1,2


53. Carcinoma of the Lacrimal Gland
Sites:
     C695 and CS Site-Specific Factor25 = 015
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1


54. Sarcoma of the Orbit

Sites:
     C696, C698
Histologies Requiring AJCC Staging:
     8800-8936, 8940-9136, 9141-9508, 9520-9582
TNM N:
     X,0,1


55. Ocular Adnexal Lymphoma

Sites:
     C441, C690, C695-C696
Histologies Requiring AJCC Staging:
     9590-9699, 9702-9738, 9811-9818, 9820-9837
TNM N:
     X,0,1,2,3,4


56. Brain and Spinal Cord

Sites:
     C700, C701, C709, C710-C719, C720-C729, C751-C753
Histologies Requiring AJCC Staging:
     8000, 8680-9136,9141-9582
TNM N:
     88


57. Lymphoid Neoplasms

57A. Hodgkin and Non-Hodgkin
Sites:
     C000-C419, C422-C423, C425-C440, C442-C689, C691-C694, C698-C809
Histologies Requiring AJCC Staging:
     9590-9699, 9702-9729, 9735, 9737-9738, 9811-9818, 9823, 9827, 9837
TNM N:
     88

57B. Primary Cutaneous Lymphomas
Sites:
     C440-C449
     C510-C512, C518-C519
     C600-C602, C608-C609, C632
Histologies Requiring AJCC Staging:
     9700,9701
TNM N:
     X,0,1,1A,1B,2,2A,2B,3,88

All Others
TNM N:
     88]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-21" ref="67136">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-03" ref="67366">Added 88 as valid Clin and Path code for several chapters; updated skip conditions.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-17" ref="67397">88 is now only valid code for chapter 39 (Gestational Trophoblastic Tumors).</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-01" ref="67430">Valid codes can have a leading &apos;c&apos; or &apos;p&apos;.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-13" ref="67468">Fixed values in AJCC7SiteHistTable.</event>
                <event version="SE16-015-06" user="depryf" date="2016-08-09" ref="67505">Changed context table to allow 0A and 0B for site group 050.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="beverung" date="2021-03-03" ref="68573">Add code 88 for AJCC groups 28, 37B when histology is 9050-9055.</event>
            </history>
        </rule>
        <rule id="IF508" name="Primary Site, AJCC Stage Group - Ed 7, ICDO3 (SEER)" tag="N2300" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear != '2015' || (line.tnmEditionNumber != '07' && line.tnmEditionNumber != '88') ||
    (line.tnmClinStageGroup == null && line.tnmPathStageGroup == null) || line.histologicTypeIcdO3 == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.typeOfReportingSource == '7')
    return true

if (line.overRideSiteTnmStggrp == '1') {
    if (line.ageAtDiagnosis > '024')
        return false
    else if (line.tnmEditionNumber == '88' && (line.tnmClinStageGroup == null || line.tnmClinStageGroup == '88') && (line.tnmPathStageGroup == null || line.tnmPathStageGroup == '88'))
        return true
    else
        return false
}

Integer site = Functions.asInt(line.primarySite.substring(1))
Integer hist = Functions.asInt(line.histologicTypeIcdO3)
String clin = line.tnmClinStageGroup
String path = line.tnmPathStageGroup

String code = ((Map)((Map)Context.AJCC7SiteHistTable).getOrDefault(site, [:])).getOrDefault(hist, '999')

if (Functions.expandList((List)[0..419, 422, 423, 425..440, 442..689, 691..694, 698..809]).contains(site) &&
    Functions.expandList((List)[9590..9699, 9702..9729, 9735, 9737, 9738, 9811..9818, 9823, 9827, 9837]).contains(hist))
    code = '57A'
else if (code == '04C') {
    if (line.csSiteSpecificFactor25 == '020')
        code = '04D'
    else if (line.csSiteSpecificFactor25 != '010')
        code = '999'
}
else if (code == '008') {
    if (Functions.matches(line.grade, /^[1239]$/)) {
        if (line.ageAtDiagnosis <= '044')
            code = '08A'
        else if (line.ageAtDiagnosis <= '998')
            code = '08B'
        else
            code = '08C'
    }
    else if (line.grade == '4')
        code = '08F'
    else
        code = '999'
}
else if (code == '08D') {
    if (line.grade == '4')
        code = '08F'
    else if (!(Functions.matches(line.grade, /^[1239]$/)))
        code = '999'
}
else if (code == '011') {
    if ((site == 161 || site == 162) && Functions.matches(line.csSiteSpecificFactor25, /^0[246]0$/))
        code = '10B'
}
else if (code == '16B') {
    if ((480 <= site && site <= 488) && line.csSiteSpecificFactor10 == '020')
        code = '16A'
}
else if (code == '021') {
    if (site == 240) {
        if (line.csSiteSpecificFactor25 == '030')
            code = '020'
        else if (line.csSiteSpecificFactor25 == '040' || line.csSiteSpecificFactor25 == '070')
            code = '022'
    }
}
else if (code == '37B') {
    if ((481 <= site && site <= 488) && line.csSiteSpecificFactor25 != '002')
        code = '999'
}
else if (code == '051') {
    if (site == 693)
        code = '51A'
    else if (site == 694) {
        if (line.csSiteSpecificFactor25 == '010' || line.csSiteSpecificFactor25 == '999')
            code = '51A'
        else if (line.csSiteSpecificFactor25 == '020')
            code = '51B'
        else
            code = '999'
    }
}
else if (code == '053') {
    if (line.csSiteSpecificFactor25 != '015')
        code = '999'
}

if (code == '999') {
    if (site == 739 && Functions.expandList((List)[8000..8576, 8940..8950, 8980..8981]).contains(hist) && line.grade == '4')
        code = '08F'
    else if ((481 <= site && site <= 488) && Functions.expandList((List)[8800..8820, 8823..8934, 8940..9136, 9142..9582]).contains(hist) && line.csSiteSpecificFactor25 != '002')
        code = '028'
    else if ((481 <= site && site <= 488) && Functions.expandList((List)[8800..8820, 8823..8921, 9120..9136, 9142..9582]).contains(hist) && line.csSiteSpecificFactor25 == '002')
        code = '028'
    else if ([420, 421, 424].contains(site) && Functions.expandList((List)[9590..9699, 9702..9729, 9735, 9737, 9738, 9811..9818, 9837]).contains(hist))
        code = '57A'
}

if  (code == '57A') {
    if (Functions.expandList((List)[9811..9818, 9837]).contains(hist))
        code = '57C'
}

boolean validClin = false
boolean validPath = false
if ((code == '028' || code == '37B') && Functions.expandList((List)[9050..9055]).contains(hist)) {
    if (clin != null && clin == '88')
        validClin = true
    if (path != null && path == '88')
        validPath = true
}

if (!validClin && clin != null && !((List)((Map)((Map)Context.IF508_TNM_CODES_Table).getOrDefault(code, [:])).getOrDefault('C', [])).contains(clin))
    return false

if (!validPath && path != null && !((List)((Map)((Map)Context.IF508_TNM_CODES_Table).getOrDefault(code, [:])).getOrDefault('P', [])).contains(path))
    return false

return true]]></expression>
            <message>Conflict between Primary Site, AJCC Stage Group - Ed 7, and Histology ICDO3.</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is not 2015
2. Type of Reporting Source = 7 (Death Certificate Only)
3. TNM Path Stage Group and TNM Clin Stage Group fields are blank
4. TNM Edition Number is not = 07 and not = 88
5. Histologic Type ICD-O-3 is blank
6. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

Pediatric cases not staged according to AJCC are skipped and are identified in this edit by TNM Edition Number = 88, AJCC Clin Stage Group = 88 or blank, AJCC Path Stage Group = 88 or blank, and Over-ride Site/TNM-Stgrp = 1 if the patient is under 25 years old.  It is assumed by the edit that patients age 25 or older will never be staged by a pediatric system, but most use of pediatric staging will be for patients under 19 years or so.

The site-specific Stage Group values are listed below.The number next to each site group indicates the chapter in the AJCC Cancer Staging Manual, Edition 7. The sites for each chapter are listed along with the histologies requiring AJCC staging.  The allowable values for the clinical and pathologic stage groups are listed under Stage Group.  When there is a difference in allowable values for clinical and pathologic stage group, they will be specified separately.  Please note that both TNM Path Stage Group and TNM Clin Stage Group may be blank.

For sites/histologies not included in the list below, TNM Path Stage Group and TNM Clin Stage Group should be coded to 88 or left blank.

3. Lip and Oral Cavity

Sites:
     C000-C006, C008-C009
     C020-C023, C028-C029
     C030-C031, C039
     C040-C041, C048-C049
     C050,C058-C059
     C060-C062, C068-C069
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 3, 4, 4A, 4B, 4C, 99


4. Pharynx

4A. Oropharynx and Hypopharynx
Sites:
     C019, C024
     C051-C052
     C090-C091, C098-C099
     C100, C102-C104, C108-C109
     C129
     C130-C132, C138-C139

Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 3, 4, 4A, 4B, 4C, 99

4B. Nasopharynx
Sites:
    C110, C112-C113, C118-C119
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 3, 4, 4A, 4B, 4C, 99

4C. Nasopharynx
Sites:
    C111
Discriminator (CS Site-Specific Factor25):
    010
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 3, 4, 4A, 4B, 4C, 99

4D. Oropharynx
Sites:
    C111
Discriminator (CS Site-Specific Factor25):
    020
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 3, 4, 4A, 4B, 4C, 99


5. Larynx

5A. Supraglottis, Subglottis, Other
Sites:
     C101, C321-C322
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
      0, 1, 2, 3, 4, 4A, 4B, 4C, 99

5B. Glottis
Sites:
     C320, C328-C329
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980, 8981
Stage Group:
     0, 1, 2, 3, 4, 4A, 4B, 4C, 99


6. Nasal Cavity and Paranasal Sinuses

Sites:
     C300, C310-C311
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 3, 4, 4A, 4B, 4C, 99


7. Major Salivary Glands

Sites:
     C079
     C080-C081, C088-C089
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8982
Stage Group:
     1, 2, 3, 4, 4A, 4B, 4C, 88, 99


8. Thyroid Gland

8A. Thyroid: Papillary/follicular, age less than 045
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8015, 8022, 8033-8344, 8350-8420, 8440-8508,
     8514-8576, 8940-8950, 8980-8981
Age at Diagnosis: less than 045
Grade: 1-3 or 9
Stage Group:
     Clin: 1, 2, 4, 4A, 4B, 4C, 88, 99
     Path: 0, 1, 2, 88, 99

8B. Thyroid: Papillary/follicular, age greater than or equal 045 but not 999
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8015, 8022, 8033-8344, 8350-8420, 8440-8508,
     8514-8576, 8940-8950, 8980-8981
Age at Diagnosis: greater than or equal to 045, but not equal 999
Grade: 1-3 or 9
Stage Group:
     Clin: 1, 2, 3, 4, 4A, 4B, 4C, 88, 99
     Path: 0, 1, 2, 3, 4, 4A, 4B, 4C, 88, 99

8C. Thyroid: Papillary/follicular, age equal 999 (unknown)
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8015, 8022, 8033-8344, 8350-8420, 8440-8508,
     8514-8576, 8940-8950, 8980-8981
Age at Diagnosis: equal 999
Grade: 1-3 or 9

Stage Group:
     Clin: 3, 88, 99
     Path: 0, 3, 88, 99

8D. Thyroid: Medullary
Sites:
     C739
Histologies Requiring AJCC Staging:
     8345-8347, 8430, 8510, 8512-8513
Grade: 1-3 or 9

Stage Group:
     Clin: 1, 2, 3, 4, 4A, 4B, 4C, 88, 99
     Path: 1, 2, 3, 4, 4A, 4B, 4C, 88, 99

8E. Thyroid: Anaplastic
Sites:
     C739
Histologies Requiring AJCC Staging:
     8020-8021, 8030-8032
Stage Group:
     Clin: 4, 4A, 4B, 4C
     Path: 4, 4A, 4B, 4C

8F. Thyroid: Anaplastic
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Grade: 4

Stage Group:
     Clin: 4, 4A, 4B, 4C
     Path: 4, 4A, 4B, 4C


9. Mucosal Melanoma of the Head and Neck

Sites:
     C000-C006, C008-C009
     C019
     C020-C024, C028-C029
     C030-C031, C039
     C040-C041, C048-C049
     C050-C052, C058-C059
     C060-C062, C068-C069
     C090-C091, C098-C099
     C100-C104, C108-C109
     C110-C113, C118-C119
     C129
     C132, C138-C139
     C140, C142, C148
     C300
     C310-C311
     C320-C323, C328-C329
Histologies Requiring AJCC Staging:
     8720-8790
Stage Group:
     3, 4, 4A, 4B, 4C, 88, 99


10. Esophagus and Esophagus Gastric Junction

10A. Esophagus
Sites:
     C150-C155, C158-C159
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 1A, 1B, 2, 2A, 2B, 3, 3A, 3B, 3C, 4, 99

10B. Esophagus Gastric Junction
Sites:
     C160-C162
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
Discriminator (CS Site-Specific Factor25):
    020, 040, 060 (for C161-C162), 982 (982 is for C160 only)
Stage Group:
     0, 1, 1A, 1B, 2, 2A, 2B, 3, 3A, 3B, 3C, 4, 99


11. Stomach

Sites:
     C161-C162 and Discriminator (CS Site-Specific Factor 25) =
        000, 030, 100, 999
     C163-C166, C168-C169 and Discriminator (CS Site-Specific Factor 25) =
        981
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8990
Stage Group:
     0, 1, 1A, 1B, 2, 2A, 2B, 3, 3A, 3B, 3C, 4,99


12. Small Intestine

Sites:
     C170-C172, C178-C179
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 2A, 2B, 3, 3A, 3B, 4, 99


13. Appendix

13A. Appendix: Carcinoma
Sites:
     C181
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 2A, 2B, 2C, 3, 3A, 3B, 3C, 4, 4A, 4B, 4C, 99

13B. Appendix: Carcinoid
Sites:
     C181
Histologies Requiring AJCC Staging:
     8240-8242, 8246, 8249, 8153
Stage Group:
     0, 1, 2, 3, 4, 99, 88 


14. Colon and Rectum

Sites:
     C180, C182-C189
     C199
     C209
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 2A, 2B, 2C, 3, 3A, 3B, 3C, 4, 4A, 4B, 99


15. Anus

Sites:
     C210-C212, C218
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 3, 3A, 3B, 4, 99


16. Gastrointestinal Stromal Tumor (GIST)

16A. GIST: Gastric
Sites:
     C160-C169
     C480-C488 and CS Site-Specific Factor 10 = 020 (Omentum)
Histologies Requiring AJCC Staging:
     8935-8936
Stage Group:
     1, 1A, 1B, 2, 3, 3A, 3B, 4, 88, 99

16B. GIST: Small Intestine
Sites:
     C150-C159
     C170-C172, C178, C179
     C180-C189
     C199
     C209
     C480-C488 and CS Site-Specific Factor 10 not = 020 (Omentum)
Histologies Requiring AJCC Staging:
     8935-8936
Stage Group:
     1,2,3,3A,3B,4,88,99


17. Neuroendocrine Tumors (NET)

17A. NET: Stomach
Sites:
     C160-C169
Histologies Requiring AJCC Staging:
     8153, 8240-8242, 8246, 8249
Stage Group:
     0, 1, 2, 2A, 2B, 3, 3A, 3B, 4, 99


17B. NET: Small Intestine and Ampulla of Vater
Sites:
     C170-C179
     C241
Histologies Requiring AJCC Staging:
     8153, 8240-8242, 8246, 8249
Stage Group:
     0, 1, 2, 2A, 2B, 3, 3A, 3B, 4, 88, 99

17C. NET: Colon and Rectum
Sites:
     C180, C182-C189
     C199, C209
Histologies Requiring AJCC Staging:
     8153, 8240-8242, 8246, 8249
Stage Group:
     0, 1, 2, 2A, 2B, 3, 3A, 3B, 4, 88, 99


18. Liver

18A. Sites:
     C220
Histologies Requiring AJCC Staging:
     8170-8175
Stage Group:
     1, 2, 3, 3A, 3B, 3C, 4, 4A, 4B, 88, 99

18B. Sites:
     C221
Histologies Requiring AJCC Staging:
     8170-8175
Stage Group:
     1, 2, 3, 3A, 3B, 3C, 4, 4A, 4B, 88, 99


19. Intrahepatic Bile Ducts

19A. Sites:
     C220
Histologies Requiring AJCC Staging:
     8160,  8161,  8180
Stage Group:
     0, 1, 2, 3, 4, 4A, 4B, 88, 99

19B. Sites:
     C221
Histologies Requiring AJCC Staging:
     8160,  8161,  8180
Stage Group:
     0, 1, 2, 3, 4, 4A, 4B, 99


20. Gallbladder

Sites:
     C239
     C240 and Discriminator (CS Site-Specific Factor 25) = 030
Histologies Requiring AJCC Staging:
     8000-8152,8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 3, 3A, 3B, 4, 4A, 4B, 99


21. Perihilar Bile Ducts

Sites:
     C240 and Discriminator (CS Site-Specific Factor 25) = 010, 020, 050,
        060, 999
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 3, 3A, 3B, 4, 4A, 4B, 99


22. Distal Bile Duct

Sites:
     C240 and Discriminator (CS Site-Specific Factor 25) = 040, 070
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 1A, 1B, 2, 2A, 2B, 3,4,99


23. Ampulla of Vater

Sites:
     C241
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 1A, 1B, 2, 2A, 2B, 3, 4, 99


24. Exocrine and Endocrine Pancreas

Sites:
     C250-C254, C257-C259
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8971, 8980-8981
Stage Group:
     0, 1, 1A, 1B, 2, 2A, 2B, 3, 4, 99


25. Lung

Sites:
     C340-C343, C348-C349
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     OC, 0, 1, 1A, 1B, 2, 2A, 2B, 3, 3A, 3B, 4, 99


26. Pleural Mesothelioma

Sites:
     C384
Histologies Requiring AJCC Staging:
     9050-9053
Stage Group:
     1, 1A, 1B, 2, 3, 4, 88, 99


27. Bone

Sites:
     C400-C403, C408-C409
     C410-C414, C418-C419
Histologies Permitting AJCC Staging:
     8800-9136, 9142-9582
Stage Group:
     1, 1A, 1B, 2, 2A, 2B, 3, 4, 4A, 4B, 99


28. Soft Tissue Sarcoma

Peritoneum - not female
Sites:
     C481-C482, C488
Histologies:
    8800-8820, 8823-8934, 8940-9136, 9142-9582
CS Site-Specific Factor25 = not 002 (that is, not female)

Peritoneum - female
Sites:
     C481-C482, C488
Histologies:
    8800-8820, 8823-8921, 9120-9136, 9142-9582
CS Site-Specific Factor25 = 002 (female)

Heart,Mediastinum, Soft Tissue
Sites:
     C380-C383, C388
     C470-C476, C478-C479
     C490-C496, C498-C499
Histologies:
    8800-8820, 8823-8935, 8940-9136, 9142-9582

Retroperitoneum
Sites:
     C480
Histologies:
    8800-8820, 8823-8934, 8940-9136, 9142-9582

Stage Group:
     1, 1A, 1B, 2, 2A, 2B, 3, 4, 99

NOTE: Stage Group 88 allowed for Mesothelioma, 9050-9055

29. Cutaneous Squamous Cell Carcinoma and other Cutaneous Carcinomas

Sites:
     C440, C442-C449, C632
Histologies Requiring AJCC Staging:
     8000-8246, 8248-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 3, 4, 99


30. Merkel Cell Carcinoma

Sites:
     C440, C442-C449,
     C510-C512, C518-C519
     C600-C602, C608-C609
     C632
Histologies Requiring AJCC Staging:
     8247
Stage Group:
     0, 1, 1A, 1B, 2, 2A, 2B, 2C, 3, 3A, 3B, 4, 99


31. Melanoma of the Skin

Sites:
     C440-C449
     C510-C512, C518-C519
     C600-C602, C608-C609
     C632
Histologies Requiring AJCC Staging:
     8720-8790
Stage Group:
     Clin: 0, 1, 1A, 1B, 2, 2A, 2B, 2C, 3, 4, 99
     Path: 0, 1, 1A, 1B, 2, 2A, 2B, 2C, 3, 3A, 3B, 3C, 4, 99


32. Breast

Sites:
     C500-C506, C508-C509
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981, 9020
Stage Group:
     0, 1,1A, 1B, 2, 2A, 2B, 3, 3A, 3B, 3C, 4, 99


33.  Vulva

Sites:
     C510-C512, C518-C519
Histologies Requiring AJCC Staging:
     8000-8246, 8248-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 1A, 1B, 2, 3, 3A, 3B, 3C, 4, 4A, 4B, 99


34.  Vagina

Sites:
     C529
Histologies Requiring AJCC Staging:
     8000-8576, 8800-8801, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 3, 4, 4A, 4B, 99


35. Cervix Uteri

Sites:
     C530-C531, C538-C539
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 1A, 1A1, 1A2, 1B, 1B1, 1B2, 2, 2A, 2A1, 2A2, 2B, 3, 3A, 3B, 4, 4A, 4B, 99


36. Corpus Uteri

36A. Corpus Uteri: Carcinomas
Sites
     C540-C543, C548-C549
     C559

Histologies Requiring AJCC Staging:
     8000-8790, 8950-8951, 8980-8981
Stage Group:

     0, 1, 1A, 1B, 2, 3, 3A, 3B, 3C, 3C1, 3C2, 4, 4A, 4B, 99

36B. Corpus Uteri: Leiomyosarcoma and Endometrial Stromal Sarcoma
Sites:
     C540-C543, C548-C549
     C559
Histologies Requiring AJCC Staging:
     8800, 8890-8898, 8900-8921, 8930-8931, 8935
Stage Group:
     Clin: 1, 1A, 1B, 2, 3, 3A, 3B, 3C, 4, 4A, 4B, 88, 99
     Path: 1, 1A, 1B, 2, 3, 3A, 3B, 3C, 4, 4A, 4B, 88, 99

36C. Corpus Uteri: Adenosarcoma
Sites:
     C540-C543, C548-C549
     C559
Histologies Requiring AJCC Staging:
     8933
Stage Group:
     1, 1A, 1B, 1C, 2, 3, 3A, 3B, 3C, 4, 4A, 4B, 88, 99


37. Ovary and Peritoneal Carcinomas

37A. Ovary
Sites:
     C569
Histologies Requiring AJCC Staging:
     8000-8576, 8590-8671, 8930-9110
Stage Group:
     1, 1A, 1B, 1C, 2, 2A, 2B, 2C, 3, 3A, 3B, 3C, 4, 88, 99

37B. Peritoneal Carcinomas
Sites:
     C481-C482, C488 (Sex = 2,female) and Discriminator (CS Site-Specific
        Factor 25) = 002
Histologies Requiring AJCC Staging:
     8000-8576, 8590-8671, 8930-8934, 8940-9110
Stage Group:
     1, 1A, 1B, 1C, 2, 2A, 2B, 2C, 3, 3A, 3B, 3C, 4, 99

NOTE: Stage Group 88 allowed for Mesothelioma, 9050-9055

38. Fallopian Tube

Sites:
     C570
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 1A, 1B, 1C, 2, 2A, 2B, 2C, 3, 3A, 3B, 3C, 4, 99


39. Gestational Trophoblastic Tumors

Sites:
     C589
Histologies Requiring AJCC Staging:
     9100-9105
Stage Group:
     1, 1A, 1B, 2, 2A, 2B, 3, 3A, 3B, 4, 4A, 4B, 99


40. Penis

Sites:
     C600-C602, C608-C609
Histologies Requiring AJCC Staging:
     8000-8246, 8248-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 3, 3A, 3B, 4, 99


41. Prostate

Sites:
     C619
Histologies Requiring AJCC Staging:
     8000-8110, 8140-8576, 8940-8950, 8980-8981
Stage Group:
     1, 2, 2A, 2B, 3, 4, 88, 99


42. Testis

Sites:
     C620-C621, C629
Histologies Requiring AJCC Staging:
     8000-8576, 8590-8670, 8940-8950, 8980-8981, 9060-9090, 9100-9105
Stage Group:
     0, 1, 1A, 1B, 1S, 2, 2A, 2B, 2C, 3, 3A, 3B, 3C, 99


43. Kidney

Sites:
     C649
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     1, 2, 3, 4, 88, 99


44. Renal Pelvis and Ureter

Sites:
     C659
     C669
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
    0IS, 0A, 1, 2, 3, 4, 99


45. Urinary Bladder

Sites:
     C670-C679
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     0IS, 0A, 1, 2, 3, 4, 99


46. Urethra

Sites:
     C680
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     0IS, 0A, 1, 2, 3, 4, 99


47. Adrenal

47A. Adrenal Cortex
Sites:
     C740
Histologies Requiring AJCC Staging:
     8010, 8140, 8370
Stage Group:
     1, 2, 3, 4, 88, 99

47B. Adrenal Cortical Carcinoma
Sites:
     C749
Histologies Requiring AJCC Staging:
     8370
Stage Group:
     1, 2, 3, 4, 88, 99


48. Carcinoma of the Eyelid

Sites:
     C441
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 1A, 1B, 1C, 2, 3, 3A, 3B, 3C, 4, 99


49. Conjunctiva

Sites:
     C690
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     88


50.  Malignant Melanoma of the Conjunctiva

Sites:
     C690
Histologies Requiring AJCC Staging:
     8720-8790
Stage Group:
     88


51.  Malignant Melanoma of Uvea

51A. Ciliary Body and Choroid
Sites:
     C693
     C694 (CS Site-Specific Factor 25 = 010 or 999)
Histologies Requiring AJCC Staging:
     8720-8790
Stage Group:
     1, 2, 2A, 2B, 3, 3A, 3B, 3C, 4, 99

51B. Iris
Sites:
    C694 (CS Site-Specific Factor 25 = 020)
Histologies Requiring AJCC Staging:
     8720-8790
Stage Group:
     1, 2, 2A, 2B, 3, 3A, 3B, 3C, 4, 99


52. Retinoblastoma

Sites:
     C692
Histologies Requiring AJCC Staging:
     9510-9514
Stage Group:
     88


53. Carcinoma of the Lacrimal Gland
Sites:
     C695 and CS Site-Specific Factor25 = 015
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     88


54. Sarcoma of the Orbit

Sites:
     C696, C698
Histologies Requiring AJCC Staging:
     8800-8936, 8940-9136, 9141-9508, 9520-9582
Stage Group:
     88


55. Ocular Adnexal Lymphoma

Sites:
     C441, C690, C695-C696
Histologies Requiring AJCC Staging:
     9590-9699, 9702-9738, 9811-9818, 9820-9837
Stage Group:
     88


56. Brain and Spinal Cord

Sites:
     C700-C701, C709, C710-C719, C720-C729, C751-C753
Histologies Requiring AJCC Staging:
     8000, 8680-9136, 9141-9582
Stage Group:
     88


57. Lymphoid Neoplasms

57A. Hodgkin and Non-Hodgkin
Sites:
     C000-C440, C442-C689, C691-C694, C698-C809
Histologies Requiring AJCC Staging:
     9590-9699, 9702-9729, 9735, 9737-9738
Stage Group:
     1, 1A, 1B, 2, 2A, 2B, 3, 3A, 3B, 4, 4A, 4B, 99

Sites: (57C)
     C000-C440, C442-C689, C691-C694, C698-C809
Histologies Requiring AJCC Staging:
     9811-9818, 9837
Stage Group:
     1, 1A, 1B, 2, 2 2A, 2B, 3, 3A, 3B, 4, 4A, 4B, 88, 99

Sites:
     C000-C419, C422-C423, C425-C440, C442-C689, C691-C694, C698-C809
Histologies Requiring AJCC Staging:
     9823, 9827
Stage Group:
     1, 1A, 1B, 2, 2A, 2B, 3, 3A, 3B, 4, 4A, 4B, 99


57B. Primary Cutaneous Lymphomas
Sites:
     C440-C449
     C510-C512, C518-C519
     C600-C602, C608-C609, C632
Histologies Requiring AJCC Staging:
     9700,9701
Stage Group:
     1, 1A, 1B, 2, 2B, 3, 3A, 3B, 4, 4A, 4A1, 4A2, 4B, 4C, 99

All Others
Stage Group:
     88

Additional Information:


Pediatric cases not staged according to AJCC are skipped and are identified in this edit by TNM Edition Number = 88, AJCC Path Stage Group = 88 or blank, AJCC Clin Stage Group = 88 or blank,and Over-ride Site/TNM-Stggrp = 1 if the patient is under 25 years old.  It is assumed by the edit that patients age 25 or older will never be staged by a pediatric system, but most use of pediatric staging will be for patients under 19 years.

The edit requires staging for all histologies listed at the beginning of the applicable chapters, including the published (posted) AJCC errata.  Cases meeting those requirements, if entered, must have an AJCC Path and Clin Stage Group with a valid stage group as defined in the appropriate chapter (and coded for computerized transmission following the instructions in FORDS) or 99, the code that indicates insufficient information is available to assign a stage group.  If the AJCC chapter identifies subcategories (say, 2A, 2B ...) then the umbrella category is also valid (2  ) even if it is not identified by AJCC.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-22" ref="67137">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-21" ref="67227">Fixed logic for DX age override and 57A histology list.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-05" ref="67367">Added 88 as valid Clin and Path code for several chapters; updated skip conditions.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-13" ref="67468">Fixed values in AJCC7SiteHistTable.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-019-03" user="kirbyk" date="2019-07-30" ref="68237">Changed valid values for group 13B.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="beverung" date="2021-03-03" ref="68573">Add code 88 for AJCC groups 28, 37B when histology is 9050-9055.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF509" name="Primary Site, AJCC T - Ed 7, ICDO3 (SEER)" tag="N2301" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_10,CS_Site-Specific_Factor_25,Grade,Histologic_Type_ICD-O-3,Primary_Site,TNM_Clin_T,TNM_Path_T,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear != '2015' || (line.tnmEditionNumber != '07' && line.tnmEditionNumber != '88') ||
    (line.tnmClinT == null && line.tnmPathT == null) || line.histologicTypeIcdO3 == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.typeOfReportingSource == '7')
    return true

Integer site = Functions.asInt(line.primarySite.substring(1))
Integer hist = Functions.asInt(line.histologicTypeIcdO3)
String clin = line.tnmClinT
if (clin == 'pISU')
    clin = 'ISPU'
else if (clin == 'pISD')
    clin = 'ISPD'
else if (clin ==~ /^[pc].+$/)
     clin = clin.substring(1)
String path = line.tnmPathT
if (path == 'pISU')
    path = 'ISPU'
else if (path == 'pISD')
    path = 'ISPD'
else if (path ==~ /^[pc].+$/)
     path = path.substring(1)

if (line.tnmEditionNumber == '88' && (clin == null || clin == '88') && (path == null || path == '88') && line.overRideSiteTnmStggrp == '1')
    return true

String code = ((Map)((Map)Context.AJCC7SiteHistTable).getOrDefault(site, [:])).getOrDefault(hist, '999')

if (Functions.expandList((List)[0..419, 422, 423, 425..440, 442..689, 691..694, 698..809]).contains(site) &&
    Functions.expandList((List)[9590..9699, 9702..9729, 9735, 9737, 9738, 9811..9818, 9823, 9827, 9837]).contains(hist))
    code = '57A'
else if (code == '04C') {
    if (line.csSiteSpecificFactor25 == '020')
        code = '04D'
    else if (line.csSiteSpecificFactor25 != '010')
        code = '999'
}
else if (code == '008') {
    if (Functions.matches(line.grade, /^[1239]$/)) {
        if (line.ageAtDiagnosis <= '044')
            code = '08A'
        else if (line.ageAtDiagnosis <= '998')
            code = '08B'
        else
            code = '08C'
    }
    else if (line.grade == '4')
        code = '08F'
    else
        code = '999'
}
else if (code == '08D') {
    if (line.grade == '4')
        code = '08F'
    else if (!(Functions.matches(line.grade, /^[1239]$/)))
        code = '999'
}
else if (code == '011') {
    if ((site == 161 || site == 162) && Functions.matches(line.csSiteSpecificFactor25, /^0[246]0$/))
        code = '10B'
}
else if (code == '16B') {
    if ((480 <= site && site <= 488) && line.csSiteSpecificFactor10 == '020')
        code = '16A'
}
else if (code == '021') {
    if (site == 240) {
        if (line.csSiteSpecificFactor25 == '030')
            code = '020'
        else if (line.csSiteSpecificFactor25 == '040' || line.csSiteSpecificFactor25 == '070')
            code = '022'
    }
}
else if (code == '37B') {
    if ((481 <= site && site <= 488) && line.csSiteSpecificFactor25 != '002')
        code = '999'
}
else if (code == '046') {
    if (line.sex == '2')
        code = '46A'
    else
        code = '46B'
}
else if (code == '051') {
    if (site == 693)
        code = '51A'
    else if (site == 694) {
        if (line.csSiteSpecificFactor25 == '010' || line.csSiteSpecificFactor25 == '999')
            code = '51A'
        else if (line.csSiteSpecificFactor25 == '020')
            code = '51B'
        else
            code = '999'
    }
}
else if (code == '053') {
    if (line.csSiteSpecificFactor25 != '015')
        code = '999'
}

if (code == '999') {
    if (site == 739 && Functions.expandList((List)[8000..8576, 8940..8950, 8980..8981]).contains(hist) && line.grade == '4')
        code = '08F'
    else if ((481 <= site && site <= 488) && Functions.expandList((List)[8800..8820, 8823..8934, 8940..9136, 9142..9582]).contains(hist) && line.csSiteSpecificFactor25 != '002')
        code = '028'
    else if ((481 <= site && site <= 488) && Functions.expandList((List)[8800..8820, 8823..8921, 9120..9136, 9142..9582]).contains(hist) && line.csSiteSpecificFactor25 == '002')
        code = '028'
}

boolean validClin = false
boolean validPath = false
if ((code == '028' || code == '37B') && Functions.expandList((List)[9050..9055]).contains(hist)) {
    if (clin != null && clin == '88')
        validClin = true
    if (path != null && path == '88')
        validPath = true
}

if (!validClin && clin != null && !((List)((Map)((Map)Context.IF509_TNM_CODES_Table).getOrDefault(code, [:])).getOrDefault('C', [])).contains(clin))
    return false

if (!validPath && path != null && !((List)((Map)((Map)Context.IF509_TNM_CODES_Table).getOrDefault(code, [:])).getOrDefault('P', [])).contains(path))
    return false

return true]]></expression>
            <message>Conflict between Primary Site, AJCC T - Ed 7, and Histology ICDO3.</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is not 2015
2. Type of Reporting Source = 7 (Death Certificate Only)
3. TNM Edition Number is not = 07 and not = 88
4. TNM Clin T and TNM Path T are both empty
5. Histologic Type ICD-O-3 is blank
6. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

TNM Clin T and TNM Path T may be blank.  If entered, they will be edited site-specifically.

Pediatric cases not staged according to AJCC are skipped and are identified in this edit by TNM Edition Number = 88, AJCC Clin T = 88 or blank, AJCC Path T = 88 or blank, and Over-ride Site/TNM-Stgrp = 1.  The use of over-ride for cases over age 24 is checked in other edits.

The site-specific TNM T values are listed below.The number next to each site group indicates the chapter in the AJCC Cancer Staging Manual, Edition 7. The sites for each chapter are listed along with the histologies requiring AJCC staging.  The allowable values for the clinical and pathologic T codes are listed under TNM T.  When there is a difference in allowable values for clinical and pathologic T codes, they will be specified separately.

3. Lip and Oral Cavity

Sites:
     C000-C006,C008,C009
     C020-C023,C028,C029
     C030,C031,C039
     C040,C041,C048,C049
     C050,C058,C059
     C060-C062,C068,C069
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
      X,0,IS,1,2,3,4,4A,4B


4. Pharynx

4A. Oropharynx and Hypopharynx
Sites:
     C019, C024
     C051-C052
     C090-C091, C098-C099
     C100, C102-C104, C108-C109
     C129
     C130-C132, C138-C139

Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,3,4, 4A, 4B

4B. Nasopharynx
Sites:
    C110, C112-C113, C118-C119
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,3,4

4C. Nasopharynx
Sites:
    C111
Discriminator (CS Site-Specific Factor25):
    010
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,3,4

4D. Oropharynx
Sites:
    C111
Discriminator (CS Site-Specific Factor25):
    020
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,3,4,4A,4B


5. Larynx

5A. Supraglottis, Subglottis, Other
Sites:
     C101, C321-C322
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,3,4,4A,4B

5B. Glottis
Sites:
     C320, C328-C329
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980, 8981
TNM T:
     X,0,IS,1,1A,1B,2,3,4,4A,4B


6. Nasal Cavity and Paranasal Sinuses

Sites:
     C300, C310-C311
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
      X,0,IS,1,2,3,4,4A,4B


7. Major Salivary Glands

Sites:
     C079
     C080,C081,C088,C089
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8982
TNM T:
     X,0,1,2,3,4,4A,4B,88


8. Thyroid Gland

8A. Thyroid: Papillary/follicular, age less than 045
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8015, 8022, 8033-8344, 8350-8420, 8440-8508,
     8514-8576, 8940-8950, 8980-8981
Age at Diagnosis: less than 045
Grade: 1-3 or 9

TNM T:
     X,0,1,1A,1B,2,3,4,4A,4B,88


8B. Thyroid: Papillary/follicular, age greater than or equal 045 but not 999
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8015, 8022, 8033-8344, 8350-8420, 8440-8508,
     8514-8576, 8940-8950, 8980-8981
Age at Diagnosis: greater than or equal to 045, but not equal 999
Grade: 1-3 or 9

TNM T:
     X,0,1,1A,1B,2,3,4,4A,4B,88

8C. Thyroid: Papillary/follicular, age equal 999 (unknown)
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8015, 8022, 8033-8344, 8350-8420, 8440-8508,
     8514-8576, 8940-8950, 8980-8981
Age at Diagnosis: equal 999
Grade: 1-3 or 9

TNM T:
      X,0,1,1A,1B,2,3,4,4A,4B,88


8D. Thyroid: Medullary
Sites:
     C739
Histologies Requiring AJCC Staging:
     8345-8347, 8430, 8510, 8512-8513
Grade: 1-3 or 9

TNM T:
     X,0,1,1A,1B,2,3,4,4A,4B,88

8E. Thyroid: Anaplastic
Sites:
     C739
Histologies Requiring AJCC Staging:
     8020-8021, 8030-8032
TNM T:
     4,4A,4B

8F. Thyroid: Anaplastic
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Grade: 4

TNM T:
     4,4A,4B


9. Mucosal Melanoma of the Head and Neck

Sites:
     C000-C006, C008-C009
     C019
     C020-C024, C028-C029
     C030-C031, C039
     C040-C041, C048-C049
     C050-C052, C058-C059
     C060-C062, C068-C069
     C090-C091, C098-C099
     C100-C104, C108-C109
     C110-C113, C118-C119
     C129
     C132, C138-C139
     C140, C142, C148
     C300
     C310-C311
     C320-C323, C328-C329
Histologies Requiring AJCC Staging:
     8720-8790
TNM T:
      X,3,4,4A,4B,88


10. Esophagus and Esophagus Gastric Junction

10A. Esophagus
Sites:
     C150-C155, C158-C159
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,1A,1B,2,3,4,4A,4B

10B. Esophagus Gastric Junction
Sites:
     C160-C162
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
Discriminator (CS Site-Specific Factor25):
    020, 040, 060 (for C161-C162), 982 (982 is for C160 only)

TNM T:
     X,0,IS,1,1A,1B,2,3,4,4A,4B


11. Stomach

Sites:
     C161-C162 and Discriminator (CS Site-Specific Factor 25) =
        000, 030, 100, 999
     C163-C166, C168-C169 and Discriminator (CS Site-Specific Factor 25) =
        981
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8990
TNM T:
     X,0,IS,1,1A,1B,2,3,4,4A,4B


12. Small Intestine

Sites:
     C170-C172, C178-C179
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
TNM T:
      X,0,IS,1,1A,1B,2,3,4


13. Appendix

13A. Appendix: Carcinoma
Sites:
     C181
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,3,4,4A,4B

13B. Appendix: Carcinoid
Sites:
     C181
Histologies Requiring AJCC Staging:
     8240-8242, 8246, 8249, 8153
TNM T:
     X,0,1,1A,1B,2,3,4,88


14. Colon and Rectum

Sites:
     C180, C182-C189
     C199
     C209
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,3,4,4A,4B


15. Anus

Sites:
     C210-C212, C218
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,3,4


16. Gastrointestinal Stromal Tumor (GIST)

16A. GIST: Gastric
Sites:
     C160-C169
     C480-C488 and CS Site-Specific Factor 10 = 020 (Omentum)
Histologies Requiring AJCC Staging:
     8935-8936
TNM T:
     X,0,1,2,3,4,88

16B. GIST: Small Intestine
Sites:
     C150-C159
     C170-C172, C178, C179
     C180-C189
     C199
     C209
     C480-C488 and CS Site-Specific Factor 10 not = 020 (Omentum)
Histologies Requiring AJCC Staging:
     8935-8936
TNM T:
     X,0,1,2,3,4,88


17. Neuroendocrine Tumors (NET)

17A. NET: Stomach
Sites:
     C160-C169
Histologies Requiring AJCC Staging:
     8153, 8240-8242, 8246, 8249
TNM T:
     X,0,IS,1,2,3,4

17B. NET: Small Intestine and Ampulla of Vater
Sites:
     C170-C179
     C241
Histologies Requiring AJCC Staging:
     8153, 8240-8242, 8246, 8249
TNM T:
     X,0,1,2,3,4,88

17C. NET: Colon and Rectum
Sites:
     C180, C182-C189
     C199, C209
Histologies Requiring AJCC Staging:
     8153, 8240-8242, 8246, 8249
TNM T:
     X,0,1,1A,1B,2,3,4,88


18. Liver

18A. Sites:
     C220
Histologies Requiring AJCC Staging:
     8170-8175
TNM T:
     X,0,1,2,3,3A,3B,4,88

18B. Sites:
     C221
Histologies Requiring AJCC Staging:
     8170-8175
TNM T:
     X,0,1,2,3,3A,3B,4,88


19. Intrahepatic Bile Ducts

19A. Sites:
     C220
Histologies Requiring AJCC Staging:
     8160, 8161, 8180
TNM T:
     X,0,IS,1,2,2A,2B,3,4,88

19B. Sites:
     C221
Histologies Requiring AJCC Staging:
     8160, 8161, 8180
TNM T:
     X,0,IS,1,2,2A,2B,3,4


20. Gallbladder

Sites:
     C239
     C240 and Discriminator (CS Site-Specific Factor 25) = 030
Histologies Requiring AJCC Staging:
     8000-8152,8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,1A,1B,2,3,4


21. Perihilar Bile Ducts

Sites:
     C240 and Discriminator (CS Site-Specific Factor 25) = 010, 020, 050,
        060, 999
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,2A,2B,3,4


22. Distal Bile Duct

Sites:
     C240 and Discriminator (CS Site-Specific Factor 25) = 040, 070
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,3,4


23. Ampulla of Vater

Sites:
     C241
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,3,4


24. Exocrine and Endocrine Pancreas

Sites:
     C250-C254, C257-C259
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8971, 8980-8981
TNM T:
     X,0,IS,1,2,3,4


25. Lung

Sites:
     C340-C343,C348,C349
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,1A,1B,2,2A,2B,3,4


26. Pleural Mesothelioma

Sites:
     C384
Histologies Requiring AJCC Staging:
     9050-9053
TNM T:
     X,0,1,1A,1B,2,3,4,88


27. Bone

Sites:
     C400-C403, C408-C409
     C410-C414, C418-C419
Histologies Permitting AJCC Staging:
     8800-9136, 9142-9582
TNM T:
     X,0,1,2,3


28. Soft Tissue Sarcoma

Peritoneum - not female
Sites:
     C481-C482, C488
Histologies:
    8800-8820, 8823-8934, 8940-9136, 9142-9582
CS Site-Specific Factor25 = not 002 (that is, not female)

Peritoneum - female
Sites:
     C481-C482, C488
Histologies:
    8800-8820, 8823-8921, 9120-9136, 9142-9582
CS Site-Specific Factor25 = 002 (female)

Heart,Mediastinum, Soft Tissue
Sites:
     C380-C383, C388
     C470-C476, C478-C479
     C490-C496, C498-C499
Histologies:
    8800-8820, 8823-8935, 8940-9136, 9142-9582

Retroperitoneum
Sites:
     C480
Histologies:
    8800-8820, 8823-8934, 8940-9136, 9142-9582

TNM T:
     X,0,1,1A,1B,2,2A,2B

NOTE: TNM T 88 allowed for Mesothelioma, 9050-9055

29. Cutaneous Squamous Cell Carcinoma and other Cutaneous Carcinomas

Sites:
     C440, C442-C449, C632
Histologies Requiring AJCC Staging:
     8000-8246, 8248-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,3,4


30. Merkel Cell Carcinoma

Sites:
     C440, C442-C449,
     C510-C512, C518-C519
     C600-C602, C608-C609
     C632
Histologies Requiring AJCC Staging:
     8247
TNM T:
      X,0,IS,1,2,3,4


31. Melanoma of the Skin

Sites:
     C440-C449
     C510-C512,C518,C519
     C600-C602, C608, C609
     C632
Histologies Requiring AJCC Staging:
     8720-87900
TNM T:
     X,0,IS,1,1A,1B,2,2A,2B,3,3A,3B,4,4A,4B


32. Breast

Sites:
     C500-C506,C508,C509
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981, 9020
TNM T:
     X,0,IS,1,1A,1B,1C,1MI,2,3,4,4A,4B,4C,4D


33.  Vulva

Sites:
     C510-C512,C518,C519
Histologies Requiring AJCC Staging:
     8000-8246, 8248-8576, 8940-8950, 8980-8981
TNM T:
    Clin: X,0,IS,1,1A,1B,2,3
    Path: X,0,IS,1,1A,1B,2,3


34.  Vagina

Sites:
     C529
Histologies Requiring AJCC Staging:
     8000-8576, 8800-8801, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,3,4


35. Cervix Uteri

Sites:
     C530,C531,C538,C539
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,1A,1A1,1A2,1B,1B1,1B2,2,2A,2A1,2A2,2B,3,3A,3B,4


36. Corpus Uteri

36A. Corpus Uteri: Carcinomas
Sites
     C540-C543, C548-C549
     C559
Histologies Requiring AJCC Staging:
     8000-8790, 8950-8951, 8980-8981
TNM T:
     X,0,IS,1,1A,1B,2,3,3A,3B,4


36B. Corpus Uteri: Leiomyosarcoma and Endometrial Stromal Sarcoma
Sites:
     C540-C543, C548-C549
     C559
Histologies Requiring AJCC Staging:
     8800, 8890-8898, 8900-8921, 8930-8931, 8935
TNM T:
     X,0,1,1A,1B,2,2A,2B,3,3A,3B,4,88

36C. Corpus Uteri: Adenosarcoma
Sites:
     C540-C543, C548-C549
     C559
Histologies Requiring AJCC Staging:
     8933
TNM T:
     X,0,1,1A,1B,1C,2,2A,2B,3,3A,3B,4,88


37. Ovary and Peritoneal Carcinomas

37A. Ovary
Sites:
     C569
Histologies Requiring AJCC Staging:
     8000-8576, 8590-8671, 8930-9110
TNM T:
     X,0,1,1A,1B,1C,2,2A,2B,2C,3,3A,3B,3C,88

37B. Peritoneal Carcinomas
Sites:
     C481-C482, C488 (Sex = 2,female) and Discriminator (CS Site-Specific
        Factor 25) = 002
Histologies Requiring AJCC Staging:
     8000-8576, 8590-8671, 8930-8934, 8940-9110
TNM T:
     X,0,1,1A,1B,1C,2,2A,2B,2C,3,3A,3B,3C

NOTE: TNM T 88 allowed for Mesothelioma, 9050-9055

38. Fallopian Tube

Sites:
     C570
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,1A,1B,1C,2,2A,2B,2C,3,3A,3B,3C


39. Gestational Trophoblastic Tumors

Sites:
     C589
Histologies Requiring AJCC Staging:
     9100-9105
TNM T:
     X,0,1,2


40. Penis

Sites:
     C600-C602,C608,C609
Histologies Requiring AJCC Staging:
     8000-8246, 8248-8576, 8940-8950, 8980-8981
TNM T:
      X,0,IS,A,1,1A,1B,2,3,4


41. Prostate

Sites:
     C619
Histologies Requiring AJCC Staging:
     8000-8110, 8140-8576, 8940-8950, 8980-8981
TNM T:
      X,0,1,1A,1B,1C,2,2A,2B,2C,3,3A,3B,4,88


42. Testis

Sites:
     C620,C621,C629
Histologies Requiring AJCC Staging:
     8000-8576, 8590-8670, 8940-8950, 8980-8981, 9060-9090, 9100-9105
TNM T:
     Clin: X,IS,1,2,3,4
     Path: X,0,IS,1,2,3,4,


43. Kidney

Sites:
     C649
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,1,1A,1B,2,2A,2B,3,3A,3B,3C,4,88


44. Renal Pelvis and Ureter

Sites:
     C659
     C669
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,A,1,2,3,4


45. Urinary Bladder

Sites:
     C670-C679
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,A,1,2,2A,2B,3,3A,3B,4,4A,4B


46. Urethra

46A. Urethra - Female
Sites:
     C680
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Sex: 2(female)
TNM T:
     X,0,IS,A,1,2,3,4

46B. Urethra - not Female
Sites:
     C680
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Sex: not 2 (female)
TNM T:
     X,0,IS,ISPU,ISPD,A,1,2,3,4


47. Adrenal

47A. Adrenal Cortex
Sites:
     C740
Histologies Requiring AJCC Staging:
     8010, 8140, 8370
TNM T:
     X,0,1,2,3,4,88

47B. Adrenal Cortical Carcinoma
Sites:
     C749
Histologies Requiring AJCC Staging:
     8370
TNM T:
     X,0,1,2,3,4,88


48. Carcinoma of the Eyelid

Sites:
     C441
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,2A,2B,3,3A,3B,4


49. Conjunctiva

Sites:
     C690
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,3,4,4A,4B,4C,4D


50.  Malignant Melanoma of the Conjunctiva

Sites:
     C690
Histologies Requiring AJCC Staging:
     8720-8790
TNM T:
     Clin: X,0,IS,1,1A,1B,1C,1D,2,2A,2B,2C,2D,3,3A,3B,3C,3D,4
     Path: X,0,IS,1,1A,1B,1C,2,2A,2B,2C,3,4


51.  Malignant Melanoma of Uvea

51A. Ciliary Body and Choroid
Sites:
     C693
     C694 (CS Site-Specific Factor 25 = 010 or 999)
Histologies Requiring AJCC Staging:
     8720-8790
TNM T:
     X,0,1,1A,1B,1C,1D,2,2A,2B,2C,2D,3,3A,3B,3C,3D,4,4A,4B,4C,4D,4E

51B. Iris
Sites:
    C694 (CS Site-Specific Factor 25 = 020)
Histologies Requiring AJCC Staging:
     8720-8790
TNM T:
     X,0,1,1A,1B,1C,2,2A,3,3A,4,4A,4B


52. Retinoblastoma

Sites:
     C692
Histologies Requiring AJCC Staging:
     9510-9514
TNM T:
     Clin: X,0,1,1A,1B,1C,2,2A,2B,3,3A,3B,4,4A,4B,4C,4D
     Path: X,0,1,2,2A,2B,3,3A,3B,4,4A,4B


53. Carcinoma of the Lacrimal Gland
Sites:
     C695 and CS Site-Specific Factor25 = 015
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,1,2,3,4,4A,4B,4C,88


54. Sarcoma of the Orbit

Sites:
     C696, C698
Histologies Requiring AJCC Staging:
     8800-8936, 8940-9136, 9141-9508, 9520-9582
TNM T:
     X,0,1,2,3,4,88


55. Ocular Adnexal Lymphoma

Sites:
     C441, C690, C695-C696
Histologies Requiring AJCC Staging:
     9590-9699, 9702-9738, 9811-9818, 9820-9837
TNM T:
     X,0,1,1A,1B,1C,2,2A,2B,2C,2D,3,4,4A,4B,4C,4D


56. Brain and Spinal Cord

Sites:
     C700, C701, C709, C710-C719, C720-C729, C751-C753
Histologies Requiring AJCC Staging:
     8000, 8680-9136,9141-9582
TNM T:
     88


57. Lymphoid Neoplasms

57A. Hodgkin and Non-Hodgkin
Sites:
     C000-C419, C422-C423, C425-C440, C442-C689, C691-C694, C698-C809
Histologies Requiring AJCC Staging:
     9590-9699, 9702-9729, 9735, 9737-9738, 9811-9818, 9823, 9827, 9837
TNM T:
     88

57B. Primary Cutaneous Lymphomas
Sites:
     C440-C449
     C510-C512, C518-C519
     C600-C602, C608-C609, C632
Histologies Requiring AJCC Staging:
     9700,9701
TNM T:
     1,1A,1B,2,2A,2B,3,4

All Others
TNM T:
     88]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-23" ref="67138">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-06" ref="67368">Added 88 as valid Clin and Path code for several chapters; updated skip conditions.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-02" ref="67431">Valid codes can have a leading &apos;c&apos; or &apos;p&apos;.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-13" ref="67468">Fixed values in AJCC7SiteHistTable.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="beverung" date="2021-03-03" ref="68573">Add code 88 for AJCC groups 28, 37B when histology is 9050-9055.</event>
            </history>
        </rule>
        <rule id="IF510" name="Primary Site, Heme Morph, DateDX, Override (SEER)" tag="N2022" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.behaviorCodeIcdO3 == null || line.behaviorCodeIcdO3 != '3' ||
    line.histologicTypeIcdO3 == null || line.histologicTypeIcdO3 < '9590' || line.histologicTypeIcdO3 > '9993' || line.primarySite == null || line.overRideSiteType == '1')
    return true

if (line.dateOfDiagnosisYear >= '2010') {
    Integer hist = Functions.asInt(line.histologicTypeIcdO3)
    if ([9650,9651,9652,9653,9655,9659,9663,9688].contains(hist)) {
        if (!(Functions.matches(line.primarySite, /^C77[0-9]$/)))
            return false
    }
    else if ([9597,9700,9701,9709,9718,9725].contains(hist)) {
        if (!(Functions.matches(line.primarySite, /^C44[0-9]$/)) && !(Functions.matches(line.primarySite, /^C51[01289]$/)) && !(Functions.matches(line.primarySite, /^C60[01289]$/)) && line.primarySite != 'C632')
            return false
    }
    else if (hist == 9708 || hist == 9726) {
        if (!(Functions.matches(line.primarySite, /^C4[49][0-9]$/)) && !(Functions.matches(line.primarySite, /^C(51|60)[01289]$/)) && line.primarySite != 'C632')
            return false
    }
    else if (hist == 9719) {
        if (!(Functions.matches(line.primarySite, /^C(05|11|31)[0-9]$/)) && !(Functions.matches(line.primarySite, /^C30[01]$/)))
            return false
    }
    else if (hist == 9751) {
        if (!(Functions.matches(line.primarySite, /^C(34|4[0149]|77)[0-9]$/)) && line.primarySite != 'C421')
            return false
    }
}

return true]]></expression>
            <message>Site, Hist/Beh and Year of diagnosis conflict.</message>
            <description><![CDATA[This edit complements the edit 'Primary Site, Morphology-Type,Beh ICDO3(SEER IF25)' which is based on the ICD-O-3 SEER Site/Histology Validation List and requires review of unusual site/histology/behavior combinations. 'Primary Site, Morphology-Type,Beh ICDO3(SEER IF25)' does not check diagnosis year. This edit checks diagnosis year and narrows the list of preferred site codes for some hematopoietic histologies for cases diagnosed 2010 and later. Cases with primary sites that are not included in the preferred list must be reviewed. If upon review the site/type combination is found to be accurate and in conformance with coding rules, it may be left as coded and the Over-ride Site/Type flag coded to 1.

This version of the edit includes the over-ride field 'Over-ride Site/Type' and should run at the central registry level. The hospital registry version of this edit is 'Primary Site, Heme Morph, DateDX, Override (COC)' and includes the hospital level field 'Over-ride COC-Site/Type' instead of the central registry field 'Over-ride Site/Type.'

This edit is skipped if any of the following conditions are true:
1. Primary Site is blank
2. Histologic Type ICD-O-3 is blank or not in range 9590-9993
3. Behavior Code ICD-O-3 is blank or not = 3
4. Date of Diagnosis is blank or invalid
5. Over-ride Site/Type = 1

If year of diagnosis is 2010 or later, the following Primary Site codes are the preferred codes for use with the listed Histologic Type ICD-O-3 codes.  If other Primary Site codes are coded and, after review, determined to be correct, the Over-ride Site/Type should be set to '1'.

9650, 9651, 9652, 9653, 9655, 9659, 9663,9688
    C770-C779

9597, 9700, 9701, 9709, 9718, 9725
    C440-C449, C510-C512, C518-C519, C600-C602, C608-C609, C632

9708, 9726
    C440-C449, C490-C499, C510-C512, C518-C519, C600-C602, C608-C609, C632

9719
    C050-C059, C110-C119 C300-C301, C310-C319

9751
    C340-C349, C400-C419, C421, C440-C449, C490-C499, C770-C779]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-09" ref="67140">Edit created.</event>
                <event version="SE15-013-02" user="kirbyk" date="2015-03-02" ref="67198">Sites changed for histologies 9708, 9719, 9726, 9751.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE16-016-10" user="kirbyk" date="2018-01-17" ref="67683">Fixed documentation.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-04" user="beverung" date="2020-06-18" ref="68356">Update 2010 heme histologies and help text.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-17" ref="69326">Removed several edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF512" name="RX Date BRM, Date Last Contact (COC)" tag="N1386" java-path="lines.line" category="inter-field" depends="DateFollowUpEdit,RXDateBRMEdit">
            <expression><![CDATA[if (line.rxDateBrmYear == null || line.dateOfLastContactYear == null)
    return true

if (line.rxDateBrmYear > line.dateOfLastContactYear)
    return false

if (line.rxDateBrmYear < line.dateOfLastContactYear || line.rxDateBrmMonth == null || line.dateOfLastContactMonth == null)
    return true

if (line.rxDateBrmMonth > line.dateOfLastContactMonth)
    return false

if (line.rxDateBrmMonth < line.dateOfLastContactMonth || line.rxDateBrmDay == null || line.dateOfLastContactDay == null)
    return true

return line.rxDateBrmDay <= line.dateOfLastContactDay]]></expression>
            <message>RX Date BRM, Date of Last Contact conflict.</message>
            <description><![CDATA[This edit is skipped if any of the fields are blank.

RX Date BRM must be less than or equal to Date of Last Contact. If both years are known, but either month is blank, then only the years are compared. If either day is blank, then only the years and months are compared.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-20" ref="67161">Edit created.</event>
            </history>
        </rule>
        <rule id="IF513" name="RX Date BRM, Date of Diagnosis (COC)" tag="N1530" java-path="lines.line" category="inter-field" depends="DateDiagnosisEdit,RXDateBRMEdit">
            <expression><![CDATA[if (line.rxDateBrmYear == null || line.dateOfDiagnosisYear == null)
    return true

if (line.rxDateBrmYear < line.dateOfDiagnosisYear)
    return false

if (line.rxDateBrmYear > line.dateOfDiagnosisYear || line.rxDateBrmMonth == null || line.dateOfDiagnosisMonth == null)
    return true

if (line.rxDateBrmMonth < line.dateOfDiagnosisMonth)
    return false

if (line.rxDateBrmMonth > line.dateOfDiagnosisMonth || line.rxDateBrmDay == null || line.dateOfDiagnosisDay == null)
    return true

return line.rxDateBrmDay >= line.dateOfDiagnosisDay]]></expression>
            <message>RX Date BRM, Date of Diagnosis conflict.</message>
            <description><![CDATA[This edit is skipped if any of the fields are blank or invalid.

RX Date BRM must be greater than or equal to Date of Diagnosis. If both years are known, but either month is blank, then only the years are compared. If either day is blank, then only the years and months are compared.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-20" ref="67162">Edit created.</event>
            </history>
        </rule>
        <rule id="IF515" name="RX Date Chemo, Date Last Contact (COC)" tag="N1384" java-path="lines.line" category="inter-field" depends="DateFollowUpEdit,RXDateChemoEdit">
            <expression><![CDATA[if (line.rxDateChemoYear == null || line.dateOfLastContactYear == null)
    return true

if (line.rxDateChemoYear > line.dateOfLastContactYear)
    return false

if (line.rxDateChemoYear < line.dateOfLastContactYear || line.rxDateChemoMonth == null || line.dateOfLastContactMonth == null)
    return true

if (line.rxDateChemoMonth > line.dateOfLastContactMonth)
    return false

if (line.rxDateChemoMonth < line.dateOfLastContactMonth || line.rxDateChemoDay == null || line.dateOfLastContactDay == null)
    return true

return line.rxDateChemoDay <= line.dateOfLastContactDay]]></expression>
            <message>RX Date Chemo, Date of Last Contact conflict.</message>
            <description><![CDATA[This edit is skipped if any of the fields are blank.

RX Date Chemo must be less than or equal to Date of Last Contact. If both years are known, but either month is blank, then only the years are compared. If either day is blank, then only the years and months are compared.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-20" ref="67165">Edit created.</event>
            </history>
        </rule>
        <rule id="IF516" name="RX Date Chemo, Date of Diagnosis (COC)" tag="N1531" java-path="lines.line" category="inter-field" depends="DateDiagnosisEdit,RXDateChemoEdit">
            <expression><![CDATA[if (line.rxDateChemoYear == null || line.dateOfDiagnosisYear == null)
    return true

if (line.rxDateChemoYear < line.dateOfDiagnosisYear)
    return false

if (line.rxDateChemoYear > line.dateOfDiagnosisYear || line.rxDateChemoMonth == null || line.dateOfDiagnosisMonth == null)
    return true

if (line.rxDateChemoMonth < line.dateOfDiagnosisMonth)
    return false

if (line.rxDateChemoMonth > line.dateOfDiagnosisMonth || line.rxDateChemoDay == null || line.dateOfDiagnosisDay == null)
    return true

return line.rxDateChemoDay >= line.dateOfDiagnosisDay]]></expression>
            <message>RX Date Chemo, Date of Diagnosis conflict.</message>
            <description><![CDATA[This edit is skipped if any of the fields are blank or invalid.

RX Date Chemo must be greater than or equal to Date of Diagnosis. If both years are known, but either month is blank, then only the years are compared. If either day is blank, then only the years and months are compared.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-20" ref="67166">Edit created.</event>
            </history>
        </rule>
        <rule id="IF518" name="RX Date Hormone, Date Last Contact (COC)" tag="N1385" java-path="lines.line" category="inter-field" depends="DateFollowUpEdit,RXDateHormoneEdit">
            <expression><![CDATA[if (line.rxDateHormoneYear == null || line.dateOfLastContactYear == null)
    return true

if (line.rxDateHormoneYear > line.dateOfLastContactYear)
    return false

if (line.rxDateHormoneYear < line.dateOfLastContactYear || line.rxDateHormoneMonth == null || line.dateOfLastContactMonth == null)
    return true

if (line.rxDateHormoneMonth > line.dateOfLastContactMonth)
    return false

if (line.rxDateHormoneMonth < line.dateOfLastContactMonth || line.rxDateHormoneDay == null || line.dateOfLastContactDay == null)
    return true

return line.rxDateHormoneDay <= line.dateOfLastContactDay]]></expression>
            <message>RX Date Hormone, Date of Last Contact conflict.</message>
            <description><![CDATA[This edit is skipped if any of the fields are blank.

RX Date Hormone must be less than or equal to Date of Last Contact. If both years are known, but either month is blank, then only the years are compared. If either day is blank, then only the years and months are compared.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-20" ref="67169">Edit created.</event>
            </history>
        </rule>
        <rule id="IF519" name="RX Date Hormone, Date of Diagnosis (COC)" tag="N1532" java-path="lines.line" category="inter-field" depends="DateDiagnosisEdit,RXDateHormoneEdit">
            <expression><![CDATA[if (line.rxDateHormoneYear == null || line.dateOfDiagnosisYear == null)
    return true

if (line.rxDateHormoneYear < line.dateOfDiagnosisYear)
    return false

if (line.rxDateHormoneYear > line.dateOfDiagnosisYear || line.rxDateHormoneMonth == null || line.dateOfDiagnosisMonth == null)
    return true

if (line.rxDateHormoneMonth < line.dateOfDiagnosisMonth)
    return false

if (line.rxDateHormoneMonth > line.dateOfDiagnosisMonth || line.rxDateHormoneDay == null || line.dateOfDiagnosisDay == null)
    return true

return line.rxDateHormoneDay >= line.dateOfDiagnosisDay]]></expression>
            <message>RX Date Hormone, Date of Diagnosis conflict.</message>
            <description><![CDATA[This edit is skipped if any of the fields are blank or invalid.

RX Date Hormone must be greater than or equal to Date of Diagnosis. If both years are known, but either month is blank, then only the years are compared. If either day is blank, then only the years and months are compared.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-20" ref="67170">Edit created.</event>
            </history>
        </rule>
        <rule id="IF521" name="RX Date Other, Date Last Contact (COC)" tag="N0868" java-path="lines.line" category="inter-field" depends="DateFollowUpEdit,RXDateOtherEdit">
            <expression><![CDATA[if (line.rxDateOtherYear == null || line.dateOfLastContactYear == null)
    return true

if (line.rxDateOtherYear > line.dateOfLastContactYear)
    return false

if (line.rxDateOtherYear < line.dateOfLastContactYear || line.rxDateOtherMonth == null || line.dateOfLastContactMonth == null)
    return true

if (line.rxDateOtherMonth > line.dateOfLastContactMonth)
    return false

if (line.rxDateOtherMonth < line.dateOfLastContactMonth || line.rxDateOtherDay == null || line.dateOfLastContactDay == null)
    return true

return line.rxDateOtherDay <= line.dateOfLastContactDay]]></expression>
            <message>RX Date Other, Date of Last Contact conflict.</message>
            <description><![CDATA[This edit is skipped if RX Date Other or Date of Last Contact is blank.

RX Date Other must be less than or equal to Date of Last Contact. If both years are known, but either month is blank, then only the years are compared. If either day is blank, then only the years and months are compared.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-20" ref="67173">Edit created.</event>
            </history>
        </rule>
        <rule id="IF522" name="RX Date Other, Date of Diagnosis (COC)" tag="N1533" java-path="lines.line" category="inter-field" depends="DateDiagnosisEdit,RXDateOtherEdit">
            <expression><![CDATA[if (line.rxDateOtherYear == null || line.dateOfDiagnosisYear == null)
    return true

if (line.rxDateOtherYear < line.dateOfDiagnosisYear)
    return false

if (line.rxDateOtherYear > line.dateOfDiagnosisYear || line.rxDateOtherMonth == null || line.dateOfDiagnosisMonth == null)
    return true

if (line.rxDateOtherMonth < line.dateOfDiagnosisMonth)
    return false

if (line.rxDateOtherMonth > line.dateOfDiagnosisMonth || line.rxDateOtherDay == null || line.dateOfDiagnosisDay == null)
    return true

return line.rxDateOtherDay >= line.dateOfDiagnosisDay]]></expression>
            <message>RX Date Other, Date of Diagnosis conflict.</message>
            <description><![CDATA[This edit is skipped if any of the fields are blank or invalid.

RX Date Other must be greater than or equal to Date of Diagnosis. If both years are known, but either month is blank, then only the years are compared. If either day is blank, then only the years and months are compared.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-20" ref="67174">Edit created.</event>
            </history>
        </rule>
        <rule id="IF524" name="RX Date Radiation, Date Last Contact (COC)" tag="N1383" java-path="lines.line" category="inter-field" depends="DateFollowUpEdit,RXDateRadiationEdit">
            <expression><![CDATA[if (line.rxDateRadiationYear == null || line.dateOfLastContactYear == null)
    return true

if (line.rxDateRadiationYear > line.dateOfLastContactYear)
    return false

if (line.rxDateRadiationYear < line.dateOfLastContactYear || line.rxDateRadiationMonth == null || line.dateOfLastContactMonth == null)
    return true

if (line.rxDateRadiationMonth > line.dateOfLastContactMonth)
    return false

if (line.rxDateRadiationMonth < line.dateOfLastContactMonth || line.rxDateRadiationDay == null || line.dateOfLastContactDay == null)
    return true

return line.rxDateRadiationDay <= line.dateOfLastContactDay]]></expression>
            <message>RX Date Radiation, Date of Last Contact conflict.</message>
            <description><![CDATA[This edit is skipped if any of the fields are blank.

RX Date Radiation must be less than or equal to Date of Last Contact. If both years are known, but either month is blank, then only the years are compared. If either day is blank, then only the years and months are compared.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-20" ref="67177">Edit created.</event>
            </history>
        </rule>
        <rule id="IF525" name="RX Date Radiation, Date of Diagnosis (COC)" tag="N1534" java-path="lines.line" category="inter-field" depends="DateDiagnosisEdit,RXDateRadiationEdit">
            <expression><![CDATA[if (line.rxDateRadiationYear == null || line.dateOfDiagnosisYear == null)
    return true

if (line.rxDateRadiationYear < line.dateOfDiagnosisYear)
    return false

if (line.rxDateRadiationYear > line.dateOfDiagnosisYear || line.rxDateRadiationMonth == null || line.dateOfDiagnosisMonth == null)
    return true

if (line.rxDateRadiationMonth < line.dateOfDiagnosisMonth)
    return false

if (line.rxDateRadiationMonth > line.dateOfDiagnosisMonth || line.rxDateRadiationDay == null || line.dateOfDiagnosisDay == null)
    return true

return line.rxDateRadiationDay >= line.dateOfDiagnosisDay]]></expression>
            <message>RX Date Radiation, Date of Diagnosis conflict.</message>
            <description><![CDATA[This edit is skipped if any of the fields are blank or invalid.

RX Date Radiation must be greater than or equal to Date of Diagnosis. If both years are known, but either month is blank, then only the years are compared. If either day is blank, then only the years and months are compared.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-20" ref="67178">Edit created.</event>
            </history>
        </rule>
        <rule id="IF527" name="RX Date Surgery, Date Last Contact (COC)" tag="N0869" java-path="lines.line" category="inter-field" depends="DateFollowUpEdit,RXDateSurgeryEdit">
            <expression><![CDATA[if (line.rxDateSurgeryYear == null || line.dateOfLastContactYear == null)
    return true

if (line.rxDateSurgeryYear > line.dateOfLastContactYear)
    return false

if (line.rxDateSurgeryYear < line.dateOfLastContactYear || line.rxDateSurgeryMonth == null || line.dateOfLastContactMonth == null)
    return true

if (line.rxDateSurgeryMonth > line.dateOfLastContactMonth)
    return false

if (line.rxDateSurgeryMonth < line.dateOfLastContactMonth || line.rxDateSurgeryDay == null || line.dateOfLastContactDay == null)
    return true

return line.rxDateSurgeryDay <= line.dateOfLastContactDay]]></expression>
            <message>RX Date Surgery, Date of Last Contact conflict.</message>
            <description><![CDATA[This edit is skipped if any of the fields are blank.

RX Date Surgery must be less than or equal to Date of Last Contact. If both years are known, but either month is blank, then only the years are compared. If either day is blank, then only the years and months are compared.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-20" ref="67181">Edit created.</event>
            </history>
        </rule>
        <rule id="IF528" name="RX Date Surgery, Date of Diagnosis (COC)" tag="N1535" java-path="lines.line" category="inter-field" depends="DateDiagnosisEdit,RXDateSurgeryEdit">
            <expression><![CDATA[if (line.rxDateSurgeryYear == null || line.dateOfDiagnosisYear == null)
    return true

if (line.rxDateSurgeryYear < line.dateOfDiagnosisYear)
    return false

if (line.rxDateSurgeryYear > line.dateOfDiagnosisYear || line.rxDateSurgeryMonth == null || line.dateOfDiagnosisMonth == null)
    return true

if (line.rxDateSurgeryMonth < line.dateOfDiagnosisMonth)
    return false

if (line.rxDateSurgeryMonth > line.dateOfDiagnosisMonth || line.rxDateSurgeryDay == null || line.dateOfDiagnosisDay == null)
    return true

return line.rxDateSurgeryDay >= line.dateOfDiagnosisDay]]></expression>
            <message>RX Date Surgery, Date of Diagnosis conflict.</message>
            <description><![CDATA[This edit is skipped if any of the fields are blank or invalid.

RX Date Surgery must be greater than or equal to Date of Diagnosis. If both years are known, but either month is blank, then only the years are compared. If either day is blank, then only the years and months are compared.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-20" ref="67182">Edit created.</event>
            </history>
        </rule>
        <rule id="IF529" name="TNM Clin Descriptor, Date of Diagnosis (SEER)" tag="N2015" java-path="lines.line" category="inter-field" depends="TNM_Clin_Descriptor,Year_of_Diagnosis">
            <expression><![CDATA[return line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.dateOfDiagnosisYear > '2017' || line.tnmClinDescriptor != null]]></expression>
            <message>TNM Clin Descriptor is not valid.</message>
            <description><![CDATA[This edit is skipped if year of Date of Diagnosis is blank or invalid.

If year of Date of Diagnosis is greater than 2015 and less than 2018, then TNM Clin Descriptor cannot be blank.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-14" ref="67183">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-03-29" ref="67233">Updated description for skip conditions.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-07" ref="67306">Updated logic for 2016 cases.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-05-01" ref="67745">Updated logic for 2018+ cases.</event>
            </history>
        </rule>
        <rule id="IF530" name="TNM Clin Staged By, Date of Diagnosis (SEER)" tag="N2018" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[boolean skipCondition1 = line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2015' || line.dateOfDiagnosisYear > '2017'
boolean skipCondition2 = line.tnmClinStagedBy == null && line.dateOfDiagnosisYear == '2015'
boolean skipCondition3 = ['0000001563', '0000001566'].contains(line.registryId)
if (skipCondition1 || skipCondition2 || skipCondition3)
    return true

return Functions.matches(line.tnmClinStagedBy, /^[0-6]0|1[1-5]|88|99$/)]]></expression>
            <message>TNM Clin Staged By is invalid.</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is less than 2015, greater than 2017, blank (unknown), or invalid
2. TNM Clin Staged By [990] is blank and year of Date of Diagnosis = 2015
3. Registry ID is 0000001563 (Massachusetts) or 0000001566 (Texas)

Must be a valid TNM Clin Staged By[990] code (00, 10, 11, 12, 13, 14, 15, 20, 30, 40, 50,  60, 88, 99).

Codes
00    Not staged
10    Physician NOS or physician type not specified in codes 11-15
11    Surgeon
12    Radiation Oncologist
13    Medical Oncologist
14    Pathologist
15    Multiple Physicians; tumor board, etc.
20    Cancer registrar
30    Cancer registrar and physician
40    Nurse, physician assistant, or other non-physician medical staff
50    Staging assigned at another facility
60    Staging by Central Registry
88    Case is not eligible for staging
99    Staged but unknown who assigned stage]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-12" ref="67184">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-07" ref="67285">Updated logic for NAACCR 16.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-04-16" ref="67749">Added DX year 2018+ to first skip condition.</event>
                <event version="SE18-020-01" user="beverung" date="2020-01-28" ref="68274">Skip edit for MA.</event>
                <event version="SE21-021-09" user="beverung" date="2021-09-03" ref="68738">Added skip condition for TX.</event>
            </history>
        </rule>
        <rule id="IF531" name="TNM Edition Number, Date of Diagnosis (SEER)" tag="N2013" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2015')
    return true

if (line.dateOfDiagnosisYear == '2015')
    return ['07', '88'].contains(line.tnmEditionNumber) || line.tnmEditionNumber == null
else if (line.dateOfDiagnosisYear == '2016' || line.dateOfDiagnosisYear == '2017')
    return ['07', 'U7', '88'].contains(line.tnmEditionNumber)
else if (line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2021')
    return ['08', '88'].contains(line.tnmEditionNumber) || line.tnmEditionNumber == null
else if (line.dateOfDiagnosisYear > '2020')
    return ['00', '08', '09', '88'].contains(line.tnmEditionNumber) || line.tnmEditionNumber == null
return true]]></expression>
            <message>TNM Edition Number is not valid for Diagnosis Year</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is less than 2015

If Year of Date of Diagnosis is 2015, then TNM Edition Number must equal 07 (Seventh Edition) or 88 (not applicable) or blank

If Year of Date of Diagnosis is 2016-2017, then TNM Edition Number must equal 07 (Seventh Edition) or U7(UICC) or 88(not applicable) and cannot be blank.

If Year of Date of Diagnosis is > 2017 and < 2021, then TNM Edition Number must equal 08 (Eighth Edition) or 88 ( not applicable) or blank.

If year of Date of Diagnosis is > 2020 , then TNM Edition Number must equal 00, 08, 09, 88, or blank.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-14" ref="67185">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-03-31" ref="67243">For 2016 cases, &apos;U7&apos; is valid and blank is invalid.</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-08" ref="67571">For 2017 cases, &apos;U7&apos; is valid and blank is invalid.</event>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-22" ref="67920">For 2017+ cases, &apos;08&apos;, &apos;88&apos;, and blank are valid.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-06" ref="68473">For 2021+ cases, &apos;00&apos;, &apos;08&apos;, &apos;09&apos;, &apos;88&apos;, and blank are valid.</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-06" ref="68921">Do not allow TNM Edition Number = 00 for cases with Year of DX 2021 and later.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-17" ref="69169">Added 00 as a valid TNM edition number for DX year &gt; 2020.</event>
            </history>
        </rule>
        <rule id="IF532" name="TNM Edition Number, TNM Fields (NPCR)" tag="N2347" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear != '2015')
    return true

if (line.tnmPathT != null || line.tnmPathN != null || line.tnmPathM != null || line.tnmPathStageGroup != null || line.tnmPathDescriptor != null ||
    line.tnmClinT != null || line.tnmClinN != null || line.tnmClinM != null || line.tnmClinStageGroup != null || line.tnmClinDescriptor != null)
    return line.tnmEditionNumber != null

return true]]></expression>
            <message>If any TNM fields are entered, TNM Edition cannot be blank.</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is not 2015

If any TNM fields are entered, then TNM Edition Number must also be entered.

TNM fields include the following:
    TNM Path T
    TNM Path N
    TNM Path M
    TNM Path Stage Group
    TNM Path Descriptor
    TNM Clin T
    TNM Clin N
    TNM Clin M
    TNM Clin Stage Group
    TNM Clin Descriptor]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-12" ref="67186">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-27" ref="67428">Changed edit to only run for cases with DX year 2015.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF533" name="TNM Path Descriptor, Date of Diagnosis (SEER)" tag="N2016" java-path="lines.line" category="inter-field" depends="TNM_Path_Descriptor,Year_of_Diagnosis">
            <expression><![CDATA[return line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.dateOfDiagnosisYear > '2017' || line.tnmPathDescriptor != null]]></expression>
            <message>TNM Path Descriptor is not valid.</message>
            <description><![CDATA[This edit is skipped if year of Date of Diagnosis is blank or invalid.

If year of Date of Diagnosis is greater than 2015 and less than 2018, then TNM Path Descriptor cannot be blank.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-12" ref="67187">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-07" ref="67304">Updated logic for 2016 cases.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-04-16" ref="67751">Edit restricted to 2016-2017 cases.</event>
            </history>
        </rule>
        <rule id="IF534" name="TNM Path Staged By, Date of Diagnosis (SEER)" tag="N2017" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[boolean skipCondition1 = line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2015' || line.dateOfDiagnosisYear > '2017'
boolean skipCondition2 = line.tnmPathStagedBy == null && line.dateOfDiagnosisYear == '2015'
boolean skipCondition3 = ['0000001563', '0000001566'].contains(line.registryId)
if (skipCondition1 || skipCondition2 || skipCondition3)
    return true

return Functions.matches(line.tnmPathStagedBy, /^[0-6]0|1[1-5]|88|99$/)]]></expression>
            <message>TNM Path Staged By is not valid.</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is less than 2015 or greater than 2017, blank (unknown), or invalid
2. TNM Path Staged By [930] is blank and year of Date of Diagnosis = 2015
3. Registry ID is 0000001563 (Massachusetts) or 0000001566 (Texas)

Must be a valid TNM Path Staged By code (00,10-15,20,30,40,50,60,88,99).

Codes
00    Not staged
10    Physician NOS or physician type not specified in codes 11-15
11    Surgeon
12    Radiation Oncologist
13    Medical Oncologist
14    Pathologist
15    Multiple Physicians; tumor board, etc.
20    Cancer registrar
30    Cancer registrar and physician
40    Nurse, physician assistant, or other non-physician medical staff
50    Staging assigned at another facility
60    Staging by Central Registry
88    Case is not eligible for staging
99    Staged but unknown who assigned stage]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-14" ref="67188">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-07" ref="67286">Updated logic for NAACCR 16.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-05-01" ref="67753">Updated skip condition for 2018+ cases.</event>
                <event version="SE18-020-01" user="beverung" date="2020-01-28" ref="68274">Skip edit for MA.</event>
                <event version="SE21-021-09" user="beverung" date="2021-09-03" ref="68738">Added skip condition for TX.</event>
            </history>
        </rule>
        <rule id="IF535" name="CS SSF 8, SSF 10, Grade, Prostate (SEER)" tag="N2028" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_10,CS_Site-Specific_Factor_8,Grade,Histologic_Type_ICD-O-3,Primary_Site,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2014' || line.dateOfDiagnosisYear > '2017' || line.typeOfReportingSource == '7')
    return true

if (line.csSiteSpecificFactor8 == null || line.csSiteSpecificFactor8 == '988' || line.csSiteSpecificFactor10 == null || line.csSiteSpecificFactor10 == '988')
    return true

if(line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

Integer hist = Functions.asInt(line.histologicTypeIcdO3)
if (line.primarySite != 'C619' || !((8000 <= hist && hist <= 9136) || (9141 <= hist && hist <= 9582) || hist == 9700 || hist == 9701))
    return true

String ssf10 = line.csSiteSpecificFactor10
if (Functions.matches(line.csSiteSpecificFactor8, /^00[2-6]$/)) {
    if ((ssf10 ==~ /^00[2-6]$/ || ssf10 == '998' || ssf10 == '999') && line.grade != '1')
        return false
    else if (ssf10 == '007' && line.grade != '2')
        return false
    else if (['008','009','010'].contains(ssf10) && line.grade != '3')
        return false
}
else if (line.csSiteSpecificFactor8 == '007') {
    if ((ssf10 ==~ /^00[2-7]$/ || ssf10 == '998' || ssf10 == '999') && line.grade != '2')
        return false
    else if (['008','009','010'].contains(ssf10) && line.grade != '3')
        return false
}
else if (['008','009','010'].contains(line.csSiteSpecificFactor8)) {
    if ((ssf10 ==~ /^00[2-9]$/ || ssf10 == '010' || ssf10 == '998' || ssf10 == '999') && line.grade != '3')
        return false
}
else if (line.csSiteSpecificFactor8 == '998' || line.csSiteSpecificFactor8 == '999') {
    if (ssf10 ==~ /^00[2-6]$/ && line.grade != '1')
        return false
    else if (ssf10 == '007' && line.grade != '2')
        return false
    else if (['008','009','010'].contains(ssf10) && line.grade != '3')
        return false
}

return true]]></expression>
            <message>Prostate schema, CS Site-Specific Factor 8, CS Site-Specific Factor 10, and Grade conflict</message>
            <description><![CDATA[Purpose: This edit verifies that Grade is coded correctly for prostate cases diagnosed 2014 and later.  A computer algorithm can be used to derive grade for prostate based on CS Site-Specific Factor 8 (Gleason's score on TURP and CS Site-Specific Factor10 (Gleason's score on prostatectomy/autopsy): if CS Site-Specific Factor 8 or CS Site-Specific Factor10 has known values for Gleason's, the information could be used to automatically derive the grade field.

Source: Instructions for Coding Grade for 2014+
        http://www.seer.cancer.gov/tools/grade/

This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is blank, invalid, less than 2014 or greater than 2017
2. CS Site-Specific Factor 8 is blank or 988
3. CS Site-Specific Factor10 is blank or 988
4. Case is death certificate only (Type of Reporting Source = 7).
5. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

If Primary Site = C619 (Prostate) and Histologic Type ICD-O-3 = 8000-9136, 9141-9582, 9700-9701:

Using the table below, if Grade does not equal the CS Site-Specific Factor 8 and CS Site-Specific Factor10 combination, then an error message is generated.  Grade specified as "*" can't be automatically calculated and will not be checked by this edit.  The detailed edit logic is provided below the table.
-----------------------------------------------------------------
                    GRADE
SSF8    SSF 10 Codes
Codes  002   003  004  005  006  007  008  009  010  988  998 999
002     1     1    1    1    1    2    3    3    3    *    1   1
003     1     1    1    1    1    2    3    3    3    *    1   1
004     1     1    1    1    1    2    3    3    3    *    1   1
005     1     1    1    1    1    2    3    3    3    *    1   1
006     1     1    1    1    1    2    3    3    3    *    1   1
007     2     2    2    2    2    2    3    3    3    *    2   2
008     3     3    3    3    3    3    3    3    3    *    3   3
009     3     3    3    3    3    3    3    3    3    *    3   3
010     3     3    3    3    3    3    3    3    3    *    3   3
988     *     *    *    *    *    *    *    *    *    *    *   *
998     1     1    1    1    1    2    3    3    3    *    *   *
999     1     1    1    1    1    2    3    3    3    *    *   *
-----------------------------------------------------------------

1. If CS Site-Specific Factor 8 = 002-006
   a. If CS Site-Specific Factor10 = 002-006, 998, 999
          Grade must = 1
   b. If CS Site-Specific Factor10 = 007
          Grade must = 2
   c. If CS Site-Specific Factor10 = 008-010
          Grade must = 3

2. If CS Site-Specific Factor 8 = 007
   a. If CS Site-Specific Factor10 = 002-007, 998, 999
          Grade must = 2
   b. If CS Site-Specific Factor10 = 008-010
          Grade must = 3

3. If CS Site-Specific Factor 8 = 008-010
   a. If CS Site-Specific Factor10 = 002-010, 998, 999
          Grade must = 3

4. If CS Site-Specific Factor 8 = 998, 999
   a. If CS Site-Specific Factor10 = 002-006
          Grade must = 1
   b. If CS Site-Specific Factor10 = 007
          Grade must = 2
   c. If CS Site-Specific Factor10 = 008-010
          Grade must = 3]]></description>
            <history>
                <event version="SE15-013-02" user="kirbyk" date="2015-03-03" ref="67194">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67803">Restrict to 2014-2017 cases.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF536" name="CS Items - SEER Required - SSF 25 (CS)" tag="N2294" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Extension,CS_Site-Specific_Factor_25,Year_of_Diagnosis">
            <expression><![CDATA[if (line.primarySite == null || line.histologicTypeIcdO3 == null || ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','cns_other','intracranial_gland'].contains(line._csSchemaId)) || line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear >= '2004' && line.dateOfDiagnosisYear <= '2017' && line.csSiteSpecificFactor25 == null)
    return false

Integer yearDx = Functions.asInt(line.dateOfDiagnosisYear)
String schemaMatch = ((List)((Map)Context.CS_SSF).get(line._csSchemaId))?.get(24)//sf25
// R = Required
if (line._csSchemaId != null && schemaMatch != 'R')
    return true

if ((yearDx > 2015 && line.csExtension != null) || (yearDx > 2003 && yearDx < 2016))
    return line.csSiteSpecificFactor25 != '988'
else if (yearDx > 2015 && line.csExtension == null) {
    boolean peritoneumSite = Functions.matches(line.primarySite, /^C48[128]$/)
    String hist = line.histologicTypeIcdO3
    boolean peritoneumHist = ('8000' <= hist && hist <= '8934') || ('8940' <= hist && hist <= '9136') || ('9141' <= hist && hist <= '9582') || ('9700' <= hist && hist <= '9701')
    if (line._csSchemaId != 'peritoneum' && line._csSchemaId != 'peritoneum_female_gen' && !(peritoneumSite && peritoneumHist))
        return line.csSiteSpecificFactor25 != '988'
}

return true]]></expression>
            <message>CS Site-Specific Factor 25 requirements conflict for this schema</message>
            <description><![CDATA[The purpose of this edit is to verify that CS Site-Specific Factor 25 is entered for the schemas for which it is required by SEER.

This edit is skipped if any of the following conditions are true:
1. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and
   schema is not Brain, CNSOther, or IntracranialGland
2. CS schema is invalid
3. Date of Diagnosis is blank or invalid

The logic is as follows:
1. For all schemas, if year of Diagnosis is 2004-2017, CS Site-Specific Factor 25 cannot be blank.

2. For all Schemas, if year of Diagnosis is 2016 or later and CS Extension is NOT empty (CS Items collected), CS Site-Specific Factor 25 must not be 988 (not applicable) for the schemas in List 1, "Schemas for which CS Site-Specific Factor 25 is required"

3. For all Schemas, if year of Diagnosis is 2016 or later and CS Extension is empty (CS Items not collected), CS Site-Specific Factor 25 must not be 988 (not applicable) for the schemas in List 1, EXCEPT for the schemas  Peritoneum and PeritoneumFemaleGen which can be 988.

4. For all schemas, if year of Diagnosis is 2004-2015, CS Site-Specific Factor 25 must not be 988 (not applicable) for the schemas in List 1, "Schemas for which CS Site-Specific Factor 25 is required"


List 1: Schemas for which CS Site-Specific Factor 25 is Required by SEER
 - "Required" means CS Site-Specific Factor 25 cannot = 988
--------------------------------------------------------------------------------------------------------
BileDuctsDistal
BileDuctsPerihilar
CysticDuct
EsophagusGEJunction
LacrimalGland
LacrimalSac
MelanomaCiliaryBody
MelanomaIris
Nasopharynx
Peritoneum
PeritoneumFemaleGen
PharyngealTonsil
Stomach]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-21" ref="67237">Edit created.</event>
                <event version="SE16-015-04" user="kirbyk" date="2016-07-08" ref="67488">Changed edit to not force 988 when DX year is 2016+ and CS is not collected.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67723">Updated logic to allow blank SSF 25 for 2018+ cases.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
                <event version="SE24-024-03" user="kirbyk" date="2024-04-05" ref="69447">Changed how edit handles missing CS Schema ID.</event>
            </history>
        </rule>
        <rule id="IF537" name="Regional Nodes Positive, Date of Dx (SEER)" tag="N2358" java-path="lines.line" category="inter-field" depends="Regional_Nodes_Positive,Year_of_Diagnosis">
            <expression><![CDATA[return line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2004' || line.regionalNodesPositive != null]]></expression>
            <message>Regional Nodes Positive, Date of DX conflict</message>
            <description><![CDATA[This edit is skipped if Year of Date of Diagnosis is blank.

If year of Date of Diagnosis is greater than 2003, then Regional Nodes Positive [820] cannot be blank.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-03-30" ref="67238">Edit created.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="IF538" name="Regional Nodes Examined, Date of Dx (SEER)" tag="N2357" java-path="lines.line" category="inter-field" depends="Regional_Nodes_Examined,Year_of_Diagnosis">
            <expression><![CDATA[return line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2004' || line.regionalNodesExamined != null]]></expression>
            <message>Regional Nodes Examined, Date of DX conflict</message>
            <description><![CDATA[This edit is skipped if Year of Date of Diagnosis is blank.

If year of Date of Diagnosis is greater than 2003, then Regional Nodes Examined [830] cannot be blank.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-03-31" ref="67239">Edit created.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="IF539" name="Mets at DX-Bone, Date of Diagnosis (SEER)" tag="N2051" java-path="lines.line" category="inter-field" depends="Mets_at_DX_Bone,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null ||
    (line.registryId == '0000001563' && (line.dateOfDiagnosisYear >= '2016' && line.dateOfDiagnosisYear <= '2019')) ||
    (line.registryId == '0000001565' && (line.dateOfDiagnosisYear >= '2018' && line.dateOfDiagnosisYear <= '2022')) ||
    (line.registryId == '0000001566' && (line.dateOfDiagnosisYear >= '2016' && line.dateOfDiagnosisYear <= '2021')) )
    return true

if (line.dateOfDiagnosisYear > '2015')
    return line.metsAtDxBone != null
else
    return line.metsAtDxBone == null]]></expression>
            <message>Mets at DX-Bone, Date DX conflict</message>
            <description><![CDATA[This edit is skipped for the following conditions:
    a. If Year of Diagnosis is blank.
    b. Registry ID is 0000001563 (Massachusetts) and Year of Diagnosis is 2016-2019.
    c. Registry ID is 0000001565 (Illinois) and Year of Diagnosis is 2018-2022.
    d. Registry ID is 0000001566 (Texas) and Year of Diagnosis is 2016-2021.

If year of Date of Diagnosis is greater than 2015, then Mets at DX-Bone cannot be blank.
If year of Date of Diagnosis is less than 2016, then Mets at DX-Bone must be blank.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-08" ref="67276">Edit created.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-020-01" user="beverung" date="2020-01-28" ref="68274">Skip edit for MA for DX Year 2016-2019.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-05" ref="68705">Added skip conditions for IL and TX.</event>
                <event version="SE22-022-01" user="secristc" date="2022-02-24" ref="68910">Changed TX skip condition years to 2016-2021.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68954">Changed IL skip condition years to 2018-2022.</event>
            </history>
        </rule>
        <rule id="IF540" name="Mets at DX-Brain, Date of Diagnosis (SEER)" tag="N2129" java-path="lines.line" category="inter-field" depends="Mets_at_DX_Brain,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null ||
    (line.registryId == '0000001563' && (line.dateOfDiagnosisYear >= '2016' && line.dateOfDiagnosisYear <= '2019')) ||
    (line.registryId == '0000001565' && (line.dateOfDiagnosisYear >= '2018' && line.dateOfDiagnosisYear <= '2022')) ||
    (line.registryId == '0000001566' && (line.dateOfDiagnosisYear >= '2016' && line.dateOfDiagnosisYear <= '2021')) )
    return true

if (line.dateOfDiagnosisYear > '2015')
    return line.metsAtDxBrain != null
else
    return line.metsAtDxBrain == null]]></expression>
            <message>Mets at DX-Brain, Date DX conflict</message>
            <description><![CDATA[This edit is skipped for the following conditions:
    a. If Year of Diagnosis is blank.
    b. Registry ID is 0000001563 (Massachusetts) and Year of Diagnosis is 2016-2019.
    c. Registry ID is 0000001565 (Illinois) and Year of Diagnosis is 2018-2022.
    d. Registry ID is 0000001566 (Texas) and Year of Diagnosis is 2016-2021.

If year of Date of Diagnosis is greater than 2015, then Mets at DX-Brain cannot be blank.
If year of Date of Diagnosis is less than 2016, then Mets at DX-Brain must be blank.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-08" ref="67277">Edit created.</event>
                <event version="SE18-020-01" user="beverung" date="2020-01-28" ref="68274">Skip edit for MA for DX Year 2016-2019.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-05" ref="68705">Added skip conditions for IL and TX.</event>
                <event version="SE22-022-01" user="secristc" date="2022-02-24" ref="68910">Changed TX skip condition years to 2016-2021.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68954">Changed IL skip condition years to 2018-2022.</event>
            </history>
        </rule>
        <rule id="IF541" name="Mets at DX-Distant LN, Date of Diagnosis (SEER)" tag="N2131" java-path="lines.line" category="inter-field" depends="Mets_at_DX_Distant_LN,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null ||
    (line.registryId == '0000001563' && (line.dateOfDiagnosisYear >= '2016' && line.dateOfDiagnosisYear <= '2019')) ||
    (line.registryId == '0000001565' && (line.dateOfDiagnosisYear >= '2018' && line.dateOfDiagnosisYear <= '2022')) ||
    (line.registryId == '0000001566' && (line.dateOfDiagnosisYear >= '2016' && line.dateOfDiagnosisYear <= '2021')) )
    return true

if (line.dateOfDiagnosisYear > '2015')
    return line.metsAtDxDistantLn != null
else
    return line.metsAtDxDistantLn == null]]></expression>
            <message>Mets at DX-Distant LN, Date DX conflict</message>
            <description><![CDATA[This edit is skipped for the following conditions:
    a. If Year of Diagnosis is blank.
    b. Registry ID is 0000001563 (Massachusetts) and Year of Diagnosis is 2016-2019.
    c. Registry ID is 0000001565 (Illinois) and Year of Diagnosis is 2018-2022.
    d. Registry ID is 0000001566 (Texas) and Year of Diagnosis is 2016-2021.

If year of Date of Diagnosis is greater than 2015, then Mets at DX-Distant LN cannot be blank.
If year of Date of Diagnosis is less than 2016, then Mets at DX-Distant LN must be blank.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-08" ref="67278">Edit created.</event>
                <event version="SE18-020-01" user="beverung" date="2020-01-28" ref="68274">Skip edit for MA for DX Year 2016-2019.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-05" ref="68705">Added skip conditions for IL and TX.</event>
                <event version="SE22-022-01" user="secristc" date="2022-02-24" ref="68910">Changed TX skip condition years to 2016-2021.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68954">Changed IL skip condition years to 2018-2022.</event>
            </history>
        </rule>
        <rule id="IF542" name="Mets at DX-Liver, Date of Diagnosis (SEER)" tag="N2133" java-path="lines.line" category="inter-field" depends="Mets_at_DX_Liver,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null ||
    (line.registryId == '0000001563' && (line.dateOfDiagnosisYear >= '2016' && line.dateOfDiagnosisYear <= '2019')) ||
    (line.registryId == '0000001565' && (line.dateOfDiagnosisYear >= '2018' && line.dateOfDiagnosisYear <= '2022')) ||
    (line.registryId == '0000001566' && (line.dateOfDiagnosisYear >= '2016' && line.dateOfDiagnosisYear <= '2021')) )
    return true

if (line.dateOfDiagnosisYear > '2015')
    return line.metsAtDxLiver != null
else
    return line.metsAtDxLiver == null]]></expression>
            <message>Mets at DX-Liver, Date DX conflict</message>
            <description><![CDATA[This edit is skipped for the following conditions:
    a. If Year of Diagnosis is blank.
    b. Registry ID is 0000001563 (Massachusetts) and Year of Diagnosis is 2016-2019.
    c. Registry ID is 0000001565 (Illinois) and Year of Diagnosis is 2018-2022.
    d. Registry ID is 0000001566 (Texas) and Year of Diagnosis is 2016-2021.

If year of Date of Diagnosis is greater than 2015, then Mets at DX-Liver cannot be blank.
If year of Date of Diagnosis is less than 2016, then Mets at DX-Liver must be blank.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-08" ref="67279">Edit created.</event>
                <event version="SE18-020-01" user="beverung" date="2020-01-28" ref="68274">Skip edit for MA for DX Year 2016-2019.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-05" ref="68705">Added skip conditions for IL and TX.</event>
                <event version="SE22-022-01" user="secristc" date="2022-02-24" ref="68910">Changed TX skip condition years to 2016-2021.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68954">Changed IL skip condition years to 2018-2022.</event>
            </history>
        </rule>
        <rule id="IF543" name="Mets at DX-Lung, Date of Diagnosis (SEER)" tag="N2135" java-path="lines.line" category="inter-field" depends="Mets_at_DX_Lung,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null ||
    (line.registryId == '0000001563' && (line.dateOfDiagnosisYear >= '2016' && line.dateOfDiagnosisYear <= '2019')) ||
    (line.registryId == '0000001565' && (line.dateOfDiagnosisYear >= '2018' && line.dateOfDiagnosisYear <= '2022')) ||
    (line.registryId == '0000001566' && (line.dateOfDiagnosisYear >= '2016' && line.dateOfDiagnosisYear <= '2021')) )
    return true

if (line.dateOfDiagnosisYear > '2015')
    return line.metsAtDxLung != null
else
    return line.metsAtDxLung == null]]></expression>
            <message>Mets at DX-Lung, Date DX conflict</message>
            <description><![CDATA[This edit is skipped for the following conditions:
    a. If Year of Diagnosis is blank.
    b. Registry ID is 0000001563 (Massachusetts) and Year of Diagnosis is 2016-2019.
    c. Registry ID is 0000001565 (Illinois) and Year of Diagnosis is 2018-2022.
    d. Registry ID is 0000001566 (Texas) and Year of Diagnosis is 2016-2021.

If year of Date of Diagnosis is greater than 2015, then Mets at DX-Lung cannot be blank.
If year of Date of Diagnosis is less than 2016, then Mets at DX-Lung must be blank.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-08" ref="67280">Edit created.</event>
                <event version="SE18-020-01" user="beverung" date="2020-01-28" ref="68274">Skip edit for MA for DX Year 2016-2019.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-05" ref="68705">Added skip conditions for IL and TX.</event>
                <event version="SE22-022-01" user="secristc" date="2022-02-24" ref="68910">Changed TX skip condition years to 2016-2021.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68954">Changed IL skip condition years to 2018-2022.</event>
            </history>
        </rule>
        <rule id="IF544" name="Mets at DX-Other, Date of Diagnosis (SEER)" tag="N2137" java-path="lines.line" category="inter-field" depends="Mets_at_DX_Other,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null ||
    (line.registryId == '0000001563' && (line.dateOfDiagnosisYear >= '2016' && line.dateOfDiagnosisYear <= '2019')) ||
    (line.registryId == '0000001565' && (line.dateOfDiagnosisYear >= '2018' && line.dateOfDiagnosisYear <= '2022')) ||
    (line.registryId == '0000001566' && (line.dateOfDiagnosisYear >= '2016' && line.dateOfDiagnosisYear <= '2021')) )
    return true

if (line.dateOfDiagnosisYear > '2015')
    return line.metsAtDxOther != null
else
    return line.metsAtDxOther == null]]></expression>
            <message>Mets at DX-Other, Date DX conflict</message>
            <description><![CDATA[This edit is skipped for the following conditions:
    a. If Year of Diagnosis is blank.
    b. Registry ID is 0000001563 (Massachusetts) and Year of Diagnosis is 2016-2019.
    c. Registry ID is 0000001565 (Illinois) and Year of Diagnosis is 2018-2022.
    d. Registry ID is 0000001566 (Texas) and Year of Diagnosis is 2016-2021.

If year of Date of Diagnosis is greater than 2015, then Mets at DX-Other cannot be blank.
If year of Date of Diagnosis is less than 2016, then Mets at DX-Other must be blank.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-08" ref="67281">Edit created.</event>
                <event version="SE18-020-01" user="beverung" date="2020-01-28" ref="68274">Skip edit for MA for DX Year 2016-2019.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-05" ref="68705">Added skip conditions for IL and TX.</event>
                <event version="SE22-022-01" user="secristc" date="2022-02-24" ref="68910">Changed TX skip condition years to 2016-2021.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68954">Changed IL skip condition years to 2018-2022.</event>
            </history>
        </rule>
        <rule id="IF545" name="TNM Clin M, Date of Diagnosis (COC)" tag="N2225" java-path="lines.line" category="inter-field" depends="TNM_Clin_M,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.dateOfDiagnosisYear > '2017' || line.tnmClinM == null)
    return true

if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
    return true

return line.tnmClinM == '88' || (Functions.matches(line.tnmClinM, /^[cp].+$/) && ((List)Context.TNM_Clin_M_Table).contains(line.tnmClinM))]]></expression>
            <message>TNM Clin M and Date DX conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1. Diagnosis date < 2016 or > 2017, blank (unknown), or invalid.
2. TNM Clin M is blank.
3. TNM Edition Number not = 07, U7 

If year of Diagnosis greater than 2015 and less than 2018, then the TNM Clin M field must be a valid code and must be left-justified. Subcategory letters must be uppercase, "c" or "p" in code must be lowercase. May be blank.

The following codes are valid for AJCC 7th TNM edition, 2016-2017 diagnosis year:
c0
c0I+
c1
c1A
c1B
c1C
c1D
c1E
p1
p1A
p1B
p1C
p1D
p1E
88
blank]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-12" ref="67293">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-11" ref="67582">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-22" ref="67747">Edit restricted to 2016-2017 cases.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="IF546" name="TNM Clin N, Date of Diagnosis (COC)" tag="N2227" java-path="lines.line" category="inter-field" depends="TNM_Clin_N,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.dateOfDiagnosisYear > '2017' || line.tnmClinN == null)
    return true

if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
    return true

return ((List)Context.IF546_Table).contains(line.tnmClinN)]]></expression>
            <message>TNM Clin N and Date DX conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:

1. Diagnosis date < 2016 or > 2017, blank, (unknown), or invalid.
2. TNM Clin N is blank.
3. TNM Edition Number not = 07, U7

Must be a valid code for TNM Clin N and must be left justified. Subcategory letters must be uppercase, "c" in code must be lowercase. May be blank.

The following codes are valid for AJCC 7th edition, 2016 and 2017 diagnosis year:
cX
c0
c0A
c0B
c1
c1A
c1B
c1C
c2
c2A
c2B
c2C
c3
c3A
c3B
c3C
c4
88
Blank]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-12" ref="67294">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-11" ref="67583">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-05-01" ref="67748">Updated skip condition for 2018+ cases.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="IF547" name="TNM Clin T, Date of Diagnosis (SEER)" tag="N2403" java-path="lines.line" category="inter-field" depends="TNM_Clin_T,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.dateOfDiagnosisYear > '2017' || line.tnmClinT == null)
    return true

if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
   return true

return line.tnmClinT == '88' || (Functions.matches(line.tnmClinT, /^[cp].+$/) && ((List)Context.TNM_Clin_T_Table).contains(line.tnmClinT))]]></expression>
            <message>TNM Clin T and Date DX conflict</message>
            <description><![CDATA[This edit is skipped if year of Diagnosis is blank (unknown) or invalid. This edit is skipped if TNM Edition Number is not = 07, U7.

If year of Diagnosis greater than 2015 and less than 2018, then the TNM Clin T field must be a valid code and must be left-justified. Subcategory letters must be uppercase, "c" or "p" in code must be lowercase. May be blank.

The following codes are valid for AJCC 7th TNM edition, 2016 and 2017 diagnosis years:
cX
c0
c1
c1A
c1A1
c1A2
c1B
c1B1
c1B2
c1C
c1D
c1MI
c2
c2A
c2A1
c2A2
c2B
c2C
c2D
c3
c3A
c3B
c3C
c3D
c4
c4A
c4B
c4C
c4D
c4E
pA
pIS
pISU
pISD
88
Blanks]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-12" ref="67295">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-13" ref="67588">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-04-16" ref="67750">Edit restricted to 2016-2017 cases.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="IF548" name="TNM Path M, Date of Diagnosis (COC)" tag="N2252" java-path="lines.line" category="inter-field" depends="TNM_Path_M,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.dateOfDiagnosisYear > '2017' || line.tnmPathM == null)
    return true

if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
    return true

return line.tnmPathM == '88' || (Functions.matches(line.tnmPathM, /^[cp].+$/) && ((List)Context.TNM_Path_M_Table).contains(line.tnmPathM))]]></expression>
            <message>TNM Path M and Date DX conflict</message>
            <description><![CDATA[This edit is skipped if year of Diagnosis is blank (unknown) or invalid. This edit is skipped if TNM Edition Number is not = 07, U7.

If year of Diagnosis greater than 2015 and less than 2018, then the TNM Path M field must be a valid code and must be left-justified. Subcategory letters must be uppercase, "c" or "p" in code must be lowercase. May be blank.

The following codes are valid for AJCC 7th TNM edition, 2016-2017 diagnosis years:
p1
p1A
p1B
p1C
p1D
p1E
c0
c0I+
c1
c1A
c1B
c1C
c1D
c1E
88
blank]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-14" ref="67299">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-17" ref="67601">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-05-01" ref="67752">Updated skip condition for 2018+ cases.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="IF549" name="TNM Path N, Date of Diagnosis (COC)" tag="N2254" java-path="lines.line" category="inter-field" depends="TNM_Path_N,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.dateOfDiagnosisYear > '2017' || line.tnmPathN == null)
    return true

if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
    return true

return ((List)Context.IF549_Table).contains(line.tnmPathN)]]></expression>
            <message>TNM Path N and Date DX conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions is true:

1.Diagnosis date < 2016 or > 2017, blank (unknown), or invalid.
2.TNM Path N is blank.
3.TNM Edition not = 07,U7

Must be a valid code for TNM Path N and must be left justified. Subcategory letters must be upper case, "c" or "p" in code must be lowercase. May be blank.

The following codes are valid for AJCC 7th edition, 2016-2017 diagnosis years:
pX
p0
p0I-
p0I+
p0M-
p0M+
p1
p1A
p1B
p1C
p1M
p1MI
p2
p2A
p2B
p2C
p3
p3A
p3B
p3C
p4
cX
c0
c0A
c0B
c1
c1A
c1B
c1C
c2
c2A
c2B
c2C
c3
c3A
c3B
c3C
c4
88
p0A
p0B]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-14" ref="67300">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-17" ref="67602">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-04" user="kirbyk" date="2017-06-15" ref="67656">Added &apos;c1&apos; and &apos;c2&apos; as valid codes for TNM Path N.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-04-27" ref="67732">Added valid values; restricted edit to cases with DX year 2016-2017.</event>
            </history>
        </rule>
        <rule id="IF550" name="TNM Path T, Date of Diagnosis (COC)" tag="N2263" java-path="lines.line" category="inter-field" depends="TNM_Path_T,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.dateOfDiagnosisYear > '2017' || line.tnmPathT == null)
    return true

if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
    return true

return ((List)Context.IF550_Table).contains(line.tnmPathT)]]></expression>
            <message>TNM Path T and Date DX conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions is true:

1.Diagnosis date < 2016 or > 2017, blank (unknown), or invalid
2. TNM Path T is blank.
3. TNM Edition Number not = 07, U7

Must be a valid code for TNM Path T and must be left-justified. Subcategory letters must be uppercase,"p" in code must be lowercase. May be blank.

The following codes are valid for AJCC 7th edition, 2016-2017 diagnosis years:
pX
p0
pIS
pISU
pISD
pA
p1
p1A
p1A1
p1A2
p1B
p1B1
p1B2
p1C
p1D
p1MI
p2
p2A
p2A1
p2A2
p2B
p2C
p2D
p3
p3A
p3B
p3C
p3D
p4
p4A
p4B
p4C
p4D
p4E
cX
c0
c1
c1A
c1A1
c1A2
c1B
c1B1
c1B2
c1C
c1D
c1MI
c2
c2A
c2A1
c2A2
c2B
c2C
c2D
c3
c3A
c3B
c3C
c3D
c4
c4A
c4B
c4C
c4D
c4E
88]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-14" ref="67301">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-17" ref="67608">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-04-27" ref="67735">Added valid codes; restricted edit to cases with DX year 2016-2017.</event>
            </history>
        </rule>
        <rule id="IF551" name="Tumor Size Clinical, Date of Diagnosis (SEER)" tag="N2144" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
    
if (line.dateOfDiagnosisYear <= '2017' && line.dateOfDiagnosisYear >= '2016' && line.registryId == '0000001561')
    return true
if (line.dateOfDiagnosisYear <= '2018' && line.dateOfDiagnosisYear >= '2016' && ['0000001562', '0000001563'].contains(line.registryId))
    return true
if (line.dateOfDiagnosisYear <= '2021' && line.dateOfDiagnosisYear >= '2016' && line.registryId == '0000001566')
    return true
if (line.dateOfDiagnosisYear <= '2022' && line.dateOfDiagnosisYear >= '2016' && line.registryId == '0000001565')
    return true

if (line.dateOfDiagnosisYear < '2016')
    return line.tumorSizeClinical == null
if (line.dateOfDiagnosisYear > '2015' && line.dateOfDiagnosisYear < '2024')
    return line.tumorSizeClinical != null
return true]]></expression>
            <message>Tumor Size Clinical and Date DX conflict</message>
            <description><![CDATA[If year of Date of Diagnosis is blank, this edit is skipped.
If year of Date of Diagnosis is 2016-2017 and Registry ID is 0000001561 (Idaho), this edit is skipped.
If year of Date of Diagnosis is 2016-2018 and Registry ID is 0000001563 (Massachusetts) or 0000001562 (New York), this edit is skipped.
If year of Date of Diagnosis is 2016-2021 and Registry ID is 0000001566 (Texas), this edit is skipped
If year of Date of Diagnosis is 2016-2022 and Registry ID is 0000001565 (Illinois), this edit is skipped

If year of Date of Diagnosis is greater than 2015 and less than 2024, then Tumor Size Clinical cannot be blank.
If year of Date of Diagnosis is less than 2016, then Tumor Size Clinical must be blank.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-12" ref="67316">Edit created.</event>
                <event version="SE18-018-12" user="kirbyk" date="2019-01-29" ref="68087">Edit is skipped for DX years 2016-2017 for ID, NY, and MA.</event>
                <event version="SE18-020-01" user="beverung" date="2020-01-28" ref="68274">Edit is skipped for DX years 2016-2018 for MA.</event>
                <event version="SE18-020-01" user="beverung" date="2020-02-24" ref="68285">Edit is skipped for DX years 2016-2018 for NY.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
                <event version="SE21-021-07" user="kirbyk" date="2021-07-20" ref="68690">Edit is skipped for DX years 2016-2020 for IL and TX.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68958">Edit is skipped for DX years 2016-2022 for IL, 2016-2021 for TX.</event>
                <event version="SE24-024-03" user="cooki" date="2024-03-21" ref="69426">Added 2024 limit to logic.</event>
                <event version="SE24-024-04" user="beverung" date="2024-04-24" ref="69453">Allow blank and non-blank values for DX Year 2024 and later.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF552" name="Tumor Size Clinical, Primary Site (SEER)" tag="N2327" java-path="lines.line" category="inter-field" depends="Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear > '2023')
            return true

            return line.tumorSizeClinical != '998' || Functions.matches(line.primarySite, /^C(1(5[0-589]|6[0-689]|8[02-9]|99)|209|34[0-389]|50[0-689])$/)]]></expression>
            <message>Tumor Size Clinical and Primary Site conflict</message>
            <description><![CDATA[This edit is skipped for diagnosis date blank (unknown), invalid, or > 2023

If Tumor Size Clinical[752] is coded 998,
    primary site must be coded C199, C209, C180, C182-C189, C150-C155, C158, C159, C160-C166, C168, C169, C340-C343, C348, C349, C500-C506, C508, C509. (Sites listed in NAACCR Data Dictionary)]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-12" ref="67317">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
                <event version="SE24-024-01" user="cooki" date="2024-03-14" ref="69427">Added skip conditions for dx date blank, invalid, or &gt; 2023.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF553" name="Tumor Size Clinical, TNM Clin T (SEER)" tag="N2289" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[boolean dxYearCondition = line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.dateOfDiagnosisYear > '2017'
if (dxYearCondition || line.typeOfReportingSource == '7' || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || 
    line.tnmClinT == null || line.tnmClinT == '88' || line.tumorSizeClinical == null)
    return true

return (line.tumorSizeClinical == '000' && line.tnmClinT == 'c0') || (line.tumorSizeClinical != '000' && line.tnmClinT != 'c0')]]></expression>
            <message>Tumor Size Clinical and TNM Clin T conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:

1.Diagnosis date < 2016 or > 2017, blank (unknown), invalid, or blank.
2.Type of Reporting Source = 7 (Death Certificate Only)
3.Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4.TNM Clin T is blank or 88
5.Tumor Size Clinical is blank.

If Tumor Size Clinical is coded 000, TNM Clin T must be coded c0.
If TNM Clin T is coded c0, Tumor Size Clinical must be coded 000.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-12" ref="67318">Edit created.</event>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-22" ref="67921">Edit restricted to 2016-2017 cases.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF554" name="Tumor Size Pathologic, Date of Diagnosis (SEER)" tag="N2407" java-path="lines.line" category="inter-field" depends="Tumor_Size_Pathologic,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear <= '2017' && line.dateOfDiagnosisYear >= '2016' && line.registryId == '0000001561')
    return true
if (line.dateOfDiagnosisYear <= '2018' && line.dateOfDiagnosisYear >= '2016' && ['0000001562', '0000001563'].contains(line.registryId))
    return true
if (line.dateOfDiagnosisYear <= '2021' && line.dateOfDiagnosisYear >= '2016' && line.registryId == '0000001566')
    return true
if (line.dateOfDiagnosisYear <= '2022' && line.dateOfDiagnosisYear >= '2016' && line.registryId == '0000001565')
    return true

if (line.dateOfDiagnosisYear < '2016')
    return line.tumorSizePathologic == null
if (line.dateOfDiagnosisYear > '2015' && line.dateOfDiagnosisYear < '2024')
    return line.tumorSizePathologic != null
return true]]></expression>
            <message>Tumor Size Pathologic, Date DX conflict</message>
            <description><![CDATA[If year of Date of Diagnosis is blank, this edit is skipped.
If year of Date of Diagnosis is 2016-2017 and Registry ID is 0000001561 (Idaho), this edit is skipped.
If year of Date of Diagnosis is 2016-2018 and Registry ID is 0000001563 (Massachusetts) or 0000001562 (New York), this edit is skipped.
If year of Date of Diagnosis is 2016-2021 and Registry ID is 0000001566 (Texas), this edit is skipped
If year of Date of Diagnosis is 2016-2022 and Registry ID is 0000001565 (Illinois), this edit is skipped

If year of Date of Diagnosis is greater than 2015 and less than 2024, then Tumor Size Pathologic cannot be blank.
If year of Date of Diagnosis is less than 2016, then Tumor Size Pathologic must be blank.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-12" ref="67320">Edit created.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67741">Edit name change.</event>
                <event version="SE18-018-12" user="kirbyk" date="2019-01-29" ref="68087">Edit is skipped for DX years 2016-2017 for ID, NY, and MA.</event>
                <event version="SE18-020-01" user="beverung" date="2020-01-28" ref="68274">Edit is skipped for DX years 2016-2018 for MA.</event>
                <event version="SE18-020-01" user="beverung" date="2020-02-24" ref="68285">Edit is skipped for DX years 2016-2018 for NY.</event>
                <event version="SE21-021-07" user="kirbyk" date="2021-07-20" ref="68690">Edit is skipped for DX years 2016-2020 for IL and TX.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68958">Edit is skipped for DX years 2016-2022 for IL, 2016-2021 for TX.</event>
                <event version="SE24-024-03" user="cooki" date="2024-03-21" ref="69426">Added 2024 limit to logic.</event>
                <event version="SE24-024-04" user="beverung" date="2024-04-24" ref="69453">Allow blank and non-blank values for DX Year 2024 and later.</event>
            </history>
        </rule>
        <rule id="IF555" name="Tumor Size Pathologic, Primary Site (SEER)" tag="N2328" java-path="lines.line" category="inter-field" depends="Primary_Site,Tumor_Size_Pathologic">
            <expression><![CDATA[return line.tumorSizePathologic != '998' || Functions.matches(line.primarySite, /^C(1(5[0-589]|6[0-689]|8[02-9]|99)|209|34[0-389]|50[0-689])$/)]]></expression>
            <message>Tumor Size Pathologic and Primary Site conflict</message>
            <description><![CDATA[If Tumor Size Pathologic[754] is coded 998, primary site must be coded C199, C209, C180, C182-C189, C150-C155, C158, C159, C160-C166, C168, C169, C340-C343, C348, C349, C500-C506, C508, C509. (Sites listed in NAACCR Data Dictionary)]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-12" ref="67321">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="IF556" name="Tumor Size Pathologic, TNM Path T (SEER)" tag="N2291" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,TNM_Path_T,Tumor_Size_Pathologic,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[boolean dxYearCondition = line.dateOfDiagnosisYear < '2016' || line.dateOfDiagnosisYear > '2017' || line.dateOfDiagnosisYear == null
if (dxYearCondition || line.typeOfReportingSource == '7' || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || 
    line.tnmPathT == null || line.tnmPathT == '88' || line.tumorSizePathologic == null)
    return true

return (line.tumorSizePathologic == '000' && line.tnmPathT == 'p0') || (line.tumorSizePathologic != '000' && line.tnmPathT != 'p0')]]></expression>
            <message>Tumor Size Pathologic and TNM Path T conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:

1.Diagnosis date < 2016 or > 2017, blank (unknown), invalid, or blank.
2.Type of Reporting Source = 7 (Death Certificate Only)
3.Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4.TNM Path T is blank or 88
5.Tumor Size Pathologic is blank.

If Tumor Size Pathologic is coded 000, TNM Path T must be coded p0.
If TNM Path T is coded p0, Tumor Size Pathologic must be coded 000.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-12" ref="67322">Edit created.</event>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-22" ref="67922">Edit restricted to 2016-2017 cases.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="IF557" name="Lymphovascular Invasion, Date of Dx (SEER)" tag="N2367" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2010')
return true
if (line.registryId == '0000001566') {
    if (line.dateOfDiagnosisYear == '2010')
        return true
    if ((line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022') && !['00570','00590'].contains(line.schemaId))
        return true
}

if (line.dateOfDiagnosisYear < '2018') {
    if ((line._csSchemaId == 'testis' || line._csSchemaId == 'penis') && !Functions.matches(line.lymphVascularInvasion, /^[019]$/))
        return false
    else
        return line.lymphVascularInvasion == null || Functions.matches(line.lymphVascularInvasion, /^[0189]$/)
}
else {
    if ((line.schemaId == '00570' || line.schemaId == '00590') && !Functions.matches(line.lymphVascularInvasion, /^[0-49]$/))
        return false
    else
        return Functions.matches(line.lymphVascularInvasion, /^[0-489]$/)
}]]></expression>
            <message>Lymphovascular Invasion and Date DX conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
    a. Year of Date of Diagnosis is < 2010, blank or invalid
    b. Registry is Texas (0000001566) and Date of Diagnosis is 2010
    c. Registry is Texas (0000001566) and Date of Diagnosis is 2018-2021 and Schemaid is NOT Penis (00570) or Testis (00590)

If year of Date of Diagnosis is 2010-2017:
If CS Schema is Penis or Testis then LVI must be 0, 1, 9. 
For all other CS schemas, LVI must be 0, 1, 8, 9 or blank.
 
If year of Date of Diagnosis is 2018+:
If Schema ID is Penis (00570) or Testis (00590) then LVI must be 0, 1, 2, 3, 4, 9.
For all other Schema IDs, LVI must be 0, 1, 2, 3, 4, 8, 9]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-21" ref="67341">Edit created.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-03" ref="67736">Changed logic to only allow certain values, and to ignore dates after 2017.</event>
                <event version="SE18-018-03" user="schadega" date="2018-07-23" ref="67953">Updated description and logic.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68025">Changed &apos;Lymph-vascular Invasion&apos; to &apos;Lymphovascular Invasion&apos; in name and documentation.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-09" ref="68707">Add skip condition for TX for DX Year 2010.</event>
                <event version="SE21-021-11" user="beverung" date="2021-12-21" ref="68762">Added skip condition for TX for DX Year 2018-2019 for non Penis/Testis.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-21" ref="68962">Updated skip condition for TX to DX years 2018-2021.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF558" name="CS SSF 9, Surgery, HeadNeck Schemas (CS)" tag="N2389" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,CS_Site-Specific_Factor_9,CS_Tumor_Size_Ext_Eval,CS_Version_Input_Original,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Scope_Reg_LN_Sur">
            <expression><![CDATA[String ssf9 = line.csSiteSpecificFactor9
String scopeRegLnSur = line.rxSummScopeRegLnSur
String tumSize = line.csTumorSizeExtEval
String behav = line.behaviorCodeIcdO3
String schema = line._csSchemaId

if (ssf9 == null || ssf9 == '988' || scopeRegLnSur == null || behav == '0' || behav == '1' || schema == null || !((List)Context.HEAD_AND_NECK_Schemas).contains(schema))
    return true

// skipping condition
if (tumSize == null || tumSize == '2' || tumSize == '8' || tumSize == '9')
    return true

// part 1
if (scopeRegLnSur == '0' && ssf9 != '998' && ssf9 != '999')
    return false

// part 2
if (Functions.asInt(line.csVersionInputOriginal) >= 20500 && scopeRegLnSur == '1' && ssf9 != '998' && ssf9 != '999')
    return false

return true]]></expression>
            <message>CS SSF9 and Surgery conflict for Head and Neck</message>
            <description><![CDATA[This edit verifies that CS Site-Specific Factor 9 (Extracapsular Extension Pathologically, Lymph Nodes for Head and Neck), CS Tumor Size/Ext Eval, and RX Summ--Scope Reg LN Sur are coded consistently for Head and Neck schemas.

This edit is skipped if any of the following conditions are true:
1.    CS Site-Specific Factor 9 is blank or = 988
2.    CS Tumor Size/Ext Eval = 2,8,9 or blank
3.    RX Summ--Scope Reg LN Sur is blank
4.    Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5.    CS schema is invalid

This edit first determines the correct CS schema by doing a function call to the CS Dynamic Link Library (dll). The function call passes Primary Site, Histologic Type ICD-O-3, and CS Site-Specific Factor25 (schema discriminator) to the dll and the CS schema name is returned.

This edit is skipped if CS schema is NOT one of the following Head and Neck schemas:
BuccalMucosa
EpiglottisAnterior
FloorMouth
GumLower
GumOther
GumUpper
Hypopharynx
LarynxGlottic
LarynxOther
LarynxSubglottic
LarynxSupraglottic
LipLower
LipOther
LipUpper
MiddleEar
MouthOther
NasalCavity
Nasopharynx
Oropharynx
PalateHard
PalateSoft
ParotidGland
PharyngealTonsil
PharynxOther
SalivaryGlandOther
SinusEthmoid
SinusMaxillary
SinusOther
SubmandibularGland
TongueAnterior
TongueBase

MelanomaBuccalMucosa
MelanomaEpiglottisAnterior
MelanomaFloorMouth
MelanomaGumLower
MelanomaGumOther
MelanomaGumUpper
MelanomaHypopharynx
MelanomaLarynxGlottic
MelanomaLarynxOther
MelanomaLarynxSubglottic
MelanomaLarynxSupraglottic
MelanomaLipUpper
MelanomaLipLower
MelanomaLipOther
MelanomaMouthOther
MelanomaNasalCavity
MelanomaNasopharynx
MelanomaOropharynx
MelanomaPalateHard
MelanomaPalateSoft
MelanomaPharynxOther
MelanomaSinusEthmoid
MelanomaSinusMaxillary
MelanomaSinusOther
MelanomaTongueAnterior
MelanomaTongueBase

If RX Summ--Scope Reg LN Sur = 0 (none), then CS Site-Specific Factor 9 must = 998 or 999

If CS Version Input Original is 020500 or higher:
         If RX Summ--Scope Reg LN Sur = 1 (biopsy or aspiration of regional lymph nodes), then CS Site-Specific Factor 9 must = 998 or 999]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-26" ref="67362">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF559" name="TNM Clin Stage Group, 2016 (COC)" tag="N2421" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.dateOfDiagnosisYear > '2017' || line.tnmClinStageGroup == null)
    return true

if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
    return true

return ((List)Context.TNM_Stage_Group_Table).contains(line.tnmClinStageGroup)]]></expression>
            <message>TNM Clin Stage Group invalid for 2016-2017 Diagnosis years</message>
            <description><![CDATA[Must be a valid code for TNM Clin Stage Group and must be left-justified. Letters must be uppercase.

This edit is skipped if any of the following conditions are true:

1.Diagnosis date < 2016 or > 2017, blank (unknown), or invalid.
2.TNM Clin Stage Group is blank
3.TNM Edition Number not = 07, U7

The following codes are valid for 2016-2017:
0, 0A, 0S, 0IS,
1, 1A, 1A1, 1A2, 1B, 1B1, 1B2, 1C, 1S,
2, 2A, 2A1, 2A2, 2B, 2C,
3, 3A, 3B, 3C, 3C1, 3C2,
4, 4A, 4A1, 4A2, 4B, 4C,
88, 99, OC,
blank]]></description>
            <history>
                <event version="SE16-016-01" user="kirbyk" date="2016-01-13" ref="67585">Added skip condition for TNM Edition Number; renamed edit.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-29" ref="67363">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-04-26" ref="67771">Restricted edit to cases with DX year 2016-2017.</event>
            </history>
        </rule>
        <rule id="IF560" name="TNM Path Stage Group, 2016 (COC)" tag="N2423" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.dateOfDiagnosisYear > '2017' || line.tnmPathStageGroup == null)
    return true

if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
    return true

return ((List)Context.TNM_Stage_Group_Table).contains(line.tnmPathStageGroup)]]></expression>
            <message>TNM Path Stage Group invalid for 2016-2017 Diagnosis years</message>
            <description><![CDATA[Must be a valid code for TNM Path Stage Group and must be left-justified. Letters must be uppercase.

This edit is skipped if any of the following conditions are true:

1. Diagnosis date < 2016 or > 2017, blank (unknown), or invalid.
2. TNM Path Stage Group is blank
3. TNM Edition Number is not = 07, U7

The following codes are valid for 2016-2017:
0, 0A, 0S, 0IS,
1, 1A, 1A1, 1A2, 1B, 1B1, 1B2, 1C, 1S,
2, 2A, 2A1, 2A2, 2B, 2C,
3, 3A, 3B, 3C, 3C1, 3C2,
4, 4A, 4A1, 4A2, 4B, 4C,
88, 99, OC,
blank]]></description>
            <history>
                <event version="SE16-016-01" user="kirbyk" date="2016-01-17" ref="67626">Added skip condition for TNM Edition Number; renamed edit.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-02" ref="67364">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-04-26" ref="67772">Restricted edit to cases with DX year 2016-2017.</event>
            </history>
        </rule>
        <rule id="IF561" name="TNM Fields, Type of Reporting Source (SEER)" tag="N2349" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.dateOfDiagnosisYear > '2017' || line.typeOfReportingSource != '7')
    return true

return line.tnmClinT == '88' && line.tnmClinN == '88' && line.tnmClinM == '88' && line.tnmClinStageGroup == '88' &&
       line.tnmPathT == '88' && line.tnmPathN == '88' && line.tnmPathM == '88' && line.tnmPathStageGroup == '88']]></expression>
            <message>TNM Fields conflict for DCO cases</message>
            <description><![CDATA[This edit checks that all T, N, M and Stage Group fields are coded 88 when Type of Reporting Source = 7 (Death Certificate Only).

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016 or greater than 2017, blank (unknown), or invalid
2. Type of Reporting Source is not 7.

If Type of Reporting Source = 7
then TNM Clin T, TNM Clin N, TNM Clin M, TNM Clin Stage Group, TNM Path T, TNM Path N, TNM Path M, and TNM Path Stage Group must = 88.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-03" ref="67369">Edit created.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67798">Restrict to 2016-2017 cases.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-12" ref="69326">Removed several dependencies.</event>
            </history>
        </rule>
        <rule id="IF562" name="Mets at DX-Bone, TNM Clin M, Path M (SEER)" tag="N2186" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[boolean dxYearSkipCondition = line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.dateOfDiagnosisYear > '2017'
if (dxYearSkipCondition || line.typeOfReportingSource == '7' || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    (line.tnmPathM == null && line.tnmClinM == null) || (line.tnmPathM == '88' && line.tnmClinM == '88') || line.metsAtDxBone == null)
    return true

if (line.metsAtDxBone != '1')
    return true

if (line.tnmClinM == null)
   return line.tnmPathM != 'c0' && line.tnmPathM != 'c0I+'

if (line.tnmPathM == null)
   return line.tnmClinM != 'c0' && line.tnmClinM != 'c0I+'

return (line.tnmClinM != 'c0' && line.tnmClinM != 'c0I+') || (line.tnmPathM != 'c0' && line.tnmPathM != 'c0I+')]]></expression>
            <message>Mets at DX-Bone, TNM Clin M, and TNM Path M conflict</message>
            <description><![CDATA[This edit verifies that Mets at DX-Bone and TNM Clin M and TNM Path M are coded consistently.

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is < 2016, > 2017, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. TNM Clin M and TNM Path M are both blank
5. TNM Clin M and TNM Path M are both coded 88.  (There is no AJCC 7th Edition staging for the site/histology, or the case is a lymphoid neoplasm excluding ocular adnexal lymphoma and primary cutaneous lymphoma.)
6. Mets at DX-Bone is blank


1. If Mets at DX-Bone = 1 (yes) and TNM Path M is blank, then TNM Clin M must not = c0 or c0I+ (no clinical metastasis).
2. If Mets at DX-Bone = 1 (yes) and TNM Clin M is blank, then TNM Path M must not = c0 or c0I+ (no clinical metastasis).
3. if Mets at DX-Bone = 1 (yes) and TNM Path M and TNM Clin M are both coded, both cannot = c0 or c0I+ (no clinical metastasis).]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-03" ref="67371">Edit created.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-04-26" ref="67765">Edit restricted to cases with DX year 2016-2017.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF563" name="Mets at DX-Brain, TNM Clin M, Path M (SEER)" tag="N2187" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Mets_at_DX_Brain,TNM_Clin_M,TNM_Path_M,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[boolean dxYearSkipCondition = line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.dateOfDiagnosisYear > '2017'
if (dxYearSkipCondition || line.typeOfReportingSource == '7' || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    (line.tnmPathM == null && line.tnmClinM == null) || (line.tnmPathM == '88' && line.tnmClinM == '88') || line.metsAtDxBrain == null)
    return true

if (line.metsAtDxBrain != '1')
    return true

if (line.tnmClinM == null)
   return line.tnmPathM != 'c0' && line.tnmPathM != 'c0I+'

if (line.tnmPathM == null)
   return line.tnmClinM != 'c0' && line.tnmClinM != 'c0I+'

return (line.tnmClinM != 'c0' && line.tnmClinM != 'c0I+') || (line.tnmPathM != 'c0' && line.tnmPathM != 'c0I+')]]></expression>
            <message>Mets at DX-Brain, TNM Clin M, and TNM Path M conflict</message>
            <description><![CDATA[This edit verifies that Mets at DX-Brain and TNM Clin M and TNM Path M are coded consistently.

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is < 2016, > 2017, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. TNM Clin M and TNM Path M are both blank
5. TNM Clin M and TNM Path M are both coded 88.  (There is no AJCC 7th Edition staging for the site/histology, or the case is a lymphoid neoplasm excluding ocular adnexal lymphoma and primary cutaneous lymphoma.)
6. Mets at DX-Brain is blank


1. If Mets at DX-Brain = 1 (yes) and TNM Path M is blank, then TNM Clin M must not = c0 or c0I+ (no clinical metastasis).
2. If Mets at DX-Brain = 1 (yes) and TNM Clin M is blank, then TNM Path M must not = c0 or c0I+ (no clinical metastasis).
3. if Mets at DX-Brain = 1 (yes) and TNM Path M and TNM Clin M are both coded, both cannot = c0 or c0I+ (no clinical metastasis).]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-03" ref="67372">Edit created.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-04-26" ref="67766">Edit restricted to cases with DX year 2016-2017.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="IF564" name="Mets at DX-Distant LN, TNM Clin M, Path M (SEER)" tag="N2188" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Mets_at_DX_Distant_LN,TNM_Clin_M,TNM_Path_M,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[boolean dxYearSkipCondition = line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.dateOfDiagnosisYear > '2017'
if (dxYearSkipCondition || line.typeOfReportingSource == '7' || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    (line.tnmPathM == null && line.tnmClinM == null) || (line.tnmPathM == '88' && line.tnmClinM == '88') || line.metsAtDxDistantLn == null)
    return true

if (line.metsAtDxDistantLn != '1')
    return true

if (line.tnmClinM == null)
   return line.tnmPathM != 'c0' && line.tnmPathM != 'c0I+'

if (line.tnmPathM == null)
   return line.tnmClinM != 'c0' && line.tnmClinM != 'c0I+'

return (line.tnmClinM != 'c0' && line.tnmClinM != 'c0I+') || (line.tnmPathM != 'c0' && line.tnmPathM != 'c0I+')]]></expression>
            <message>Mets at DX-Distant LN, TNM Clin M, and TNM Path M conflict</message>
            <description><![CDATA[This edit verifies that Mets at DX-Distant LN and TNM Clin M and TNM Path M are coded consistently.

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is < 2016, > 2017, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. TNM Clin M and TNM Path M are both blank
5. TNM Clin M and TNM Path M are both coded 88.  (There is no AJCC 7th Edition staging for the site/histology, or the case is a lymphoid neoplasm excluding ocular adnexal lymphoma and primary cutaneous lymphoma.)
6. Mets at DX-Distant LN is blank


1. If Mets at DX-Distant LN = 1 (yes) and TNM Path M is blank, then TNM Clin M must not = c0 or c0I+ (no clinical metastasis).
2. If Mets at DX-Distant LN = 1 (yes) and TNM Clin M is blank, then TNM Path M must not = c0 or c0I+ (no clinical metastasis).
3. if Mets at DX-Distant LN = 1 (yes) and TNM Path M and TNM Clin M are both coded, both cannot = c0 or c0I+ (no clinical metastasis).]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-03" ref="67373">Edit created.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-04-26" ref="67767">Restricted edit to cases with DX year 2016-2017.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="IF565" name="Mets at DX-Liver, TNM Clin M, Path M (SEER)" tag="N2189" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Mets_at_DX_Liver,TNM_Clin_M,TNM_Path_M,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[boolean dxYearSkipCondition = line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.dateOfDiagnosisYear > '2017'
if (dxYearSkipCondition || line.typeOfReportingSource == '7' || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    (line.tnmPathM == null && line.tnmClinM == null) || (line.tnmPathM == '88' && line.tnmClinM == '88') || line.metsAtDxLiver == null)
    return true

if (line.metsAtDxLiver != '1')
    return true

if (line.tnmClinM == null)
   return line.tnmPathM != 'c0' && line.tnmPathM != 'c0I+'

if (line.tnmPathM == null)
   return line.tnmClinM != 'c0' && line.tnmClinM != 'c0I+'

return (line.tnmClinM != 'c0' && line.tnmClinM != 'c0I+') || (line.tnmPathM != 'c0' && line.tnmPathM != 'c0I+')]]></expression>
            <message>Mets at DX-Liver, TNM Clin M, and TNM Path M conflict</message>
            <description><![CDATA[This edit verifies that Mets at DX-Liver and TNM Clin M and TNM Path M are coded consistently.

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is < 2016, > 2017, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. TNM Clin M and TNM Path M are both blank
5. TNM Clin M and TNM Path M are both coded 88.  (There is no AJCC 7th Edition staging for the site/histology, or the case is a lymphoid neoplasm excluding ocular adnexal lymphoma and primary cutaneous lymphoma.)
6. Mets at DX-Liver is blank


1. If Mets at DX-Liver = 1 (yes) and TNM Path M is blank, then TNM Clin M must not = c0 or c0I+ (no clinical metastasis).
2. If Mets at DX-Liver = 1 (yes) and TNM Clin M is blank, then TNM Path M must not = c0 or c0I+ (no clinical metastasis).
3. if Mets at DX-Liver = 1 (yes) and TNM Path M and TNM Clin M are both coded, both cannot = c0 or c0I+ (no clinical metastasis).]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-03" ref="67374">Edit created.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-04-26" ref="67768">Restricted edit to cases with DX year 2016-2017.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="IF566" name="Mets at DX-Lung, TNM Clin M, Path M (SEER)" tag="N2190" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Mets_at_DX_Lung,TNM_Clin_M,TNM_Path_M,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[boolean dxYearSkipCondition = line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.dateOfDiagnosisYear > '2017'
if (dxYearSkipCondition || line.typeOfReportingSource == '7' || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    (line.tnmPathM == null && line.tnmClinM == null) || (line.tnmPathM == '88' && line.tnmClinM == '88') || line.metsAtDxLung == null)
    return true

if (line.metsAtDxLung != '1')
    return true

if (line.tnmClinM == null)
   return line.tnmPathM != 'c0' && line.tnmPathM != 'c0I+'

if (line.tnmPathM == null)
   return line.tnmClinM != 'c0' && line.tnmClinM != 'c0I+'

return (line.tnmClinM != 'c0' && line.tnmClinM != 'c0I+') || (line.tnmPathM != 'c0' && line.tnmPathM != 'c0I+')]]></expression>
            <message>Mets at DX-Lung, TNM Clin M, and TNM Path M conflict</message>
            <description><![CDATA[This edit verifies that Mets at DX-Lung and TNM Clin M and TNM Path M are coded consistently.

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is < 2016, > 2017, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. TNM Clin M and TNM Path M are both blank
5. TNM Clin M and TNM Path M are both coded 88.  (There is no AJCC 7th Edition staging for the site/histology, or the case is a lymphoid neoplasm excluding ocular adnexal lymphoma and primary cutaneous lymphoma.)
6. Mets at DX-Lung is blank


1. If Mets at DX-Lung = 1 (yes) and TNM Path M is blank, then TNM Clin M must not = c0 or c0I+ (no clinical metastasis).
2. If Mets at DX-Lung = 1 (yes) and TNM Clin M is blank, then TNM Path M must not = c0 or c0I+ (no clinical metastasis).
3. if Mets at DX-Lung = 1 (yes) and TNM Path M and TNM Clin M are both coded, both cannot = c0 or c0I+ (no clinical metastasis).]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-03" ref="67375">Edit created.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-04-26" ref="67769">Restricted edit to cases with DX year 2016-2017.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="IF567" name="Mets at DX-Other, TNM Clin M, Path M (SEER)" tag="N2191" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Mets_at_DX_Other,TNM_Clin_M,TNM_Path_M,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[boolean dxYearSkipCondition = line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.dateOfDiagnosisYear > '2017'
if (dxYearSkipCondition || line.typeOfReportingSource == '7' || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' ||
    (line.tnmPathM == null && line.tnmClinM == null) || (line.tnmPathM == '88' && line.tnmClinM == '88') || line.metsAtDxOther == null)
    return true

if (line.metsAtDxOther != '1' && line.metsAtDxOther != '2')
    return true

if (line.tnmClinM == null)
   return line.tnmPathM != 'c0' && line.tnmPathM != 'c0I+'

if (line.tnmPathM == null)
   return line.tnmClinM != 'c0' && line.tnmClinM != 'c0I+'

return (line.tnmClinM != 'c0' && line.tnmClinM != 'c0I+') || (line.tnmPathM != 'c0' && line.tnmPathM != 'c0I+')]]></expression>
            <message>Mets at DX-Other, TNM Clin M, and TNM Path M conflict</message>
            <description><![CDATA[This edit verifies that Mets at DX-Other and TNM Clin M and TNM Path M are coded consistently.

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is < 2016, > 2017, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. TNM Clin M and TNM Path M are both blank
5. TNM Clin M and TNM Path M are both coded 88.  (There is no AJCC 7th Edition staging for the site/histology, or the case is a lymphoid neoplasm excluding ocular adnexal lymphoma and primary cutaneous lymphoma.)
6. Mets at DX-Other is blank


1. If Mets at DX-Other = 1 (yes) or 2 (carcinomatosis) and TNM Path M is blank, then TNM Clin M must not = c0 or c0I+ (no clinical metastasis).
2. If Mets at DX-Other = 1 (yes) or 2 (carcinomatosis) and TNM Clin M is blank, then TNM Path M must not = c0 or c0I+ (no clinical metastasis).
3. if Mets at DX-Other = 1 (yes) or 2 (carcinomatosis) and TNM Path M and TNM Clin M are both coded, both cannot = c0 or c0I+ (no clinical metastasis).]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-03" ref="67376">Edit created.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-04-26" ref="67770">Restricted edit to cases with DX year 2016-2017.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="IF568" name="SEER Derived Items, Date of DX (SEER)" tag="N0701" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line._csSchemaId == null)
    return true
if (line.registryId == '0000001563' || (Functions.matches(line.registryId , /^000000156[56]$/) && line.dateOfDiagnosisYear > '2015'))
    return true

if ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !['brain','cns_other','intracranial_gland'].contains(line._csSchemaId))
    return true

if (line.dateOfDiagnosisYear == '2016' || line.dateOfDiagnosisYear == '2017') {
    if (line.derivedSeerPathStgGrp == null || line.derivedSeerClinStgGrp == null || line.derivedSeerCmbStgGrp == null)
        return false
    else if (line.tnmClinT != null || line.tnmClinN != null || line.tnmClinM != null || line.tnmPathT != null || line.tnmPathN != null || line.tnmPathM != null)
        return (line.derivedSeerCombinedT != null && line.derivedSeerCombinedN != null && line.derivedSeerCombinedM != null)
}
else if (line.dateOfDiagnosisYear < '2016')
    return (line.derivedSeerPathStgGrp == null && line.derivedSeerClinStgGrp == null && line.derivedSeerCmbStgGrp == null &&
            line.derivedSeerCombinedT == null && line.derivedSeerCombinedN == null && line.derivedSeerCombinedM == null &&
            line.derivedSeerCmbTSrc == null && line.derivedSeerCmbNSrc == null && line.derivedSeerCmbMSrc == null)

return true]]></expression>
            <message>SEER Derived Items and Date of DX conflict</message>
            <description><![CDATA[The purpose of this edit is to verify that SEER Derived items required by SEER are entered (not blank) for cases diagnosed 2016 and later

This edit is skipped if:
1. Year of Date of Diagnosis is blank.
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and schema is not Brain, CNSOther, or IntracranialGland
3. CS Schema is invalid
4. Registry ID is 0000001563 (Massachusetts)
5. Registry ID is 0000001565 (Illinois) or 0000001566 (Texas) and Year of Date of Diagnosis is 2016 or later.

If year of Date of Diagnosis is 2016-2017, then the following Derived data items cannot be blank:
Derived SEER Path Stg Grp [3605]
Derived SEER Clin Stg Grp [3610]
Derived SEER Cmb Stg Grp [3614]

If year of Date of Diagnosis is 2016-2017, and any of Clin T, N, M or Path T, N, M have a value, then the following Derived data items cannot be blank:
Derived SEER Combined T [3616]
Derived SEER Combined N [3618]
Derived SEER Combined M [3620]

If year of Date of Diagnosis is less than 2016, then the following Derived data items must be blank.
Derived SEER Path Stg Grp [3605]
Derived SEER Clin Stg Grp [3610]
Derived SEER Cmb Stg Grp [3614]
Derived SEER Combined T [3616]
Derived SEER Combined N [3618]
Derived SEER Combined M [3620]
Derived SEER Cmb T Src [3622]
Derived SEER Cmb N Src [3624]
Derived SEER Cmb M Src [3626]]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-06" ref="67380">Edit created.</event>
                <event version="SE16-015-05" user="kirbyk" date="2016-07-18" ref="67495">Changed edit to not require Derived SEER Cmb Src fields for 2015+.</event>
                <event version="SE16-016-05" user="kirbyk" date="2017-08-25" ref="67662">Changed edit to only require Derived SEER Combined fields if Clin T, N, M or Path T, N, M have a value.</event>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-20" ref="67961">Removed unnecessary dependencies.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-01" user="beverung" date="2021-01-07" ref="68545">Added skip condition for MA.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-16" ref="68716">Added skip condition for IL and TX for 2016+ cases.</event>
            </history>
        </rule>
        <rule id="IF569" name="TNM Clin T, Histology, Grade, Thyroid (COC)" tag="N2234" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Grade,Histologic_Type_ICD-O-3,Primary_Site,TNM_Clin_T,TNM_Path_T,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.primarySite != 'C739' || line.grade == null || line.tnmClinT == null || line.tnmClinT == '88')
    return true

if (line.tnmPathT != null)
    return true

Integer histNum = Functions.asInt(line.histologicTypeIcdO3)
if ((Functions.expandList((List)[8000..8019,8022..8029,8033..8576,8940..8950,8980..8981]).contains(histNum) && line.grade == '4') || [8020,8021,8030,8031,8032].contains(histNum))
    return Functions.matches(line.tnmClinT, /^c4[AB]?$/)

return true]]></expression>
            <message>TNM Clin T, Grade conflict for Anaplastic CA of Thyroid</message>
            <description><![CDATA[This edit verifies that TNM Clin T is coded consistently for anaplastic carcinomas of the thyroid when TNM Path T is blank.  Anaplastic carcinomas are identified by stated grade of 4 or histologic type with implied grade of 4.

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Site is not C739
5. TNM Clin T is blank or 88
6. Grade is blank

A.  If Primary Site is Thyroid (C73.9), histology is 8000-8019, 8022-8029, 8033-8576, 8940-8950, 8980-8981, Grade = 4, and TNM Path T is blank
    then TNM Clin T must = c4, c4A, or c4B

B.  If Primary Site is Thyroid (C73.9), histology is 8020, 8021, 8030, 8031, or 8032 (implied grade of 4) and TNM Path T is blank
    then TNM Clin T must = c4, c4A, or c4B]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-13" ref="67391">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF570" name="TNM Clin T, Surgery, Prostate (COC)" tag="N2237" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Surg_Prim_Site,TNM_Clin_T,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.tnmClinT == null || line.tnmClinT == '88' || line.rxSummSurgPrimSite == null)
    return true

Integer histInt = Functions.asInt(line.histologicTypeIcdO3)
if (line.primarySite != 'C619' || !Functions.expandList((List)[8000..8110,8140..8576,8940..8950,8980..8981]).contains(histInt))
    return true

if (Functions.matches(line.tnmClinT, /^c1[AB]$/))
    return line.rxSummSurgPrimSite != '00' && line.rxSummSurgPrimSite != '99'

return true]]></expression>
            <message>TNM Clin T and Surgery conflict for Prostate</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. TNM Clin T is blank or 88
5. RX Summ--Surg Prim Site is blank


If Primary Site = C619
  and Histologic Type ICD-O-3 = 8000-8110, 8140-8576, 8940-8950, 8980-8981
Then
    If TNM Clin T = c1A or c1B (codes indicating TURP was done)
    Then
        RX Summ--Surg Prim Site must not = 00 or 99]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-13" ref="67392">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF571" name="TNM M, Mets at DX, Melanoma of Skin (COC)" tag="N2240" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Histologic_Type_ICD-O-3,Mets_at_DX_Lung,Primary_Site,TNM_Clin_M,TNM_Path_M,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.metsAtDxLung == null)
    return true

//Skip condition 5
if ((line.tnmClinM == null && line.tnmPathM == null) || (line.tnmClinM == '88' && line.tnmPathM == '88'))
    return true

//Skip condition 7
if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
    return true

if (line._tnmSchemaId != 'melanoma_skin')
   return true

if (line.metsAtDxLung == '1' && !(Functions.matches(line.tnmClinM, /^[cp]1[BC]$/)) && !(Functions.matches(line.tnmPathM, /^[cp]1[BC]$/)))
    return false
else if ((line.metsAtDxLung == '0' || line.metsAtDxLung == '9') && (Functions.matches(line.tnmClinM, /^[cp]1B$/) || Functions.matches(line.tnmPathM, /^[cp]1B$/)))
    return false

if (Functions.matches(line.tnmClinM, /^[cp]1B$/) || Functions.matches(line.tnmPathM, /^[cp]1B$/))
    return line.metsAtDxLung == '1'

return true]]></expression>
            <message>TNM M, Mets AT DX-Lung conflict for Melanoma Skin</message>
            <description><![CDATA[Purpose: This edit verifies that TNM Clin M and TNM Path M are coded consistently with Mets at DX-Lung for Melanoma of Skin.

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Primary site/histology is not melanoma of skin.
5. TNM Clin M and TNM Path M are blank or 88
6. Mets at DX-Lung is blank
7. TNM Edition Number is not = 07, U7

For melanoma of skin:

A.  If Mets at DX-Lung = 1 (lung metastasis),
    then TNM Clin M must = c1B or p1B (Metastasis to lung) or higher, or
    TNM Path M must = c1B or p1B or higher.

B.  If Mets at Dx-Lung = 0 (no lung metastasis) or 9 (unknown if lung metastasis)
    then TNM Clin M must not = c1B or p1B, and TNM Path M must not = c1B or p1B

C.  If TNM Clin M = c1B or p1B or TNM Path M = c1B or p1B
    then Mets at DX-Lung must = 1]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-16" ref="67393">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-17" ref="67592">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67741">Edit name change.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF572" name="TNM M, SSF 4 Melanoma of Skin (COC)" tag="N2242" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_4,Histologic_Type_ICD-O-3,Primary_Site,TNM_Clin_M,TNM_Path_M,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

//Skip condition 5, 6
if ((line.tnmClinM == null && line.tnmPathM == null) || (line.tnmClinM == '88' && line.tnmPathM == '88') || line.csSiteSpecificFactor4 == null || line.csSiteSpecificFactor4 == '988')
    return true

//Skip condition 7
if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
    return true

if (line._tnmSchemaId != 'melanoma_skin')
   return true

if (Functions.matches(line.csSiteSpecificFactor4, /^0[123]0$/))
    return !(Functions.matches(line.tnmClinM, /^[cp]1[AB]$/) || Functions.matches(line.tnmPathM, /^[cp]1[AB]$/))

return true]]></expression>
            <message>TNM M and SSF 4 conflict for Melanoma Skin</message>
            <description><![CDATA[Purpose: This edit verifies that TNM Clin M and TNM Path M are coded consistently with CS SSF 4 for Melanoma of Skin (Serum Lactate Dehydrogenase).

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Primary site/histology is not melanoma of skin.
5. TNM Clin M and TNM Path M are blank or 88
6. CS SSF 4 is blank or 988.
7. TNM Edition Number is not = 07, U7

For melanoma of skin:

If CS SSF 4 = 010, 020, 030, (elevated LDH)
    then TNM Clin M and TNM Path M must not = c1A, c1B, p1A, or p1B (Metastasis without elevated LDH).]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-16" ref="67394">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-17" ref="67594">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67741">Edit name change.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF573" name="TNM M, SSF 4 Uveal Melanoma (COC)" tag="N2243" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_4,Histologic_Type_ICD-O-3,Primary_Site,TNM_Clin_M,TNM_Path_M,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

//Skip condition 5, 6
if ((line.tnmClinM == null && line.tnmPathM == null) || (line.tnmClinM == '88' && line.tnmPathM == '88') ||
    line.csSiteSpecificFactor4 == null || line.csSiteSpecificFactor4 == '988')
    return true

//Skip condition 7
if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
    return true

if (!(Functions.matches(line.primarySite, /^C69[34]$/)) || line.histologicTypeIcdO3 < '8720' || line.histologicTypeIcdO3 > '8790')
   return true

String ssf4 = line.csSiteSpecificFactor4
if (ssf4 == '000')
    return !(Functions.matches(line.tnmClinM, /^[cp]1[ABC]?$/) || Functions.matches(line.tnmPathM, /^[cp]1[ABC]?$/))
else if ((ssf4 >= '001' && ssf4 <= '030') || ssf4 == '991')
    return (Functions.matches(line.tnmClinM, /^[cp]1A$/) || Functions.matches(line.tnmPathM, /^[cp]1A$/))
else if ((ssf4 >= '031' && ssf4 <= '080') || ssf4 == '992')
    return (Functions.matches(line.tnmClinM, /^[cp]1B$/) || Functions.matches(line.tnmPathM, /^[cp]1B$/))
else if ((ssf4 >= '081' && ssf4 <= '980') || ssf4 == '993')
    return (Functions.matches(line.tnmClinM, /^[cp]1C$/) || Functions.matches(line.tnmPathM, /^[cp]1C$/))

return true]]></expression>
            <message>TNM M and SSF 4 conflict for Uveal Melanoma</message>
            <description><![CDATA[Purpose: This edit verifies that TNM Clin M and TNM Path M are coded consistently with SSF 4 for Uveal Melanoma (Size of Largest Metastasis).

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Primary site/histology is not uveal melanoma
5. TNM Clin M and TNM Path M are blank or 88
6. SSF 4 is blank or 988
7. TNM Edition Number is not = 07, U7

For uveal melanoma:

A.  If CS Site-Specific Factor 4 = 000 (no metastatic disease)
        then TNM Clin M and TNM Path M must not = c1, c1A, c1B, c1C, p1, p1A, p1B, or p1C

B.  If CS Site-Specific Factor 4 = 001-030 (size of metastasis in mm), or 991 (described as less than 3cm)
        then TNM Clin M or TNM Path M must = c1A or p1A

C.  If CS Site-Specific Factor 4 = 031-080 (size of metastasis in mm), or 992 (described as less than 8 cm),
        then TNM Clin M or TNM Path M must = c1B or p1B

D.  If CS Site-Specific Factor 4 = 081 - 980 (size of metastasis in mm), or 993 (described as greater than 8cm),
        then TNM Clin M or TNM Path M must = c1C or p1C]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-16" ref="67395">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-17" ref="67595">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67741">Edit name change.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="IF574" name="TNM N, SSF 3 Melanoma of Skin (COC)" tag="N2245" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_3,Histologic_Type_ICD-O-3,Primary_Site,TNM_Clin_N,TNM_Path_N,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

//Skip conditions 5, 6, 7
if (line.tnmClinN == null || (line.tnmClinN == '88' && line.tnmPathN == '88') || line.csSiteSpecificFactor3 == null || line.csSiteSpecificFactor3 == '988')
    return true

//Skip conditions 8, 9
if ((line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7') || line.tnmPathDescriptor == '4' || line.tnmPathDescriptor == '6')
    return true

if (line._tnmSchemaId != 'melanoma_skin')
   return true

String ssf3 = line.csSiteSpecificFactor3
if (ssf3 == '005')
    return line.tnmClinN == 'c0' && (line.tnmPathN == null || Functions.matches(line.tnmPathN, /^[cp]0|pX|p2C$/))
else if (ssf3 == '010')
    return line.tnmClinN == 'c0' && (line.tnmPathN == null || Functions.matches(line.tnmPathN, /^pX|p[12]A|p3$/))
else if (ssf3 == '043')
    return line.tnmClinN == 'c1'
else if (ssf3 == '045')
    return line.tnmClinN == 'c2'
else if (ssf3 == '048')
    return line.tnmClinN == 'c3'
else if (ssf3 == '100')
    return line.tnmClinN == 'c2C'
else if (ssf3 == '999')
    return line.tnmClinN == 'cX'

return true]]></expression>
            <message>TNM N and SSF 3 conflict for Melanoma Skin</message>
            <description><![CDATA[Purpose: This edit verifies that TNM Clin N and TNM Path N are coded consistently with CS SSF 3 for Melanoma of Skin(Clinical Status of Lymph Nodes).

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Primary site/histology is not Melanoma of Skin.
5. TNM Clin N is blank
6. TNM Clin N and TNM Path N are 88
7. CS SSF 3 is blank or 988
8. TNM Edition Number not = 07, U7
9. TNM Path Descriptor = 4, 6

For melanoma of skin:

A.  If CS SSF 3 = 005 (Clinically negative nodes and no pathologic exam or pathologic exam negative or unknown if pathologic exam),
    then TNM Clin N must = c0 and TNM Path N must = c0, p0, p2C, pX, or blank (no pathologic exam or unknown if performed, no pathologic node metastasis)

B.  If CS SSF 3 = 010 (Clinically occult (microscopic) lymph node metastasis only)
    then TNM Clin N must = c0 (no regional lymph node metastasis) and TNM Path N must = pX, p1A, p2A, p3, or blank.

C.  If CS SSF 3 = 043 (Clinically apparent nodal metastasis in 1 regional node)
    then TNM Clin N must = c1

D.    If CS SSF 3 = 045 (Clinically apparent nodal metastasis in 2-3 regional nodes)
    then TNM Clin N must = c2

E.  If CS SSF 3 = 048 (Clinically apparent nodal metastasis in 4+ regional nodes)
    then TNM Clin N must = c3

G.  If CS SSF 3 = 100 (Clinically apparent in transit metastasis with or without occult lymph node metastasis
    then TNM Clin N must = c2C

H.  If CS SSF 3 = 999 (Unknown clinically if nodes involved)
    then TNM Clin N must = cX]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-16" ref="67396">Edit created.</event>
                <event version="SE16-015-08" user="kirbyk" date="2016-09-20" ref="67531">Added valid code &apos;p2C&apos; for TNM Path N when SSF3=005.</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-01" ref="67550">Added valid codes &apos;pX&apos; and &apos;p3&apos; for TNM Path N when SSF3=010.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-17" ref="67597">Added skip conditions for TNM Edition Number, TNM Path Descriptor.</event>
                <event version="SE16-016-02" user="kirbyk" date="2017-02-21" ref="67639">Stopped skipping edit when TNM Path N is blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67741">Edit name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF575" name="TNM N, SSF 3 Merkel Cell (COC)" tag="N2246" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_3,Histologic_Type_ICD-O-3,Primary_Site,TNM_Clin_N,TNM_Path_N,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

//Skip conditions 5, 6, 7
if (line.tnmClinN == null || (line.tnmClinN == '88' && line.tnmPathN == '88') || line.csSiteSpecificFactor3 == null || line.csSiteSpecificFactor3 == '988')
    return true

//Skip conditions 8, 9
if ((line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7') || line.tnmPathDescriptor == '4' || line.tnmPathDescriptor == '6')
    return true

if (!['merkel_cell_penis','merkel_cell_scrotum','merkel_cell_skin','merkel_cell_vulva'].contains(line._tnmSchemaId))
   return true

String ssf3 = line.csSiteSpecificFactor3
if (ssf3 == '005')
    return line.tnmClinN == 'c0' && (line.tnmPathN == null || Functions.matches(line.tnmPathN, /^[cp]0|pX$/))
else if (ssf3 == '010')
    return line.tnmClinN == 'c0' && (line.tnmPathN == null || line.tnmPathN == 'p1A')
else if (ssf3 == '020')
    return line.tnmClinN == 'c1'
else if (ssf3 == '100' || ssf3 == '150')
    return line.tnmClinN == 'c2'
else if (ssf3 == '999')
    return line.tnmClinN == 'cX'

return true]]></expression>
            <message>TNM N and SSF 3 conflict for Merkel Cell</message>
            <description><![CDATA[Purpose: This edit verifies that TNM Clin N and TNM Path N are coded consistently with CS SSF 3 for Merkel Cell (Clinical Status of Lymph Nodes).

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Primary site/histology is not Merkel cell.
5. TNM Clin N is blank
6. TNM Clin N and TNM Path N are 88
7. CS SSF 3 is blank or 988
8. TNM Edition Number not = 07, U7
9. TNM Path Descriptor = 4,6

For TNM Merkel cell schemas(Merkel Cell Penis, Merkel Cell Scrotum, Merkel Cell Skin and Merkel Cell Vulva):

A.  If CS SSF 3 = 005 (Clinically negative nodes and no pathologic exam or pathologic exam negative or unknown if pathologic exam)
    then TNM Clin N must = c0 and if not blank TNM Path N must = c0, p0, pX, or blank (no pathologic exam or unknown if performed,     no pathologic node metastasis)

B.  If CS SSF 3 = 010 (Clinically occult (microscopic) lymph node metastasis only)
    then TNM Clin N must = c0 (no regional lymph node metastasis) and TNM Path N must = p1A or blank.

C.  If CS SSF 3 = 020 (Clinically apparent nodal metastasis)
    then TNM Clin N must = c1

D.  If CS SSF 3 = 100 (Clinically apparent in transit metastasis with or without occult lymph node metastasis) or 150 (Clinically apparent in transit metastasis and clinically apparent nodal metastasis)
    then TNM Clin N must = c2

E.  If CS SSF 3 = 999 (Unknown clinically if nodes involved)
    then TNM Clin N must = cX]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-17" ref="67399">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-17" ref="67598">Added skip conditions for TNM Edition Number, TNM Path Descriptor.</event>
                <event version="SE16-016-02" user="kirbyk" date="2017-02-21" ref="67640">Stopped skipping edit when TNM Path N is blank.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67741">Edit name change.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF576" name="TNM N, SSF 3, 5 Corpus Uteri (COC)" tag="N2247" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_3,CS_Site-Specific_Factor_5,Histologic_Type_ICD-O-3,Primary_Site,TNM_Clin_N,TNM_Path_N,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

//Skip condition 5
if ((line.tnmClinN == null && line.tnmPathN == null) || (line.tnmClinN == '88' && line.tnmPathN == '88'))
    return true

//Skip condition 6
if ((line.csSiteSpecificFactor3 == null && line.csSiteSpecificFactor5 == null) || (line.csSiteSpecificFactor3 == '988' && line.csSiteSpecificFactor5 == '988'))
    return true

//Skip condition 7
if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
    return true

if (!(Functions.matches(line.primarySite, /^C54[0-389]|C559$/)))
     return true
if (!Functions.between(line.histologicTypeIcdO3, '8000','8790') && line.histologicTypeIcdO3 != '8950' && line.histologicTypeIcdO3 != '8951' && line.histologicTypeIcdO3 != '8980' && line.histologicTypeIcdO3 != '8981')
   return true

String ssf3 = line.csSiteSpecificFactor3
String ssf5 = line.csSiteSpecificFactor5
if (ssf3 == '000' && ssf5 == '000')
    return line.tnmPathN == null || line.tnmPathN == 'p0'
else if (ssf3 ==~ /^00[1-9]|0[1-8]\d|09[057]$/ || ssf5 ==~ /^00[1-9]|0[1-8]\d|09[057]$/)
    return line.tnmClinN != 'c0' || (line.tnmPathN != 'c0' && line.tnmPathN != 'p0')
else if ((ssf3 == '098' || ssf3 == '999') && (ssf5 == '098' || ssf5 == '999'))
    return line.tnmPathN == null || line.tnmPathN == 'pX' || line.tnmPathN == 'c0'

return true]]></expression>
            <message>TNM N, SSF 3, SSF 5 conflict for Corpus Carcinoma</message>
            <description><![CDATA[Purpose: This edit verifies that TNM Path N and TNM Clin N are coded consistently with nodal information in CS Site-Specific Factors 3 (Number of Positive Pelvic Nodes) and 5 (Number of Positive Para-Aortic Nodes) for Corpus Uteri.

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Site/histology group not 36A, Corpus Uteri CarcinomaS
5. TNM Path N and TNM Clin N are blank or 88
6. CS Site-Specific Factors 3 and 5 are blank or 988.
7. TNM Edition Number not = 07, U7.

The site/histology groups are identified by site and histology in the edit Primary Site, Stage Group 2016 - Ed 7.

For Corpus Carcinoma (C540-C543,C548-C549,C559 with histology 8000-8790,8950-8951,8980-8981):

1.  If CS Site-Specific Factors 3 and 5 = 000 (all nodes examined negative),
    TNM Path N must = p0 or blank.

2.  If CS Site-Specific Factor 3 or 5 = 001-090, 095, 097 (positive nodes),
    TNM Clin N and TNM Path N must not both indicate no nodes involved.

3.  If both CS Site-Specific Factors 3 and 5 = 098 (no nodes examined) or 999 (unknown if nodes     positive)
    TNM Path N must = blank, pX, or c0.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-18" ref="67400">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-17" ref="67599">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="IF577" name="TNM N, SSF 4, 6 Fallopian Tube (COC)" tag="N2248" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_4,CS_Site-Specific_Factor_6,Histologic_Type_ICD-O-3,Primary_Site,TNM_Clin_N,TNM_Path_N,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

//Skip condition 5
if ((line.tnmClinN == null && line.tnmPathN == null) || (line.tnmClinN == '88' && line.tnmPathN == '88'))
    return true

//Skip condition 6
if ((line.csSiteSpecificFactor4 == null && line.csSiteSpecificFactor6 == null) || (line.csSiteSpecificFactor4 == '988' && line.csSiteSpecificFactor6 == '988'))
    return true

//Skip condition 7
if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
    return true

if (line.primarySite != 'C570')
     return true
if (!Functions.between(line.histologicTypeIcdO3, '8000','8576') && !Functions.between(line.histologicTypeIcdO3, '8940','8950') && line.histologicTypeIcdO3 != '8980' && line.histologicTypeIcdO3 != '8981')
   return true

String ssf4 = line.csSiteSpecificFactor4
String ssf6 = line.csSiteSpecificFactor6
if(line.tnmPathN == 'p0')
    return (ssf4 == '000' || ssf4 == '098') && (ssf6 == '000' || ssf6 == '098')
else if(line.tnmPathN == 'c0')
    return (ssf4 == '999' || ssf4 == '098') && (ssf6 == '999' || ssf6 == '098')
else if (ssf4 ==~ /^00[1-9]|0[1-8]\d|09[057]$/ || ssf6 ==~ /^00[1-9]|0[1-8]\d|09[057]$/)
    return line.tnmClinN != 'c0' || (line.tnmPathN != 'c0' && line.tnmPathN != 'p0')

return true]]></expression>
            <message>TNM N, SSF 4, SSF6 conflict for Fallopian Tube</message>
            <description><![CDATA[Purpose: This edit verifies that TNM Path N and TNM Clin N are coded consistently with nodal information in CS Site-Specific Factors 4 (Number of Positive Pelvic Nodes) and 6 (Number of Positive Para-Aortic Nodes) for Fallopian Tube.

This edits is skipped if any of the following conditiosn are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Site/histology group not 038, Fallopian Tube
5. TNM Path N and TNM Clin N are blank or 88
6. CS Site-Specific Factors 4 and 6 are blank or 988.
7. TNM Edition Number is not = 07, U7

The site/histology groups are identified by site and histology in the edit Primary Site, Stage Group 2016 - Ed 7.

For Fallopian Tube (Site C570 with histology 8000-8576, 8940-8950, 8980-8981):

1. If TNM Path N = p0, CS Site-Specific Factors 4 and 6 must = 000 (all nodes examined negative) or 098 (no nodes examined).

2.  If CS Site-Specific Factor 4 or 6 = 001-090, 095, 097 (positive nodes),
    TNM Clin N and TNM Path N must not both indicate no nodes involved.

3.  3. If TNM Path N = c0, CS Site-Specific Factors 4 and 6 must = 098 (no nodes examined) or 999 (unknown if nodes positive).]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-18" ref="67401">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-17" ref="67600">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-27" ref="67731">Description, logic modified to account for findings involving inguinal nodes, which are regional nodes for Fallopian tube but are not included in Site-Specific Factors 4 and 6.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF578" name="TNM N, SSF 5 Testis (COC)" tag="N2249" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_5,Histologic_Type_ICD-O-3,Primary_Site,TNM_Clin_N,TNM_Path_Descriptor,TNM_Path_N,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.csSiteSpecificFactor5 == null || line.csSiteSpecificFactor5 == '988')
    return true

//Skip condition 6
if ((line.tnmClinN == null && line.tnmPathN == null) || (line.tnmClinN == '88' && line.tnmPathN == '88'))
    return true

//Skip conditions 7, 8
if ((line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7') || line.tnmPathDescriptor == '4' || line.tnmPathDescriptor == '6')
    return true

//Skip condition 4
if (!(Functions.matches(line.primarySite, /^C62[019]$/)))
    return true
String hist = line.histologicTypeIcdO3
if (!(hist >= '8000' && hist <= '8576') && !(hist >= '8590' && hist <= '8670') && !(hist >= '8940' && hist <= '8950') && hist != '8980' && hist != '8981' &&
    !(hist >= '9060' && hist <= '9090') && !(hist >= '9100' && hist <= '9105'))
    return true

String ssf5 = line.csSiteSpecificFactor5
if (ssf5 == '000')
    return !(Functions.matches(line.tnmClinN, /^c[123]$/)) && !(Functions.matches(line.tnmPathN, /^p[123]$/))
else if (ssf5 == '010')
    return line.tnmClinN == 'c1' || line.tnmPathN == 'p1'
else if (ssf5 == '020')
    return line.tnmClinN == 'c2' || line.tnmPathN == 'p2'
else if (ssf5 == '030')
    return line.tnmClinN == 'c3' || line.tnmPathN == 'p3'
else if (ssf5 == '999')
    return !(line.tnmClinN == 'c0' && line.tnmPathN == 'p0')

return true]]></expression>
            <message>TNM N and SSF 5 conflict for Testis</message>
            <description><![CDATA[Purpose: This edit verifies that TNM Clin N and TNM Path N are coded consistently with CS SSF 5 for Testis (Size of Metastasis in Lymph Nodes).

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Primary site/histology is not site/histology group 42, Testis
6. TNM Clin N and TNM Path N are blank or 88
5. CS SSF 5 is blank or 988
7. TNM Edition Number not = 07, U7
8. TNM Path Descriptor = 4, 6

For Testis (C620,C621,C629 w/histology 8000-8576,8590-8670,8940-8950,8980-8981,9060-9090,9100-9105):

A.  If CS SSF 5 = 000 (no lymph node metastasis)
        then TNM Clin N must not = c1, c2, or c3 and TNM Path N must not = p1, p2, or p3 (regional lymph node metastasis)

B.  If CS SSF 5 = 010 (Lymph node metastasis mass 2cm or less without pathologic extranodal extension, stated as N1)
        then TNM Clin N must = c1 (Metastasis with lymph node mass 2cm or less in grestest dimension or multiple lymph nodes none more than 2cm in greatest dimension) or TNM Path N must = p1 (Metastasis with lymph node mass 2cm or less in greatest dimension and less than or equal to 5 nodes positive, none more than 2cm in greatest dimension).

C.  If CS SSF 5 = 020 (Lymph node metastasis mass more than 2cm but not more than 5cm in greatest dimension or pathologic extranodal extension of tumor, stated as N2)
        then TNM Clin N must = c2 (Metastasis with lymph node mass more than 2cm but not more than 5cm in greatest dimension or multiple lymph nodes any one mass greater than 2cm but not more than 5cm in greatest dimension) or TNM Path N must = p2 (Metastasis with lymph node mass more than 2cm but not more than 5cm in greatest dimension or more than 5 nodes positive none more than 5cm or evidence of extranodal extension of tumor)

D.  If CS SSF 5 = 030 (Lymph node metastasis mass more than 5cm in greatest dimension, stated as N3)
        then TNM Clin N must = c3 or TNM Path N must = p3 (metastasis with a lymph node mass more than 5cm in greatest dimension)

E.  If CS SSF 5 = 999 (Regional lymph nodes involved, size of lymph node mass not stated, unknown if regional nodes involved)
        then TNM Clin N must not = c0 and TNM Path N must not = p0]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-18" ref="67402">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-23" ref="67629">Added skip conditions; updated logic for part E.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67741">Edit name change.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF579" name="TNM Path N, Reg Nodes Ex - Ed 7 (COC)" tag="N2256" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Regional_Nodes_Examined,TNM_Path_N,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[boolean skipCondition1 = line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016'
boolean skipCondition2 = line.typeOfReportingSource == '6' || line.typeOfReportingSource == '7'
boolean skipCondition3 = line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1'
boolean skipCondition4 = line.tnmPathN == null || line.tnmPathN == '88'
if (skipCondition1 || skipCondition2 || skipCondition3 || skipCondition4 || line.regionalNodesExamined == null)
    return true

if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
    return true

// these cases will not generate errors
String chapter = ((Closure)Context.AJCC7CodeLookup16).call(line)
String tnmPathN = line.tnmPathN
if (chapter == '014' && tnmPathN == 'p1C')
    return true
else if ((chapter == '030' || chapter == '052') && tnmPathN == 'p2')
    return true
else if (chapter == '031' && tnmPathN == 'p2C')
    return true
else if (chapter == '032' && tnmPathN == 'p2B')
    return true
else if (chapter == '36A' && (tnmPathN == 'c1' || tnmPathN == 'c2'))
    return true
else if (chapter == '055' && (tnmPathN == 'p3' || tnmPathN == 'p4'))
    return true

if (line.regionalNodesExamined == '00' || line.regionalNodesExamined == '99')
    return line.tnmPathN == 'pX' || line.tnmPathN == 'c0'

return true]]></expression>
            <message>TNM Path N and Regional Nodes Examined conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 6 (Autopsy Only) or 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. TNM Path N is blank or 88
5. Regional Nodes Examined = blank
6. TNM Edition Number is not 07, U7


IF Regional Nodes Examined = 00 or 99
Then
    TNM Path N must = pX, c0, or blank


The following TNM site/histology groups/Path N codes are exceptions to the above and will not
generate errors:

Chapter 14: Colon and Rectum
TNM Path N = p1C (tumor deposits)

Chapter 30: Merkel Cell Carcinoma
TNM Path N = p2 (in transit metastases)

Chapter 31: Melanoma of the Skin
TNM Path N = p2C (satellite nodules)

Chapter 32: Breast
TNM Path N = p2B (clinically detected internal mammary lymph nodes in the absence of axillary
lymph node metastases)

Chapter 36A: Corpus Uteri Carcinoma
TNM Path N = c1 or c2 (clinical N allowed in path N field)

Chapter 52: Retinoblastoma
TNM Path N = p2 (distant nodes)

Chapter 55: Ocular Adnexal Lymphoma
TNM Path N = p3 or p4 (codes indicating distant nodes)]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-18" ref="67403">Edit created.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-04-16" ref="67733">Added several exception conditions based on AJCC chapter.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-018-04" user="kirbyk" date="2018-08-01" ref="67979">Removed exceptions for chapters 16A, 16B, 27, and 28.</event>
                <event version="SE18-018-10" user="kirbyk" date="2018-11-30" ref="68060">Added TNM Edition Number skip condition.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF580" name="TNM Path N, Reg Nodes Pos - Ed 7 (COC)" tag="N2257" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Histologic_Type_ICD-O-3,Primary_Site,Regional_Nodes_Positive,TNM_Path_N,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[//Skip conditions 1, 2
if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.dateOfDiagnosisYear > '2017'
    || line.typeOfReportingSource == '6' || line.typeOfReportingSource == '7')
    return true

//Skip conditions 3, 4
if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.tnmPathN == null || line.tnmPathN == '88')
    return true

//Skip conditions 5, 6
if (line.regionalNodesPositive == null || (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7'))
    return true

String hist = line.histologicTypeIcdO3
String chapter = ((Closure)Context.AJCC7CodeLookup16).call(line)

// Exceptions for some chapters
String tnmPathN = line.tnmPathN
if (chapter == '014' && tnmPathN == 'p1C')
    return true
else if ((chapter == '030' || chapter == '052') && tnmPathN == 'p2')
    return true
else if (chapter == '031' && tnmPathN == 'p2C')
    return true
else if (chapter == '032' && tnmPathN == 'p2B')
    return true
else if (chapter == '36A' && (tnmPathN == 'c1' || tnmPathN == 'c2'))
    return true
else if (chapter == '055' && (tnmPathN == 'p3' || tnmPathN == 'p4'))
    return true

if (Functions.matches(tnmPathN, /^.[123].*$/))
    return line.regionalNodesPositive != '00' && line.regionalNodesPositive != '98' && line.regionalNodesPositive != '99'

return true]]></expression>
            <message>TNM Path N and Regional Nodes Positive conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, greater than 2017, blank (unknown), or invalid
2. Case is autopsy only (Type of Reporting Source = 6) or death certificate only (Type of Reporting Source = 7)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. TNM Path N is blank or 88
5. Regional Nodes Positive is blank
6. TNM Edition Number is not = 07, U7

At least one positive lymph node is required if TNM Pathologic N is 1 or higher.

If the second character of TNM Path N = 1, 2, or 3, indicating metastasis in at least one lymph node
Then
    Regional Nodes Positive must not = 00 (all nodes examined are negative), 98 (no nodes were examined), 99 (unknown whether nodes are positive)

The following TNM site/histology groups/Path N codes are exceptions to the above and will not generate errors:

Chapter 14: Colon and Rectum (Site: C180,C182-C189,C199,C209 Histology:8000-8152,8154-8231,8243-8245,8247-8248,8250-8576,8940-8950,8980-8981)
  TNM Path N = p1C (tumor deposits)

Chapter 30: Merkel Cell Carcinoma (Site: C440,C442-C449,C510-C512,C518-C519,C600-C602,C608-C609,C632 Histology: 8247)
  TNM Path N = p2 (in transit metastases)

Chapter 31: Melanoma of the Skin (Site: C440-C449,C510-C512,C518-C519,C600-C602,C608-C609,C632 Histology:8720-8790)
  TNM Path N = p2C (satellite nodules)

Chapter 32: Breast
TNM Path N = p2B (clinically detected internal mammary lymph nodes in absence of axillary lymph node metastases)

Chapter 36A: Corpus Uteri Carcinoma
TNM Path N = c1 or c2 (clinical N allowed in path N field)

Chapter 52: Retinoblastoma (Site: C692 Histology 9510-9514)
  TNM Path N = p2 (distant nodes)

Chapter 55: Ocular Adnexal Lymphoma (Site: C441,C690,C695-C696 Histology: 9590-9699,9702-9738,9811-9818,9820-9837)
  TNM Path N = p3 or p4 (codes indicating distant nodes)]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-19" ref="67404">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-17" ref="67603">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-04-27" ref="67773">Added several exception conditions based on AJCC chapter.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-018-04" user="kirbyk" date="2018-08-01" ref="67979">Removed exceptions for chapters 16A, 16B, 27, and 28.</event>
                <event version="SE18-018-10" user="kirbyk" date="2018-11-30" ref="68061">Added skip condition for DX Year 2018+.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF581" name="TNM Path N, Reg Nodes Pos,Ex, Breast - Ed 7 (COC)" tag="N2258" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,Regional_Nodes_Examined,Regional_Nodes_Positive,TNM_Path_N,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[//Skip conditions 1, 2
if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7')
    return true

//Skip conditions 4, 5, 6
if (line.tnmPathN == null || line.tnmPathN == '88' || line.regionalNodesExamined == null || line.regionalNodesPositive == null)
    return true

//Skip conditions 7, 8
if ((line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7') || line.tnmPathDescriptor == '4' || line.tnmPathDescriptor == '6')
    return true

//Skip condition 3
String hist = line.histologicTypeIcdO3
if (!(Functions.matches(line.primarySite, /^C50[0-689]$/)) || !((hist >= '8000' && hist <= '8576') || (hist >= '8940' && hist <= '8950') || hist == '8980' || hist == '8981' || hist == '9020'))
    return true

if (Functions.matches(line.tnmPathN, /^p0[IM][+\-]$/))
    return line.regionalNodesExamined != '00' && line.regionalNodesExamined != '99' && line.regionalNodesPositive == '00'

return true]]></expression>
            <message>TNM Path N, Reg Nodes Pos/Exam conflict for Breast</message>
            <description><![CDATA[This edit verifies that nodes are examined for "0I-", "0I+", "0M-", and "0M+ categories, and that ITCs are not considered positive nodes for breast.

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Site/histology group is not 032 (Breast)
4. TNM Path N is blank or 88
5. Regional Nodes Positive is blank
6. Regional Nodes Examined is blank
7. TNM Edition Number is not = 07, U7
8. TNM Path Descriptor = 4,6

For Breast (Site:C500-C506,C508-C509 Histology:8000-8576,8940-8950,8980-8981,9020)

If TNM Path N = p0I+, p0I-, p0M+, p0M-
    then Regional Nodes Examined must not = 00, 99 (no nodes examined or unknown if nodes examined)
    Regional Nodes Positive must = 00 (all nodes examined are negative)]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-19" ref="67405">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-17" ref="67604">Added skip conditions for TNM Edition Number and TNM Path Descriptor.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF582" name="TNM Path N, SSF 3, 4, 5 Breast (COC)" tag="N2260" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_3,CS_Site-Specific_Factor_4,CS_Site-Specific_Factor_5,Histologic_Type_ICD-O-3,Primary_Site,TNM_Path_Descriptor,TNM_Path_N,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[//Skip conditions 1, 2
if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7')
    return true

//Skip conditions 3, 5
if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.tnmPathN == null || line.tnmPathN == '88')
    return true

//Skip conditions 6, 7
if (line.tnmPathDescriptor == '4' || line.tnmPathDescriptor == '6' || (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7'))
    return true

//Edit passes if case if not Breast (skip condition 4)
String hist = line.histologicTypeIcdO3
if (!(Functions.matches(line.primarySite, /^C50\d$/)) || !((hist >= '8000' && hist <= '8576') || (hist >= '8940' && hist <= '8950') || hist == '8980' || hist == '8981' || hist == '9020'))
    return true

if (line.csSiteSpecificFactor3 != null && line.csSiteSpecificFactor3 != '988') {
    if (Functions.matches(line.tnmPathN, /^p0([IM][\-+])?$/) && line.csSiteSpecificFactor3 != '000')
        return false
    else if ((line.tnmPathN == 'c0' || line.tnmPathN == 'pX') && !(Functions.matches(line.csSiteSpecificFactor3, /^09[789]$/)))
        return false
}

if (line.csSiteSpecificFactor4 != null || line.csSiteSpecificFactor5 != null) {
    if (line.csSiteSpecificFactor4 == '987' && line.csSiteSpecificFactor5 == '987' && line.tnmPathN == 'pX')
        return true
    else if (line.csSiteSpecificFactor4 == '987' && line.csSiteSpecificFactor5 == '987' && line.tnmPathN == 'p0I+')
        return true
    else if (line.csSiteSpecificFactor4 == '000' && line.csSiteSpecificFactor5 == '000' && line.tnmPathN == 'pX' && line.tnmClinN == 'c0')
        return true
    else if (line.csSiteSpecificFactor4 == '000' && line.csSiteSpecificFactor5 == '000' && line.tnmPathN == 'c0')
        return true
    else if (line.csSiteSpecificFactor4 != '988' || line.csSiteSpecificFactor5 != '988') {
        List codes = (List)((Map)((Map)Context.IF582_Table).getOrDefault(line.csSiteSpecificFactor4 ?: '', [:])).getOrDefault(line.csSiteSpecificFactor5 ?: '', null)
        if (codes == null)
            return true
        else if (codes.contains('ER'))
            return false
        else if (codes.contains('p1'))
            return Functions.matches(line.tnmPathN, /^p1[ABC]?|p1MI|p2[AB]?|p3[ABC]?$/)
        else if (!codes.contains(line.tnmPathN))
            return false
    }
}

return true]]></expression>
            <message>TNM Path N, SSF 3, 4, 5 conflict for Breast</message>
            <description><![CDATA[Purpose: This edit verifies for primary site of breast that pathologic TNM N must be consistent with CS SSF 3 (Number of positive ipsilateral level I-II Axillary Lymph Nodes), CS SSF 4 (Immunohistochemistry of Regional Lymph Nodes), and CS SSF 5 (Molecular Studies of Regional Lymph Nodes).

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Site/histology group not = 032, Breast.
5. TNM Path N is blank or 88.
6. TNM Path Descriptor = 4 or 6 (classification after neoadjuvant treatment)
7. TNM Edition Number is not = 07, U7


The site/histology groups are identified by site and histology in the edit Primary Site, Stage Group 2016 - Ed 7.

For CS Site-Specific Factor 3:

1.  If TNM Path N = p0, p0I-, p0I+, p0M-, p0M+,
        then CS SSF 3 must = 000 (All ipsilateral axillary nodes examined negative).

2.  If TNM Path N = c0 or pX,
         then CS SSF 3 must = 097 (Positive nodes, number unspecified), 098 (No axillary nodes examined), or 099 (Unknown if axillary nodes are positive).

For CS Site-Specific Factor 4, CS Site-Specific Factor 5:

3.  TNM Path N is compared to the combination of CS SSF 4 and CS SSF 5 using a table lookup.  Findings on molecular studies (CS SSF 5) are given precedence to findings on IHC studies (CS SSF 4). An error is generated if the combination of CS SSF 4 and CS SSF 5 do not support the assigned pN category.  If either CS SSF 4 or CS SSF 5 is coded 988, TNM N is compared to the value of the CS SSF not coded 988.  If  both are coded 988, the edit check is skipped.  If either CS SSF 4 or CS SSF 5 is blank (not coded), TNM N is compared to the value of the coded CS SSF. If both are blank, the edit check is skipped.

Four situations not handled by table lookup are included in the edit logic:
The edit passes for TNM Path N = pX, CS SSF 4 = 987, CS SSF 5 = 987.
The edit passes for TNM Path N = p0I+, CS SSF 4 = 987, CS SSF 5 = 987
The edit passes for TNM Path N = pX, TNM Clin N = c0, CS SSF 4 = 000, CS SSF 5 = 000
The edit passes for TNM Path N = c0, CS SSF 4 = 000, CS SSF 5 = 000.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-07" ref="67451">Edit created.</event>
                <event version="SE16-015-02" user="kirbyk" date="2016-06-30" ref="67482">Updated edit logic.</event>
                <event version="SE16-015-05" user="kirbyk" date="2016-07-20" ref="67496">Added c0 as valid Path N value when SSF4=000 and SSF5=000.</event>
                <event version="SE16-015-08" user="kirbyk" date="2016-09-19" ref="67532">Added skip condition for TNM Path Descriptor=4 or 6.</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-01" ref="67551">Added valid combinations outside of the table.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-17" ref="67606">Added skip condition for TNM Edition Number; added valid code for SSF3.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67734">Added 2 pass conditions.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF583" name="TNM Path N, SSF 4 Colon (COC)" tag="N2261" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_4,Histologic_Type_ICD-O-3,Primary_Site,TNM_Path_N,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[//Skip conditions 1, 2, 3
if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

//Skip conditions 5, 6
if (line.tnmPathN == null || line.tnmPathN == '88' || line.csSiteSpecificFactor4 == null || line.csSiteSpecificFactor4 == '988')
    return true

//Skip conditions 7, 8
if (line.tnmPathDescriptor == '4' || line.tnmPathDescriptor == '6' || (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7'))
    return true

//Skip condition 4
String hist = line.histologicTypeIcdO3
if (!(Functions.matches(line.primarySite, /^C18[02-9]|C199|C209$/)) || !((hist >= '8000' && hist <= '8152') || (hist >= '8154' && hist <= '8231') || hist ==~ /^824[34578]|894\d|8950|898[01]$/ ||
    (hist >= '8250' && hist <= '8576')))
   return true

String ssf4 = line.csSiteSpecificFactor4
if (ssf4 == '000' && line.tnmPathN == 'p1C')
    return false

if (line.tnmPathN == 'p1C')
    return ssf4 != '000' && ssf4 != '998' && ssf4 != '999'
else if (line.tnmPathN == 'p0')
    return ssf4 == '000' || ssf4 == '998' || ssf4 == '999'

return true]]></expression>
            <message>TNM Path N and SSF 4 conflict for Colon and Rectum</message>
            <description><![CDATA[Purpose: This edit verifies that TNM Path N is coded consistently with CS SSF 4 for Colon and Rectum (Tumor Deposits).

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Primary site/histology group is not 14, Colorectal.
5. TNM Path N is blank or 88
6. CS SSF 4 is blank or 988.
7. TNM Edition Number not = 07, U7
8. TNM Path Descriptor = 4,6

For Colon and Rectum (Site:C180,C182-C189,C199,C209 Histology: 8000-8152, 8154-8231, 8243-8245,8247-8248,8250-8576, 8940-8950, 8980-8981):

A.  If SSF 4 = 000 (no tumor deposits) ,
    then TNM Path N must not = p1C (Tumor deposit(s) in the subserosa, mesentery, or nonperitonealized pericolic or perirectal tissues without regional nodal metastasis).

B.  If TNM Path N = p1C,
    then CS SSF 4 must not = 000 (none), 998 (no surgical resection of primary site), or 999 (unknown or no information.

C.  If TNM Path N = p0,
    then CS SSF 4 must = 000, 998, or 999.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-19" ref="67406">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-17" ref="67607">Added skip conditions for TNM Edition Number and TNM Path Descriptor.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF584" name="TNM Path Stage Group, Prim Site, Surg - Ed 7 (COC)" tag="N2262" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,RX_Summ--Surg_Prim_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' || line.typeOfReportingSource == '6' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.tnmPathStageGroup == null || line.tnmPathStageGroup == '88' || line.rxSummSurgPrimSite == null)
    return true

String hist = line.histologicTypeIcdO3
if (Functions.matches(line.primarySite, /^C67\d$/) && ((hist >= '8000' && hist <= '8576') || (hist >= '8490' && hist <= '8950') || hist == '8980' || hist == '8981')) {
    if (line.tnmPathStageGroup == '0IS' || line.tnmPathStageGroup == '0A')
        return line.rxSummSurgPrimSite >= '30' && line.rxSummSurgPrimSite != '99'
}
else {
    if (line.tnmPathStageGroup == '0' || line.tnmPathStageGroup == '0IS' || line.tnmPathStageGroup == '0A')
        return line.rxSummSurgPrimSite >= '20' && line.rxSummSurgPrimSite != '99'
}

return true]]></expression>
            <message>TNM Path Stage Group, Surgery, Prim Site conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Case is autopsy only (Type of Reporting Source = 6) or death certificate only (Type of Reporting Source = 7)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. TNM Path Stage Group is blank or 88
5. RX Summ--Surg Prim Site is blank

Definitive surgical resection is required for TNM Path Stage Group 0, 0IS, and 0A.

A. For all site/histology groups except Urinary Bladder (Chapter 45):

If TNM Path Stage Group = 0, 0IS, OA
Then
    RX Summ--Surg Prim Site must be equal to or greater than 20
    and not equal 99 (unknown)

B. For TNM site/histology group Urinary Bladder(Site:C670-C679 Histology: 8000-8576,8490-8950,8980-8981):

If TNM Path Stage Group = 0IS or 0A
Then
    RX Summ--Surg Prim Site must be equal to or greater than 30
    and not equal 99 (unknown)]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-19" ref="67407">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-12" ref="69326">Removed several dependencies.</event>
            </history>
        </rule>
        <rule id="IF585" name="TNM Path T, SSF 1 Retinoblastoma (COC)" tag="N2268" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_1,Histologic_Type_ICD-O-3,Primary_Site,TNM_Path_T,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.tnmPathT == null || line.tnmPathT == '88' || line.csSiteSpecificFactor1 == null)
    return true

//Skip condition 7
if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
    return true

//Skip condition 4
if (line.primarySite != 'C692' || line.histologicTypeIcdO3 < '9510' || line.histologicTypeIcdO3 > '9514')
    return true

String ssf1 = line.csSiteSpecificFactor1
if (ssf1 == '300' || ssf1 == '410' || ssf1 == '430' || ssf1 == '435')
    return line.tnmPathT == 'p1'
else if (ssf1 == '440' || ssf1 == '460' || ssf1 == '465')
    return line.tnmPathT == 'p2A'
else if (ssf1 == '470')
    return line.tnmPathT == 'p2B'
else if (ssf1 == '490')
    return line.tnmPathT == 'p2'
else if (ssf1 == '540' || ssf1 == '550' || ssf1 == '560')
    return line.tnmPathT == 'p3A'
else if (ssf1 == '570')
    return line.tnmPathT == 'p3B'
else if (ssf1 == '590')
    return line.tnmPathT == 'p3'
else if (ssf1 == '725')
    return line.tnmPathT == 'p4A'
else if (ssf1 == '745' || ssf1 == '755' || ssf1 == '810')
    return line.tnmPathT == 'p4'
else if (ssf1 == '765' || ssf1 == '775' || ssf1 == '790')
    return line.tnmPathT == 'p4B'
else if (ssf1 == '950')
    return line.tnmPathT == 'p0'
else if (ssf1 == '999')
    return line.tnmPathT == 'pX'
else if (ssf1 == '960' || ssf1 == '970')
    return line.tnmPathT == 'pX'

return true]]></expression>
            <message>TNM Path T and SSF 1 conflict for Retinoblastoma</message>
            <description><![CDATA[Purpose: This edit verifies that TNM Path T is coded consistently with CS SSF 1, Extension Evaluated at Enucleation, for Retinoblastoma.

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Primary site/histology is not Retinoblastoma
5. TNM Path T is blank or 88
6. CS SSF 1 is blank
7. TNM Edition Number is not = 07, U7

For Retinoblastoma(Site:C692, Histology:9510-9514), SSF 1:

A. If SSF 1 = 300 (tumor confined to retina), 410 (tumor cells in vitreous body without optic nerve invasion and without choroidal invasion), 430 (tumor confined to subretinal space without optic nerve invasion and without choroidal invasion), 435 (tumor confined to eye NOS without optic nerve invasion and without choroidal invasion)
    then TNM Path T must = p1 (tumor confined to eye with no optic nerve or choroidal invasion)
B.  If SSF 1 = 440 (tumor invades optic nerve up to but not through level of lamina cribrosa without invasion of choroid), 460 (tumor invades choroid focally without invasion of optic nerve), 465 (stated as pT2a with no other information on extension)
    then TNM Path T must = p2A (Tumor superficially invades optic nerve head but does not extend past lamina cribrosa or tumor exhibits focal choroidal invasion)
C.  If SSF 1 = 470 (tumor invades optic nerve up to butnot through level oflamina cribrosa with focal invasion of choroid)
    then TNM Path T must = p2B (tumor superficially invades optic nerve head but does not extend past lamina cribrosa and exhibits focal choroidal invasion)
D.  If SSF 1 = 490 (tumor with minimal optic nerve and/or choroidal invasion NOS)
    then TNM Path T must = p2 (tumor with minimal optic nerve and/or choroidal invasion)
E.  If SSF 1 = 540 (tumor invades optic nerve through the level of lamina cribrosa but not to line of resection without massive invasion of choroid), 550 (tumormassively invades choroid without invasion of optic nerve through level of lamina cribrosa), 560 (tumor with significant optic nerve and/or choroidal invasion)
    then TNM Path T must = p3A (tumor invades optic nerve past lamina cribrosa but not to surgical resection line or tumor exhibits massive choroidal invasion)
F.  If SSF 1 =  570 (tumor invades optic nerve through level of lamina cribrosa but not to line of resection with massive invasion of choroid)
    then TNM Path T must = p3B (tumor invades optic nerve past lamina cribrosa but not to surgical resection line and exhibits massive choroidal invasion)
G.  If SSF 1  = 590 (tumor with significant optic nerve and/or choroidal invasion NOS)
    then TNM Path T must = p3 (tumor with significant optic nerve and/or choroidal invasion)
H.  If SSF 1 = 725 (invasion of optic nerve to resection line without extraocular extension)
    then TNM Path T must = p4A (tumor invades optic nerve to resection line but no extra-ocular extension identified)
I.  If SSF 1 = 745 (extraocular extension without invasion of optic nerve to resection line), 755 (extraocular extension without invasion of optic nerve to resection line including extension to brain), 810 (stated as pT4 NOS with no other information on extension)
    then TNM Path T must = p4 (Tumor invades optic nerve to resection line or exhibits extra-ocular extension elsewhere)
J.  If SSF 1 = 765 (invasion of optic nerve to resection line with extraocular extension), 775 (invasion of optic nerve to resection line with extraocular extension to brain),790 (stated as [T4b with no other information on extension)
    then TNM Path T must = p4B (tumor invades optic nerve to resection line and extra-ocular extension identified)
K.  If SSF 1 = 950 (no evidence of primary tumor)
    then TNM Path T must = p0
L.  If SSF 1 = 999 (enucleation performed, extension unknown)
    then TNM Path T must = pX
M.  If SSF 1 = 960 (unknown if enucleation performed), 970 (no enucleation performed
    then TNM Path T must = pX or blank]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-19" ref="67408">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-17" ref="67612">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF586" name="TNM Path T, SSF 1, 2, 3 Kidney (COC)" tag="N2269" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_1,CS_Site-Specific_Factor_2,CS_Site-Specific_Factor_3,Histologic_Type_ICD-O-3,Primary_Site,TNM_Path_T,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.tnmPathT == null || line.tnmPathT == '88')
    return true

//Skip conditions 6, 7
if ((line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7') || line.tnmPathDescriptor == '4' || line.tnmPathDescriptor == '6')
    return true

//Check for Kidney cases (skip condition 4)
String hist = line.histologicTypeIcdO3
if (line.primarySite != 'C649' || !((hist >= '8000' && hist <= '8576') || (hist >= '8940' && hist <= '8950') || hist == '8980' || hist == '8981'))
    return true

// Check SSF 1
String ssf1 = line.csSiteSpecificFactor1
String ssf2 = line.csSiteSpecificFactor2
if (ssf1 != '988' && ssf1 != null) {
    if (ssf1 == '000' && ssf2 == '000' && !(Functions.matches(line.tnmPathT, /^p[12][AB]?|pX$/)))
        return false
    else if ((ssf1 == '010' || ssf1 == '020' || ssf1 == '030' || ssf1 == '991') && !(Functions.matches(line.tnmPathT, /^p3[ABC]?|p4$/)))
        return false
    else if (ssf1 == '998' && line.tnmPathT != null && line.tnmPathT != 'pX')
        return false
}

// Check SSF 2
if (ssf2 != '988' && ssf2 != null) {
    if (ssf2 == '010' && !(Functions.matches(line.tnmPathT, /^p3[ABC]?|p4|pX$/)))
        return false
    else if (ssf2 ==~ /^0[2457]0$/ && !(Functions.matches(line.tnmPathT, /^p3[BC]|p[4X]$/)))
        return false
    else if (ssf2 ==~ /^0[3689]0$/ && !(Functions.matches(line.tnmPathT, /^p3C|p[4X]$/)))
        return false
    else if (ssf2 == '998' && line.tnmPathT != null && line.tnmPathT != 'pX')
        return false
}

// Check SSF 3
String ssf3 = line.csSiteSpecificFactor3
if ((ssf3 == '010' || ssf3 == '030' || ssf3 == '040') && line.tnmPathT != 'p4')
    return false

return true]]></expression>
            <message>TNM Path T, SSF 1, 2, 3 conflict for Kidney</message>
            <description><![CDATA[Purpose: This edit verifies that TNM Path T is coded consistently with CS SSF 1, Invasion Beyond Capsule, CS SSF 2, Vein Involvement, and CS SSF 3, Ipsilateral Adrenal Gland Involvement, for Kidney parenchyma.

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Primary site is not site/histology group 043 (Kidney)
5. TNM Path T is blank or 88
6. TNM Edition Number not = 07, U7
7. TNM Path Descriptor = 4,6


For Kidney, SSF 1:

A. If SSF 1 = blank or 988, edit checks are skipped.

B. If SSF 1 = 000 (Invasion beyond capsule not present/not identified and
      SSF 2 = 000 ((Vein involvement not present/not identified),
        then TNM Path T = p1, p1A, p1B, p2, p2A,p2B, or pX (tumor limited to kidney or unknown)
C.  If SSF 1 = 010 (Lateral invasion, Perinephric fat), 020 (Medial invasion, Renal sinus, Perisinus fat), 030 (020 + 010), 991 (Invasion beyond capsule NOS)
        then TNM Path T must = p3 (Tumor extends into major veins or perinephric tissues) or higher.
D.  IF SSF 1 = 998 (No surgical resection of primary site),
        then TNM Path T must = pX or blank.

For Kidney, SSF 2:

A.  If SSF 2 = blank or 988, edit checks are skipped.

B.  If SSF 2 = 010 (Involvement of renal vein only)
        then TNM Path T must = p3 (Tumor extends into major veins or perinephric tissue) or higher.
C.  If SSF 2 = 020 (Involvement of Inferior vena cava below the diaphragm),040 (Involvement of IVC NOS), 050 (Involvement of IVC below diaphragm plus involvement of renal vein), or 070 (Involvement of IVC NOS plus involvement of renal vein)
        then TNM Path T must = p3B (Tumor grossly extends into vena cava below diaphragm) or higher
D.  If SSF 2 = 030 (Involvement of IVC above diaphragm),060 (Involvement of IVC above diaphragm plus involvement of renal vein),080 (Involvement of IVC above diaphragm plus involvement of IVC below diaphragm), or 090 (Involvement of IVC above diaphragm plus involvement of IVC below diaphragm plus involvement of renal vein)
        then TNM Path T must = p3C (Tumor grossly extends into vena cava above diaphragm or invades wall of vena cava) or higher.

E.  If SSF 2 = 998 (No surgical resection of primary site),
        then TNM Path T must = pX or blank

For Kidney, SSF 3:

A.  If SSF 3 = blank or 988, edit checks are skipped

B.  If SSF 3 = 010 (Contiguous involvement of ipsilateral adrenal gland), 030 (Noncontiguous plus contiguous involvement of ipsilateral adrenal gland), or 040 (Involvement of ipsilateral adrenal gland, not stated whether contiguous or noncontiguous)
        then TNM Path T must = p4 (Tumor invades beyond Gerota's fascia including contiguous extension into the ipsilateral adrenal gland)]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-20" ref="67409">Edit created.</event>
                <event version="SE16-015-02" user="kirbyk" date="2016-07-01" ref="67483">Updated edit logic and description for SSF 2.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-17" ref="67613">Added skip conditions for TNM Edition Number and TNM Path Descriptor.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="kirbyk" date="2018-04-02" ref="67722">Updated logic and description for SSF1.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF587" name="TNM Path T, SSF 2, 7 Melanoma Skin (COC)" tag="N2270" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_2,CS_Site-Specific_Factor_7,Histologic_Type_ICD-O-3,Primary_Site,TNM_Path_T,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.tnmPathT == null || line.tnmPathT == '88')
    return true

//Skip condition 6
if ((line.csSiteSpecificFactor2 == null && line.csSiteSpecificFactor7 == null) || (line.csSiteSpecificFactor2 == '988' && line.csSiteSpecificFactor7 == '988'))
    return true

//Skip condition 7, 8
if ((line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7') || line.tnmPathDescriptor == '4' || line.tnmPathDescriptor == '6')
    return true

//Skip condition 4
if (line._tnmSchemaId != 'melanoma_skin')
    return true

if (Functions.matches(line.tnmPathT, /^p[1234]A$/))
    return line.csSiteSpecificFactor2 == '000'
else if (Functions.matches(line.tnmPathT, /^p[234]B$/))
    return line.csSiteSpecificFactor2 == '010'
else if (line.tnmPathT == 'p1B')
    return line.csSiteSpecificFactor2 != '000' || (line.csSiteSpecificFactor7 != '000' && line.csSiteSpecificFactor7 != '990' && line.csSiteSpecificFactor7 != '998')

return true]]></expression>
            <message>TNM Path T, SSF 2,7 conflict for Melanoma Skin</message>
            <description><![CDATA[Purpose: This edit verifies that TNM Path T is coded consistently with CS SSF 2, Ulceration, and CS SSF 7, Primary Tumor Mitotic Count/Rate for Melanoma of Skin. For pT1B, the edit verifies that either ulceration is present or mitotic rate is greater than or equal to 1 mitosis per square millimeter.

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Site/histology is not Melanoma of Skin
5. TNM Path T is blank or 88
6. CS SSF 2 and CS SSF 7 are blank or 988
7. TNM Edition Number not = 07, U7
8. TNM Path Descriptor = 4,6


For TNM Schema Melanoma Skin, CS SSF 2:

A.  If TNM Path T = p1A, p2A, p3A, p4A (without ulceration)
        then SSF 2 must = 000 (no ulceration present)

B.  If TNM Path T = p2B, p3B, p4B (with ulceration)
        then SSF 2 must = 010 (ulceration present)

C.  If TNM Path T = p1B (with ulceration or mitosis >1/sq mm)
        then SSF 2 must = ulceration or
        SSF 7 must = positive mitoses

    [Implemented in edit logic as
        SSF 2 must not = 000 (without ulceration)
        and SSF 7 must not = 000 (no mitoses), 990 (stated as < 1 mitosis/sq mm),
        or 998 (no histologic examination of primary site)]]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-20" ref="67410">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-17" ref="67614">Added skip conditions for TNM Edition Number and TNM Path Descriptor.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF588" name="TNM Path T, SSF 3 Prostate (COC)" tag="N2271" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_3,Histologic_Type_ICD-O-3,Primary_Site,TNM_Path_T,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.tnmPathT == null || line.tnmPathT == '88' || line.csSiteSpecificFactor3 == null)
    return true

//Skip condition 7
if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
    return true

//Edit is skipped if case is not prostate (skip condition 4)
String hist = line.histologicTypeIcdO3
if (line.primarySite != 'C619' || !((hist >= '8000' && hist <= '8110') || (hist >= '8140' && hist <= '8576') || (hist >= '8940' && hist <= '8950') || hist == '8980' || hist == '8981'))
    return true

String ssf3 = line.csSiteSpecificFactor3
if (ssf3 == '000')
    return line.tnmPathT == '88'
else if (ssf3 == '200' || ssf3 == '300' || ssf3 == '320' || ssf3 == '400')
    return line.tnmPathT == 'p2'
else if (ssf3 == '210' || ssf3 == '330' || ssf3 == '402')
    return line.tnmPathT == 'p2A'
else if (ssf3 == '220' || ssf3 == '340' || ssf3 == '404')
    return line.tnmPathT == 'p2B'
else if (ssf3 == '230' || ssf3 == '350' || ssf3 == '406')
    return line.tnmPathT == 'p2C'
else if (ssf3 == '495')
    return line.tnmPathT == 'p3'
else if (ssf3 == '415' || ssf3 == '420' || ssf3 == '430' || ssf3 == '480' || ssf3 == '482' || ssf3 == '483')
    return line.tnmPathT == 'p3A'
else if (ssf3 == '485' || ssf3 == '490')
    return line.tnmPathT == 'p3B'
else if (ssf3 == '500' || ssf3 == '510' || ssf3 == '520' || ssf3 == '600' || ssf3 == '750')
    return line.tnmPathT == 'p4'
else if (ssf3 == '950')
    return line.tnmPathT == 'p0'
else if (ssf3 == '990' || ssf3 == '985')
    return line.tnmPathT == 'pX'
else if (ssf3 == '960' || ssf3 == '970' || ssf3 == '980')
    return Functions.matches(line.tnmPathT, /^pX|p3[AB]?|p4$/)

return true]]></expression>
            <message>TNM Path T and SSF 3 conflict for Prostate</message>
            <description><![CDATA[Purpose: This edit verifies that TNM Path T is coded consistently with CS SSF 3, Pathologic Extension, for Prostate.

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Primary site/histology group is not 041 (Prostate)
5. TNM Path T is blank or 88
6. CS SSF 3 is blank
7. TNM Edition Number is not = 07, U7


For Prostate (Site: C619 Histology 8000-8110,8140-8576,8940-8950,8980-8981), SSF 3:

A. If SSF 3 = 000 (In situ, intraepithelial, noninvasive)
    then TNM Path T must = 88 (not eligible for staging)
B.  If SSF 3 = 200 (Involves one lobe/side, NOS), 300 (Localized NOS), 320 (Invasion into but not beyond prostatic capsule), 400 (No extracapsular extension but specific margins involved)
    then TNM Path T must = p2 (Organ confined)
C.  If SSF 3 = 210 (Involves one half of one lobe/side or less), 330 (Invasion into but not beyond prostatic capsule plus involves one half of one lobe/side or less), 402 (No extracapsular extension but specific margins involved plus involves one half of one lobe/side or less)
    then TNM Path T must = p2A (unilateral, one-half of one side or less)
D.  If SSF 3 = 220 (Involves more than one half of one lobe/side but not both lobes/sides), 340 (Invasion into but not beyond prostatic capsule plus involves more than one half of one lobe/side but not both lobes/sides), 404 (No extracapsular extension but specific margins involved plus involves more than one half of one lobe/side but not both lobes/sides)
    then TNM Path T must = p2B (unilateral, involving more than one-half of side but not both sides
E.  If SSF 3 = 230 (Involves both lobes/sides), 350 (Invasion into but not beyond prostatic capsule plus involves both lobes/sides), 406 (No extracapsular extension but specific margins involved plus involves both lobes/sides)
    then TNM Path T must = p2C (Bilateral disease)
F.  If SSF 3 =  495 (Stated as pT3 NOS with no other information on pathologic extension)
    then TNM Path T must = p3 (tumor extends through prostate capsule)
G.  If SSF 3  = 415 (Extension to periprostatic tissue),420 (unilateral extracapsular extension), 430 (bilateral extracapsular extension), 480 (extracapsular extension and specific margins involved), 482 (microscopic bladder neck involvement), 483 (stated as pT3a with no other information on pathologic extension)
    then TNM Path T must = p3A (Extraprostatic extension or microscopic invasion of bladder neck)
H.  If SSF 3 = 485 (extension to seminal vesicles), 490 (extension to seminal vesicles plus microscopic bladder neck involvement)
    then TNM Path T must = p3B (Seminal vesicle invasion)
I.  If SSF 3 = 500 (extension to or fixation to adjacent structures other than seminal vesicles), 510 (extraprostatic urethra), 520 (levator muscle, skeletal muscle, ureter), 600 (extension to or fixation to pelvic wall or pelvic bone), 700 (further contiguous extension), 750 (stated as pT4 with no other information on pathologic extension)
    then TNM Path T must = p4 (Tumor is fixed or invades adjacent structures other than seminal vesicles)
J.  If SSF 3 = 950 (no evidence of primary tumor)
    then TNM Path T must = p0
K.  If SSF 3 = 990 (Prostatectomy done, extension not stated), 985 (Autopsy performed but extension unknown)
    then TNM Path T must = pX
L.  If SSF 3 = 960 (Unknown if prostatectomy done), 970 (no prostatectomy done within first course of treatment), 980 (prostatectomy performed but not considered first course of treatment)
    then TNM Path T must = pX, p3, p3A, p3B, p4 or blank]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-23" ref="67411">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-11-30" ref="67552">Added valid codes for SSF3 = 960, 970, 980.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-17" ref="67615">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF589" name="TNM T, Breast, Inflam Carcinoma (COC)" tag="N2272" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Histologic_Type_ICD-O-3,Primary_Site,TNM_Clin_T,TNM_Path_T,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || (line.tnmPathT == null && line.tnmClinT == null) || (line.tnmPathT == '88' && line.tnmClinT == '88'))
    return true

//Edit is skipped if case is not Breast
if (!(Functions.matches(line.primarySite, /^C50[0-689]$/)))
    return true

if (line.histologicTypeIcdO3 == '8530')
    return line.tnmClinT == 'c4D' || line.tnmPathT == 'p4D'

return true]]></expression>
            <message>TNM T conflicts for Breast Inflammatory Carcinoma</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Primary Site not Breast
5. TNM Clin T and TNM Path T are both blank, 88


For Breast (Site: C500-C506, C508-C509):

If Histologic Type ICD-O-3 = 8530 (inflammatory carcinoma)
Then
    TNM Clin T must = c4D or TNM Path T must = p4D]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-23" ref="67412">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF590" name="TNM T, Clin and Path Stage, Behavior 3 (COC)" tag="N2275" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

//Skip condition 4
if (line.tnmClinT == '88' && line.tnmClinN == '88' && line.tnmClinM == '88' && line.tnmClinStageGroup == '88' &&
    line.tnmPathT == '88' && line.tnmPathN == '88' && line.tnmPathM == '88' && line.tnmPathStageGroup == '88')
    return true

//Skip condition 5
if (line.tnmClinT == 'cX' && line.tnmClinN == 'cX' && line.tnmClinM == 'cX' && line.tnmClinStageGroup == '99' &&
    line.tnmPathT == 'pX' && line.tnmPathN == 'pX' && (line.tnmPathM == 'pX' || line.tnmPathM == 'cX') && line.tnmPathStageGroup == '99')
    return true

//Skip condition 6
if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
    return true

if (line.tnmPathT == null && line.tnmPathStageGroup == null && line.tnmClinT != null)
    if (!(Functions.matches(line.tnmClinT, /^pA|pIS[UD]?$/)) && !(Functions.matches(line.tnmClinStageGroup, /^0(A|IS)?$/)))
        return line.behaviorCodeIcdO3 == '3'

if (line.tnmPathT != null && line.tnmPathStageGroup != null)
    if (!(Functions.matches(line.tnmPathT, /^pA|pIS[UD]?$/)) && !(Functions.matches(line.tnmClinStageGroup, /^0(A|IS)?$/)) && !(Functions.matches(line.tnmPathStageGroup, /^0(A|IS)?$/)))
        return line.behaviorCodeIcdO3 == '3'

return true]]></expression>
            <message>TNM T, Clin and Path Stage conflict for Behavior 3</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid.
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. All TNM fields are coded 88 (AJCC staging not applicable)
      TNM Clin T = 88
      TNM Clin N = 88
      TNM Clin M = 88
      TNM Clin Stage Group = 88
      TNM Path T = 88
      TNM Path N = 88
      TNM Path M = 88
      TNM Path Stage Group = 88
5. If all of the following conditions are true, fields have probably been defaulted and the edit is skipped:
      TNM Clin T = cX
      TNM Clin N = cX
      TNM Clin M = cX
      TNM Clin Stage Group = 99
      TNM Path T = pX
      TNM Path N = pX
      TNM Path M = pX, cX
      TNM Path Stage Group = 99
6. TNM Edition Number not = 07, U7


Not in situ, Behavior ICD-O-3 = 3

Note:  The edit will pass if TNM Clin T, TNM Clin Stage Group, TNM Path T, and TNM Path Stage Group are blank.  The edit will not pass if some but not all of these 4 fields are coded 88.

For all TNM Groups:


   A.  If TNM Path T and TNM Path Stage Group are empty:
            If TNM Clin T is not pIS, pA, pISU, pISD
            and TNM Clin Stage Group is not 0, 0A, 0IS
        Then Behavior Code ICD-O-3 must = 3.

    B. If TNM Path T and TNM Path Stage Group are not empty:
        If TNM Path T is not pIS, pA, pISU, pISD
          and TNM Clin Stage Group is not 0, 0A, 0IS
        and TNM Path Stage Group is not 0, 0A, 0IS
         Then Behavior Code ICD-O-3 must = 3]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-24" ref="67413">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-18" ref="67617">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-12" ref="69326">Removed several dependencies.</event>
            </history>
        </rule>
        <rule id="IF591" name="TNM T, Descriptor, SSF 1 Thyroid (COC)" tag="N2277" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

//Skip condition 5
if ((line.tnmPathT == null && line.tnmClinT == null) || (line.tnmPathT == '88' && line.tnmClinT == '88'))
    return true

//Skip conditions 6, 7
if (line.csSiteSpecificFactor1 == null || line.csSiteSpecificFactor1 == '988' || (line.tnmClinDescriptor == null && line.tnmPathDescriptor == null))
    return true

//Skip condition 8
if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
    return true

//Edit is skipped if case is not Thyroid (skip condition 4)
String hist = line.histologicTypeIcdO3
if (line.primarySite != 'C739' || !((hist >= '8000' && hist <= '8576') || (hist >= '8940' && hist <= '8950') || hist == '8980' || hist == '8981'))
    return true

if (line.csSiteSpecificFactor1 == '010' && line.tnmClinDescriptor != '0' && line.tnmPathDescriptor != '0')
    return false
else if (line.csSiteSpecificFactor1 == '020' && line.tnmClinDescriptor != '3' && line.tnmPathDescriptor != '3' && line.tnmPathDescriptor != '6')
    return false
else if (line.tnmClinDescriptor == '0' && line.tnmPathDescriptor == '0' && line.csSiteSpecificFactor1 != '010')
    return false
else if (line.tnmClinDescriptor == '3' && (line.tnmPathDescriptor == '3' || line.tnmPathDescriptor == '6') && line.csSiteSpecificFactor1 != '020')
    return false

return true]]></expression>
            <message>TNM T, Descriptor, SSF 1 conflict for Thyroid</message>
            <description><![CDATA[Purpose: This edit verifies that CS Site-Specific Factor 1 (Solitary vs Multifocal Tumor) is coded consistently with TNM Clin Descriptor and TNM Path Descriptor for Thyroid.

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Site/histology group is not Thyroid
5. TNM Clin T and TNM Path T are blank or 88
6. CS SSF 1 is blank or 988.
7. TNM Clin Descriptor and TNM Path Descriptor are blank
8. TNM Edition Number not = 07, U7

For Thyroid(Site: C739 Histology: 8000-8576, 8940-8950, 8980-8981):

A. if CS SSF 1 = 010 (Solitary tumor),
    then TNM Clin Descriptor or TNM Path Descriptor must = 0 (none).

3. If CS SSF 1 = 020,( Multifocal tumor),
    then TNM Clin Descriptor must = 3 (M, multiple primary tumors in a single site) or TNM Path Descriptor must = 3 (M, multiple primary tumors in a single site) or 6 (M&Y, multiple primary tumors and initial multimodality therapy).

C.  If TNM Clin Descriptor and TNM Path Descriptor = 0 (none)
    then CS SSF 1 must = 010 (Solitary tumor)

D.  If TNM Clin Descriptor = 3 (Multiple primary tumors in a single site) and TNM Path Descriptor = 3 (multiple tumors in a single site) or 6 (Multiple primary tumors and initial multimodality therapy)
    then CS SSF 1 must = 020 (Multifocal tumor)]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-24" ref="67414">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-18" ref="67619">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF592" name="TNM T, N, M - No Primary Found (COC)" tag="N2278" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,TNM_Clin_M,TNM_Clin_N,TNM_Clin_T,TNM_Path_M,TNM_Path_N,TNM_Path_T,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line.tnmClinT == 'c0') {
    if ((line.tnmClinN == null || Functions.matches(line.tnmClinN, /^cX|c0[AB]?$/)) &&
        (line.tnmClinM == null || line.tnmClinM == 'c0' || line.tnmClinM == 'c0I+') &&
        (line.tnmPathT == null || line.tnmPathT == 'pX' || line.tnmPathT == 'p0') &&
        (line.tnmPathN == null || Functions.matches(line.tnmPathN, /^pX|c0|p0([IM][+\-])?$/)) &&
        (line.tnmPathM == null || line.tnmPathM == 'c0' || line.tnmPathM == 'c0I+'))
        return false
}

if (line.tnmPathT == 'p0') {
    if ((line.tnmClinT == null || line.tnmClinT == 'pX' || line.tnmClinT == 'p0') &&
        (line.tnmClinN == null || Functions.matches(line.tnmClinN, /^cX|c0[AB]?$/)) &&
        (line.tnmClinM == null || line.tnmClinM == 'c0' || line.tnmClinM == 'c0I+') &&
        (line.tnmPathN == null || Functions.matches(line.tnmPathN, /^pX|c0|p0([IM][+\-])?$/)) &&
        (line.tnmPathM == null || line.tnmPathM == 'c0' || line.tnmPathM == 'c0I+'))
        return false
}

return true]]></expression>
            <message>TNM T, N and M conflict for evidence of primary tumor</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
2. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)

This edit requires that there is some evidence for tumor involvement of nodal or metastatic sites if there is no evidence of primary tumor.

For all site/histology groups:

If there is no evidence of primary tumor clinically and no pathologic assessment of tumor, nodes or metastasis must be known clinically or pathologically:

  If TNM Clin T = c0
  Then
      TNM Clin N, TNM Clin M, TNM Path T, TNM Path N and TNM Path M
      must not all equal c/p0, c/pX, or blank


If there is no evidence of primary tumor on pathologic examination, there must be some other evidence of tumor clinically or pathologically:

  If TNM Path T = p0
  Then
      TNM Clin T, TNM Clin N, TNM Clin M, TNM Path N and TNM Path M
      must not all equal c/p0, c/pX, or blank]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-24" ref="67415">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF593" name="TNM T, SSF 1 Conjunctiva (COC)" tag="N2281" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_1,Histologic_Type_ICD-O-3,Primary_Site,TNM_Clin_T,TNM_Path_T,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

//Skip condition 5
if ((line.tnmClinT == null && line.tnmPathT == null) || (line.tnmClinT == '88' && line.tnmPathT == '88'))
    return true

//Skip conditions 6, 7
if (line.csSiteSpecificFactor1 == null || line.csSiteSpecificFactor1 == '988' || (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7'))
    return true

//Skip condition 4
String hist = line.histologicTypeIcdO3
if (line.primarySite != 'C690' || !((hist >= '8000' && hist <= '8576') || (hist >= '8940' && hist <= '8950') || hist == '8980' || hist == '8981'))
    return true

Integer ssf1 = Functions.asInt(line.csSiteSpecificFactor1)
if ((ssf1 > 0 && ssf1 <= 50) || ssf1 == 990 || ssf1 == 991)
    return !((line.tnmPathT == null && line.tnmClinT == 'c2') || (line.tnmClinT == null && line.tnmPathT == 'p2') || (line.tnmClinT == 'c2' && line.tnmPathT == 'p2'))
else if ((ssf1 > 50 && ssf1 <= 980) || ssf1 == 992)
    return !((line.tnmPathT == null && line.tnmClinT == 'c1') || (line.tnmClinT == null && line.tnmPathT == 'p1') || (line.tnmClinT == 'c1' && line.tnmPathT == 'p1'))

return true]]></expression>
            <message>TNM T and SSF 1 conflict for Conjunctiva</message>
            <description><![CDATA[Purpose:  THis edit verifies that TNM Clin T and TNM Path T are coded consistently with CS SSF 1, Tumor Size, for Conjunctiva.

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Site/histology is not carcinoma of conjunctiva
5. TNM Clin T and TNM Path T are both blank or 88
6. CS Site-Specific Factor 1 is blank or 988
7. TNM Edition Number not = 07, U7


"980", "980 millimeters or larger", is the largest possible size for CS SSF 1.  990 = microscopic focus. "991" = described as less than 5mm, stated as T1. "992" = described as greater than 5mm, stated as T2.

The site-specific TNM T values as coded in CS SSF 1 are listed below.

For Conjunctiva(Site: 690 Histology: 8000-8576, 8940-8950, 8980-8981):

TNM T:                 1                        2
Tumor Size Summ        001-050, 990-991        051-980,992

A. If CS SSF 1 is within the range for T1:
    If TNM Path T is empty, TNM Clin T must not = c2.
    If TNM Clin T is empty, TNM Path T must not = p2.
    If both coded, both TNM Path T and TNM Clin T must not = 2.

B. If CS SSF 1 is within the range for T2:
    If TNM Path T is empty, TNM Clin T must not = c1.
    If TNM Clin T is empty, TNM Path T must not = p1.
    If both coded, both TNM Path T and TNM Clin T must not = 1.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-24" ref="67416">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-18" ref="67620">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF594" name="TNM T, SSF 1, 2 Lung (COC)" tag="N2282" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_1,CS_Site-Specific_Factor_2,Histologic_Type_ICD-O-3,Primary_Site,TNM_Clin_T,TNM_Path_T,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

//Skip conditon 5
if ((line.tnmClinT == null && line.tnmPathT == null) || (line.tnmClinT == '88' && line.tnmPathT == '88'))
    return true

//Skip condition 6
if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
    return true

//Edit is skipped if case if not Lung (skip condition 4)
String hist = line.histologicTypeIcdO3
if (!(Functions.matches(line.primarySite, /^C34[0-389]$/)) || !((hist >= '8000' && hist <= '8576') || (hist >= '8940' && hist <= '8950') || hist == '8980' || hist == '8981'))
    return true

if (line.csSiteSpecificFactor1 == '010' || line.csSiteSpecificFactor1 == '040') {
    if (line.tnmClinT != 'c3' && line.tnmClinT != 'c4' && line.tnmPathT != 'p3' && line.tnmPathT != 'p4')
        return false
}
else if (line.csSiteSpecificFactor1 == '020' || line.csSiteSpecificFactor1 == '030') {
    if (line.tnmClinT != 'c4' && line.tnmPathT != 'p4')
        return false
}

if (line.csSiteSpecificFactor2 == '010' || line.csSiteSpecificFactor2 == '020' || line.csSiteSpecificFactor2 == '040') {
    if (!(Functions.matches(line.tnmClinT, /^c[34]|c2[AB]?$/)) && !(Functions.matches(line.tnmPathT, /^p[34]|p2[AB]?$/)))
        return false
}
else if (line.csSiteSpecificFactor2 == '030') {
    if (line.tnmClinT != 'c3' && line.tnmClinT != 'c4' && line.tnmPathT != 'p3' && line.tnmPathT != 'p4')
        return false
}

return true]]></expression>
            <message>TNM T, SSF 1, 2 conflict for Lung</message>
            <description><![CDATA[Purpose: This edit verifies that TNM Clin T and TNM Path T are coded consistently with CS SSF 1, Separate Tumor Nodules Ipsilateral Lung, and CS SSF 2, Pleural/Elastic Layer Invasion by H&E or Elastic Stain

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Site/Histology group is not Lung
5. TNM Clin T and TNM Path T are blank or 88
6. TNM Edition Number not = 07, U7


For Lung (Site: C340-C343, C348-C349 Histology: 8000-8576,8940-8950,8980-8981), SSF 1:
A. If SSF 1 = 010 (separate tumor nodules in ipsilateral lung, same lobe) or 040 (separate tumor nodules ipsilateral lung unknown if same or different lobe),
    then TNM Clin T must = c3 (tumor with separate tumor nodule(s) in the same lobe) or higher, or TNM Path T must = p3 or higher.

B. If SSF 1 = 020 (separate tumor nodules in ipsilateral lung, different lobe) or 030 (separate tumor nodules ipsilateral lung same and different lobes),
    then TNM Clin T must = c4 (tumor with separate tumor nodule(s) in a different ipsilateral lobe), or TNM Path T must = p4.

For Lung (Site: C340-C343, C348-C349 Histology: 8000-8576,8940-8950,8980-8981), SSF 2:
A. If SSF 2 = 010 (PL1), 020 (PL2), or 040 (invasion of pleura NOS),
    then TNM Clin T must = c2 (invades visceral pleura (PL1 or PL2) or higher, or TNM Path T must = p2 or higher

B. If SSF 2 = 030 (PL3),
    then TNM Clin T must = c3 (invades parietal pleura (PL3)or higher, or TNM Path T must = p3 or higher.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-24" ref="67417">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-18" ref="67621">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF595" name="TNM T, SSF 10 Bile Ducts Intrahepatic (COC)" tag="N2283" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_10,Histologic_Type_ICD-O-3,Primary_Site,TNM_Clin_T,TNM_Path_T,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

//Skip condition 5
if ((line.tnmClinT == null && line.tnmPathT == null) || (line.tnmClinT == '88' && line.tnmPathT == '88'))
    return true

//Skip conditions 6, 7
if (line.csSiteSpecificFactor10 == null || line.csSiteSpecificFactor10 == '988' || (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7'))
    return true

//Edit is skipped if Site/Histology group is not Bile Ducts Intrahepatic (skip condition 4)
if (line.primarySite != 'C221' || (line.histologicTypeIcdO3 != '8160' && line.histologicTypeIcdO3 != '8161' && line.histologicTypeIcdO3 != '8180'))
    return true

if ((line.tnmClinT == 'c4' || line.tnmPathT == 'p4') && line.csSiteSpecificFactor10 != '010')
    return false
if (line.csSiteSpecificFactor10 == '010' && line.tnmClinT != 'c4' && line.tnmPathT != 'p4')
    return false

return true]]></expression>
            <message>TNM T and SSF 10 conflict for Bile Ducts Intrahepatic</message>
            <description><![CDATA[Purpose: This edit verifies that TNM Clin T and TNM Path T are coded consistently with CS SSF 10, Tumor Growth Pattern, for Bile Ducts Intrahepatic.

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Site/Histology group is not Bile Ducts Intrahepatic
5. TNM Clin T and TNM Path T are blank or 88
6. Site-Specific Factor 10 is blank or 988
7. TNM Edition Number not = 07, U7

For Bile Ducts Intrahepatic (Site:C221 Histology: 8160-8161,8180):


A. If TNM Clin T = c4 or TNM Path T = p4 (tumor with periductal invasion)
    then CS SSF 10 must = 010 (presence of periductal component)

B. If CS SSF 10 = 010 (presence of periductal component)
    then TNM Clin T must = c4 or TNM Path T must = p4 (tumor with periductal invasion).]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-24" ref="67419">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-18" ref="67622">Added skip condition for TNM Edition Number.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67741">Edit name change.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF596" name="TNM T, SSF 6 Skin of Eyelid (COC)" tag="N2286" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_6,Histologic_Type_ICD-O-3,Primary_Site,TNM_Clin_T,TNM_Path_T,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

//Skip condition 5
if ((line.tnmClinT == null && line.tnmPathT == null) || (line.tnmClinT == '88' && line.tnmPathT == '88'))
    return true

//Skip conditions 6, 7
if (line.csSiteSpecificFactor6 == null || line.csSiteSpecificFactor6 == '988' || (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7'))
    return true

//Edit is skipped if Site/Histology group is not Skin of Eyelid (skip condition 4)
String hist = line.histologicTypeIcdO3
if (line.primarySite != 'C441' || !((hist >= '8000' && hist <= '8576') || (hist >= '8940' && hist <= '8950') || hist == '8980' || hist == '8981'))
    return true

if (line.csSiteSpecificFactor6 == '010' && !(Functions.matches(line.tnmClinT, /^c3[AB]|c4$/)) && !(Functions.matches(line.tnmPathT, /^p3[AB]|p4$/)))
    return false

return true]]></expression>
            <message>TNM T and SSF 6 conflict for Skin of Eyelid</message>
            <description><![CDATA[Purpose: This edit verifies that TNM Clin T and TNM Path T are coded consistently with CS SSF 6 for Skin of Eyelid (Perineural Invasion).

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Site/histology group is not Skin of Eyelid
5. TNM Clin T and TNM Path T are blank or 88
6. CS SSF 6 is blank or 988
7. TNM Edition Number not = 07, U7


For skin of eyelid(Site:C441 Histology:8000-8576, 8940-8950, 8980-8981):

if CS SSF 6 = 010 (Perineural invasion present/identified),
    then TNM Clin T must equal c3a (Any T with perineural invasion) or higher (c3B, c4), or TNM Path T must equal p3a or higher (p3B, p4).]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-24" ref="67420">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-18" ref="67624">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF597" name="TNM T, SSF 6 Breast (COC)" tag="N2285" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_6,Histologic_Type_ICD-O-3,Primary_Site,TNM_Path_T,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

//Skip conditions 5, 6
if (line.tnmPathT == null || line.tnmPathT == '88' || line.csSiteSpecificFactor6 == null || line.csSiteSpecificFactor6 == '988')
    return true

//Skip conditions 7, 8
if ((line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7') || line.tnmPathDescriptor == '4' || line.tnmPathDescriptor == '6')
    return true

//Edit is skipped if Site/Histology group is not Breast (skip condition 4)
String hist = line.histologicTypeIcdO3
if (!(Functions.matches(line.primarySite, /^C50\d$/)) || !((hist >= '8000' && hist <= '8576') || (hist >= '8940' && hist <= '8950') || hist == '8980' || hist == '8981' || hist == '9020'))
    return true

if (line.csSiteSpecificFactor6 == '010')
    return line.tnmPathT == 'pIS'
if (line.tnmPathT == 'pIS')
    return line.csSiteSpecificFactor6 == '010'

return true]]></expression>
            <message>TNM T and SSF 6 conflict for Breast</message>
            <description><![CDATA[Purpose:  This edit checks for Primary Site of Breast that pathologic TNM T is consistent with CS SSF 6 (Size of Tumor-Invasive Component).

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Site/histology group is not 032, Breast.
5. TNM Path T is blank or 88
6. CS Site-Specific Factor 6 is blank or 988
7. TNM Edition Number not = 07, U7
8. TNM Path Descriptor = 4 or 6


For Breast:

A. If CS SSF 6 = 010 (Entire tumor reported as in situ),
then TNM Path T must = pIS.

B. If TNM Path T = pIS
then CS SSF 6 must = 010]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-27" ref="67426">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-18" ref="67627">Added skip conditions; removed checks for TNM Clin T.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-31" ref="67808">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF598" name="Tumor Size Pathologic, SSF 6 Breast (SEER)" tag="N2425" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

//Skip conditions 5, 6
if (line.tumorSizePathologic == null || line.csSiteSpecificFactor6 == null || line.csSiteSpecificFactor6 == '988')
    return true

//Skip condition 7
if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
    return true

//Edit is skipped if Site/Histology group is not Breast (32) (skip condition 4)
if (((Closure)Context.AJCC7CodeLookup16).call(line) != '032')
    return true

if (line.csSiteSpecificFactor6 == '060')
    return line.tumorSizePathologic == '999'

return true]]></expression>
            <message>Tumor Size Pathologic and SSF 6 conflict for Breast</message>
            <description><![CDATA[Purpose:  This edit checks for Primary Site of Breast that Tumor Size Pathologic is consistent with CS SSF 6 (Size of Tumor-Invasive Component).

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Site/histology group is not 032, Breast.
5. Tumor Size Pathologic is blank
6. CS Site-Specific Factor 6 is blank or 988
7. TNM Edition Number not = 07, U7

For Breast:

If CS SSF 6 = 060 (Invasive and in situ components present, unknown size of tumor),
    then Tumor Size Pathologic must be coded 999 or blank]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-27" ref="67427">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-18" ref="67625">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67741">Edit name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF599" name="TNM Clin Descriptor, Histologies - Ed 7 (COC)" tag="N2223" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Histologic_Type_ICD-O-3,Primary_Site,TNM_Clin_Descriptor,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.tnmClinDescriptor == null || !(Functions.matches(line.tnmClinDescriptor, /^[125]$/)))
    return true

//Ocular Adnexal Lymphoma
String hist = line.histologicTypeIcdO3
String site = line.primarySite
if (site ==~ /^C441|C69[056]$/ && ((hist >= '9590' && hist <= '9699') || (hist >= '9702' && hist <= '9738') || (hist >= '9811' && hist <= '9818') || (hist >= '9820' && hist <= '9837')))
    return true

//Primary Cutaneous Lymphoma
if (site ==~ /^C44\d|C51[01289]|C60[01289]|C632$/ && (hist == '9700' || hist == '9701'))
    return true

//Neoplasms
Integer siteInt = Functions.asInt(site?.substring(1))
if (((siteInt >= 0 && siteInt <= 419) || siteInt == 422 || siteInt == 423 || siteInt == 440 || (siteInt >= 442 && siteInt <= 689) || (siteInt >= 691 && siteInt <= 694) ||
    (siteInt >= 698 && siteInt <= 809)) && (hist == '9823' || hist == '9827' || (hist >= '9811' && hist <= '9818') || hist == '9837'))
    return true
if ((siteInt == 420 || siteInt == 421 || siteInt == 424) && ((hist >= '9811' && hist <= '9818') || hist == '9837'))
    return true

//Other
if (!(site ==~ /^C441|C69[056]$/) && ((hist >= '9590' && hist <= '9699') || (hist >= '9702' && hist <= '9727') || hist == '9735' || hist == '9737' || hist == '9738'))
    return true

return false]]></expression>
            <message>TNM Clin Descriptor, Site, Histology conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. TNM Clin Descriptor is blank
5. TNM Clin Descriptor not = 1, 2, 5


This edit verifies that TNM Clin Descriptor codes 1 [E (Extranodal, lymphomas only)], 2 [S (Spleen, lymphomas only)], and 5 [E & S (Extranodal and spleen, lymphomas only)] are coded only for lymphoma cases.

If TNM Clin Descriptor = 1, 2, 5 and case is not a lymphoma as specified below, an error is generated.

Ocular Adnexal Lymphoma:
Primary Site:
    C441, C690, C695-C696
Histologic Type ICD-O-3
    9590-9699, 9702-9738, 9811-9818, 9820-9837

Primary Cutaneous Lymphomas:
Primary Site:
     C440-C449
     C510-C512, C518-C519
     C600-C602, C608-C609, C632
Histologic Type ICD-O-3:
     9700,9701

Neoplasms manifesting as leukemia or lymphoma:

Primary Site:
     C000-C419,C422-C423,
    C440,C442-C689,
    C691-C694,C698-C809
Histologic Type ICD-O-3:
    9823,9827,9811-9818, 9837

Primary Site:
    C420,C421,C424
Histologic Type ICD-O-3:
    9811-9818, 9837

Other lymphomas:
Primary Site:
    All except C441, C690, C695-C696
Histologic Type ICD-O-3
    9590-9699, 9702-9727, 9735, 9737-9738]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-01" ref="67432">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-01" ref="67547">Added more neoplasm site/hist combinations.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF600" name="TNM Clin N, Digestive, Assess Nodes SSF (COC)" tag="N2229" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_1,CS_Site-Specific_Factor_2,Histologic_Type_ICD-O-3,Primary_Site,TNM_Clin_N,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.tnmClinN == null || line.tnmClinN == '88')
    return true

if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
    return true

String siteGroup = (String)((Closure)Context.AJCC7CodeLookup16).call(line)
if (!(siteGroup ==~ /^1[03][AB]|01[124]|17[AC]$/))
    return true

//Check for blank or 988 SSF based on site group
if (siteGroup ==~ /^10[AB]|011|17A$/ && (line.csSiteSpecificFactor1 == null || line.csSiteSpecificFactor1 == '988'))
    return true
if (siteGroup ==~ /^01[24]|13[AB]|17C$/ && (line.csSiteSpecificFactor2 == null || line.csSiteSpecificFactor2 == '988'))
    return true

if (siteGroup == '10A' || siteGroup == '10B' || siteGroup == '011') {
    if (line.csSiteSpecificFactor1 == '000' && line.tnmClinN != 'c0')
        return false
    else if (line.csSiteSpecificFactor1 == '100' && line.tnmClinN != 'c1')
        return false
    else if (line.csSiteSpecificFactor1 == '200' && line.tnmClinN != 'c2')
        return false
    else if (line.csSiteSpecificFactor1 == '300' && line.tnmClinN != 'c3')
        return false
    else if (line.csSiteSpecificFactor1 == '400' && line.tnmClinN == 'c0')
        return false
    else if (line.csSiteSpecificFactor1 == '999' && line.tnmClinN != 'cX')
        return false
}

if (siteGroup == '011') {
    if (line.csSiteSpecificFactor1 == '310' && line.tnmClinN != 'c3A')
        return false
    else if (line.csSiteSpecificFactor1 == '320' && line.tnmClinN != 'c3B')
        return false
}

if (siteGroup == '012' || siteGroup == '13A' || siteGroup == '014') {
    if (line.csSiteSpecificFactor2 == '000' && line.tnmClinN != 'c0')
        return false
    else if (line.csSiteSpecificFactor2 == '100' && line.tnmClinN != 'c1')
        return false
    else if (line.csSiteSpecificFactor2 == '200' && line.tnmClinN != 'c2')
        return false
    else if (line.csSiteSpecificFactor2 == '400' && line.tnmClinN == 'c0')
        return false
    else if (line.csSiteSpecificFactor2 == '999' && line.tnmClinN != 'cX')
        return false
}

if (siteGroup == '014') {
    if (line.csSiteSpecificFactor2 == '010' && line.tnmClinN != 'c1A')
        return false
    else if (line.csSiteSpecificFactor2 == '020' && line.tnmClinN != 'c1B')
        return false
    else if (line.csSiteSpecificFactor2 == '110' && line.tnmClinN != 'c2A')
        return false
    else if (line.csSiteSpecificFactor2 == '120' && line.tnmClinN != 'c2B')
        return false
}

if (siteGroup == '17A') {
    if (line.csSiteSpecificFactor1 == '000' && line.tnmClinN != 'c0')
        return false
    else if (Functions.matches(line.csSiteSpecificFactor1, /^[1-4]00$/) && line.tnmClinN != 'c1')
        return false
    else if (line.csSiteSpecificFactor1 == '999' && line.tnmClinN != 'cX')
        return false
}

if (siteGroup == '13B' || siteGroup == '17C') {
    if (line.csSiteSpecificFactor2 == '000' && line.tnmClinN != 'c0')
        return false
    else if (Functions.matches(line.csSiteSpecificFactor2, /^[124]00$/) && line.tnmClinN != 'c1')
        return false
    else if (line.csSiteSpecificFactor2 == '999' && line.tnmClinN != 'cX')
        return false
}

return true]]></expression>
            <message>TNM Clin N, Assess Nodes SSFs conflict for Digestive</message>
            <description><![CDATA[The edit verifies consistency between the CS Site-Specific Factor coding Clinical Assessment of Lymph Nodes, and the assigned TNM Clin N category.

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Site/Histology group is not included in list below (not 10A,10B,011,012,13A,13B,014,17A,17C).
5. TNM Clin N is blank or 88
6. SSF coding nodes assessment is blank or 988
7. TNM Edition number is not 07 or U7

(Site/histology group is determined before skips 4 and 6 are applied.)

TNM Clin N may be blank.  If entered, it will be edited site-specifically. Code 400, clinically positive regional node(s), NOS, will be accepted with any TNM Clin N value except cN0 for groups 10A, 10B, 11, 12, 13A and 14.

The site-specific TNM Clinical N values with the corresponding codes in the Site-Specific Factor used to collect the information are listed below. The number next to each site title indicates the respective chapter in the AJCC Cancer Staging Manual, Edition 7. The list includes only those digestive site/histology groups where assessment of clinical N is coded separately in a site-specific factor.

The site/histology groups are identified by site and histology in the edit Primary Site, Stage Group 2016 - Ed 7.


10. Esophagus and Esophagus Gastric Junction

    10A. Esophagus
    10B. Esophagus Gastric Junction

TNM N Clin:   X            0        1            2            3
SSF 1:           999, 400    000        100, 400    200, 400    300, 400

11. Stomach

TNM N Clin:   X            0        1            2            3            3A            3B
SSF 1:        999, 400    000        100, 400    200, 400    300, 400    310, 400    320, 400

12. Small Intestine

TNM N Clin:   X            0        1            2
SSF 2:           999, 400    000        100, 400    200, 400

13. Appendix

    13A. Appendix: Carcinoma

TNM N Clin:   X            0        1            2
SSF 2:           999, 400    000        100, 400    200, 400

     13B. Appendix: Carcinoid

TNM N Clin:   X         0        1
SSF 2:        999       000      100, 200,400


14. Colon and Rectum

TNM N Clin:   X            0        1            1A            1B            2            2A            2B
SSF 2:           999, 400    000        100, 400    010, 400    020, 400    200, 400    110, 400    120, 400

17. Neuroendocrine Tumors (NET)

    17A. NET: Stomach

TNM N Clin:   X            0        1
SSF 1:           999        000        100, 200, 300, 400

17C. NET: Colon and Rectum

TNM N Clin:   X            0        1
SSF 2:           999        000        100, 200, 400]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-02" ref="67433">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-11-30" ref="67549">Added cX as valid for code 400 for some groups.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-13" ref="67584">Added skip condition for TNM Edition Number, changed valid codes for 13B.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF601" name="TNM Groups Not Stageable - Insitu (COC)" tag="N2239" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.dateOfDiagnosisYear > '2017' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.behaviorCodeIcdO3 == '3')
    return true

String siteGroup = (String)((Closure)Context.AJCC7CodeLookup16).call(line)
if (line.behaviorCodeIcdO3 == '2' && siteGroup ==~ /^00[79]|08[ABCDEF]|13B|16[AB]|17[BC]|018|36[BC]|37A|039|04[13]|47[AB]|51[AB]|05[34]|57B$/)
    return line.tnmClinT == '88' && line.tnmClinN == '88' && line.tnmClinM == '88' && line.tnmClinStageGroup == '88' &&
           line.tnmPathT == '88' && line.tnmPathN == '88' && line.tnmPathM == '88' && line.tnmPathStageGroup == '88'

return true]]></expression>
            <message>TNM conflicts for Not Stageable Insitu</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is less than 2016, greater than 2017, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death certificate only)
3. Behavior Code ICD-O-3 = 0 (benign), 1 (borderline), or 3 (invasive)


For following TNM Groups, if Behavior Code ICD-O-3 is 2, then TNM Clin T, TNM Clin N, TMN Clin M, TNM Clin Stage Group, TNM Path T, TNM Path N, TNM Path M, and TNM Path Stage Group must all = 88. AJCC does not consider these cases stageable.

  7.   Major Salivary Glands
  8.   Thyroid Gland (08A-08F)
  9.   Mucosal Melanoma of the Head and Neck
  13B. Appendix: Carcinoid
  16.  GIST (16A-16B)
  17B. NET: Small Intestine and Ampulla of Vater
  17C. NET: Colon and Rectum
  18.  Liver
  36B. Corpus Sarcoma
  36C. Corpus Adenosarcoma
  37A. Ovary
  39.  Gestational Trophoblastic Tumors
  41.  Prostate
  43.  Kidney
  47.  Adrenal (47A, 47B)
  51A. Melanoma of Choroid
  51B. Melanoma of Iris
  53.  Carcinoma of the Lacrimal Gland
  54.  Sarcoma of the Orbit
  57B. Primary Cutaneous Lymphomas]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-08" ref="67434">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-30" ref="68196">Edit is now skipped for DX Year 2018+.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-12" ref="69326">Removed several dependencies.</event>
            </history>
        </rule>
        <rule id="IF602" name="TNM Path T, Primary Site, Surgery - Ed 7 (COC)" tag="N2266" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Histologic_Type_ICD-O-3,Primary_Site,RX_Summ--Surg_Prim_Site,TNM_Path_T,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[//Skip conditions 1, 2
if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' || line.typeOfReportingSource == '6')
    return true

//Skip conditions 3, 4
if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.tnmPathT == null || line.tnmPathT == '88')
    return true

//Skip conditions 5, 6
if (line.rxSummSurgPrimSite == null || (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7'))
    return true

String siteGroup = (String)((Closure)Context.AJCC7CodeLookup16).call(line)
if (siteGroup == '046') {
    if (line.sex == '2' || line.sex == '6')
        siteGroup = '46A'
    else
        siteGroup = '46B'
}

//A.
if (((List)Context.IF602_List1).contains(siteGroup) && Functions.matches(line.tnmPathT, /^p1[ABCD]?|p1MI|p[23][ABCD]?|p4A?$/) && (line.rxSummSurgPrimSite < '20' || line.rxSummSurgPrimSite == '99'))
    return false
else if (((List)Context.IF602_List2).contains(siteGroup) && Functions.matches(line.tnmPathT, /^p1[ABCD]?|p1MI|p2[ABCD]?|p3[AB]?$/) && (line.rxSummSurgPrimSite < '20' || line.rxSummSurgPrimSite == '99'))
    return false
else if (((List)Context.IF602_List3).contains(siteGroup) && Functions.matches(line.tnmPathT, /^p1[ABCD]?|p1MI|p[23][ABCD]?|p4[ABC]?$/) && (line.rxSummSurgPrimSite < '20' || line.rxSummSurgPrimSite == '99'))
    return false
else if (siteGroup == '039' && line.tnmPathT == 'p1' && (line.rxSummSurgPrimSite < '20' || line.rxSummSurgPrimSite == '99'))
    return false
else if ((siteGroup == '027' || siteGroup == '033') && Functions.matches(line.tnmPathT, /^p1[ABCD]?|p2$/) && (line.rxSummSurgPrimSite < '20' || line.rxSummSurgPrimSite == '99'))
    return false
else if (siteGroup == '028' && Functions.matches(line.tnmPathT, /^p1[ABCD]?|p1MI|p2A?$/) && (line.rxSummSurgPrimSite < '20' || line.rxSummSurgPrimSite == '99'))
    return false
else if (siteGroup == '043' && Functions.matches(line.tnmPathT, /^p1[ABCD]?|p1MI|p2[ABCD]?|p3[ABC]?$/) && (line.rxSummSurgPrimSite < '20' || line.rxSummSurgPrimSite == '99'))
    return false
else if (siteGroup == '052' && Functions.matches(line.tnmPathT, /^p1[ABCD]?|p1MI|p[23][ABCD]?|p4A?$/) && (line.rxSummSurgPrimSite < '20' || line.rxSummSurgPrimSite == '99'))
    return false
else if (siteGroup == '053' && Functions.matches(line.tnmPathT, /^p1[ABCD]?|p1MI|p[23][ABCD]?|p4[AB]?$/) && (line.rxSummSurgPrimSite < '20' || line.rxSummSurgPrimSite == '99'))
    return false
else if (siteGroup == '51A' && Functions.matches(line.tnmPathT, /^p[1234][ABCD]?$/) && (line.rxSummSurgPrimSite < '20' || line.rxSummSurgPrimSite == '99'))
    return false

//B.
if (siteGroup == '041' && Functions.matches(line.tnmPathT, /^p2[ABC]?$/) && (line.rxSummSurgPrimSite < '30' || line.rxSummSurgPrimSite == '99'))
    return false
else if (siteGroup == '045' && Functions.matches(line.tnmPathT, /^p1[ABCD]?|p1MI|p2[ABCD]?|p3[AB]?|p4A?$/) && (line.rxSummSurgPrimSite < '30' || line.rxSummSurgPrimSite == '99'))
    return false

//C.
if (siteGroup == '042' && Functions.matches(line.tnmPathT, /^p[0123]$/) && (line.rxSummSurgPrimSite < '40' || line.rxSummSurgPrimSite == '99'))
    return false

return true]]></expression>
            <message>TNM Path T, Primary Site and Surgery conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Case is autopsy only (Type of Reporting Source = 6) or death certificate only (Type of Reporting Source = 7)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. TNM Path T is blank or 88
5. RX Summ--Surg Prim Site is blank
6. TNM Edition Number not = 07, U7


Definitive surgical resection is required for TNM Path T except for the highest T category.

A.  For the following TNM groups and specified TNM Path T codes, RX Summ--Surg Prim Site must be equal to or greater than 20 and not equal 99 (unknown):

1. TNM groups in List 1 (highest pT = 4B):
     TNM Path T = p1-p4A

2. TNM groups in List 2 (highest pT = 3C or 4)
     TNM Path T = p1-p3B

3. TNM groups in List 3 (highest pT = 4D):
     TNM Path T = p1-p4C

4. TNM group Placenta (Chapter 39), the highest pT = 2:
     TNM Path T = p1

5. TNM group Bone (Chapter 27
   TNM group Vulva (Chapter 33), the highest pT = 3:
     TNM Path T = p1-p2

6. TNM group Soft Tissue (Chapter 28), the highest pT = 2B:
     TNM Path T = p1-p2A

7. TNM group Kidney (Chapter 43), the highest pT = 4:
     TNM Path T = p1-p3C

8. TNM group Retinoblastoma (Chapter 52), the highest pT = 4B:
     TNM Path T = p1-p4A

9. TNM group Carcinoma of the Lacrimal Gland (Chapter 53), the highest pT = 4C:
     TNM Path T = p1-p4B

10. TNM group Ciliary Body and Choroid (Chapter 51A), the highest pT = 4E:
     TNM Path T = p1-p4D


B. For the following TNM groups and specified TNM Path T codes, RX Summ--Surg Prim Site must be equal to or greater than 30 and not equal 99 (unknown):

1. TNM group Prostate (Chapter 41), the highest pT = 4.  Prostate is an exception to the rule regarding definitive surgical resection being required for TNM Path T except for the highest T category. AJCC does not allow pathologic staging for T1, and allows pathologic staging based on biopsy for T3 and T4. Definitive surgical resection is required for T2, T2A, T2B, and T2C.
         TNM Path T = p2 - p2C

2. TNM group Urinary Bladder (Chapter 45), the highest pT = 4B:
     TNM Path T = p1-p4A

C.  For TNM group Testis (Chapter 42), for p0, p1, p2, p3, RX Summ--Surg Prim Site must be equal to or greater than 40 and not equal 99 (unknown).


LIST 1  - Highest pT = 4B *************************************
- The number next to each site group indicates the chapter in the AJCC Cancer Staging Manual, Edition 7.

3. Lip and Oral Cavity
4. Pharynx
   4A. Oropharynx and Hypopharynx
   4D. Oropharynx
5. Larynx
   5A. Supraglottis, Subglottis, Other
   5B. Glottis
6. Nasal Cavity and Paranasal Sinuses
7. Major Salivary Glands
8. Thyroid Gland
   8A. Thyroid: Papillary/follicular, age less than 045
   8B. Thyroid: Papillary/follicular, age greater than or equal 045
       but not 999
   8C. Thyroid: Papillary/follicular, age equal 999 (unknown)
   8D. Thyroid: Medullary
   8E. Thyroid: Anaplastic
   8F. Thyroid: Anaplastic
9. Mucosal Melanoma of the Head and Neck
10. Esophagus and Esophagus Gastric Junction
   10A. Esophagus
   10B. Esophagus Gastric Junction
11. Stomach
13A. Appendix: Carcinoma
14. Colon and Rectum
31. Melanoma of the Skin
51. Malignant Melanoma of Uvea
    51B. Iris


LIST 2 - Highest pT = p3C or p4 *********************************
         where next highest is no greater than 3B
4. Pharynx
   4B. Nasopharynx
       Sites: C110, C112-C113, C118-C119
   4C. Nasopharynx
        Sites: C111
       Discriminator (CS Site-Specific Factor25):010
12. Small Intestine
13. Appendix
    13B. Appendix: Carcinoid
15. Anus
16. Gastrointestinal Stromal Tumor (GIST)
    16A. GIST: Gastric
    16B. GIST: Small Intestine
17. Neuroendocrine Tumors (NET)
    17A. NET: Stomach
    17B. NET: Small Intestine and Ampulla of Vater
    17C. NET: Colon and Rectum
20. Gallbladder
21. Perihilar Bile Ducts
22. Distal Bile Duct
23. Ampulla of Vater
24. Exocrine and Endocrine Pancreas
25. Lung
26. Pleural Mesothelioma
29. Cutaneous Squamous Cell Carcinoma and other Cutaneous Carcinomas
30. Merkel Cell Carcinoma
34. Vagina
35. Cervix Uteri
36. Corpus Uteri
36A. Corpus Uteri: Carcinomas
36B. Corpus Uteri: Leiomyosarcoma and Endometrial Stromal Sarcoma
36C. Corpus Uteri: Adenosarcoma
37. Ovary and Peritoneal Carcinomas
37A. Ovary
     Sites: C569
37B. Peritoneal Carcinomas
     Sites: C481-C482, C488 (Sex = 2,female) and
     Discriminator (CS Site-Specific Factor 25) = 002
38. Fallopian Tube
40. Penis
42. Testis
44. Renal Pelvis and Ureter
46. Urethra
    46A. Urethra - Female
    46B. Urethra - not Female
47. Adrenal
47A. Adrenal Cortex
47B. Adrenal Cortical Carcinoma
48. Carcinoma of the Eyelid
50. Malignant Melanoma of the Conjunctiva
54. Sarcoma of the Orbit
57. Lymphoid Neoplasms
    57B. Primary Cutaneous Lymphomas


LIST 3 - Highest pT = p4D *********************************

32. Breast
49. Conjunctiva
55. Ocular Adnexal Lymphoma]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-08" ref="67435">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-18" ref="67611">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-02" user="kirbyk" date="2017-02-14" ref="67637">Removed Liver (018) and Intrahepatic Bile Duct (019) checks from edit.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF603" name="TNM T, Clin and Path Stage, Behavior 2 (COC)" tag="N2274" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Histologic_Type_ICD-O-3,Primary_Site,TNM_Clin_T,TNM_Path_Descriptor,TNM_Path_T,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[//Skip conditions 1, 2
if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7')
    return true

//Skip conditions 3, 4
if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7'))
    return true

String siteGroup = (String)((Closure)Context.AJCC7CodeLookup16).call(line)
if (line.tnmPathT == null) {
    if (siteGroup == '032' && line.tnmClinT == 'pIS' && Functions.matches(line.histologicTypeIcdO3, /^854[013]$/))
        return true
    else if (siteGroup == '040' && line.tnmClinT == 'pA')
        return true
    else if (siteGroup == '045' && line.tnmClinT == 'pIS')
        return true

    if (!['014','13A','17A','050'].contains(siteGroup))
        if (Functions.matches(line.tnmClinT, /^pA|pIS[UD]?$/) && line.behaviorCodeIcdO3 != '2')
            return false
}
else {
    if (siteGroup == '032' && line.tnmPathT == 'pIS' && Functions.matches(line.histologicTypeIcdO3, /^854[013]$/))
        return true
    else if (siteGroup == '040' && line.tnmPathT == 'pA')
        return true
    else if (siteGroup == '045' && line.tnmPathT == 'pIS')
        return true

    if (!['014','13A','17A','050'].contains(siteGroup))
        if (Functions.matches(line.tnmPathT, /^pA|pIS[UD]?$/) && line.tnmPathDescriptor != '4' && line.tnmPathDescriptor != '6' && line.behaviorCodeIcdO3 != '2')
            return false
}

return true]]></expression>
            <message>TNM T, Clin and Path Stage conflict for Behavior=2</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. TNM Edition Number not = 07, U7

Note: The number next to each TNM group indicates the chapter in the AJCC Cancer Staging Manual, Edition 7. The subheadings (A, B, etc) refer to site/histology groups listed in the edit Primary Site, Stage Group 2016 - Ed 7.


A.  For the following TNM Group/TNM Clin T or TNM Path T code combinations, Behavior Code ICD-O-3 may = 2 or 3. These TNM Group/TNM Clin T or TNM Path T code combinations are passed (excluded from further editing). If TNM Path T is blank, the edit checks the values in TNM Clin T.  If TNM Path T is not blank, the edit checks the values in TNM Path T.

1. TNM Group Breast (32): TNM Clin T = pIS and Histologic Type ICD-O-3 = 8540,8541, and 8543 (codes indicating Paget disease).
                          TNM Path T = pIS and Histologic Type ICD-O-3 = 8540,8541, and 8543 (codes indicating Paget disease).

2. TNM Group Penis (40): TNM Clin T = pA (verrucous carcinoma).
                         TNM Path T = pA (verrucous carcinoma).

3. TNM Group Urinary Bladder (45): TNM Clin T = pIS (tumors described as "confined to mucosa").
                                   TNM Path T = pIS (tumors described as "confined to mucosa") .

B.  For all other TNM Groups except Colon and Rectum (14),
   Carcinoma of Appendix (13A), NET Stomach (17A),
   Melanoma of Conjunctiva (50)

1.  If TNM Path T is blank,
    if TNM Clin T = pA, pIS, pISU, pISD,
    then
        Behavior Code ICD-O-3 must = 2.

2.  If TNM Path T = pA, pIS, pISU, pISD
    and TNM Path Descriptor is not = 4 or 6 (Codes indicating pathologic staging after multimodality treatment)
    Then
       Behavior Code ICD-O-3 must = 2

Note:  The four exceptions listed in B are site/histology groups
    where AJCC maps an extension considered "invasive" by ICD-O-3
    to a "Tis" category.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-03" ref="67436">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-18" ref="67616">Added skip condition for TNM Edition Number; removed check for lung cases.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF604" name="TNM T, Deep Sites Soft Tissue (COC)" tag="N2276" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[//Skip conditions 1, 2
if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7')
    return true

//Skip conditions 3, 4, 5
boolean behaviorSkipCondition = line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1'
boolean tnmSkipCondition = (line.tnmClinT == null && line.tnmPathT == null) || (line.tnmClinT == '88' && line.tnmPathT == '88')
if (behaviorSkipCondition || tnmSkipCondition || (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7'))
    return true

String hist = line.histologicTypeIcdO3
boolean isFemale = Functions.matches(line.sex, /^[26]$/)
boolean firstSiteGroup = Functions.matches(line.primarySite, /^C38[0-38]$/) && ((hist >= '8800' && hist <= '8820') || (hist >= '8823' && hist <= '8935') || (hist >= '8940' && hist <= '9136') || (hist >= '9142' && hist <= '9582'))
boolean secondSiteGroup = Functions.matches(line.primarySite, /^C48[128]$/) && ((hist >= '8800' && hist <= '8820') || (hist >= '8823' && hist <= '8934') || (hist >= '8940' && hist <= '9136') || (hist >= '9142' && hist <= '9582')) && !isFemale
boolean thirdSiteGroup = Functions.matches(line.primarySite, /^C48[128]$/) && ((hist >= '8800' && hist <= '8820') || (hist >= '8823' && hist <= '8921') || (hist >= '9120' && hist <= '9136') || (hist >= '9142' && hist <= '9582')) && isFemale
boolean fourthSiteGroup = line.primarySite == 'C480' && ((hist >= '8800' && hist <= '8820') || (hist >= '8823' && hist <= '8934') || (hist >= '8940' && hist <= '9136') || (hist >= '9142' && hist <= '9582'))
if (!firstSiteGroup && !secondSiteGroup && !thirdSiteGroup && !fourthSiteGroup)
    return true

boolean skipPathRequirement = line.tnmPathDescriptor == '4' || line.tnmPathDescriptor == '6'

return (line.tnmClinT == null || Functions.matches(line.tnmClinT, /^cX|c[12]B$/)) && (skipPathRequirement || line.tnmPathT == null || Functions.matches(line.tnmPathT, /^pX|p[12]B$/))]]></expression>
            <message>TNM Clin T and TNM Path T conflict for Deep Sites Soft Tissue</message>
            <description><![CDATA[Purpose: This edit verifies that TNM T is coded as deep tumor for certain Soft Tissue Sarcoma sites: heart/mediastinum, peritoneum, and retroperitoneum.

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. TNM Clin T and TNM Path T are blank or 88
5. TNM Edition Number not = 07, U7


For soft tissue sarcoma:

If site = C380-C383, C388 (8800-8820, 8823-8935, 8940-9136, 9142-9582),
          C481-C482, C488 (8800-8820, 8823-8934. 8940-9136, 9142-9582 (not female),
          C481-C482, C488 (8800-8820, 8823-8921, 9120-9136, 9142-9582 (female only), or
          C480 (8800-8820, 8823-8934, 8940-9136, 9140-9582)
    then TNM Clin T must = c1B, c2B, cX or blank,
    and if TNM Path Descriptor not = 4 or 6 (indicating neoadjuvant treatment given), then TNM Path T must = p1B, p2B,pX, or blank.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-06" ref="67437">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-02" ref="67554">Fixed error in logic to check sex value.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-18" ref="67618">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="schadega" date="2018-03-15" ref="67701">Skip Path T requirement if Path Descriptor is 4 or 6.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF605" name="TNM Path T, N, M, In Situ (COC)" tag="N2442" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || !(Functions.matches(line.tnmPathT, /^pA|pIS[UD]?$/)))
    return true

//Skip conditions 5, 6
if ((line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7') || line.tnmPathDescriptor == '4' || line.tnmPathDescriptor == '6')
    return true

String siteGroup = (String)((Closure)Context.AJCC7CodeLookup16).call(line)
if (siteGroup ==~ /^00[79]|08[ABCDEF]|13B|16[AB]|17[BC]|018|36[BC]|37A|039|04[13]|47[AB]|51[AB]|05[34]|57B$/)
    return true

//Group 45 is Bladder
if (siteGroup == '045') {
    if (line.tnmPathN != 'c0' && line.tnmPathN != 'p0' && line.tnmPathN != null)
        return false
    if (line.tnmPathM != 'c0' && line.tnmPathM != null)
        return false
    if (line.tnmPathStageGroup != '0IS' && line.tnmPathStageGroup != '0A' && line.tnmPathStageGroup != '99')
        return false
}
else {
    if (!(Functions.matches(line.tnmPathN, /^p0([IM][\-+])?|c0$/)))
        return false
    if (line.tnmPathM != 'c0' && line.tnmPathM != 'c0I+')
        return false
    if (siteGroup != '049' && siteGroup != '050') {
        if (line.tnmPathStageGroup != '0' && line.tnmPathStageGroup != '0IS' && line.tnmPathStageGroup != '0A' && line.tnmPathStageGroup != '99')
            return false
    }
}

return true]]></expression>
            <message>TNM Path T, N, M conflict for in situ</message>
            <description><![CDATA[The purpose of this edit is to verify that TNM Path N, TNM Path M, and TNM Path Stage Group are coded consistently for cases where TNM Path T indicates an in situ tumor(TNM Path T = pIS, pA, pISU, pISD, or pA).

This edit enforces the statement in the AJCC manual on page 12:  "Carcinoma in situ (CIS) is an exception to the stage grouping guidelines.  By definition, CIS has not involved any structure in the primary organ that would allow tumor cells to spread to regional nodes or distant sites.  Therefore, pTis cN0 cM0 should be reported as both clinical and pathologic stage 0."  The statement on page 499 for bladder takes precedence for this site:  "Pathologic staging is based on the histologic review of the radical or partial cystectomy specimen."


This edit is skipped if any of the following conditions are true:
1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. TNM Path T is not = pIS, pA, pISU, pISD, or pA
5. TNM Editition Number not = 07, U7
6. TNM Path Descriptor = 4, 6

1. If TNM Path T = pIS, pA, pISU, or pISD:

  A. If TNM site/histology group = Bladder:
     TNM Path N must = p0 (negative nodes pathologically), c0 (clinically negative nodes), or blank (criteria not met for pathologic staging of bladder)
     TNM Path M must = c0 (no clinically positive metastasis), or blank
       (criteria not met for pathologic staging of bladder)
     TNM Path Stage Group must = 0IS or 0A (codes indicating
        in situ/noninvasive based on pathologic evaluation of T and N)
        or 99 (criteria not met for pathologic staging of bladder).


  B. For all other AJCC groups:
     TNM Path N must = p0, p0I-, p0I+, p0M-, p0M+ (negative nodes pathologically), or c0 (clinically negative nodes).
     TNM Path M must = c0, c0I+ (no clinically positive metastasis)
     TNM Path Stage Group must = 0, 0A, or 0IS (codes indicating
       pathologic stage group based on AJCC instructions for pTis) or 99

Only TNM Path N and TNM Path M are edited for the following TNM groups.  In situ carcinomas are recognized by AJCC, but there is no stage grouping.

49. Carcinoma of Conjunctiva
50. Malignant Melanoma of Conjunctiva

This edit is skipped for the following TNM groups (AJCC does not recognize or does not stage in situ tumors for these sites, though in situ may be assigned by a pathologist):
7. Major Salivary Glands
8. Thyroid Gland (08A-08F)
9. Mucosal Melanoma Head and Neck
13B. Appendix, Carcinoid
16. GIST
17. NET Small Intestine and Ampulla of Vater, NET Colon and Rectum (17B, 17C)
18. Liver
36B. Corpus Sarcoma
36C. Corpus Adenosarcoma
37A. Ovary
39. Gestational Trophoblastic Tumors
41. Prostate
43. Kidney
47. Adrenal (47A, 47B)
51A. Melanoma of Choroid
51B. Melanoma of Iris
53. Carcinoma of the Lacrimal Gland
54. Sarcoma of the Orbit
57B. Primary Cutaneous Lymphoma]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-06" ref="67438">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-01" ref="67545">Moved logic for TNM Clin values to new edit IF623; added skip condition.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-12" ref="69326">Removed several dependencies.</event>
            </history>
        </rule>
        <rule id="IF606" name="TNM Clin T, SSF 2 Melanoma Conjunctiva (COC)" tag="N2235" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_2,Histologic_Type_ICD-O-3,Primary_Site,TNM_Clin_T,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line._tnmSchemaId != 'melanoma_conjunctiva' || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

//Skip condition 5, 6
if (line.tnmClinT == null || line.tnmClinT == '88' || line.csSiteSpecificFactor2 == null || line.csSiteSpecificFactor2 == '988')
    return true

//Skip condition 7
if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
    return true

if (line.csSiteSpecificFactor2 == '010' || line.csSiteSpecificFactor2 == '015')
    return line.tnmClinT == 'c1A' || line.tnmClinT == 'c2A' || line.tnmClinT == 'c2C'
else if (line.csSiteSpecificFactor2 == '020' || line.csSiteSpecificFactor2 == '025')
    return line.tnmClinT == 'c1B' || line.tnmClinT == 'c2B' || line.tnmClinT == 'c2D'
else if (line.csSiteSpecificFactor2 == '030')
    return line.tnmClinT == 'c1C' || line.tnmClinT == 'c2B' || line.tnmClinT == 'c2D'
else if (line.csSiteSpecificFactor2 == '035')
    return line.tnmClinT == 'c1C'
else if (line.csSiteSpecificFactor2 == '040')
    return line.tnmClinT == 'c1D' || line.tnmClinT == 'c2B' || line.tnmClinT == 'c2D'
else if (line.csSiteSpecificFactor2 == '045')
    return line.tnmClinT == 'c1D'

return true]]></expression>
            <message>TNM Clin T, SSF 2 conflict for Melanoma Conjunctiva</message>
            <description><![CDATA[Purpose: This edit verifies that TNM Clin T is coded consistently with CS SSF 2 for Melanoma of Conjunctiva (Quadrants).

This edit is skipped if any of the following conditions are true:

1. Diagnosis date prior to 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Site/histology is not Melanoma of Conjunctiva
5. TNM Clin T is blank or 88
6. CS Site-Specific Factor 2 is blank or 988
7. TNM Edition Number is not 07, U7

For TNM schema Melanoma Conjunctiva:

1. If CS SSF 2 = 010 (Less than or equal to 1 quadrant involved), or 015 (Stated as clinical T1a, Stated as clinical T2a, Stated as clinical T2c)
    TNM Clin T must = c1A, c2A, or c2C.

2.  If CS SSF 2 = 020 (More than 1 but less than or equal to 2 quadrants involved), 025 (Stated as clinical T1b, Stated as clinical T2b, Stated as clinical T2d)
    TNM Clin T must = c1B, c2B, c2D.

3.  If CS SSF 2 = 030 (More than 2 but less than or equal to 3 quadrants involved)
    TNM Clin T must = c1C, c2B, or c2D.

4.  If CS SSF 2 = 035 (Stated as clinical T1c)
    TNM Clin T must = c1C

5.  If CS SSF 2 = 040 (Greater than 3 quadrants involved)
    TNM Clin T must = c1D, c2B, or c2D.

6.  If CS SSF 2 = 045 (Stated as clinical T1d)
    TNM Clin T must = c1D]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-06" ref="67439">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-13" ref="67590">Added skip condition for TNM Edition Number.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF607" name="TNM Clin T, SSF 3 Soft Tissue (COC)" tag="N2236" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_3,Histologic_Type_ICD-O-3,Primary_Site,TNM_Clin_T,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

//Skip condition 4, 5
if (line.tnmClinT == null || line.tnmClinT == '88' || line.csSiteSpecificFactor3 == null || line.csSiteSpecificFactor3 == '988')
    return true

//Skip condition 6
if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
    return true

String siteGroup = (String)((Closure)Context.AJCC7CodeLookup16).call(line)
if (siteGroup != '028')
    return true

if (line.csSiteSpecificFactor3 == '010')
    return line.tnmClinT != 'c1A' && line.tnmClinT != 'c2A'

return true]]></expression>
            <message>TNM Clin T, SSF 3 conflict for Soft Tissue Sarcoma</message>
            <description><![CDATA[Purpose: This edit verifies that TNM Clin T is coded consistently with CS SSF 3 for Soft Tissue Sarcoma (Bone Invasion).

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. TNM Clin T is blank or 88
5. CS SSF 3 is blank or 988.
6. TNM Edition Number is not = 07, U7

For soft tissue sarcoma (028):
  If CS SSF 3 = 010 (Bone invasion present/identified on imaging), TNM Clin T must not = c1A or c2A (superficial tumor).]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-06" ref="67440">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-17" ref="67591">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-27" ref="68311">Updated logic to require TNM Clin T not equal c1A/c2A.</event>
            </history>
        </rule>
        <rule id="IF608" name="TNM M, SSF 3 Kidney (COC)" tag="N2241" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

//Skip condition 5
if ((line.tnmClinM == null && line.tnmPathM == null) || (line.tnmClinM == '88' && line.tnmPathM == '88'))
    return true

//Skip conditions 6, 7
if (line.csSiteSpecificFactor3 == null || line.csSiteSpecificFactor3 == '988' || (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7'))
    return true

//Skip condition 4
String siteGroup = (String)((Closure)Context.AJCC7CodeLookup16).call(line)
if (siteGroup != '043')
    return true

if (line.csSiteSpecificFactor3 == '020' || line.csSiteSpecificFactor3 == '030')
    return line.tnmClinM == 'p1' || line.tnmPathM == 'p1'

return true]]></expression>
            <message>TNM M and SSF 3 conflict for Kidney</message>
            <description><![CDATA[Purpose: This edit verifies that TNM Clin M and TNM Path M are coded consistently with CS SSF 3, Ipsilateral Adrenal Gland Involvement, for Kidney parenchyma.

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Site/histology group is not 043, Kidney
5. TNM Clin M and TNM Path M are blank or 88
6. CS SSF 3 is blank or 988
7. TNM Edition Number is not = 07, U7

For Kidney (043), SSF 3:

A.  If SSF 3 = 020 (Noncontiguous involvement of ipsilateral adrenal gland) or 030 (Noncontiguous plus contiguous involvement of ipsilateral adrenal gland)
    then TNM Clin M must = p1 or TNM Path M must = p1 (Distant metastasis, microscopically confirmed).]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-07" ref="67441">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-18" ref="67593">Added skip condition for TNM Edition Number; updated description.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67741">Edit name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF610" name="Primary Site, M 2016 - Ed 7 (SEER)" tag="N2337" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,Grade,Histologic_Type_ICD-O-3,Primary_Site,Sex,TNM_Clin_M,TNM_Path_M,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[boolean skipCondition4 = line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1'
boolean skipCondition5 = !(line.tnmEditionNumber == '07' || line.tnmEditionNumber == 'U7' || line.tnmEditionNumber == '88')
boolean skipCondition6 = line.tnmClinM == null && line.tnmPathM == null
if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.histologicTypeIcdO3 == null || skipCondition4 || skipCondition5 || skipCondition6)
    return true

if (line.tnmEditionNumber == '88' &&
        (line.tnmClinM == null || line.tnmClinM == '88') &&
        (line.tnmPathM == null || line.tnmPathM == '88') &&
        line.overRideSiteTnmStggrp == '1')
    return true

String siteGroup = (String)((Closure)Context.AJCC7CodeLookup16).call(line)

List validCodes = (List)((Map)Context.IF610_Table).getOrDefault(siteGroup, ['88'])

// Special Case for group 28 and 37B
if ((siteGroup == '028' || siteGroup == '37B') && Functions.matches(line.histologicTypeIcdO3, /^905[0-5]$/)) {
    if (line.tnmClinM != null && !validCodes.contains(line.tnmClinM) && line.tnmClinM != '88')
        return false

    if (line.tnmPathM != null && !validCodes.contains(line.tnmPathM) && line.tnmPathM != '88')
        return false

    return true
}

if (line.tnmClinM != null)
    if (!validCodes.contains(line.tnmClinM))
        return false

if (line.tnmPathM != null)
    if (!validCodes.contains(line.tnmPathM))
        return false

return true]]></expression>
            <message>TNM M code is invalid for site/hist combination</message>
            <description><![CDATA[TNM Clin M and TNM Path M may be blank.  If TNM Clin M is entered, it is edited by the criteria below. If TNM Path M is entered, it is edited by the criteria below.

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Histologic Type ICD-O-3 is blank
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. TNM Edition Number is not = 07, U7, or 88
6. TNM Clin M and TNM Path M are both blank

The allowable values for

Clin M: (blank), c0, c0I+, c1, c1A, C1B, c1C, c1D, c1E, p1, p1A, p1B, p1C, p1D, p1E, 88
Path M: (blank), c0, c0I+, c1, c1A, C1B, c1C, c1D, c1E, p1, p1A, p1B, p1C, p1D, p1E, 88

This edit checks the subset of values that are valid for each of the site/histology groups that have a TNM M defined and checks for "88" if the site/histology group does not have a TNM M defined.

Pediatric cases not staged according to AJCC are skipped and are identified in this edit by TNM Edition Number = 88, AJCC Clin M = 88 or blank, AJCC Path M = 88 or blank, and Over-ride Site/TNM-Stgrp = 1. The use of over-ride for cases over age 24 is checked in other edits.

The number next to each site group indicates the chapter in the AJCC Cancer Staging Manual, Edition 7. The sites for each chapter are listed along with the histologies for which M is defined. Site/histology group names are taken from UICC. The site-specific TNM values are listed below for each group or subgroup.  The edit checks that "c" or "p" precedes the value given for both the Clin M and Path M except for "88" and blank.

The list of site/hist specific valid values does not list the appropriate c and p but the edit checks for it.  For clin M unless stated otherwise, the list of valid values can have either a "c" or "p" and for Path M all values can have either a "c" or "p" except p0 (pM0), which is not valid for either the Clin or Path evaluation for any site/hist. This edit allows a blank as a valid code for either the Clin M or Path M.

For example if the documentation shows: M: 0,1
Then the case passes for:
Clin M: c0, c1, p1, (blank)
Path M: c0, c1, p1, (blank)

Breast lists both a clin and path set of values because c0I+ (cM0I+) is only valid for breast Clin or Path M and p0I+ is not valid.

This edit differs from the COC-NPCR edit of the same name in that it includes NOS categories for M that are not listed in the AJCC 7th Edition - see SEER comparison documentation.

3. Lip and Oral Cavity

Sites:
     C000-C006,C008,C009
     C020-C023,C028,C029
     C030,C031,C039
     C040,C041,C048,C049
     C050,C058,C059
     C060-C062,C068,C069
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     0,1


4. Pharynx

4A. Oropharynx and Hypopharynx
Sites:
     C019, C024
     C051-C052
     C090-C091, C098-C099
     C100, C102-C104, C108-C109
     C129
     C130-C132, C138-C139

Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     0,1


4B. Nasopharynx
Sites:
    C110, C112-C113, C118-C119
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981

4C. Nasopharynx
Sites:
    C111
Discriminator (Site-Specific Factor25):
    010
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     0,1


4D. Oropharynx - Pharyngeal Tonsil
Sites:
    C111
Discriminator (Site-Specific Factor25):
    020
Histologies Requiring AJCC Staging:
  8000-8576, 8940-8950, 8980-8981

Sites/histologies are assigned to group 4D from 4C based on Site-Specific Factor 25

TNM M:
     0,1


5. Larynx

5A. Supraglottis, Subglottis, Other
Sites:
     C101, C321-C322
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     0,1


5B. Glottis
Sites:
     C320, C328-C329
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980, 8981
TNM M:
     0,1


6. Nasal Cavity and Paranasal Sinuses

Sites:
     C300, C310-C311
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     0,1


7. Major Salivary Glands

Sites:
     C079
     C080,C081,C088,C089
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8982
TNM M:
     0,1, 88


8. Thyroid Gland

8A. Thyroid: Papillary/follicular, age less than 045
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8015, 8022, 8033-8344, 8350-8420, 8440-8508,
     8514-8576, 8940-8950, 8980-8981
Age at Diagnosis: less than 045
Grade: 1-3 or 9

Site/histologies are assigned to group 8A from group 8 based on grade, age at diagnosis

TNM M:
     0,1, 88


8B. Thyroid: Papillary/follicular, age greater than or equal 045 but not 999
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8015, 8022, 8033-8344, 8350-8420, 8440-8508,
     8514-8576, 8940-8950, 8980-8981
Age at Diagnosis: greater than or equal to 045, but not equal 999
Grade: 1-3 or 9

Site/histologies are assigned to group 8B from group 8 based on grade, age at diagnosis

TNM M:
     0,1, 88


8C. Thyroid: Papillary/follicular, age equal 999 (unknown)
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8015, 8022, 8033-8344, 8350-8420, 8440-8508,
     8514-8576, 8940-8950, 8980-8981
Age at Diagnosis: equal 999
Grade: 1-3 or 9

Site/histologies are assigned to group 8C from group 8 based on grade, age at diagnosis

TNM M:
     0,1, 88


8D. Thyroid: Medullary
Sites:
     C739
Histologies Requiring AJCC Staging:
     8345-8347, 8430, 8510, 8512-8513
Grade: 1-3 or 9

TNM M:
     0,1, 88

8E. Thyroid: Anaplastic
Sites:
     C739
Histologies Requiring AJCC Staging:
     8020-8021, 8030-8032
TNM M:
     0,1


8F. Thyroid: Anaplastic
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Grade: 4

Site/histologies are assigned to group 8F from group 8 and group 8D based on grade

TNM M:
     0,1


9. Malignant Melanoma of Upper Aerodigestive Tract

Sites:
     C000-C006, C008-C009
     C019
     C020-C024, C028-C029
     C030-C031, C039
     C040-C041, C048-C049
     C050-C052, C058-C059
     C060-C062, C068-C069
     C090-C091, C098-C099
     C100-C104, C108-C109
     C110-C113, C118-C119
     C129, C130-C132
     C138-C139
     C140, C142, C148
     C300
     C310-C311
     C320-C323, C328-C329
Histologies Requiring AJCC Staging:
     8720-8790
TNM M:
     0,1, 88


10. Oesophagus including Oesophagogastric Junction

10A. Oesophagus
Sites:
     C150-C155, C158-C159
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     0,1

10B. Oesophagogastric Junction
Sites:
     C160-C162
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
Discriminator (Site-Specific Factor25):
    020, 040, 060 (for C161-C162)

Site/histologies are assigned to group 10B from group 11 based on site and site-specific factor 25 as well as table lookup

TNM M:
     0,1


11. Stomach

Sites:
     C161-C162 and Discriminator (Site-Specific Factor 25) =
        000, 030, 999
     C163-C166, C168-C169
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8990
TNM M:
     0,1


12. Small Intestine

Sites:
     C170-C172, C178-C179
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
TNM M:
     0,1


13. Appendix

13A. Appendix: Carcinoma
Sites:
     C181
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
TNM M:
     0,1,1A,1B


13B. Appendix: Carcinoid
Sites:
     C181
Histologies Requiring AJCC Staging:
     8240-8242, 8246, 8249, 8153
TNM M:
     0,1, 88


14. Colon and Rectum

Sites:
     C180, C182-C189
     C199
     C209
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
TNM M:
     0,1,1A,1B


15. Anal Canal

Sites:
     C210-C212, C218
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
TNM M:
     0,1


16. Gatrointestinal Stromal Tumor (GIST)

16A. GIST: Gastric
Sites:
     C160-C169
     C480-C488 and Site-Specific Factor 10 = 020 (Omentum)
Histologies Requiring AJCC Staging:
     8935-8936

Sites/histologies are assigned to group 16A from group 16B based on site-specific factor 10
as well as table lookup

TNM M:
     0,1, 88


16B. GIST: Small Intestine
Sites:
     C150-C159
     C170-C172, C178, C179
     C180-C189
     C199
     C209
     C480-C488 and Site-Specific Factor 10 not = 020 (Omentum)
Histologies Requiring AJCC Staging:
     8935-8936
TNM M:
     0,1, 88


17. Gastric, Small & Large Intestinal Carcinoid Tumours

17A. Gastric, Small & Large Intestinal Carcinoid Tumours-Stomach
Sites:
     C160-C169
Histologies Requiring AJCC Staging:
     8153, 8240-8242, 8246, 8249
TNM M:
     0,1


17B. Gastric, Small & Large Intestinal Carcinoid Tumours-Duodenum/Ampulla/Jejunum/Ileum
Sites:
     C170-C179
     C241
Histologies Requiring AJCC Staging:
     8153, 8240-8242, 8246, 8249
TNM M:
     0,1, 88


17C. Gastric, Small & Large Intestinal Carcinoid Tumours-Large Intestine
Sites:
     C180, C182-C189
     C199, C209
Histologies Requiring AJCC Staging:
     8153, 8240-8242, 8246, 8249
TNM M:
     0,1, 88


18. Liver-Hepatocellular Carcinoma
Sites:
     C220
Histologies Requiring AJCC Staging:
     8170-8175
TNM M:
     0,1, 88


19. Liver-Intrahepatic Bile Ducts
Sites:
     C221
Histologies Requiring AJCC Staging:
     8160, 8161, 8180
TNM M:
     0,1


20. Gallbladder

Sites:
     C239
     C240 and Discriminator (Site-Specific Factor 25) = 030
Histologies Requiring AJCC Staging:
     8000-8152,8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981

Sites/histologies are assigned to group 20 from group 21 based on site-specific factor 25
as well as table lookup

TNM M:
     0,1


21. Extrahepatic Bile Ducts-Perihilar

Sites:
     C240 and Discriminator (Site-Specific Factor 25) = 010, 020, 050,
        060, 999
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
TNM M:
     0,1


22. Extrahepatic Bile Ducts-Distal

Sites:
     C240 and Discriminator (Site-Specific Factor 25) = 040, 070
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981

Sites/histologies are assigned to group 22 from group 21 based on site-specific factor 25
as well as table lookup

TNM M:
     0,1


23. Ampulla of Vater

Sites:
     C241
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
TNM M:
     0,1


24. Pancreas

Sites:
     C250-C254, C257-C259
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8971, 8980-8981
TNM M:
     0,1


25. Lung

Sites:
     C340-C343,C348,C349
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     0,1,1A,1B


26. Pleural Mesothelioma

Sites:
     C384
Histologies Requiring AJCC Staging:
     9050-9053
TNM M:
     0,1,88


27. Bone

Sites:
     C400-C403, C408-C409
     C410-C414, C418-C419
Histologies Permitting AJCC Staging:
     8800-9136, 9142-9582
TNM M:
     0,1,1A,1B


28. Soft Tissues

Peritoneum - not female
Sites:
     C481-C482, C488
Histologies:
    8800-8820, 8823-8934, 8940-9136, 9142-9582
    Sex = 1, 3-5, 9 (not female)

Peritoneum - female
Sites:
     C481-C482, C488
Histologies:
    8800-8820, 8823-8921, 9120-9136, 9142-9582
    Sex = 2, 6 (female)

Heart,Mediastinum, Soft Tissue
Sites:
     C380-C383, C388
     C470-C476, C478-C479
     C490-C496, C498-C499
Histologies:
    8800-8820, 8823-8935, 8940-9136, 9142-9582

Retroperitoneum
Sites:
     C480
Histologies:
    8800-8820, 8823-8934, 8940-9136, 9142-9582

Specific sites/histologies assigned to group 28 based on sex

TNM M:
     0,1
NOTE: TNM M 88 allowed for Mesothelioma, 9050-9055


29. Carcinoma of Skin

Sites:
     C440, C442-C449, C632
Histologies Requiring AJCC Staging:
     8000-8246, 8248-8576, 8940-8950, 8980-8981
TNM M:
     0,1


30. Merkel Cell Carcinoma

Sites:
     C440, C442-C449,
     C510-C512, C518-C519
     C600-C602, C608-C609
     C632
Histologies Requiring AJCC Staging:
     8247
TNM M:
     0,1,1A,1B,1C


31. Malignant Melanoma of the Skin

Sites:
     C440-C449
     C510-C512,C518,C519
     C600-C602, C608, C609
     C632
Histologies Requiring AJCC Staging:
     8720-8790
TNM M:
     0,1,1A,1B,1C


32. Breast Tumours

Sites:
     C500-C506,C508,C509
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981, 9020
TNM M:
     Clin: c0,c0I+,c1,p1
     Path: c0,c0I+,c1,p1


33.  Vulva

Sites:
     C510-C512,C518,C519
Histologies Requiring AJCC Staging:
     8000-8246, 8248-8576, 8940-8950, 8980-8981
TNM M:
     0,1


34.  Vagina

Sites:
     C529
Histologies Requiring AJCC Staging:
     8000-8576, 8800-8801, 8940-8950, 8980-8981
TNM M:
     0,1


35. Cervix Uteri

Sites:
     C530,C531,C538,C539
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     0,1


36. Uterus

36A. Uterus-Endometrium
Sites
     C540-C543, C548-C549
     C559
Histologies Requiring AJCC Staging:
     8000-8790, 8950-8951, 8980-8981
TNM M:
     0,1

36B. Uterus-Uterine Sarcomas: Leiomyosarcoma and Endometrial Stromal Sarcoma
Sites:
     C540-C543, C548-C549
     C559
Histologies Requiring AJCC Staging:
     8800, 8890-8898, 8900-8921, 8930-8931, 8935
TNM M:
     0,1, 88


36C. Uterus-Uterine Sarcomas: Adenosarcoma
Sites:
     C540-C543, C548-C549
     C559
Histologies Requiring AJCC Staging:
     8933
TNM M:
     0,1, 88


37. Ovary

37A. Ovary
Sites:
     C569
Histologies Requiring AJCC Staging:
     8000-8576, 8590-8671, 8930-9110
TNM M:
     0,1, 88

37B. Peritoneal Carcinomas
Sites:
     C481-C482, C488
     Sex = 2, 6 (female)
Histologies Requiring AJCC Staging:
     8000-8576, 8590-8671, 8930-8934, 8940-9110

Sex code checked for assignment to group 37B

TNM M:
     0,1
NOTE: TNM M 88 allowed for Mesothelioma, 9050-9055


38. Fallopian Tube

Sites:
     C570
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     0,1


39. Gestational Trophoblastic Tumors

Sites:
     C589
Histologies Requiring AJCC Staging:
     9100-9105
TNM M:
     0,1,1A,1B, 88


40. Penis

Sites:
     C600-C602,C608,C609
Histologies Requiring AJCC Staging:
     8000-8246, 8248-8576, 8940-8950, 8980-8981
TNM M:
     0,1


41. Prostate

Sites:
     C619
Histologies Requiring AJCC Staging:
     8000-8110, 8140-8576, 8940-8950, 8980-8981
TNM M:
     0,1,1A,1B,1C, 88

42. Testis

Sites:
     C620,C621,C629

Histologies Requiring AJCC Staging:
     8000-8576, 8590-8670, 8940-8950, 8980-8981, 9060-9090, 9100-9105

TNM M:
     0,1,1A,1B


43. Kidney

Sites:
     C649
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     0,1, 88


44. Renal Pelvis and Ureter

Sites:
     C659
     C669
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     0,1


45. Bladder

Sites:
     C670-C679
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     0,1


46. Urethra

Sites:
     C680
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     0,1


47. Adrenal Cortex Tumours

47A. Adrenal Cortex
Sites:
     C740
Histologies Requiring AJCC Staging:
     8010, 8140, 8370
TNM M:
     0,1, 88


47B. Adrenal Cortical Carcinoma
Sites:
     C749
Histologies Requiring AJCC Staging:
     8370
TNM M:
     0,1, 88


48. Carcinoma of Skin of Eyelid

Sites:
     C441
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     0,1


49. Carcinoma of Conjunctiva

Sites:
     C690
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     0,1


50.  Malignant Melanoma of Conjunctiva

Sites:
     C690
Histologies Requiring AJCC Staging:
     8720-8790
TNM M:
     0,1


51.  Malignant Melanoma of Uvea


51A. Ciliary Body and Choroid
Sites:
     C693
     C694 (CS Site-Specific Factor 25 = 010)
Histologies Requiring AJCC Staging:
     8720-8790

Sites/histologies are assigned to group 51A from group 51 based on site-specific factor 25

TNM M:
     0,1,1A,1B,1C,88


51B. Iris
Sites:
    C694 (Site-Specific Factor 25 = 020)
Histologies Requiring AJCC Staging:
     8720-8790

Sites/histologies are assigned to group 51B from group 51 based on site-specific factor 25

TNM M:
     0,1,1A,1B,1C,88


52. Retinoblastoma

Sites:
     C692
Histologies Requiring AJCC Staging:
     9510-9514
TNM M:
     0,1,1A,1B,1C,1D,1E


53. Carcinoma of Lacrimal Gland
Sites:
     C695 and Site-Specific Factor25 = 015
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM M:
     0,1,88


54. Sarcoma of Orbit

Sites:
     C696
Histologies Requiring AJCC Staging:
     8800-8936, 8940-9136, 9141-9508, 9520-9582
TNM M:
     0,1, 88


55. Hodgkin and Non-Hodgkin Lymphoma (Ocular Adnexal Lymphoma)

Sites:
     C441, C690, C695-C696
Histologies Requiring AJCC Staging:
     9590-9699, 9702-9738, 9811-9818, 9820-9837
TNM M:
     0,1,1A,1B,1C,88

56. Brain and Spinal Cord

Sites:
     C700, C701, C709, C710-C719, C720-C729, C751-C753
Histologies Requiring AJCC Staging:
     8000, 8680-9136,9141-9582
TNM T:
     88

57. Lymphoid Neoplasms

57A. Hodgkin and Non-Hodgkin Lymphoma
Sites:
     C000-C440, C442-C689, C691-C694, C698-C809
Histologies Requiring AJCC Staging:
     9590-9699, 9702-9727, 9735, 9737-9738
Sites:
     C000-C419, C422-C423, C425-C440, C442-C689, C691-C694, C698-C809
Histologies Requiring AJCC Staging:
     9811-9818, 9823, 9827, 9837

Sites/histologies are assigned to group 57A based on combinations of site and histology

TNM M:
     88


57B. Mycosis Fungoides (EORTC Staging System)
Sites:
     C440-C449
     C510-C512, C518-C519
     C600-C602, C608-C609, C632
Histologies Requiring EORTC Staging:
     9700,9701
TNM M:
      0,1,88

57C.  Lymphoid/Hematopoietic
Sites:
     C420, C421, C424
Histologies Requiring AJCC Staging:
     9811-9818, 9837
TNM M:
     88

All Other Schemas and/or Primary Site/Histologies
TNM M:
     88]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-13" ref="67443">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-10-27" ref="67540">Added code &apos;57C&apos; to table.</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-09" ref="67572">Updated description.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-24" ref="67630">88 is now valid code for some cases for group 28.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-04-24" ref="67774">88 is now valid code for some cases for group 37B.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="beverung" date="2021-03-05" ref="68574">Add code 88 for group 26 and add pediatric skip condition.</event>
            </history>
        </rule>
        <rule id="IF611" name="Primary Site, N 2016 - Ed 7 (SEER)" tag="N2207" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_25,Grade,Histologic_Type_ICD-O-3,Primary_Site,Sex,TNM_Clin_N,TNM_Path_N,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' || line.histologicTypeIcdO3 == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || (line.tnmClinN == null && line.tnmPathN == null))
    return true

//Skip condition 5
if (!(line.tnmEditionNumber == '07' || line.tnmEditionNumber == 'U7' || line.tnmEditionNumber == '88'))
    return true

if (line.tnmEditionNumber == '88' &&
        (line.tnmClinN == null || line.tnmClinN == '88') &&
        (line.tnmPathN == null || line.tnmPathN == '88') &&
        line.overRideSiteTnmStggrp == '1')
    return true

String siteGroup = (String)((Closure)Context.AJCC7CodeLookup16).call(line)
Map validCodes = (Map)((Map)Context.IF611_Table).get(siteGroup)

// Special Case for group 28 and 37B
if ((siteGroup == '028' || siteGroup == '37B') && Functions.matches(line.histologicTypeIcdO3, /^905[0-5]$/)) {
    if (line.tnmClinN != null && !((List)validCodes.getOrDefault('C', [])).contains(line.tnmClinN) && line.tnmClinN != '88')
        return false

    if (line.tnmPathN != null && !((List)validCodes.getOrDefault('P', [])).contains(line.tnmPathN) && line.tnmPathN != '88')
        return false

    return true
}

if (line.tnmClinN != null) {
    if (!((List)validCodes.getOrDefault('C', [])).contains(line.tnmClinN))
        return false
}

if (line.tnmPathN != null) {
    if (!((List)validCodes.getOrDefault('P', [])).contains(line.tnmPathN))
        return false
}

return true]]></expression>
            <message>TNM N code invalid for site/hist combination</message>
            <description><![CDATA[TNM Clin N and TNM Path N may be blank.  If TNM Clin N is entered, it is edited by the criteria below. If TNM Path N is entered, it is edited by the criteria below.


This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Histologic Type ICD-O-3 is blank
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. TNM Edition Number is not = 07, U7, or 88
6. TNM Clin N and TNM Path N are both empty


The allowable values for

Clinical N: (blank), cX, c0, c0A, c0B, c1, c1A, c1B, c1C, c2, c2A, c2B, c2C, c3, c3A, c3B, c3C, c4, 88
Path N: (blank), pX, c0, p0, p0I-, p0I+, p0M-, p0M+, p1MI, p0A, p0B, p1, p1A, p1B, p1C, p2, p2A, p2B, p2C, p3, p3A, p3B, p3C, p4, 88

This edit checks the subset of values that are valid for each of the site/histology groups that have a TNM N defined and checks for '88' if the site/histology group does not have a TNM N defined.

Pediatric cases not staged according to AJCC are skipped and are identified in this edit by TNM Edition Number = 88, AJCC Clin N = 88 or blank, AJCC Path N = 88 or blank, and Over-ride Site/TNM-Stgrp = 1. The use of over-ride for cases over age 24 is checked in other edits.

The number next to each site group indicates the chapter in the AJCC Cancer Staging Manual, Edition 7. The sites for each chapter are listed along with the histologies for which N is defined. Site/histology group names are taken from UICC.  The edit will pass when the codes listed are entered in TNM Clin N with "c" prefix or in TNM Path N with "p" prefix; "cN0" will also pass when entered in TNM Path N, and where specified "88" will pass the edit without the prefix. Blanks will also pass the edit but are not specified.  For those cases where there is a difference between the clinical  and pathologic N codes, such as Merkel Cell, Melanoma of Skin, Breast, Melanoma Conjunctiva, the N codes are listed separately for the clin and path assessment.

For example:
TNM N:
     Clin: X,0,1,2,2A,2B,3,3A,3B,3C
     Path: X,0,0I-,0I+,0M-,0M+,1,1A,1B,1C,1MI,2,2A,2B,3,3A,3B,3C

Translates to allowable codes of:
     Clin: (blank),cX,c0,c1,c2,c2A,c2B,c3,c3A,c3B,c3C
     Path: (blank),pX,c0,p0, p0I-,p0I+,p0M-,p0M+,p1,p1A,p1B,p1C,p1MI,p2,p2A,p2B,p3,p3A,p3B,p3C

This edit differs from the COC-NPCR edit of the same name in that it includes NOS categories for N that are not included in AJCC 7th Edition (Melanoma of Conjunctiva cN0). The edit also allows Ocular Adnexal Lymphoma to be staged as Non-Hodgkin Lymphoma (N88).

3. Lip and Oral Cavity

Sites:
     C000-C006,C008,C009
     C020-C023,C028,C029
     C030,C031,C039
     C040,C041,C048,C049
     C050,C058,C059
     C060-C062,C068,C069
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
      X,0,1,2,2A,2B,2C,3


4. Pharynx

4A. Oropharynx and Hypopharynx
Sites:
     C019, C024
     C051-C052
     C090-C091, C098-C099
     C100, C102-C104, C108-C109
     C129
     C130-C132, C138-C139

Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
      X,0,1,2,2A,2B,2C,3

4B. Nasopharynx
Sites:
    C110, C112-C113, C118-C119
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
      X,0,1,2,3,3A,3B

4C. Nasopharynx
Sites:
    C111
Discriminator (Site-Specific Factor25):
    010
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
      X,0,1,2,3,3A,3B

4D. Oropharynx - Pharyngeal Tonsil
Sites:
    C111
Discriminator (Site-Specific Factor25):
    020
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981

Sites/histologies are assigned to group 4D from 4C based on Site-Specific Factor 25

TNM N:
      X,0,1,2,2A,2B,2C,3


5. Larynx

5A. Supraglottis, Subglottis, Other
Sites:
     C101, C321-C322
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
      X,0,1,2,2A,2B,2C,3

5B. Glottis
Sites:
     C320, C328-C329
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980, 8981
TNM N:
      X,0,1,2,2A,2B,2C,3


6. Nasal Cavity and Paranasal Sinuses

Sites:
     C300, C310-C311
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
      X,0,1,2,2A,2B,2C,3


7. Major Salivary Glands

Sites:
     C079
     C080,C081,C088,C089
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8982
TNM N:
      X,0,1,2,2A,2B,2C,3, 88


8. Thyroid Gland

8A. Thyroid: Papillary/follicular, age less than 045
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8015, 8022, 8033-8344, 8350-8420, 8440-8508,
     8514-8576, 8940-8950, 8980-8981
Age at Diagnosis: less than 045
Grade: 1-3 or 9

Site/histologies are assigned to group 8A from group 8 based on grade, age at diagnosis

TNM N:
     X,0,1,1A,1B, 88

8B. Thyroid: Papillary/follicular, age greater than or equal 045 but not 999
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8015, 8022, 8033-8344, 8350-8420, 8440-8508,
     8514-8576, 8940-8950, 8980-8981
Age at Diagnosis: greater than or equal to 045, but not equal 999
Grade: 1-3 or 9

Site/histologies are assigned to group 8B from group 8 based on grade, age at diagnosis

TNM N:
     X,0,1,1A,1B, 88

8C. Thyroid: Papillary/follicular, age equal 999 (unknown)
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8015, 8022, 8033-8344, 8350-8420, 8440-8508,
     8514-8576, 8940-8950, 8980-8981
Age at Diagnosis: equal 999
Grade: 1-3 or 9


Site/histologies are assigned to group 8C from group 8 based on grade, age at diagnosis

TNM N:
     X,0,1,1A,1B, 88

8D. Thyroid: Medullary
Sites:
     C739
Histologies Requiring AJCC Staging:
     8345-8347, 8430, 8510, 8512-8513
Grade: 1-3 or 9
TNM N:
     X,0,1,1A,1B, 88

8E. Thyroid: Anaplastic
Sites:
     C739
Histologies Requiring AJCC Staging:
     8020-8021, 8030-8032
TNM N:
     X,0,1,1A,1B

8F. Thyroid: Anaplastic
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Grade: 4

Site/histologies are assigned to group 8F from group 8 and group 8D based on grade

TNM N:
     X,0,1,1A,1B


9. Malignant Melanoma of Upper Aerodigestive Tract

Sites:
     C000-C006, C008-C009
     C019
     C020-C024, C028-C029
     C030-C031, C039
     C040-C041, C048-C049
     C050-C052, C058-C059
     C060-C062, C068-C069
     C090-C091, C098-C099
     C100-C104, C108-C109
     C110-C113, C118-C119
     C129, C130-C132
     C138-C139
     C140, C142, C148
     C300
     C310-C311
     C320-C323, C328-C329
Histologies Requiring AJCC Staging:
     8720-8790
TNM N:
      X,0,1, 88


10. Oesophagus including Oesophagogastric Junction

10A. Oesophagus
Sites:
     C150-C155, C158-C159
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1,2,3

10B. Oesophagogastric Junction
Sites:
     C160-C162
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
Discriminator (Site-Specific Factor25):
    020, 040, 060 (for C161-C162)

Site/histologies are assigned to group 10B from group 11 based on site and site-specific factor 25
as well as table lookup

TNM N:
     X,0,1,2,3

11. Stomach

Sites:
     C161-C162 and Discriminator (Site-Specific Factor 25) =
        000, 030, 999
     C163-C166, C168-C169
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8990
TNM N:
     X,0,1,2,3,3A,3B


12. Small Intestine

Sites:
     C170-C172, C178-C179
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1,2


13. Appendix

13A. Appendix: Carcinoma
Sites:
     C181
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1,2

13B. Appendix: Carcinoid
Sites:
     C181
Histologies Requiring AJCC Staging:
     8240-8242, 8246, 8249, 8153
TNM N:
     X,0,1, 88


14. Colon and Rectum

Sites:
     C180, C182-C189
     C199
     C209
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1,1A,1B,1C,2,2A,2B


15. Anal Canal

Sites:
     C210-C212, C218
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1,2,3


16. Gatrointestinal Stromal Tumor (GIST)

16A. GIST: Gastric
Sites:
     C160-C169
     C480-C488 and Site-Specific Factor 10 = 020 (Omentum)
Histologies Requiring AJCC Staging:
     8935-8936

Sites/histologies are assigned to group 16A from group 16B based on site-specific factor 10
as well as table lookup

TNM N:
     0,1, 88
NOTE: c1 will pass if entered in TNM Path N

16B. GIST: Small Intestine
Sites:
     C150-C159
     C170-C172, C178, C179
     C180-C189
     C199
     C209
     C480-C488 and Site-Specific Factor 10 not = 020 (Omentum)
Histologies Requiring AJCC Staging:
     8935-8936
TNM N:
     0,1, 88
NOTE: c1 will pass if entered in TNM Path N


17. Gastric, Small & Large Intestinal Carcinoid Tumours

17A. Gastric, Small & Large Intestinal Carcinoid Tumours-Stomach
Sites:
     C160-C169
Histologies Requiring AJCC Staging:
     8153, 8240-8242, 8246, 8249
TNM N:
     X,0,1

17B. Gastric, Small & Large Intestinal Carcinoid Tumours-Duodenum/Ampulla/Jejunum/Ileum
Sites:
     C170-C179
     C241
Histologies Requiring AJCC Staging:
     8153, 8240-8242, 8246, 8249
TNM N:
     X,0,1, 88

17C. Gastric, Small & Large Intestinal Carcinoid Tumours-Large Intestine
Sites:
     C180, C182-C189
     C199, C209
Histologies Requiring AJCC Staging:
     8153, 8240-8242, 8246, 8249
TNM N:
     X,0,1, 88


18. Liver-Hepatocellular Carcinoma
Sites:
     C220
Histologies Requiring AJCC Staging:
     8170-8175
TNM N:
     X,0,1,88

19. Liver-Intrahepatic Bile Ducts
Sites:
     C221
Histologies Requiring AJCC Staging:
     8160, 8161, 8180
TNM N:
     X,0,1


20. Gallbladder

Sites:
     C239
     C240 and Discriminator (Site-Specific Factor 25) = 030
Histologies Requiring AJCC Staging:
     8000-8152,8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981

Sites/histologies are assigned to group 20 from group 21 based on site-specific factor 25
as well as table lookup

TNM N:
     X,0,1,2


21. Extrahepatic Bile Ducts-Perihilar

Sites:
     C240 and Discriminator (Site-Specific Factor 25) = 010, 020, 050,
        060, 999
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1,2


22. Extrahepatic Bile Ducts-Distal

Sites:
     C240 and Discriminator (Site-Specific Factor 25) = 040, 070
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981

Sites/histologies are assigned to group 22 from group 21 based on site-specific factor 25
as well as table lookup


TNM N:   
     X,0,1


23. Ampulla of Vater

Sites:
     C241
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1


24. Pancreas

Sites:
     C250-C254, C257-C259
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8971, 8980-8981
TNM N:
     X,0,1


25. Lung

Sites:
     C340-C343,C348,C349
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1,2,3


26. Pleural Mesothelioma

Sites:
     C384
Histologies Requiring AJCC Staging:
     9050-9053
TNM N:
     X,0,1,2,3,88


27. Bone

Sites:
     C400-C403, C408-C409
     C410-C414, C418-C419
Histologies Permitting AJCC Staging:
     8800-9136, 9142-9582
TNM N:
     X,0,1
NOTE: c1 will pass if entered in TNM Path N


28. Soft Tissues

Peritoneum - not female
Sites:
     C481-C482, C488
Histologies:
    8800-8820, 8823-8934, 8940-9136, 9142-9582
    Sex = 1,3-5,9  (not female)

Peritoneum - female
Sites:
     C481-C482, C488
Histologies:
    8800-8820, 8823-8921, 9120-9136, 9142-9582
    Sex = 2,6 (female)

Heart,Mediastinum, Soft Tissue
Sites:
     C380-C383, C388
     C470-C476, C478-C479
     C490-C496, C498-C499
Histologies:
    8800-8820, 8823-8935, 8940-9136, 9142-9582

Retroperitoneum
Sites:
     C480
Histologies:
    8800-8820, 8823-8934, 8940-9136, 9142-9582

Specific sites/histologies assigned to group 28 based on sex

TNM N:
     X,0,1
NOTE: TNM N 88 allowed for Mesothelioma, 9050-9055
NOTE: c1 will pass if entered in TNM Path N


29. Carcinoma of Skin

Sites:
     C440, C442-C449, C632
Histologies Requiring AJCC Staging:
     8000-8246, 8248-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1,2,3


30. Merkel Cell Carcinoma

Sites:
     C440, C442-C449,
     C510-C512, C518-C519
     C600-C602, C608-C609
     C632
Histologies Requiring AJCC Staging:
     8247
TNM N:
     Clin: X,0,1,1B,2
     Path: X,0,1,1A,1B,2

31. Malignant Melanoma of the Skin

Sites:
     C440-C449
     C510-C512,C518,C519
     C600-C602, C608, C609
     C632
Histologies Requiring AJCC Staging:
     8720-8790
TNM N:
    Clin: X,0,1,,2,2C,3
    Path: X,0,1,1A,1B,2,2A,2B,2C,3


32. Breast Tumours

Sites:
     C500-C506,C508,C509
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981, 9020
TNM N:
     Clin: X,0,1,2,2A,2B,3,3A,3B,3C
     Path: X,0,0I-,0I+,0M-,0M+,1,1A,1B,1C,1MI,2,2A,2B,3,3A,3B,3C


33.  Vulva

Sites:
     C510-C512,C518,C519
Histologies Requiring AJCC Staging:
     8000-8246, 8248-8576, 8940-8950, 8980-8981
TNM N:
    X,0,1,1A,1B,2,2A,2B,2C,3


34.  Vagina

Sites:
     C529
Histologies Requiring AJCC Staging:
     8000-8576, 8800-8801, 8940-8950, 8980-8981
TNM N:
     X,0,1


35. Cervix Uteri

Sites:
     C530,C531,C538,C539
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1


36. Uterus

36A. Uterus-Endometrium
Sites
     C540-C543, C548-C549
     C559
Histologies Requiring AJCC Staging:
      8000-8790, 8950-8951, 8980-8981
TNM N:
     X,0,1,2
NOTE: c1, c2 will pass if entered in TNM Path N

36B. Uterus-Uterine Sarcomas: Leiomyosarcoma and Endometrial Stromal Sarcoma
Sites:
     C540-C543, C548-C549
     C559
Histologies Requiring AJCC Staging:
     8800, 8890-8898, 8900-8921, 8930-8931, 8935
TNM N:
     X,0,1, 88

36C. Uterus-Uterine Sarcomas: Adenosarcoma
Sites:
     C540-C543, C548-C549
     C559
Histologies Requiring AJCC Staging:
     8933
TNM N:
     X,0,1, 88


37. Ovary

37A. Ovary
Sites:
     C569
Histologies Requiring AJCC Staging:
     8000-8576, 8590-8671, 8930-9110
TNM N:
     X,0,1, 88

37B. Peritoneal Carcinomas
Sites:
     C481-C482, C488
     Sex = 2,6 (female)
Histologies Requiring AJCC Staging:
     8000-8576, 8590-8671, 8930-8934, 8940-9110

Sex code checked for assignment to group 37B

TNM N:
     X,0,1
NOTE: TNM N 88 allowed for Mesothelioma, 9050-9055


38. Fallopian Tube

Sites:
     C570
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1


39. Gestational Trophoblastic Tumors

Sites:
     C589
Histologies Requiring AJCC Staging:
     9100-9105
TNM N:
     88


40. Penis

Sites:
     C600-C602,C608,C609
Histologies Requiring AJCC Staging:
     8000-8246, 8248-8576, 8940-8950, 8980-8981
TNM N:
      X,0,1,2,3


41. Prostate

Sites:
     C619
Histologies Requiring AJCC Staging:
     8000-8110, 8140-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1, 88

42. Testis

Sites:
     C620,C621,C629
Histologies Requiring AJCC Staging:
     8000-8576, 8590-8670, 8940-8950, 8980-8981, 9060-9090, 9100-9105
TNM N:
     X,0,1,2,3


43. Kidney

Sites:
     C649
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1, 88


44. Renal Pelvis and Ureter

Sites:
     C659
     C669
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1,2,3


45. Bladder

Sites:
     C670-C679
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1,2,3


46. Urethra

Sites:
     C680
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1,2


47. Adrenal Cortex Tumours

47A. Adrenal Cortex
Sites:
     C740
Histologies Requiring AJCC Staging:
     8010, 8140, 8370
TNM N:
     X,0,1, 88

47B. Adrenal Cortical Carcinoma
Sites:
     C749
Histologies Requiring AJCC Staging:
     8370
TNM N:
     X,0,1, 88


48. Carcinoma of Skin of Eyelid

Sites:
     C441
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1


49. Carcinoma of Conjunctiva

Sites:
     C690
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1


50.  Malignant Melanoma of the Conjunctiva

Sites:
     C690
Histologies Requiring AJCC Staging:
     8720-8790
TNM N:
     Clin: X,0,0A,0B,1
     Path: X,0,0A,0B,1


51.  Malignant Melanoma of Uvea

51A. Ciliary Body and Choroid
Sites:
     C693
     C694 (Site-Specific Factor 25 = 010)
Histologies Requiring AJCC Staging:
     8720-8790

Sites/histologies are assigned to group 51A from group 51 based on site-specific factor 25


TNM N:
     X,0,1,88

51B. Iris
Sites:
    C694 (Site-Specific Factor 25 = 020)
Histologies Requiring AJCC Staging:
     8720-8790

Sites/histologies are assigned to group 51B from group 51 based on site-specific factor 25


TNM N:
     X,0,1,88


52. Retinoblastoma

Sites:
     C692
Histologies Requiring AJCC Staging:
     9510-9514
TNM N:
     X,0,1,2


53. Carcinoma of the Lacrimal Gland
Sites:
     C695 and Site-Specific Factor25 = 015
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM N:
     X,0,1,88


54. Sarcoma of the Orbit

Sites:
     C696, C698
Histologies Requiring AJCC Staging:
     8800-8936, 8940-9136, 9141-9508, 9520-9582
TNM N:
     X,0,1, 88


55. Hodgkin and Non-Hodgkin Lymphoma (Ocular Adnexal Lymphoma)

Sites:
     C441, C690, C695-C696
Histologies Requiring AJCC Staging:
     9590-9699, 9702-9738, 9811-9818, 9820-9837
TNM N:
     X,0,1,2,3,4,88

56. Brain and Spinal Cord

Sites:
     C700, C701, C709, C710-C719, C720-C729, C751-C753
Histologies Requiring AJCC Staging:
     8000, 8680-9136,9141-9582
TNM T:
     88


57. Lymphoid Neoplasms

57A. Hodgkin and Non-Hodgkin Lymphoma
Sites:
     C000-C440, C442-C689, C691-C694, C698-C809
Histologies Requiring AJCC Staging:
     9590-9699, 9702-9727, 9735, 9737-9738
Sites:
     C000-C419, C422-C423, C425-C440, C442-C689, C691-C694, C698-C809
Histologies Requiring AJCC Staging:
     9811-9818, 9823, 9827, 9837

Sites/histologies are assigned to group 57A based on combinations of site and histology

TNM N:
     88

57B. Mycosis
Fungoides (EORTC Staging System)
Sites:
     C440-C449
     C510-C512, C518-C519
     C600-C602, C608-C609, C632
Histologies Requiring EORTC Staging:
     9700,9701
TNM N:
     X,0,1,1A,1B,2,2A,2B,3,88

57C.  Lymphoid/Hematopoietic
Sites:
     C420, C421, C424
Histologies Requiring AJCC Staging:
     9811-9818, 9837
TNM N:
     88


All Other Schemas and/or Primary Site/Histologies
TNM N:
     88]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-14" ref="67444">Edit created.</event>
                <event version="SE16-015-06" user="depryf" date="2016-08-09" ref="67507">Modifed range for 57A, added 57C.</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-09" ref="67573">Updated description.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-24" ref="67631">88 is now valid code for some cases for group 28.</event>
                <event version="SE16-016-04" user="kirbyk" date="2017-06-15" ref="67655">Added allowable codes for some groups for TNM Path N.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-04-26" ref="67763">88 is now valid code for some cases for group 37B.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="beverung" date="2021-03-05" ref="68574">Add code 88 for group 26 and add pediatric skip condition.</event>
            </history>
        </rule>
        <rule id="IF612" name="Primary Site, Stage Group 2016 - Ed 7 (SEER)" tag="N2209" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' || line.histologicTypeIcdO3 == null ||
    (line.tnmClinStageGroup == null && line.tnmPathStageGroup == null) || !(line.tnmEditionNumber == '07' || line.tnmEditionNumber == 'U7' || line.tnmEditionNumber == '88'))
    return true

String siteGroup = (String)((Closure)Context.AJCC7CodeLookup16).call(line)
Map validCodes = (Map)((Map)Context.IF612_Table).get(siteGroup)

// Special Case for group 28 and 37B
if ((siteGroup == '028' || siteGroup == '37B') && Functions.matches(line.histologicTypeIcdO3, /^905[0-5]$/)) {
    if (line.tnmClinStageGroup != null && !((List)validCodes.getOrDefault('C', [])).contains(line.tnmClinStageGroup) && line.tnmClinStageGroup != '88')
        return false

    if (line.tnmPathStageGroup != null && !((List)validCodes.getOrDefault('P', [])).contains(line.tnmPathStageGroup) && line.tnmPathStageGroup != '88')
        return false

    return true
}

if (line.tnmClinStageGroup != null)
    if (!((List)validCodes.getOrDefault('C', [])).contains(line.tnmClinStageGroup))
        return false

if (line.tnmPathStageGroup != null)
    if (!((List)validCodes.getOrDefault('P', [])).contains(line.tnmPathStageGroup))
        return false

return true]]></expression>
            <message>TNM Stage Group code is invalid for site/hist combination</message>
            <description><![CDATA[This edit checks that the TNM Clin Stage Group (when non-blank) is valid for the site/histology.  This edit checks that the TNM Path Stage Group (when non-blank) is valid for the site/histology.

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Histologic Type ICD-O-3 is blank
4. TNM Edition Number is not = 07, U7, 88
5. TNM Path Stage Group and TNM Clin Stage Group fields are blank


This edit checks that the TNM Clin Stage Group (when non-blank) is valid for the site/histology.  This edit checks that the TNM Path Stage Group (when non-blank) is valid for the site/histology.

The site/histology specific Stage Group values are listed below.The number next to each site group indicates the chapter in the AJCC Cancer Staging Manual, Edition 7. Site/histology group names are taken from UICC.

The sites for each chapter are listed along with the histologies requiring AJCC staging.  The allowable values for the clinical and pathologic stage groups are listed under Stage Group.  When there is a difference in allowable values for clinical and pathologic stage group, they will be specified separately.

For sites/histologies not included in the list below, TNM Path Stage Group and TNM Clin Stage Group should be coded to 88 or left blank.

The sites/histologies for each group are listed in the EditWriter table AC7G2016.DBF, except as noted below where special logic in this edit is used to assign or reassign sites/histologies to a specified group number.

3. Lip and Oral Cavity

Sites:
     C000-C006, C008-C009
     C020-C023, C028-C029
     C030-C031, C039
     C040-C041, C048-C049
     C050,C058-C059
     C060-C062, C068-C069
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 3, 4, 4A, 4B, 4C, 99

4. Pharynx

4A. Oropharynx and Hypopharynx
Sites:
     C019, C024
     C051-C052
     C090-C091, C098-C099
     C100, C102-C104, C108-C109
     C129
     C130-C132, C138-C139

Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 3, 4, 4A, 4B, 4C, 99

4B. Nasopharynx
Sites:
    C110, C112-C113, C118-C119
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 3, 4, 4A, 4B, 4C, 99

4C. Nasopharynx
Sites:
    C111
Discriminator (Site-Specific Factor25):
    010
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 3, 4, 4A, 4B, 4C, 99

4D. Oropharynx - Pharyngeal Tonsil
Sites:
    C111
Discriminator (Site-Specific Factor25):
    020
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981

Sites/histologies are assigned to group 4D from 4C based on Site-Specific Factor 25

Stage Group:
     0, 1, 2, 3, 4, 4A, 4B, 4C, 99


5. Larynx

5A. Supraglottis, Subglottis, Other
Sites:
     C101, C321-C322
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
      0, 1, 2, 3, 4, 4A, 4B, 4C, 99

5B. Glottis
Sites:
     C320, C328-C329
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980, 8981
Stage Group:
     0, 1, 2, 3, 4, 4A, 4B, 4C, 99


6. Nasal Cavity and Paranasal Sinuses

Sites:
     C300, C310-C311
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 3, 4, 4A, 4B, 4C, 99


7. Major Salivary Glands

Sites:
     C079
     C080-C081, C088-C089
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8982
Stage Group:
     1, 2, 3, 4, 4A, 4B, 4C, 99, 88


8. Thyroid Gland

8A. Thyroid: Papillary/follicular, age less than 045
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8015, 8022, 8033-8344, 8350-8420, 8440-8508,
     8514-8576, 8940-8950, 8980-8981
Age at Diagnosis: less than 045
Grade: 1-3 or 9

Site/histologies are assigned to group 8A from group 8 based on grade, age at diagnosis

Stage Group:
      1, 2, 99, 88


8B. Thyroid: Papillary/follicular, age greater than or equal 045 but not 999
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8015, 8022, 8033-8344, 8350-8420, 8440-8508,
     8514-8576, 8940-8950, 8980-8981
Age at Diagnosis: greater than or equal to 045, but not equal 999
Grade: 1-3 or 9

Site/histologies are assigned to group 8B from group 8 based on grade, age at diagnosis

Stage Group:
     1, 2, 3, 4, 4A, 4B, 4C, 99, 88

8C. Thyroid: Papillary/follicular, age equal 999 (unknown)
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8015, 8022, 8033-8344, 8350-8420, 8440-8508,
     8514-8576, 8940-8950, 8980-8981
Age at Diagnosis: equal 999
Grade: 1-3 or 9


Site/histologies are assigned to group 8C from group 8 based on grade, age at diagnosis

Stage Group:
     99, 88


8D. Thyroid: Medullary
Sites:
     C739
Histologies Requiring AJCC Staging:
     8345-8347, 8430, 8510, 8512-8513
Grade: 1-3 or 9

Stage Group:
     1, 2, 3, 4, 4A, 4B, 4C, 99, 88


8E. Thyroid: Anaplastic
Sites:
     C739
Histologies Requiring AJCC Staging:
     8020-8021, 8030-8032
Stage Group:
    Clin: 1, 2, 3, 4, 4A, 4B, 4C, 99
    Path: 4, 4A, 4B, 4C, 99


8F. Thyroid: Anaplastic
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Grade: 4

Site/histologies are assigned to group 8F from group 8 and group 8D based on grade

Stage Group:
     Clin: 1, 2, 3, 4, 4A, 4B, 4C, 99
     Path: 4, 4A, 4B, 4C, 99


9. Malignant Melanoma of Upper Aerodigestive Tract

Sites:
     C000-C006, C008-C009
     C019
     C020-C024, C028-C029
     C030-C031, C039
     C040-C041, C048-C049
     C050-C052, C058-C059
     C060-C062, C068-C069
     C090-C091, C098-C099
     C100-C104, C108-C109
     C110-C113, C118-C119
     C129, C130-C132
     C138-C139
     C140, C142, C148
     C300
     C310-C311
     C320-C323, C328-C329
Histologies Requiring AJCC Staging:
     8720-8790
Stage Group:
     3, 4, 4A, 4B, 4C, 99, 88


10. Oesophagus and Oesophagogastric Junction

10A. Oesophagus
Sites:
     C150-C155, C158-C159
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 1A, 1B, 2A, 2B, 3, 3A, 3B, 3C, 4, 99

10B. Oesophagogastric Junction
Sites:
     C160-C162
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
Discriminator (Site-Specific Factor25):
    020, 040, 060 (for C161-C162)

Site/histologies are assigned to group 10B from group 11 based on site and site-specific factor 25 as well as table lookup

Stage Group:
     0, 1, 1A, 1B, 2A, 2B, 3, 3A, 3B, 3C, 4, 99


11. Stomach

Sites:
     C161-C162 and Discriminator (CS Site-Specific Factor 25) =
        000, 030, 100, 999
     C163-C166, C168-C169
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8990
Stage Group:
     0, 1, 1A, 1B, 2A, 2B, 3, 3A, 3B, 3C, 4,99


12. Small Intestine

Sites:
     C170-C172, C178-C179
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2A, 2B, 3A, 3B, 4, 99


13. Appendix

13A. Appendix: Carcinoma
Sites:
     C181
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 2A, 2B, 2C, 3, 3A, 3B, 3C, 4, 4A, 4B, 4C, 99

13B. Appendix: Carcinoid
Sites:
     C181
Histologies Requiring AJCC Staging:
     8240-8242, 8246, 8249, 8153
Stage Group:
     1, 2, 3, 4, 99, 88


14. Colon and Rectum

Sites:
     C180, C182-C189
     C199
     C209
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 2A, 2B, 2C, 3, 3A, 3B, 3C, 4, 4A, 4B, 99


15. Anal Canal

Sites:
     C210-C212, C218
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 3, 3A, 3B, 4, 99


16. Gastrointestinal Stromal Tumor (GIST)

16A. GIST: Gastric
Sites:
     C160-C169
     C480-C488 and CS Site-Specific Factor 10 = 020 (Omentum)
Histologies Requiring AJCC Staging:
     8935-8936

Sites/histologies are assigned to group 16A from group 16B based on site-specific factor 10
as well as table lookup

Stage Group:
     1, 1A, 1B, 2, 3A, 3B, 4, 99, 88

16B. GIST: Small Intestine
Sites:
     C150-C159
     C170-C172, C178, C179
     C180-C189
     C199
     C209
     C480-C488 and CS Site-Specific Factor 10 not = 020 (Omentum)
Histologies Requiring AJCC Staging:
     8935-8936
Stage Group:
     1, 2, 3, 3A, 3B, 4, 99, 88


17. Gastric, Small & Large Intestinal Carcinoid Tumours

17A. Gastric, Small & Large Intestinal Carcinoid Tumours-Stomach
Sites:
     C160-C169
Histologies Requiring AJCC Staging:
     8153, 8240-8242, 8246, 8249
Stage Group:
     0, 1, 2A, 2B, 3A, 3B, 4, 99


17B. Gastric, Small & Large Intestinal Carcinoid Tumours-Duodenum/Ampulla/Jejunum/Ileum
Sites:
     C170-C179
     C241
Histologies Requiring AJCC Staging:
     8153, 8240-8242, 8246, 8249
Stage Group:
     1, 2A, 2B, 3A, 3B, 4, 99, 88

17C. Gastric, Small & Large Intestinal Carcinoid Tumours-Large Intestine
Sites:
     C180, C182-C189
     C199, C209
Histologies Requiring AJCC Staging:
     8153, 8240-8242, 8246, 8249
Stage Group:
     1, 2A, 2B, 3A, 3B, 4, 99, 88


18. Liver-Hepatocellular Carcinoma
Sites:
     C220
Histologies Requiring AJCC Staging:
     8170-8175
Stage Group:
     1, 2, 3, 3A, 3B, 3C, 4A, 4B, 99, 88


19. Liver-Intrahepatic Bile Ducts
Sites:
     C221
Histologies Requiring AJCC Staging:
     8160,  8161,  8180
Stage Group:
     0, 1, 2, 3, 4A, 4B, 99


20. Gallbladder

Sites:
     C239
     C240 and Discriminator (CS Site-Specific Factor 25) = 030
Histologies Requiring AJCC Staging:
     8000-8152,8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981

Sites/histologies are assigned to group 20 from group 21 based on site-specific factor 25
as well as table lookup

Stage Group:
     0, 1, 2, 3A, 3B, 4A, 4B, 99


21. Extrahepatic Bile Ducts-Perihilar

Sites:
     C240 and Discriminator (CS Site-Specific Factor 25) = 010, 020, 050,
        060, 999
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 3A, 3B, 4, 4A, 4B, 99


22. Extrahepatic Bile Ducts-Distal

Sites:
     C240 and Discriminator (CS Site-Specific Factor 25) = 040, 070
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981

Sites/histologies are assigned to group 22 from group 21 based on site-specific factor 25
as well as table lookup

Stage Group:
     0, 1, 1A, 1B, 2, 2A, 2B, 3, 4,99


23. Ampulla of Vater

Sites:
     C241
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1A, 1B, 2, 2A, 2B, 3, 4, 99


24. Pancreas

Sites:
     C250-C254, C257-C259
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8971, 8980-8981
Stage Group:
     0, 1A, 1B, 2, 2A, 2B, 3, 4, 99


25. Lung

Sites:
     C340-C343, C348-C349
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     OC, 0, 1A, 1B, 2, 2A, 2B, 3, 3A, 3B, 4, 99


26. Pleural Mesothelioma

Sites:
     C384
Histologies Requiring AJCC Staging:
     9050-9053
Stage Group:
     1, 1A, 1B, 2, 3, 4, 99, 88


27. Bone

Sites:
     C400-C403, C408-C409
     C410-C414, C418-C419
Histologies Permitting AJCC Staging:
     8800-9136, 9142-9582
Stage Group:
     1A, 1B, 2A, 2B, 3, 4, 4A, 4B, 99


28. Soft Tissues

Peritoneum - not female
Sites:
     C481-C482, C488
Histologies:
    8800-8820, 8823-8934, 8940-9136, 9142-9582
    Sex = 1, 3-5, 9 (not female)

Peritoneum - female
Sites:
     C481-C482, C488
Histologies:
    8800-8820, 8823-8921, 9120-9136, 9142-9582
    Sex = 2, 6 (female)

Heart,Mediastinum, Soft Tissue
Sites:
     C380-C383, C388
     C470-C476, C478-C479
     C490-C496, C498-C499
Histologies:
    8800-8820, 8823-8935, 8940-9136, 9142-9582

Retroperitoneum
Sites:
     C480
Histologies:
    8800-8820, 8823-8934, 8940-9136, 9142-9582

Specific sites/histologies assigned to group 28 based on sex

Stage Group:
     1, 1A, 1B, 2, 2A, 2B, 3, 4, 99
Note: TNM Stage Group 88 allowed for Mesothelioma, 9050-9055


29. Carcinoma of Skin

Sites:
     C440, C442-C449, C632
Histologies Requiring AJCC Staging:
     8000-8246, 8248-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 3, 4, 99


30. Merkel Cell Carcinoma

Sites:
     C440, C442-C449,
     C510-C512, C518-C519
     C600-C602, C608-C609
     C632
Histologies Requiring AJCC Staging:
     8247
Stage Group:
     Clin: 0, 1B, 2B, 2C, 3B, 4, 99
     Path: 0, 1A, 1B, 2A, 2B, 2C, 3, 3A, 3B, 4, 99

31. Malignant Melanoma of the Skin

Sites:
     C440-C449
     C510-C512, C518-C519
     C600-C602, C608-C609
     C632
Histologies Requiring AJCC Staging:
     8720-8790
Stage Group:
     Clin: 0, 1, 1A, 1B, 2, 2A, 2B, 2C, 3, 4, 99
     Path: 0, 1, 1A, 1B, 2, 2A, 2B, 2C, 3, 3A, 3B, 3C, 4, 99


32. Breast Tumours

Sites:
     C500-C506, C508-C509
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981, 9020
Stage Group:
     Clin: 0, 1A, 2A, 2B, 3, 3A, 3B, 3C, 4, 99
     Path: 0, 1A, 1B, 2A, 2B, 3, 3A, 3B, 3C, 4, 99


33.  Vulva

Sites:
     C510-C512, C518-C519
Histologies Requiring AJCC Staging:
     8000-8246, 8248-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 1A, 1B, 2, 3, 3A, 3B, 3C, 4A, 4B, 99


34.  Vagina

Sites:
     C529
Histologies Requiring AJCC Staging:
     8000-8576, 8800-8801, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 3, 4A, 4B, 99


35. Cervix Uteri

Sites:
     C530-C531, C538-C539
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 1A, 1A1, 1A2, 1B, 1B1, 1B2, 2, 2A, 2A1, 2A2, 2B, 3, 3A, 3B, 4A, 4B, 99


36. Uterus

36A. Uterus-Endometrium
Sites
     C540-C543, C548-C549
     C559

Histologies Requiring AJCC Staging:
     8000-8790, 8950-8951, 8980-8981
Stage Group:

     0, 1, 1A, 1B, 2, 3, 3A, 3B, 3C1, 3C2, 4, 4A, 4B, 99

36B. Uterus-Uterine Sarcomas: Leiomyosarcoma and Endometrial Stromal Sarcoma
Sites:
     C540-C543, C548-C549
     C559
Histologies Requiring AJCC Staging:
     8800, 8890-8898, 8900-8921, 8930-8931, 8935
Stage Group:
     1, 1A, 1B, 2,2A, 2B, 3, 3A, 3B, 3C, 4A, 4B, 99, 88


36C. Uterus-Uterine Sarcomas: Adenosarcoma
Sites:
     C540-C543, C548-C549
     C559
Histologies Requiring AJCC Staging:
     8933
Stage Group:
     1, 1A, 1B, 1C, 2, 3, 3A, 3B, 3C, 4A, 4B, 99, 88


37. Ovary 

37A. Ovary
Sites:
     C569
Histologies Requiring AJCC Staging:
     8000-8576, 8590-8671, 8930-9110
Stage Group:
     1, 1A, 1B, 1C, 2, 2A, 2B, 2C, 3, 3A, 3B, 3C, 4, 99, 88

37B. Peritoneal Carcinomas
Sites:
     C481-C482, C488
     Sex = 2,6 (female)
Histologies Requiring AJCC Staging:
     8000-8576, 8590-8671, 8930-8934, 8940-9110

Sex code checked for assignment to group 37B

Stage Group:
     3, 3A, 3B, 3C, 4, 99
Note: TNM Stage Group 88 allowed for Mesothelioma, 9050-9055


38. Fallopian Tube

Sites:
     C570
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 1A, 1B, 1C, 2, 2A, 2B, 2C, 3, 3A, 3B, 3C, 4, 99


39. Gestational Trophoblastic Tumors

Sites:
     C589
Histologies Requiring AJCC Staging:
     9100-9105
Stage Group:
     1, 1A, 1B, 2, 2A, 2B, 3, 3A, 3B, 4, 4A, 4B, 99,88


40. Penis

Sites:
     C600-C602, C608-C609
Histologies Requiring AJCC Staging:
     8000-8246, 8248-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 2, 3A, 3B, 4, 99


41. Prostate

Sites:
     C619
Histologies Requiring AJCC Staging:
     8000-8110, 8140-8576, 8940-8950, 8980-8981
Stage Group:
     1, 2A, 2B, 3, 4, 99, 88


42. Testis

Sites:
     C620-C621, C629
Histologies Requiring AJCC Staging:
     8000-8576, 8590-8670, 8940-8950, 8980-8981, 9060-9090, 9100-9105
Stage Group:
     Clin: 0, 1, 1B, 1S, 2, 2A, 2B, 2C, 3, 3A, 3B, 3C, 99
     Path: 0, 1, 1A, 1B, 1S, 2, 2A, 2B, 2C, 3, 3A, 3B, 3C, 99

43. Kidney

Sites:
     C649
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     1, 2, 3, 4, 99, 88


44. Renal Pelvis and Ureter

Sites:
     C659
     C669
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
    0IS, 0A, 1, 2, 3, 4, 99


45. Bladder

Sites:
     C670-C679
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     0IS, 0A, 1, 2, 3, 4, 99


46. Urethra

Sites:
     C680
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     0IS, 0A, 1, 2, 3, 4, 99


47. Adrenal Cortex Tumours

47A. Adrenal Cortex
Sites:
     C740
Histologies Requiring AJCC Staging:
     8010, 8140, 8370
Stage Group:
     1, 2, 3, 4, 99, 88

47B. Adrenal Cortical Carcinoma
Sites:
     C749
Histologies Requiring AJCC Staging:
     8370
Stage Group:
     1, 2, 3, 4, 99, 88


48. Carcinoma of Skin of Eyelid

Sites:
     C441
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     0, 1, 1A, 1B, 1C, 2, 3, 3A, 3B, 3C, 4, 99


49. Carcinoma of Conjunctiva

Sites:
     C690
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     88


50.  Malignant Melanoma of the Conjunctiva

Sites:
     C690
Histologies Requiring AJCC Staging:
     8720-8790
Stage Group:
     88


51.  Malignant Melanoma of Uvea

51A. Ciliary Body and Choroid
Sites:
     C693
     C694 (CS Site-Specific Factor 25 = 010)
Histologies Requiring AJCC Staging:
     8720-8790

Sites/histologies are assigned to group 51A from group 51 based on site-specific factor 25

Stage Group:
     1, 2A, 2B, 3, 3A, 3B, 3C, 4, 99, 88

51B. Iris
Sites:
    C694 (CS Site-Specific Factor 25 = 020)
Histologies Requiring AJCC Staging:
     8720-8790

Sites/histologies are assigned to group 51B from group 51 based on site-specific factor 25

Stage Group:
     1, 2A, 2B, 3, 3A, 3B, 3C, 4, 99,88


52. Retinoblastoma

Sites:
     C692
Histologies Requiring AJCC Staging:
     9510-9514
Stage Group:
     88


53. Carcinoma of Lacrimal Gland
Sites:
     C695 and CS Site-Specific Factor25 = 015
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Stage Group:
     88


54. Sarcoma of Orbit

Sites:
     C696, C698
Histologies Requiring AJCC Staging:
     8800-8936, 8940-9136, 9141-9508, 9520-9582
Stage Group:
     88


55. Hodgkin and Non-Hodgkin Lymphoma (Ocular Adnexal Lymphoma)

Sites:
     C441, C690, C695-C696
Histologies Requiring AJCC Staging:
     9590-9699, 9702-9738, 9811-9818, 9820-9837
Stage Group:
     1, 1A, 1B, 2, 2A, 2B, 3, 3A, 3B, 4, 4A, 4B, 99


56. Brain and Spinal Cord

Sites:
     C700, C701, C709, C710-C719, C720-C729, C751-C753
Histologies Requiring AJCC Staging:
     8000, 8680-9136,9141-9582
TNM T:
     88


57. Lymphoid Neoplasms

57A. Hodgkin and Non-Hodgkin
Sites:
     C000-C440, C442-C689, C691-C694, C698-C809
Histologies Requiring AJCC Staging:
     9590-9699, 9702-9727, 9735, 9737-9738

Sites/histologies are assigned to group 57A based on combinations of site and histology

Stage Group:
     1, 1A, 1B, 2, 2A, 2B, 3, 3A, 3B, 4, 4A, 4B, 99

Sites:
     C000-C419, C422-C423, C425-C440, C442-C689, C691-C694, C698-C809
Histologies Requiring AJCC Staging:
     9811-9818, 9823, 9827, 9837
Stage Group:
     1, 1A, 1B, 2, 2A, 2B, 3, 3A, 3B, 4, 4A, 4B, 99


57B. Mycosis Fungoides (EORTC Staging System)
Sites:
     C440-C449
     C510-C512, C518-C519
     C600-C602, C608-C609, C632
Histologies Requiring EORTC Staging:
     9700,9701
Stage Group:
     1A, 1B, 2A,2B,3A, 3B, 4A, 4A1, 4A2, 4B, 4C, 99, 88

57C.  Lymphoid/Hematopoietic
Sites:
     C420, C421, C424
Histologies Requiring AJCC Staging:
     9811-9818, 9837
Stage Group:
     4, 4A, 4B, 88, 99

All Other Schemas and/or Primary Site/Histologies
Stage Group:
     88]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-14" ref="67445">Edit created.</event>
                <event version="SE16-015-03" user="kirbyk" date="2016-07-07" ref="67486">Fixed missing chapter in table.</event>
                <event version="SE16-015-06" user="depryf" date="2016-08-09" ref="67486">Fixed ranges for 57A group, added 57C group.</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-02" ref="67555">Added valid code &apos;99&apos; for site group 55.</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-09" ref="67574">Updated description.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-24" ref="67632">Added valid code 88 for some cases for group 28; 99 for 8E and 8F.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-05-01" ref="67729">Added valid code 88 for some cases for group 37B.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="beverung" date="2021-03-05" ref="68574">Add code 88 for group 26.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-12" ref="69326">Removed several dependencies.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF613" name="Primary Site, T 2016 - Ed 7 (SEER)" tag="N2212" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' || line.histologicTypeIcdO3 == null ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || (line.tnmClinT == null && line.tnmPathT == null))
    return true

//Skip condition 5
if (!(line.tnmEditionNumber == '07' || line.tnmEditionNumber == 'U7' || line.tnmEditionNumber == '88'))
    return true

if (line.tnmEditionNumber == '88' &&
        (line.tnmClinT == null || line.tnmClinT == '88') &&
        (line.tnmPathT == null || line.tnmPathT == '88') &&
        line.overRideSiteTnmStggrp == '1')
    return true

String siteGroup = (String)((Closure)Context.AJCC7CodeLookup16).call(line)
if (siteGroup == '046') {
    if (line.sex == '2' || line.sex == '6')
        siteGroup = '46A'
    else
        siteGroup = '46B'
}

// Special Case for group 28 and 37B
Map validCodes = (Map)((Map)Context.IF613_Table).get(siteGroup)
if ((siteGroup == '028' || siteGroup == '37B') && Functions.matches(line.histologicTypeIcdO3, /^905[0-5]$/)) {
    if (line.tnmClinT != null && !((List)validCodes.getOrDefault('C', [])).contains(line.tnmClinT) && line.tnmClinT != '88')
        return false

    if (line.tnmPathT != null && !((List)validCodes.getOrDefault('P', [])).contains(line.tnmPathT) && line.tnmPathT != '88')
        return false

    return true
}

if (line.tnmClinT != null)
    if (!((List)validCodes.getOrDefault('C', [])).contains(line.tnmClinT))
        return false

if (line.tnmPathT != null)
    if (!((List)validCodes.getOrDefault('P', [])).contains(line.tnmPathT))
        return false

return true]]></expression>
            <message>TNM T code is invalid for site/hist combination</message>
            <description><![CDATA[TNM Clin T and TNM Path T may be blank.  If TNM Clin T is entered, it is edited by the criteria below. If TNM Path T is entered, it is edited by the criteria below.


This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Histologic Type ICD-O-3 is blank
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. TNM Edition Number is not = 07, U7, or 88
6. TNM Clin T and TNM Path T are both empty


The allowable values for

Clinical T: (blank), cX, c0, pA, pIS, pISU, PISD, c1MI, c1, c1A, c1A1, c1A2, c1B, c1B1, c1B2, c1C, c1D, c2, c2A, c2A1, c2A2, c2B, c2C, c2D, c3, c3A, c3B, c3C, c3D, c4, c4A, c4B, c4C, c4D, c4E, 88
Path T: (blank), pX, p0, pA, pIS, pISU, PISD, p1MI, p1, p1A, p1A1, p1A2, p1B, p1B1, p1B2, p1C, p1D, p2, p2A, p2A1, p2A2, p2B, p2C, p2D, p3, p3A, p3B, p3C, p3D, p4, p4A, p4B, p4C, p4D, p4E, 88


This edit checks the subset of values that are valid for each of the site/histology groups that have a TNM T defined and checks for "88" if the site/histology group does not have a TNM T defined.

Pediatric cases not staged according to AJCC are skipped and are identified in this edit by TNM Edition Number = 88, AJCC Clin T = 88 or blank, AJCC Path T = 88 or blank, and Over-ride Site/TNM-Stgrp = 1. The use of over-ride for cases over age 24 is checked in other edits.

The number next to each site group indicates the chapter in the AJCC Cancer Staging Manual, Edition 7. The sites for each chapter are listed along with the histologies requiring AJCC staging. Site/histology group names are taken from UICC. The values for the clinical and pathologic T codes are listed under TNM T. All values listed must be prefixed with a "c" or "p" except code "88" and blank.  All clinical T codes have a prefix of "c" except for IS, A, ISU, ISD which must have a prefix of "p".  The Path T codes all have the prefix of "p". For cases where there is a difference in allowable values for clinical and pathologic  T codes (Testis, Prostate, Melanoma Conjunctiva, and Retinoblastoma), the T codes are listed separately for clin and path.

For example for breast the edit lists
TNM T:
     X,0,IS,1,1A,1B,1C,1MI,2,3,4,4A,4B,4C,4D

Which translates to allowable codes of:

Clin T: (blank),cX,c0,pIS,c1,c1A,c1B,c1C,c1MI,c2,c3,c4,c4A,c4B,c4C,c4D
Path T: (blank),pX,p0,pIS,p1,p1A,p1B,p1C,p1MI,p2,p3,p4,p4A,p4B,p4C,p4D

This edit differs from the COC-NPCR edit of the same name in that it includes NOS categories for T that are not included in AJCC 7th Edition.

3. Lip and Oral Cavity

Sites:
     C000-C006,C008,C009
     C020-C023,C028,C029
     C030,C031,C039
     C040,C041,C048,C049
     C050,C058,C059
     C060-C062,C068,C069
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
      X,0,IS,1,2,3,4,4A,4B


4. Pharynx

4A. Oropharynx and Hypopharynx
Sites:
     C019, C024
     C051-C052
     C090-C091, C098-C099
     C100, C102-C104, C108-C109
     C129
     C130-C132, C138-C139

Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,3,4, 4A, 4B

4B. Nasopharynx
Sites:
    C110, C112-C113, C118-C119
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,3,4

4C. Nasopharynx
Sites:
    C111
Discriminator (Site-Specific Factor25):
    010
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,3,4

4D. Oropharynx - Pharyngeal Tonsil
Sites:
    C111
Discriminator (Site-Specific Factor25):
    020
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981

Sites/histologies are assigned to group 4D from 4C based on Site-Specific Factor 25


TNM T:
     X,0,IS,1,2,3,4,4A,4B


5. Larynx

5A. Supraglottis, Subglottis, Other
Sites:
     C101, C321-C322
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,3,4,4A,4B

5B. Glottis
Sites:
     C320, C328-C329
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980, 8981
TNM T:
     X,0,IS,1,1A,1B,2,3,4,4A,4B


6. Nasal Cavity and Paranasal Sinuses

Sites:
     C300, C310-C311
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
      X,0,IS,1,2,3,4,4A,4B


7. Major Salivary Glands

Sites:
     C079
     C080,C081,C088,C089
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8982
TNM T:
     X,0,1,2,3,4,4A,4B, 88


8. Thyroid Gland

8A. Thyroid: Papillary/follicular, age less than 045
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8015, 8022, 8033-8344, 8350-8420, 8440-8508,
     8514-8576, 8940-8950, 8980-8981
Age at Diagnosis: less than 045
Grade: 1-3 or 9

Site/histologies are assigned to group 8A from group 8 based on grade, age at diagnosis


TNM T:
     X,0, 1,1A,1B,2,3,4,4A,4B,88


8B. Thyroid: Papillary/follicular, age greater than or equal 045 but not 999
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8015, 8022, 8033-8344, 8350-8420, 8440-8508,
     8514-8576, 8940-8950, 8980-8981
Age at Diagnosis: greater than or equal to 045, but not equal 999
Grade: 1-3 or 9

Site/histologies are assigned to group 8B from group 8 based on grade, age at diagnosis

TNM T:
     X,0,1,1A,1B,2,3,4,4A,4B, 88

8C. Thyroid: Papillary/follicular, age equal 999 (unknown)
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8015, 8022, 8033-8344, 8350-8420, 8440-8508,
     8514-8576, 8940-8950, 8980-8981
Age at Diagnosis: equal 999
Grade: 1-3 or 9

Site/histologies are assigned to group 8C from group 8 based on grade, age at diagnosis

TNM T:
      X,0,1,1A,1B,2,3,4,4A,4B, 88


8D. Thyroid: Medullary
Sites:
     C739
Histologies Requiring AJCC Staging:
     8345-8347, 8430, 8510, 8512-8513
Grade: 1-3 or 9

TNM T:
     X,0,1,1A,1B,2,3,4,4A,4B, 88

8E. Thyroid: Anaplastic
Sites:
     C739
Histologies Requiring AJCC Staging:
     8020-8021, 8030-8032
TNM T:
     Clin: X,0,1,1A,1B,2,3,4,4A,4B
     Path: 4,4A,4B

8F. Thyroid: Anaplastic
Sites:
     C739
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Grade: 4

Site/histologies are assigned to group 8F from group 8 and group 8D based on grade

TNM T:
     Clin: X,0,1,1A,1B,2,3,4,4A,4B
     Path: 4,4A,4B

9. Malignant Melanoma of Upper Aerodigestive TractOe
Sites:
     C000-C006, C008-C009
     C019
     C020-C024, C028-C029
     C030-C031, C039
     C040-C041, C048-C049
     C050-C052, C058-C059
     C060-C062, C068-C069
     C090-C091, C098-C099
     C100-C104, C108-C109
     C110-C113, C118-C119
     C129, C130-C132
     C138-C139
     C140, C142, C148
     C300
     C310-C311
     C320-C323, C328-C329
Histologies Requiring AJCC Staging:
     8720-8790
TNM T:
      X,3,4,4A,4B, 88, 0


10. Oesophagus and Oesophagogastric Junction

10A. Oesophagus
Sites:
     C150-C155, C158-C159
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,1A,1B,2,3,4,4A,4B

10B. Oesophagogastric Junction
Sites:
     C160-C162
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
Discriminator (Site-Specific Factor25):
    020, 040, 060 (for C161-C162)

Site/histologies are assigned to group 10B from group 11 based on site and site-specific factor 25 as well as table lookup

TNM T:
     X,0,IS,1,1A,1B,2,3,4,4A,4B


11. Stomach

Sites:
     C161-C162 and Discriminator (Site-Specific Factor 25) =
        000, 030,999
     C163-C166, C168-C169
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8990
TNM T:
     X,0,IS,1,1A,1B,2,3,4,4A,4B


12. Small Intestine

Sites:
     C170-C172, C178-C179
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
TNM T:
      X,0,IS,1,1A,1B,2,3,4


13. Appendix

13A. Appendix: Carcinoma
Sites:
     C181
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,3,4,4A,4B

13B. Appendix: Carcinoid
Sites:
     C181
Histologies Requiring AJCC Staging:
     8240-8242, 8246, 8249, 8153
TNM T:
     X,0,1,1A,1B,2,3,4, 88


14. Colon and Rectum

Sites:
     C180, C182-C189
     C199
     C209
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8247-8248, 8250-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,3,4,4A,4B


15. Anal Canal

Sites:
     C210-C212, C218
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,3,4


16. Gastrointestinal Stromal Tumor (GIST)

16A. GIST: Gastric
Sites:
     C160-C169
     C480-C488 and Site-Specific Factor 10 = 020 (Omentum)
Histologies Requiring AJCC Staging:
     8935-8936

Sites/histologies are assigned to group 16A from group 16B based on site-specific factor 10
as well as table lookup


TNM T:
     X,0,1,2,3,4, 88

16B. GIST: Small Intestine
Sites:
     C150-C159
     C170-C172, C178, C179
     C180-C189
     C199
     C209
     C480-C488 and Site-Specific Factor 10 not = 020 (Omentum)
Histologies Requiring AJCC Staging:
     8935-8936
TNM T:
     X,0,1,2,3,4, 88


17. Gastric, Small & Large Intestinal Carcinoid Tumours

17A. Gastric, Small & Large Intestinal Carcinoid Tumours-Stomach
Sites:
     C160-C169
Histologies Requiring AJCC Staging:
     8153, 8240-8242, 8246, 8249
TNM T:
     X,0,IS,1,2,3,4

17B. Gastric, Small & Large Intestinal Carcinoid Tumours-Duodenum/Ampulla/Jejunum/Ileum
Sites:
     C170-C179
     C241
Histologies Requiring AJCC Staging:
     8153, 8240-8242, 8246, 8249
TNM T:
     X,0,1,2,3,4, 88

17C. Gastric, Small & Large Intestinal Carcinoid Tumours-Large Intestine
Sites:
     C180, C182-C189
     C199, C209
Histologies Requiring AJCC Staging:
     8153, 8240-8242, 8246, 8249
TNM T:
     X,0,1,1A,1B,2,3,4, 88


18. Liver-Hepatocellular Carcinoma
Sites:
     C220
Histologies Requiring AJCC Staging:
     8170-8175
TNM T:
     X,0,1,2,3,3A,3B,4, 88


19. Liver-Intrahepatic Bile Ducts
Sites:
     C221
Histologies Requiring AJCC Staging:
     8160, 8161, 8180
TNM T:
     X,0,IS,1,2,2A,2B,3,4


20. Gallbladder

Sites:
     C239
     C240 and Discriminator (Site-Specific Factor 25) = 030
Histologies Requiring AJCC Staging:
     8000-8152,8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981

Sites/histologies are assigned to group 20 from group 21 based on site-specific factor 25
as well as table lookup


TNM T:
     X,0,IS,1,1A,1B,2,3,4


21. Intrahepatic Bile Ducts-Perihilar

Sites:
     C240 and Discriminator (Site-Specific Factor 25) = 010, 020, 050,
        060, 999
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,2A,2B,3,4


22. Intrahepatic Bile Ducts-Distal

Sites:
     C240 and Discriminator (Site-Specific Factor 25) = 040, 070
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981

Sites/histologies are assigned to group 22 from group 21 based on site-specific factor 25
as well as table lookup

TNM T:
     X,0,IS,1,2,3,4


23. Ampulla of Vater

Sites:
     C241
Histologies Requiring AJCC Staging:
     8000-8152, 8154-8231, 8243-8245, 8250-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,3,4


24. Pancreas

Sites:
     C250-C254, C257-C259
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8971, 8980-8981
TNM T:
     X,0,IS,1,2,3,4


25. Lung

Sites:
     C340-C343,C348,C349
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,1A,1B,2,2A,2B,3,4


26. Pleural Mesothelioma

Sites:
     C384
Histologies Requiring AJCC Staging:
     9050-9053
TNM T:
     X,0,1,1A,1B,2,3,4,88


27. Bone

Sites:
     C400-C403, C408-C409
     C410-C414, C418-C419
Histologies Permitting AJCC Staging:
     8800-9136, 9142-9582
TNM T:
     X,0,1,2,3


28. Soft Tissues

Peritoneum - not female
Sites:
     C481-C482, C488
Histologies:
    8800-8820, 8823-8934, 8940-9136, 9142-9582
    Sex = 1, 3-5, 9 (not female)

Peritoneum - female
Sites:
     C481-C482, C488
Histologies:
    8800-8820, 8823-8921, 9120-9136, 9142-9582
    Sex = 2,6 (female)

Heart,Mediastinum, Soft Tissue
Sites:
     C380-C383, C388
     C470-C476, C478-C479
     C490-C496, C498-C499
Histologies:
    8800-8820, 8823-8935, 8940-9136, 9142-9582

Retroperitoneum
Sites:
     C480
Histologies:
    8800-8820, 8823-8934, 8940-9136, 9142-9582

Specific sites/histologies assigned to group 28 based on sex


TNM T:
     X,0,1,1A,1B,2,2A,2B
NOTE: TNM T 88 allowed for Mesothelioma, 9050-9055


29. Carcinoma of Skin

Sites:
     C440, C442-C449, C632
Histologies Requiring AJCC Staging:
     8000-8246, 8248-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,3,4


30. Merkel Cell Carcinoma

Sites:
     C440, C442-C449,
     C510-C512, C518-C519
     C600-C602, C608-C609
     C632
Histologies Requiring AJCC Staging:
     8247
TNM T:
      X,0,IS,1,2,3,4


31. Malignant Melanoma of the Skin

Sites:
     C440-C449
     C510-C512,C518,C519
     C600-C602, C608, C609
     C632
Histologies Requiring AJCC Staging:
     8720-8790
TNM T:
     X,0,IS,1,1A,1B,2,2A,2B,3,3A,3B,4,4A,4B


32. Breast Tumours

Sites:
     C500-C506,C508,C509
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981, 9020
TNM T:
     X,0,IS,1,1A,1B,1C,1MI,2,3,4,4A,4B,4C,4D


33.  Vulva

Sites:
     C510-C512,C518,C519
Histologies Requiring AJCC Staging:
     8000-8246, 8248-8576, 8940-8950, 8980-8981
TNM T:
    X,0,IS,1,1A,1B,2,3


34.  Vagina

Sites:
     C529
Histologies Requiring AJCC Staging:
     8000-8576, 8800-8801, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,3,4


35. Cervix Uteri

Sites:
     C530,C531,C538,C539
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,1A,1A1,1A2,1B,1B1,1B2,2,2A,2A1,2A2,2B,3,3A,3B,4


36. Uterus-Endometrium

36A. Corpus Uteri: Carcinomas
Sites
     C540-C543, C548-C549
     C559
Histologies Requiring AJCC Staging:
     8000-8790, 8950-8951, 8980-8981
TNM T:
     X,0,IS,1,1A,1B,2,3,3A,3B,4


36B. Uterus-Uterine Sarcomas: Leiomyosarcoma and Endometrial Stromal Sarcoma
Sites:
     C540-C543, C548-C549
     C559
Histologies Requiring AJCC Staging:
     8800, 8890-8898, 8900-8921, 8930-8931, 8935
TNM T:
     X,0,1,1A,1B,2,2A,2B,3,3A,3B,4, 88

36C. Uterus-Uterine Sarcomas: Adenosarcoma
Sites:
     C540-C543, C548-C549
     C559
Histologies Requiring AJCC Staging:
     8933
TNM T:
     X,0,1,1A,1B,1C,2,2A,2B,3,3A,3B,4, 88


37. Ovary

37A. Ovary
Sites:
     C569
Histologies Requiring AJCC Staging:
     8000-8576, 8590-8671, 8930-9110
TNM T:
     X,0,1,1A,1B,1C,2,2A,2B,2C,3,3A,3B,3C, 88

37B. Peritoneal Carcinomas
Sites:
     C481-C482, C488
     Sex = 2,6 (female)
Histologies Requiring AJCC Staging:
     8000-8576, 8590-8671, 8930-8934, 8940-9110

Sex code checked for assignment to group 37B

TNM T:   X, 0, 3,3A,3B,3C
NOTE: TNM T 88 allowed for Mesothelioma, 9050-9055


38. Fallopian Tube

Sites:
     C570
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,1A,1B,1C,2,2A,2B,2C,3,3A,3B,3C


39. Gestational Trophoblastic Tumors

Sites:
     C589
Histologies Requiring AJCC Staging:
     9100-9105
TNM T:
     X,0,1,2,88


40. Penis

Sites:
     C600-C602,C608,C609
Histologies Requiring AJCC Staging:
     8000-8246, 8248-8576, 8940-8950, 8980-8981
TNM T:
      X,0,IS,A,1,1A,1B,2,3,4


41. Prostate

Sites:
     C619
Histologies Requiring AJCC Staging:
     8000-8110, 8140-8576, 8940-8950, 8980-8981
TNM T:
      Clin: X,0,1,1A,1B,1C,2,2A,2B,2C,3,3A,3B,4, 88
      Path: X,0,2,2A,2B,2C,3,3A,3B,4, 88


42. Testis

Sites:
     C620,C621,C629
Histologies Requiring AJCC Staging:
     8000-8576, 8590-8670, 8940-8950, 8980-8981, 9060-9090, 9100-9105
TNM T:
     Clin: X, 4
     Path: X,0,IS,1,2,3,4,


43. Kidney

Sites:
     C649
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,1,1A,1B,2,2A,2B,3,3A,3B,3C,4, 88


44. Renal Pelvis and Ureter

Sites:
     C659
     C669
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,A,1,2,3,4


45. Bladder

Sites:
     C670-C679
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T: Clin: X,0,IS,A,1,2,3,4,4A,4B
       Path: X,0,IS,A,1,2,2A,2B,3,3A,3B,4,4A,4B


46. Urethra

46A. Urethra - Female
Sites:
     C680
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Sex: 2,6 (female)
TNM T:
     X,0,IS,A,1,2,3,4

46B. Urethra - not Female
Sites:
     C680
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
Sex: 1,3-5,9 (not female)
TNM T:
     X,0,IS,ISU,ISD,A,1,2,3,4


47. Adrenal Cortex Tumours

47A. Adrenal Cortex
Sites:
     C740
Histologies Requiring AJCC Staging:
     8010, 8140, 8370
TNM T:
     X,0,1,2,3,4, 88

47B. Adrenal Cortical Carcinoma
Sites:
     C749
Histologies Requiring AJCC Staging:
     8370
TNM T:
     X,0,1,2,3,4, 88


48. Carcinoma of Skin of Eyelid

Sites:
     C441
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,2A,2B,3,3A,3B,4


49. Carcinoma of Conjunctiva

Sites:
     C690
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,IS,1,2,3,4,4A,4B,4C,4D


50.  Malignant Melanoma of Conjunctiva

Sites:
     C690
Histologies Requiring AJCC Staging:
     8720-8790
TNM T:
     Clin: X,0,IS,1,1A,1B,1C,1D,2,2A,2B,2C,2D,3,3A,3B,3C,3D,4
     Path: X,0,IS,1,1A,1B,1C,2,2A,2B,2C,3,4


51.  Malignant Melanoma of Uvea

51A. Ciliary Body and Choroid
Sites:
     C693
     C694 (Site-Specific Factor 25 = 010)
Histologies Requiring AJCC Staging:
     8720-8790

Sites/histologies are assigned to group 51A from group 51 based on site-specific factor 25


TNM T:
     X,0,1,1A,1B,1C,1D,2,2A,2B,2C,2D,3,3A,3B,3C,3D,4,4A,4B,4C,4D,4E,88

51B. Iris
Sites:
    C694 (Site-Specific Factor 25 = 020)
Histologies Requiring AJCC Staging:
     8720-8790

Sites/histologies are assigned to group 51B from group 51 based on site-specific factor 25

TNM T:
     X,0,1,1A,1B,1C,2,2A,3,3A,4,4A,4B,88


52. Retinoblastoma

Sites:
     C692
Histologies Requiring AJCC Staging:
     9510-9514
TNM T:
     Clin: X,0,1,1A,1B,1C,2,2A,2B,3,3A,3B,4,4A,4B,4C,4D
     Path: X,0,1,2,2A,2B,3,3A,3B,4,4A,4B


53. Carcinoma of Lacrimal Gland
Sites:
     C695 and Site-Specific Factor25 = 015
Histologies Requiring AJCC Staging:
     8000-8576, 8940-8950, 8980-8981
TNM T:
     X,0,1,2,3,4,4A,4B,4C,88


54. Sarcoma of Orbit

Sites:
     C696, C698
Histologies Requiring AJCC Staging:
     8800-8936, 8940-9136, 9141-9508, 9520-9582
TNM T:
     X,0,1,2,3,4,88


55. Hodgkin and Non-Hodgkin Lymphoma (Ocular Adnexal Lymphoma)

Sites:
     C441, C690, C695-C696
Histologies Requiring AJCC Staging:
     9590-9699, 9702-9738, 9811-9818, 9820-9837
TNM T:
     X,0,1,1A,1B,1C,2,2A,2B,2C,2D,3,4,4A,4B,4C,4D,88


57. Lymphoid Neoplasms

57A. Hodgkin and Non-Hodgkin
Sites:
     C000-C440, C442-C689, C691-C694, C698-C809
Histologies Requiring AJCC Staging:
     9590-9699, 9702-9727, 9735, 9737-9738
Sites:
     C000-C419, C422-C423, C425-C440, C442-C689, C691-C694, C698-C809
Histologies Requiring AJCC Staging:
     9823, 9827

Sites/histologies are assigned to group 57A based on combinations of site and histology

TNM T:
     88

57B. Mycosis Fungoides (EORTC Staging System)
Sites:
     C440-C449
     C510-C512, C518-C519
     C600-C602, C608-C609, C632
Histologies Requiring EORTC Staging:
     9700,9701
TNM T:
     X, 0, 1,1A,1B,2,2A,2B,3,4,88

57C.  Lymphoid/Hematopoietic
Sites:
     C420, C421, C424
Histologies Requiring AJCC Staging:
     9811-9818, 9837
TNM T:
     88

All Other Schemas and/or Primary Site/Histologies
TNM T:
     88]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-17" ref="67446">Edit created.</event>
                <event version="SE16-015-06" user="depryf" date="2016-08-09" ref="67508">Fixed range for 57A, added 57C.</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-09" ref="67575">Updated description.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-24" ref="67633">88 is now valid code for some cases for group 28.</event>
                <event version="SE16-016-03" user="kirbyk" date="2017-03-23" ref="67645">Fixed valid codes in table for group 35.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-05-01" ref="67730">88 is now valid code for some cases for group 37B.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67760">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="beverung" date="2021-03-05" ref="68574">Add code 88 for group 26 and add pediatric skip condition.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF616" name="TNM Clin T, Clin Size, Site Spec - Ed 7 (SEER)" tag="N2238" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.histologicTypeIcdO3 == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

//Skip condition 6, 7
if (line.tnmClinT == null || line.tnmClinT == '88' || line.tumorSizeClinical == null || line.tumorSizeClinical == '999')
    return true

//Skip condition 8
if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
    return true

//Get site group code- special conditions for tumor size edit
String siteGroup = (String)((Closure)Context.AJCC7CodeLookup16).call(line)
if (siteGroup == '04A') {
    if (Functions.matches(line.primarySite, /^C129|C13\d$/))
        siteGroup = '04E'
}
else if (siteGroup == '17B') {
    if (line.primarySite == 'C241')
        siteGroup = '17D'
}

//If this site group is not in the table, pass edit (skip condition 5)
if (!(siteGroup ==~ /^00[37]|04[ADE]|08[ABCD]|13B|015|16[AB]|17[ABD]|02[45789]|03[02]|04[39]|47[AB]|05[34]$/))
    return true

String clinT = line.tnmClinT
if ((clinT == 'c1' || clinT == 'c1A' || clinT == 'c1MI') && line.tumorSizeClinical == '990')
    return true

Map groupMap = (Map)((Map)Context.TNM_Clin_T_Tumor_Size_Table).getOrDefault(siteGroup, [:])
if (groupMap.containsKey(clinT))
    return ((List)groupMap.getOrDefault(clinT, [])).contains(Functions.asInt(line.tumorSizeClinical))

return true]]></expression>
            <message>TNM Clin T and Tumor Size Clinical conflict for site/hist combination</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Histologic Type ICD-O-3 is blank
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. Site/Histology where Clin T is not dependent on clinical tumor size
6. TNM Clin T is blank or 88
7. Tumor Size Clinical is blank or 999
8. TNM Edition Number is not = 07, U7

Skip 7 applied after determination of site/histology group

TNM Clin T  may be blank.  If entered, it will be edited site-specifically.   A cT category entered in TNM Clin T will be compared to Tumor Size Clinical.  An edit failure will be returned if the clinical tumor size is outside the range of tumor size for the listed cT category.  "989", "989 millimeters or larger", is the highest possible size for Tumor Size Clinical.  990 (microscopic focus) will be accepted for c1 (c1A, c1MI) for all sites/histologies included in this edit.

The site-specific TNM Clinical T values with the corresponding clinical tumor size in millimeters are listed below. The number next to each site title indicates the respective chapter in the AJCC Cancer Staging Manual, Edition 7. The list includes only those sites/histology groups where clinical T is based on clinical tumor size. The site/histology groups are identified by site and histology in the edit Primary Site, Stage Group 2016 - Ed 7. Subdivision of the 4A site/histology group, Oropharynx and Hypopharynx, was required for this edit; the site codes for Hypopharynx were removed to site group 4E.

3. Lip and Oral Cavity

TNM T:                 1                    2              3
Tumor Size Clin      001-020, 990        021-040        041-989

4. Pharynx

    4A. Oropharynx and Hypopharynx

Division for T category:
    4A.  Oropharynx only
    Sites:  C019, C024, C051-C052, C090-C091, C098-C099, C100, C102-C104, C108-C109

TNM T:                 1                    2
Tumor Size Clin      001-020, 990        021-040
    4E.  Hypopharynx
    Sites: C129, C130-C139

TNM T:                 1
Tumor Size Clin      001-020, 990

    4D. Oropharynx

TNM T:                 1                    2
Tumor Size Clin      001-020, 990        021-040

7. Major Salivary Glands

TNM T:                 1                    2
Tumor Size Clin      001-020, 990        021-040

8. Thyroid Gland

    8A. Thyroid: Papillary/follicular, age less than 045
    8B. Thyroid: Papillary/follicular, age greater than or equal 045 but not 999
    8C. Thyroid: Papillary/follicular, age equal 999 (unknown
    8D. Thyroid: Medullary

TNM T:                 1                1A                1B            2
Tumor Size Clin      001-020, 990    001-010, 990    011-020        021-040

13. Appendix

    13B. Appendix: Carcinoid

TNM T:                 1                1A                1B
Tumor Size Clin      001-020, 990    001-010, 990    011-020

15. Anus

TNM T:                 1                2            3
Tumor Size Clin      001-020, 990    021-050        051-989

16. Gastrointestinal Stromal Tumor (GIST)

    16A. GIST: Gastric
    16B. GIST: Small Intestine

TNM T:                 1                2            3              4
Tumor Size Clin      001-020, 990    021-050        051-100        101-989


17. Neuroendocrine Tumors (NET)

    17A. NET: Stomach
    17B. NET: Small Intestine

TNM T:                 1
Tumor Size Clin      001-010, 990

    17D.  NET: Ampulla

TNM T:                 1                2
Tumor Size Clin      001-010, 990    011-989

24. Exocrine and Endocrine Pancreas

TNM T:                 1                2
Tumor Size Clin      001-020, 990    021-989

25. Lung

TNM T:                 1                1A                1B            2A              2B
Tumor Size Clin     001-030, 990    001-020, 990    021-030        001-050, 990    051-070

27. Bone

TNM T:                 1                2
Tumor Size Clin      001-080, 990    081-989

28. Soft Tissue Sarcoma

TNM T:                 1                2
Tumor Size Clin     001-050, 990    051-989

29. Cutaneous Squamous Cell Carcinoma and other Cutaneous Carcinomas

TNM T:                 1
Tumor Size Clin      001-020, 990

30. Merkel Cell Carcinoma

TNM T:                 1                2            3
Tumor Size Clin      001-020, 990    021-050        051-989

32. Breast

TNM T:                 1                1M                1A                1B            1C            2            3
Tumor Size Clin      001-020, 990    001-001, 990    001-005, 990    005-010        011-020        021-050        051-989

43. Kidney

TNM T:                 1                1A                1B            2            2A            2B
Tumor Size Clin      001-070, 990    001-040, 990    041-070        071-989        071-100        101-989

47. Adrenal

    47A. Adrenal Cortex
    47B. Adrenal Cortical Carcinoma

TNM T:                 1                2
Tumor Size Clin      001-050, 990    051-989

49. Conjunctiva

TNM T:                 1                2
Tumor Size Clin      001-005, 990    006-989

53. Carcinoma of the Lacrimal Gland

TNM T:                 1                2            3
Tumor Size Clin      001-020, 990    021-040        041-989

54. Sarcoma of the Orbit

TNM T:                 1                2
Tumor Size Clin      001-015, 990    016-989]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-17" ref="67449">Edit created.</event>
                <event version="SE16-015-07" user="kirbyk" date="2016-08-25" ref="67510">Removed code &apos;2A&apos; for Chapter 25.</event>
                <event version="SE16-015-07" user="kirbyk" date="2016-09-13" ref="67524">Fixed logic for Clin T values not based on size.</event>
                <event version="SE16-015-08" user="kirbyk" date="2016-09-26" ref="67529">Added code &apos;2A&apos; for Chapter 25.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-13" ref="67587">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF617" name="TNM N, Size Nodes, Site Spec - Ed 7 (COC)" tag="N2244" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_1,Histologic_Type_ICD-O-3,Primary_Site,TNM_Clin_N,TNM_Path_N,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[//Skip conditions 1, 2, 3
if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' || line.histologicTypeIcdO3 == null)
    return true

//Skip condition 6
if ((line.tnmClinN == null && line.tnmPathN == null) || (line.tnmClinN == '88' && line.tnmPathN == '88'))
    return true

//Skip conditions 4, 7
if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7'))
    return true

//If this site group is not in the table, pass edit (skip condition 5)
String siteGroup = (String)((Closure)Context.AJCC7CodeLookup16).call(line)
if (!(siteGroup ==~ /^00[367]|04[ABCD]|05[AB]|029$/))
    return true

String ssf = line.csSiteSpecificFactor1
if (siteGroup == '029')
    ssf = line.csSiteSpecificFactor16

if (ssf == '988' || ssf == '999')
    return true

if (ssf ==~ /^99[0123]$/)
    ssf = '030'
else if (ssf ==~ /^99[456]$/)
    ssf = '050'
else if (ssf == '997')
    ssf = '061'

boolean pathFail = false
Map groupMap = (Map)((Map)Context.IF617_Table).getOrDefault(siteGroup, [:])
if (line.tnmPathN != null ) {
    //If Path N value is not in the table for this site group, check Clin N
    if (groupMap.containsKey(line.tnmPathN)) {
        List validNodes = (List)groupMap.getOrDefault(line.tnmPathN, [])
        if (validNodes.contains(Functions.asInt(ssf)))
            return true
        else
            pathFail = true
    }
}
if (line.tnmClinN == null && pathFail)
    return false

if (line.tnmClinN != null && groupMap.containsKey(line.tnmClinN))
    return ((List)groupMap.getOrDefault(line.tnmClinN, [])).contains(Functions.asInt(ssf))

return true]]></expression>
            <message>TNM N and Size Nodes conflict for site/hist combination</message>
            <description><![CDATA[This edit is skipped if any of the following conditions is true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Histologic Type ICD-O-3 is blank
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. Site/Histology where numeric value for size of nodes is not collected
6. TNM Clin N and TNM Path N are both blank or 88
7. TNM Edition Number not = 07, U7
8. SSF1 for site/histo groups 3-7 = 988, SSF16 for site/histo group 29 = 988

Skip for numbers 5, 8 applied after determination of site/histology group

TNM Clin N and TNM Path N may be blank.  If one or both of these are entered, the field(s) will
be edited site-specifically.  A cN or pN category will be compared to the appropriate site-
specific factor for the site/histology.  The edit will first compare the number of nodes to pN
category entered in TNM Path N, and then to cN category entered in TNM Clin N.The edit
comparisons will proceed as follows:


1.  If TNM PATH N is empty:
    a.  TNM Clin N and Site-Specific Factor:  Pass, edit passes
    b.  TNM Clin N and Site-Specific Factor:  Fail, edit fails
2.  If TNM Path N is coded:
    a. TNM Path N and Site-Specific Factor: Pass, edit passes.
    b. TNM Path N and Site-Specific Factor: Fail
        1. If TNM Clin N is empty, edit fails
        2. If TNM Clin N is coded:
            a. TNM Clin N and Site-Specific Factor: Pass, edit passes
            b. TNM Clin N and Site-Specific Factor: Fail, edit fails

"980", "980 millimeters or larger",  is the largest possible size for nodes. Nonspecific size
values are converted to numeric values for purposes of the edit. The edit passes if size of
nodes is coded "999", unknown.

The site-specific TNM N values with the corresponding size of nodal metastasis/size of nodes,
and the Site-Specific Factor used to collect the information, are listed below. The number next
to each site title indicates the respective chapter in the AJCC Cancer Staging Manual, Edition
7. The list includes only those sites/histology groups where pathologic N is based on the size
of regional nodal metastasis/nodes. The site/histology groups are identified by site and
histology in the edits Primary Site, AJCC Stage Group 2016 - Ed 7 (COC), Primary Site, Stage
Group 2016 - Ed 7 (NPCR), and Primary Site, Stge Group 2016 - Ed 7 (SEER).

NOTE:  Size of lymph nodes is also involved in assignment of N category for Vulva, Renal
Pelvis/Ureter, and Urethra, but this information is not collected in a separate site-specific
factor.  Node size is collected as a code rather than a numeric value in a site-specific factor
for Testis.

3. Lip and Oral Cavity

SSF 1
TNM N:          0      1           2           2A          2B          2C          3
Size of Nodes  000  001-030     001-060     031-060     001-060     001-060     061-980


4. Pharynx

    4A. Oropharynx and Hypopharynx
    4D. Oropharynx

SSF 1
TNM N:          0      1           2           2A          2B          2C          3
Size of Nodes  000  001-030     001-060     031-060     001-060     001-060     061-980

    4B. Nasopharynx
    4C. Nasopharynx

SSF 1
TNM N:           0     1           2           3A
Size of Nodes   000 001-060     001-060     061-980

5. Larynx

    5A. Supraglottis, Subglottis, Other
    5B. Glottis

SSF 1
TNM N:          0      1           2           2A          2B          2C          3
Size of Nodes  000  001-030     001-060     031-060     001-060     001-060     061-980

6. Nasal Cavity and Paranasal Sinuses

SSF 1
TNM N:          0      1           2           2A          2B          2C          3
Size of Nodes  000  001-030     001-060     031-060     001-060     001-060     061-980

7. Major Salivary Glands

SSF 1
TNM N:          0      1           2           2A          2B          2C          3
Size of Nodes  000  001-030     001-060     031-060     001-060     001-060     061-980


29. Cutaneous Squamous Cell Carcinoma and other Cutaneous Carcinomas

SSF 16
TNM N:          0      1           2           2A          2B          2C          3
Size of Nodes  000  001-030     001-060     031-060     001-060     001-060     061-980]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-10" ref="67450">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-18" ref="67596">Added skip condition for TNM Edition Number; updated description.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-01" ref="68134">Added valid combinations; edit will now fail for invalid TNM N values.</event>
                <event version="SE18-019-03" user="kirbyk" date="2019-08-07" ref="68211">Edit will not fail for invalid TNM N values; for groups 4B and 4C, changed TNM 3 to TNM 3A.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF618" name="TNM Path T, Path Size, Site Spec - Ed 7 (SEER)" tag="N2267" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Histologic_Type_ICD-O-3,Primary_Site,TNM_Path_T,Tumor_Size_Pathologic,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[//Skip conditions 1, 2, 3
if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' || line.histologicTypeIcdO3 == null)
    return true

//Skip conditions 4, 6
if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.tnmPathT == null || line.tnmPathT == '88')
    return true

//Skip conditions 7, 8
if (line.tumorSizePathologic == null || line.tumorSizePathologic == '999' || (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7'))
    return true

//Get site group code- special conditions for tumor size edit
String siteGroup = (String)((Closure)Context.AJCC7CodeLookup16).call(line)
if (siteGroup == '04A') {
    if (Functions.matches(line.primarySite, /^C129|C13\d$/))
        siteGroup = '04E'
}
else if (siteGroup == '17B') {
    if (line.primarySite == 'C241')
        siteGroup = '17D'
}

//If this site group is not in the table, pass edit (skip condition 5)
if (!(siteGroup ==~ /^00[37]|04[ADE]|08[ABCD]|13B|015|16[AB]|17[ABD]|02[45789]|03[02]|04[39]|47[AB]|05[34]$/))
    return true

String pathT = line.tnmPathT
if ((pathT == 'p1' || pathT == 'p1A' || pathT == 'p1MI') && line.tumorSizePathologic == '990')
    return true

Map groupMap = (Map)((Map)Context.TNM_Path_T_Tumor_Size_Table).getOrDefault(siteGroup, [:])
if (groupMap.containsKey(pathT))
    return ((List)groupMap.getOrDefault(pathT, [])).contains(Functions.asInt(line.tumorSizePathologic))

return true]]></expression>
            <message>TNM Path T and Path Size conflict for site/hist combination</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Histologic Type ICD-O-3 is blank
4. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
5. Site/Histology where Path T is not dependent on pathologic tumor size
6. TNM Path T is blank or 88
7. Tumor Size Pathologic is blank or 999
8. TNM Edition Number not = 07, U7


TNM Path T may be blank.  If entered, it will be edited site-specifically.  A pT category entered in TNM Path T will be compared to Tumor Size Pathologic.  An edit failure will be returned if the pathologic tumor size is outside the range of tumor size for the listed pT category.  "989", "989 millimeters or larger", is the highest possible size for Tumor Size Pathologic.  990 (microscopic focus) will be accepted for p1 (p1A, p1MI) for all sites/histologies included in this edit.

The site-specific TNM Pathologic T values with the corresponding clinical tumor size in millimeters are listed below. The number next to each site title indicates the respective chapter in the AJCC Cancer Staging Manual, Edition 7. The list includes only those sites/histology groups where pathologic T is based on pathologic tumor size. The site/histology groups are identified by site and histology in the edit Primary Site, Stage Group 2016 - Ed 7. Subdivision of the 4A site/histology group, Oropharynx and Hypopharynx, was required for this edit; the site codes for Hypopharynx were removed to site group 4E.

3. Lip and Oral Cavity

TNM T:                 1                    2              3
Tumor Size Path      001-020, 990        021-040        041-989

4. Pharynx

    4A. Oropharynx and Hypopharynx

Division for T category:
    4A.  Oropharynx only
    Sites:  C019, C024, C051-C052, C090-C091, C098-C099, C100, C102-C104, C108-C109

TNM T:                 1                    2
Tumor Size Path     001-020, 990        021-040
    4E.  Hypopharynx
    Sites: C129, C130-C139

TNM T:                 1
Tumor Size Path      001-020, 990

    4D. Oropharynx

TNM T:                 1                    2
Tumor Size Path      001-020, 990        021-040

7. Major Salivary Glands

TNM T:                 1                    2
Tumor Size Path      001-020, 990        021-040

8. Thyroid Gland

    8A. Thyroid: Papillary/follicular, age less than 045
    8B. Thyroid: Papillary/follicular, age greater than or equal 045 but not 999
    8C. Thyroid: Papillary/follicular, age equal 999 (unknown
    8D. Thyroid: Medullary

TNM T:                 1                1A                1B            2
Tumor Size Path      001-020, 990    001-010, 990    011-020        021-040

13. Appendix

    13B. Appendix: Carcinoid

TNM T:                 1                1A                1B
Tumor Size Path      001-020, 990    001-010, 990    011-020

15. Anus

TNM T:                 1                2            3
Tumor Size Path      001-020, 990    021-050        051-989


16. Gastrointestinal Stromal Tumor (GIST)

    16A. GIST: Gastric
    16B. GIST: Small Intestine

TNM T:                 1                2            3              4
Tumor Size Path      001-020, 990    021-050        051-100        101-989


17. Neuroendocrine Tumors (NET)

    17A. NET: Stomach
    17B. NET: Small Intestine

TNM T:                 1
Tumor Size Path      001-010, 990

    17D.  NET: Ampulla

TNM T:                 1                2
Tumor Size Path      001-010, 990    011-989

24. Exocrine and Endocrine Pancreas

TNM T:                 1                2
Tumor Size Path      001-020, 990    021-989

25. Lung

TNM T:                 1                1A                1B            2A              2B
Tumor Size Path     001-030, 990    001-020, 990    021-030        001-050, 990    051-070

27. Bone

TNM T:                 1                2
Tumor Size Path      001-080, 990    081-989

28. Soft Tissue Sarcoma

TNM T:                 1                2
Tumor Size Path     001-050, 990    051-989

29. Cutaneous Squamous Cell Carcinoma and other Cutaneous Carcinomas

TNM T:                 1
Tumor Size Path      001-020, 990

30. Merkel Cell Carcinoma

TNM T:                 1                2            3
Tumor Size Path      001-020, 990    021-050        051-989

32. Breast

TNM T:                 1                1M                1A                1B            1C            2           3
Tumor Size Path      001-020, 990    001-001, 990    001-005, 990    005-010        011-020        021-050       051-989

43. Kidney

TNM T:                 1                1A                1B            2            2A            2B
Tumor Size Path      001-070, 990    001-040, 990    041-070        071-989        071-100        101-989

47. Adrenal

    47A. Adrenal Cortex
    47B. Adrenal Cortical Carcinoma

TNM T:                 1                2
Tumor Size Path      001-050, 990    051-989

49. Conjunctiva

TNM T:                 1                2
Tumor Size Path      001-005, 990    006-989

53. Carcinoma of the Lacrimal Gland

TNM T:                 1                2            3
Tumor Size Path     001-020, 990    021-040        041-989

54. Sarcoma of the Orbit
TNM T:                 1                2
Tumor Size Path      001-015, 990    016-989]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-17" ref="67452">Edit created.</event>
                <event version="SE16-015-07" user="kirbyk" date="2016-08-25" ref="67510">Removed code &apos;2A&apos; for Chapter 25.</event>
                <event version="SE16-015-07" user="kirbyk" date="2016-09-13" ref="67524">Fixed logic for Path T values not based on size.</event>
                <event version="SE16-015-08" user="kirbyk" date="2016-09-26" ref="67530">Added code &apos;2A&apos; for Chapter 25.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-18" ref="67610">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF619" name="Mets at DX-BBDLLO, HemeRetic (SEER)" tag="N2427" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[boolean allMetsEmpty = (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null &&
    line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.dateOfDiagnosisYear > '2017')
    return true
    
if (line.typeOfReportingSource == '7' || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || allMetsEmpty)
    return true

// Heme4 accepts any valid Mets at DX code
String hist = line.histologicTypeIcdO3
if (Functions.matches(line.primarySite, /^C42[014]$/) && ((hist >= '9811' && hist <= '9818') || hist == '9837'))
    return true

Integer siteInt = Functions.asInt(line.primarySite?.substring(1))
boolean included = false
if ((hist >= '9740' && hist <= '9809') || (hist >= '9840' && hist <= '9992'))
    included = true
else if (((siteInt >= 0 && siteInt <= 440) || (siteInt >= 442 && siteInt <= 689) || (siteInt >= 691 && siteInt <= 694) || (siteInt >= 698 && siteInt <= 809)) &&
    (hist == '9820' || hist == '9826' || (hist >= '9831' && hist <= '9834')))
    included = true
else if (Functions.matches(line.primarySite, /^C42[014]$/) && (hist == '9823' || hist == '9827'))
    included = true
else if (((siteInt >= 0 && siteInt <= 440) || (siteInt >= 442 && siteInt <= 689) || (siteInt >= 691 && siteInt <= 694) || (siteInt >= 698 && siteInt <= 809)) && (hist == '9731' || hist == '9732' || hist == '9734'))
    included = true

if (included)
    return line.metsAtDxBone == '8' && line.metsAtDxBrain == '8' && line.metsAtDxDistantLn == '8' && line.metsAtDxLiver == '8' && line.metsAtDxLung == '8' && line.metsAtDxOther == '8'
else
    return line.metsAtDxBone != '8' && line.metsAtDxBrain != '8' && line.metsAtDxDistantLn != '8' && line.metsAtDxLiver != '8' && line.metsAtDxLung != '8' && line.metsAtDxOther != '8']]></expression>
            <message>Mets at DX fields invalid for site/hist combination</message>
            <description><![CDATA[The purpose of this edit is to verify that the Mets at DX-Bone, Brain, Distant LN, Liver, Lung, and Other fields are coded to 8 (not applicable) for the appropriate site/histology combinations.

This edit is skipped under the following conditions:

1. Year of Date of Diagnosis is less than 2016 or greater than 2017, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Mets at DX fields are all empty


If site and histology are included in the Hematopoietic, Reticuloendothelial, Immunoproliferative, and Myeloproliferative Neoplasms, an error will be generated under any of the following conditions:

1.  If Mets at DX-Bone not = 8
2.  If Mets at DX-Brain not = 8
3.  If Mets at DX-Distant LN not = 8
4.  If Mets at DX-Liver not = 8
5.  If Mets at DX-Lung not = 8
6.  If Mets at DX-Other not = 8

If site and histology are NOT included in the Hematopoietic, Reticuloendothelial, Immunoproliferative, and Myeloproliferative Neoplasms, an error will be generated under any of the following conditions:

1.  If Mets at DX-Bone = 8
2.  If Mets at DX-Brain = 8
3.  If Mets at DX-Distant LN = 8
4.  If Mets at DX-Liver = 8
5.  If Mets at DX-Lung = 8
6.  If Mets at DX-Other = 8


The Hematopoietic, Reticuloendothelial, Immunoproliferative, and Myeloproliferative Neoplasms are identified as follows within the edit logic as follows:

    Heme1 - HemeRetic neoplasms for all sites: Histologic Type ICD-O-3 9740-9809,9840-9992

    Heme2 - HemeRetic neoplasms except when occurring in Ocular Adnexal sites:
        Histologic Type ICD-O-3 9820, 9826, 9831-9834 with Primary Site C000-C440, C442-C689, C691-C694, C698-C809
    Heme3 - Neoplasms manifesting as leukemia or lymphoma:
        Histologic Type ICD-O-3 9823, 9827, with Primary Site C420, C421, C424
    Heme4 - Neoplasms accepted as either leukemia or lymphoma:
        Histologic Type ICD-O-3 9811-9818, 9837 with Primary Site C420, C421, C424. NOTE: Any valid code for a Mets at DX field will be accepted for this group of sites/histologies.
    Plasma - Plasma Cell Disorders: Histologic Type ICD-O-3 9731, 9732, 9734 with Primary Site C000-C440, C442-C689, C691-C694, C698-C809]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-08" ref="67453">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-04-16" ref="67761">Updated Heme3 category and added Heme4 category.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68016">Limit to cases diagnosed 2016-2017.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF620" name="TNM T, SSF 12, Tumor Size, Carcinoma of Skin (COC)" tag="N2417" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.csSiteSpecificFactor12 == null || line.csSiteSpecificFactor12 == '988')
    return true

//Skip condition 5
if ((line.tnmClinT == null && line.tnmPathT == null) || (line.tnmClinT == '88' && line.tnmPathT == '88'))
    return true

//Skip condition 7, 8
if ((line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7') || line.tnmPathDescriptor == '4' || line.tnmPathDescriptor == '6')
    return true

//If case is not Cutaneous CA of skin, edit is skipped (skip condition 4)
String hist = line.histologicTypeIcdO3
if (!(Functions.matches(line.primarySite, /^C44[02-9]|C632$/)) || !((hist >= '8000' && hist <= '8246') || (hist >= '8248' && hist <= '8576') || (hist >= '8940' && hist <= '8950') || hist == '8980' || hist == '8981'))
    return true

if (line.tnmPathT == null) {
    if (line.tnmClinT == 'c1')
        return Functions.matches(line.csSiteSpecificFactor12, /^00[01]|99[139]$/)
    else if (line.tnmClinT == 'c2' && ((line.tumorSizeClinical >= '001' && line.tumorSizeClinical <= '020') || (line.tumorSizeSummary >= '001' && line.tumorSizeSummary <= '020')))
        return Functions.matches(line.csSiteSpecificFactor12, /^00[2345]|992$/)
}
else {
    if (line.tnmPathT == 'p1')
        return Functions.matches(line.csSiteSpecificFactor12, /^00[01]|99[139]$/)
    else if (line.tnmPathT == 'p2' && ((line.tumorSizePathologic >= '001' && line.tumorSizePathologic <= '020') || (line.tumorSizeSummary >= '001' && line.tumorSizeSummary <= '020')))
        return Functions.matches(line.csSiteSpecificFactor12, /^00[2345]|992$/)
}

return true]]></expression>
            <message>TNM T, SSF 12, and tumor size conflict</message>
            <description><![CDATA[Purpose: This edit verifies that TNM Clin T, TNM Path T, and tumor size are coded consistently with CS SSF 12, High Risk Features, for Cutaneous CA of Skin.

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Site/Histology group is not 029, Cutaneous Ca of Skin
5. TNM Clin T and TNM Path T are blank or 88
6. CS Site-Specific Factor 12 is blank or 988
7. TNM Edition Number not = 07, U7
8. TNM Path Descriptor = 4, 6


The site/histology groups are identified by site and histology in the edit Primary Site, Stage Group 2016 - Ed 7.

For Cutaneous CA of skin:

A. If TNM T = 1(Tumor 2cm or less in greatest dimension with less than 2 high risk features)
    then CS SSF 12 must = 000 (No high risk features), 001 (1 high risk feature), 991 (stated as less than 2 high risk features),  993 (stated as high risk features NOS), or 999 (Unknown or no information).

B. If TNM T = 2 (Tumor greater than 2cm in greatest dimension or tumor any size with 2 or more high risk features) and Tumor Size = 001-020
    Then CS SSF 12 must = 002 (2 high risk features), 003 (3 high risk features), 004 (4 high risk features), 005 (5 high risk features), or 992 (stated as 2 or more high risk features).

The edit will check TNM Path T.  If TNM Path T is empty, the edit will check TNM Clin T.  For TNM Path T, the edit will check for size values in Tumor Size Pathologic and Tumor Size Summary.  For TNM Clin T, the edit will check for size values in Tumor Size Clinical and Tumor Size Summary.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-08" ref="67456">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-18" ref="67623">Added skip conditions for TNM Edition Number and TNM Path Descriptor.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF621" name="TNM Clin Stage Group, SSF 2 Lymphoma (COC)" tag="N2231" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' ||
    line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.tnmClinStageGroup == null || line.csSiteSpecificFactor2 == null || line.csSiteSpecificFactor2 == '988')
    return true

if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
    return true

String siteGroup = (String)((Closure)Context.AJCC7CodeLookup16).call(line)
if (siteGroup != '57A' && siteGroup != '57C')
    return true

if (Functions.matches(line.tnmClinStageGroup, /^[1-4]A$/))
    return line.csSiteSpecificFactor2 == '000' || line.csSiteSpecificFactor2 == '020'
else if (Functions.matches(line.tnmClinStageGroup, /^[1-4]B$/))
    return line.csSiteSpecificFactor2 == '010' || line.csSiteSpecificFactor2 == '030'
else if (Functions.matches(line.tnmClinStageGroup, /^[1-4]$/))
    return line.csSiteSpecificFactor2 == '999'

return true]]></expression>
            <message>TNM Clin Stage Group and CS Site-Specific Factor 2 conflict for Lymphoma</message>
            <description><![CDATA[Purpose:  This edit verifies that TNM Clin Stage and CS SSF 2, Systemic Symptoms at Diagnosis, are coded consistently for lymphoma.

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. TNM Clin Stage Group is blank
5. CS Site-Specific Factor 2 is blank or 988
6. Tnm Edition Number is not = 07, U7

The edit is evaluated for the following site/histology groups:
    57A. Hodgkin and Non-Hodgkin Lymphoma
    57C. Lymphoid/Hematopoietic

1.  If TNM Clin Stage Group = 1A, 2A, 3A, or 4A,
        then CS SSF 2 must = 000 (No B symptoms) or 020 (Pruritis)

2.  If TNM Clin Stage Group = 1B, 2B, 3B, or 4B,
        then CS SSF 2 must = 010 (any B symptoms) or 030 (any B symptoms + pruritis)

3.  If TNM Clin Stage Group = 1, 2, 3, or 4
        then CS SSF 2 must = 999 (unknown or no information)]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-09" ref="67457">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-01" ref="67548">Changed edit to use AJCC7CodeLookup16 context to check site/histology.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-13" ref="67586">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-12" ref="69326">Removed several dependencies.</event>
            </history>
        </rule>
        <rule id="IF622" name="TNM Path T, Depth, Melanoma - Ed 7 (COC)" tag="N2265" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_1,Histologic_Type_ICD-O-3,Primary_Site,TNM_Path_T,Type_of_Reporting_Source,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' || line.behaviorCodeIcdO3 == '0' ||
    line.behaviorCodeIcdO3 == '1' || line.tnmPathT == null || line.tnmPathT == '88')
    return true

//Skip condition 6
if (line.csSiteSpecificFactor1 == null || line.csSiteSpecificFactor1 == '999' || line.csSiteSpecificFactor1 == '988')
    return true

//Skip conditions 7, 8
if ((line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7') || line.tnmPathDescriptor == '4' || line.tnmPathDescriptor == '6')
    return true

//Skip condition 4
String siteGroup = (String)((Closure)Context.AJCC7CodeLookup16).call(line)
if (siteGroup != '031' && siteGroup != '050')
    return true

Integer ssfInt = Functions.asInt(line.csSiteSpecificFactor1)
if (siteGroup == '050') {
    if (ssfInt == 991)
        ssfInt = 5
    else if (ssfInt >= 992 && ssfInt <= 995)
        ssfInt = 150
    else if (ssfInt == 996)
        ssfInt = 980
    else if (ssfInt == 998 && Functions.matches(line.tnmPathT, /^p[12][ABC]$/))
        return false
}

List validSsf = (List)((Map)((Map)Context.IF622_Table).getOrDefault(siteGroup, [:])).getOrDefault(line.tnmPathT, null)
if (validSsf == null)
    return true
else if (!validSsf.contains(ssfInt))
    return false

return true]]></expression>
            <message>CS Site-Specific Factor 1 is not consistent with TNM Path T</message>
            <description><![CDATA[This edit verifies consistency between CS Site-Specific Factor 1 coding Depth and the assigned TNM Path T category for Melanoma of Skin and Melanoma of Conjunctiva.

This edit is skipped if any of the following conditions are true:

1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. Site/Histology where Tumor Depth is not recorded as a staging factor (not 31, 50). (Site/histology group is determined before the skip is applied.)
5. TNM Path T is blank or 88
6. Tumor Depth (in CS SSF 1) is blank, "999", unknown, or "988", not applicable.
7. TNM Edition Number not = 07, U7
8. TNM Path Descriptor = 4,6


TNM Path T may be blank.  If entered, it will be edited site-specifically.  A pT category entered in TNM Path T will be compared to the tumor depth coded in a site-specific factor. An edit failure will be returned if the tumor depth is outside the range for the listed pT category.  "980", "980 millimeters or larger", is the largest possible size.  Nonspecific size values are converted to numeric values for purposes of the edit.

The site-specific TNM Pathologic T values with the corresponding codes in the Site-Specific Factor used to collect the information are listed below. The number next to each site title indicates the respective chapter in the AJCC Cancer Staging Manual, Edition 7. The list includes only those melanomas where pathologic T is based on tumor depth coded in a site-specific factor. For both Melanoma of Skin and Melanoma of Conjuctiva, the measurement is coded in hundredths of millimeters.

The site/histology groups are identified by site and histology in the edit Primary Site, Stage Group 2016 - Ed 7.


31. Melanoma of the Skin

SSF 1
TNM T Path:    1,1A,1B     2,2A,2B    3,3A,3B    4,4A,4B
Tumor Depth 001-100     101-200    201-400    401-980

50. Melanoma of Conjunctiva

SSF 1
TNM T Path:    1A,2A        1B,2B        1C,2C
Tumor Depth 001-050    051-150    151-980]]></description>
            <history>
                <event version="SE16-015-05" user="kirbyk" date="2016-07-20" ref="67497">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-18" ref="67609">Added skip conditions for TNM Edition Number and TNM Path Descriptor.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67807">Name change.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IF623" name="TNM Clin T, N, M, In Situ (COC)" tag="N2443" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.dateOfDiagnosisYear > '2017')
     return true
if (line.typeOfReportingSource == '7' || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || !(Functions.matches(line.tnmClinT, /^pA|pIS[UD]?$/)))
    return true
if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7')
    return true

if (line.overRideTnmTis == '1')
    return true

String siteGroup = (String)((Closure)Context.AJCC7CodeLookup16).call(line)
if (siteGroup ==~ /^00[79]|08[ABCDEF]|13B|16[AB]|17[BC]|018|36[BC]|37A|039|04[13]|47[AB]|51[AB]|05[34]|57B$/)
    return true

if (line.tnmClinN != 'c0' && line.tnmClinN != 'c0A' && line.tnmClinN != 'c0B')
    return false
if (line.tnmClinM != 'c0' && line.tnmClinM != 'c0I+')
    return false
if (siteGroup != '049' && siteGroup != '050')
    if (line.tnmClinStageGroup != '0' && line.tnmClinStageGroup != '0IS' && line.tnmClinStageGroup != '0A')
        return false

return true]]></expression>
            <message>TNM Clin T, N, M conflict for in situ</message>
            <description><![CDATA[The purpose of this edit is to verify that TNM Clin N, TNM Clin M, and TNM Clin
Stage Group are coded consistently for cases where TNM Clin T indicates an in
situ tumor(TNM Clin T = pIS, pA, pISU, pISD, or pA).

This edit enforces the statement in the AJCC manual on page 12:  Carcinoma in
situ (CIS) is an exception to the stage grouping guidelines.  By definition,
CIS has not involved any structure in the primary organ that would allow tumor
cells to spread to regional nodes or distant sites.


This edit is skipped if any of the following conditions is true:
1. Year of Date of Diagnosis is less than 2016 or greater than 2017, blank (unknown), or
invalid
2. Type of Reporting Source = 7
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline)
4. TNM Clin T is not = pIS, pA, pISU, pISD, or pA
5. TNM Edition Number not = 07, U7

If the case is reviewed and accepted as coded (Over-ride TNM Tis = 1) no further
editing is done.  See "Additional Information" in this description.

If TNM Clin T = pIS, pA, pISU, or pISD:

    TNM Clin N must = c0, c0A, c0B  (no clinically positive nodes)
    TNM Clin M must = c0, c0I+ (metastasis clinically negative)
    TNM Clin Stage Group must = 0, 0A, or 0IS (stage group clinical = in situ)

Only TNM Clin N and TNM Clin M are edited for the following TNM groups.  In situ
carcinomas are recognized by AJCC, but there is no stage grouping.

49. Carcinoma of Conjunctiva
50. Malignant Melanoma of Conjunctiva

This edit is skipped for the following TNM groups (AJCC does not recognize or
does not stage in situ tumors for these sites, though in situ may be assigned by
a pathologist):
7. Major Salivary Glands
8. Thyroid Gland (08A-08F)
9. Mucosal Melanoma Head and Neck
13B. Appendix, Carcinoid
16. GIST
17. NET Small Intestine and Ampulla of Vater, NET Colon and Rectum (17B, 17C)
18. Liver
36B. Corpus Sarcoma
36C. Corpus Adenosarcoma
37A. Ovary
39. Gestational Trophoblastic Tumors
41. Prostate
43. Kidney
47. Adrenal (47A, 47B)
51A. Melanoma of Choroid
51B. Melanoma of Iris
53. Carcinoma of the Lacrimal Gland
54. Sarcoma of the Orbit
57B. Primary Cutaneous Lymphoma

Additional Information:

As noted above, Carcinoma in situ (CIS) is an exception to the stage grouping
guidelines.  By definition, CIS has not involved any structure in the primary
organ that would allow tumor cells to spread to regional nodes or distant sites.
Therefore, pTis cN0 cM0 should be reported as both clinical and pathologic stage
0.  Traditional registry coding rules have recommended that registrars assign
at least a category of T1 to cases where in situ behavior is found on pathologic
examination of tissue from the primary site but other findings indicate regional
or distant involvement, based on the concept that primary tumor invasion must be
present but not identified.

AJCC is interested in identifying such cases where in situ behavior on pathologic
examination of the primary site is accompanied by findings of regional nodal or
distant involvement, and the AJCC consultant recommends coding Tis with relevant
N and M categories and unknown stage group.  An over-ride has been added to this
edit to allow this coding.

First check that T, N, and M values are coded correctly.  Review all pathology
reports and verify T, N, and M categories with the staging physician.  Also
contact the AJCC forum for staging questions or consult published training
materials for guidance on handling specific case circumstances. If, after
careful review and consultation, the coding that generated an edit failure is
determined to be correct, set the Over-ride TNM Tis to 1 and rerun the edit.]]></description>
            <history>
                <event version="SE16-016-01" user="kirbyk" date="2016-12-01" ref="67546">Edit created.</event>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-13" ref="67589">Added skip condition for TNM Edition Number.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event>
                <event version="SE18-018-10" user="kirbyk" date="2018-12-13" ref="68075">Updated description; edit now skipped for DX year &gt; 2017; added logic to over-ride edit.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-12" ref="69326">Removed several dependencies.</event>
            </history>
        </rule>
        <rule id="IF625" name="RX Date Mst Defn Srg, Date Last Contact (COC)" tag="N0525" java-path="lines.line" category="inter-field" depends="DateFollowUpEdit,RXDateMostDefinSurgEdit">
            <expression><![CDATA[if (line.rxDateMostDefinSurgYear == null || line.dateOfLastContactYear == null)
    return true

if (line.rxDateMostDefinSurgYear > line.dateOfLastContactYear)
    return false

if (line.rxDateMostDefinSurgYear < line.dateOfLastContactYear || line.rxDateMostDefinSurgMonth == null || line.dateOfLastContactMonth == null)
    return true

if (line.rxDateMostDefinSurgMonth > line.dateOfLastContactMonth)
    return false

if (line.rxDateMostDefinSurgMonth < line.dateOfLastContactMonth || line.rxDateMostDefinSurgDay == null || line.dateOfLastContactDay == null)
    return true

return line.rxDateMostDefinSurgDay <= line.dateOfLastContactDay]]></expression>
            <message>RX Date Mst Defn Srg must be less than or equal to Date of Last Contact</message>
            <description><![CDATA[This edit is skipped if any of the fields are blank.

RX Date Mst Defn Srg must be less than or equal to Date of Last Contact. If both years are known, but either month is blank, then only the years are compared. If either day is blank, then only the years and months are compared.]]></description>
            <history>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-13" ref="67579">Edit created.</event>
            </history>
        </rule>
        <rule id="IF626" name="RX Date Mst Defn Srg, Date of DX (COC)" tag="N0511" java-path="lines.line" category="inter-field" depends="DateDiagnosisEdit,RXDateMostDefinSurgEdit">
            <expression><![CDATA[if (line.rxDateMostDefinSurgYear == null || line.dateOfDiagnosisYear == null)
    return true

if (line.rxDateMostDefinSurgYear < line.dateOfDiagnosisYear)
    return false

if (line.rxDateMostDefinSurgYear > line.dateOfDiagnosisYear || line.rxDateMostDefinSurgMonth == null || line.dateOfDiagnosisMonth == null)
    return true

if (line.rxDateMostDefinSurgMonth < line.dateOfDiagnosisMonth)
    return false

if (line.rxDateMostDefinSurgMonth > line.dateOfDiagnosisMonth || line.rxDateMostDefinSurgDay == null || line.dateOfDiagnosisDay == null)
    return true

return line.rxDateMostDefinSurgDay >= line.dateOfDiagnosisDay]]></expression>
            <message>RX Date Mst Defn Srg  must be &gt; or = Date of Diagnosis</message>
            <description><![CDATA[This edit is skipped if RX Date Mst Defn Srg or Date of Diagnosis is blank.

RX Date Mst Defn Srg must be greater than or equal to Date of Diagnosis. If both years are known, but either month is blank, then only the years are compared. If either day is blank, then only the years and months are compared.]]></description>
            <history>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-12" ref="67580">Edit created.</event>
            </history>
        </rule>
        <rule id="IF627" name="Addr at DX-State, Registry ID (SEER IF627)" tag="S010" java-path="lines.line" category="inter-field">
            <expression><![CDATA[String state = line.addrAtDxState
String registryId = line.registryId

if (registryId == null || state == null)
    return true

if ((registryId == '0000001501' || registryId == '0000001531' || registryId == '0000001535' || registryId == '0000001541') && state == 'CA')
    return true
else if (registryId == '0000001502' && state == 'CT')
    return true
else if (registryId == '0000001520' && state == 'MI')
    return true
else if (registryId == '0000001521' && state == 'HI')
    return true
else if (registryId == '0000001522' && state == 'IA')
    return true
else if (registryId == '0000001523' && state == 'NM')
    return true
else if (registryId == '0000001525' && state == 'WA')
    return true
else if (registryId == '0000001526' && state == 'UT')
    return true
else if ((registryId == '0000001527' || registryId == '0000001537' || registryId == '0000001547') && state == 'GA')
    return true
else if (registryId == '0000001529' && state == 'AK')
    return true
else if (registryId == '0000001533' && state == 'AZ')
    return true
else if (registryId == '0000001542' && state == 'KY')
    return true
else if (registryId == '0000001543' && state == 'LA')
    return true
else if (registryId == '0000001544' && state == 'NJ')
    return true
else if (registryId == '0000001551')
    return true
else if (registryId == '0000001561' && state == 'ID')
    return true
else if (registryId == '0000001562' && state == 'NY')
    return true
else if (registryId == '0000001563' && state == 'MA')
    return true
else if (registryId == '0000001565' && state == 'IL')
    return true
else if (registryId == '0000001566' && state == 'TX')
    return true

return false]]></expression>
            <message>Addr at DX-State and Registry ID conflict</message>
            <description><![CDATA[Must be correct Addr at DX-State for Registry ID.]]></description>
            <history>
                <event version="SE16-016-09" user="kirbyk" date="2017-12-15" ref="67677">Edit created.</event>
                <event version="SE16-016-11" user="kirbyk" date="2018-01-24" ref="67687">Added registry ID 0000001551 with no corresponding state.</event>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-21" ref="67940">Added registry ID validation for ID, NY, MA, and WI.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-07" user="beverung" date="2021-07-14" ref="68684">Added registry ID validation for IL, TX, AR, CA, CO, MI, OR, TN, MO, and NH.</event>
                <event version="SE23-023-10" user="cooki" date="2024-01-25" ref="69375">Removed registry ID validation for WI, AR, CA, CO, MI, OR, TN, MO, and NH.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF628" name="In Utero Over-ride Flag, Age at Diagnosis conflict" tag="S011" java-path="lines.line" category="inter-field">
            <expression><![CDATA[return !Functions.matches(line.overRideAgeSiteMorph, /^[23]$/) || line.ageAtDiagnosis == '000']]></expression>
            <message>Age is invalid for In Utero over-ride flag</message>
            <description><![CDATA[If Over-ride Age/Site/Morph [1990] is '2' or '3' then Age at Diagnosis [230] cannot be > 0.]]></description>
            <history>
                <event version="SE16-016-09" user="kirbyk" date="2018-01-08" ref="67678">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-16" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF629" name="Census Tract 2020 and Year of Diagnosis" tag="S058" java-path="lines.line" category="inter-field" depends="Census_Tract_2020,Year_of_Diagnosis">
            <expression><![CDATA[if (line.registryId == '0000001565')
    return true

if (Functions.asInt(line.dateOfDiagnosisYear) > 2015 && line.dateOfDiagnosisYear != '9999')
    return line.censusTract2020 != null

return true]]></expression>
            <message>Census Tract 2020 and Year of Diagnosis conflict</message>
            <description><![CDATA[This edit is skipped if Registry ID[40] is 0000001565 (Illinois).

If Year of Diagnosis[390] > 2015 and not 9999, Census Tract 2020 cannot be blank.]]></description>
            <history>
                <event version="SE23-023-07" user="shearerw" date="2023-09-22" ref="69311">Edit created.</event>
            </history>
        </rule>
        <rule id="IF630" name="Census Tr Certainty 2020 and Year of Diagnosis(SEER IF630)" tag="S059" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.registryId != '0000001533' && line.dateOfDiagnosisYear > '2015' && line.dateOfDiagnosisYear != '9999')
    return line.censusTractCertainty2020 != null

return true]]></expression>
            <message>Census Tr Certainty 2020 and Year of Diagnosis conflict</message>
            <description><![CDATA[If Registry ID[40] = 0000001533 (Arizona Indians), Census Tr Certainty 2020 can be blank.

For all other values of Registry ID[40]:
If Year of Diagnosis[390] > 2015 and not 9999, Census Tr Certainty 2020 cannot be blank.]]></description>
            <history>
                <event version="SE23-023-07" user="cooki" date="2023-09-22" ref="69313">Edit created.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF631" name="Recurrence Date--1st, Date of Diagnosis (SEER)" tag="S057" java-path="lines.line" category="inter-field" depends="DateDiagnosisEdit,RecurrenceDate1stEdit">
            <expression><![CDATA[if ((line.dateOfDiagnosisYear == null && line.dateOfDiagnosisMonth == null && line.dateOfDiagnosisDay == null)
            || (line.recurrenceDate1stYear == null && line.recurrenceDate1stMonth == null && line.recurrenceDate1stDay == null))
    return true

Integer recurrenceYear = Functions.asInt(line.recurrenceDate1stYear)
Integer recurrenceMonth = Functions.asInt(line.recurrenceDate1stMonth)
Integer recurrenceDay = Functions.asInt(line.recurrenceDate1stDay)
Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

return ((Integer)((Closure)Context.compareDate).call(recurrenceYear, recurrenceMonth, recurrenceDay, dxYear, dxMonth, dxDay)) >= 0]]></expression>
            <message>Recurrence Date--1st cannot be before Date of Diagnosis</message>
            <description><![CDATA[This edit is skipped if either field is blank.

Recurrence Date--1st must be greater than or equal to Date of Diagnosis.
If both years are known, but either month is blank, then only the years are compared.
If either day is blank, then only the years and months are compared.]]></description>
            <history>
                <event version="SE23-023-07" user="shearerw" date="2023-09-18" ref="69310">Edit Created.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-07-09" ref="69506">Update name and error message.</event>
            </history>
        </rule>
        <rule id="IF632" name="Registry, County and Census Tract 2020 (SEER IF632)" tag="S060" java-path="lines.line" category="inter-field" depends="Census_Tract_2020">
            <expression><![CDATA[String county = line.countyAtDxGeocode2020 ?: line.countyAtDxAnalysis
if (line.censusTract2020 == null || county == null || line.censusTract2020 == '000000' || line.censusTract2020 == '999999' || line.registryId < '0000001500' || line.registryId > '0000001599' || line.registryId == '0000001551')
    return true

Map countyCensusTract = (Map)((Map)Context.registry_county_census2020).get(line.addrAtDxState)
if (countyCensusTract == null)
    return true

return ((List)countyCensusTract.getOrDefault(county, [])).contains(Functions.asInt(line.censusTract2020))]]></expression>
            <message>Registry, County and Census Tract 2020 conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1) Census Tract 2020 is blank, 000000, or 999999
2) County at DX Geocode2020 is blank
3) Registry ID[40] is Cherokee Nation (0000001551)
4) Addr at DX State[547] is blank or invalid


Census Tract 2020 must be valid within the given County at DX Geocode2020 for each Addr at DX State[547].]]></description>
            <history>
                <event version="SE24-024-01" user="cooki" date="2024-03-05" ref="69376">Edit created.</event>
                <event version="SE24-024-02" user="beverung" date="2024-03-21" ref="69443">Fix table for Connecticut (0000001502).</event>
                <event version="SE24-024-05" user="beverung" date="2024-05-23" ref="69467">Update edit to use Addr at DX State instead of Registry ID to determine valid Census tract codes.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF2610DG_P11" name="Extent of Disease 10-Digit(SEER IF2610DG)" tag="S013" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.codingSystemForEod != '4' || line.dateOfDiagnosisYear < '1930' || line.dateOfDiagnosisYear > '1997'
        || (line.registryId == '0000001541' && line.dateOfDiagnosisYear < '1994')
        || (line.registryId == '0000001535' && line.dateOfDiagnosisYear < '1992')
        || line.typeOfReportingSource != '7')
    return true
if (line.dateOfDiagnosisYear > '1994' && line.primarySite == 'C619')
    return (line.eodTumorSize == '999' && line.eodExtension == '90' && line.eodLymphNodeInvolv == '9'
            && line.regionalNodesPositive == '99' && line.regionalNodesExamined == '99' && line.eodExtensionProstPath == '90')
return (line.eodTumorSize == '999' && line.eodExtension == '99' && line.eodLymphNodeInvolv == '9'
            && line.regionalNodesPositive == '99' && line.regionalNodesExamined == '99' && line.eodExtensionProstPath == null)]]></expression>
            <message>Type of Report Srce and EOD fields pre-1998 conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1) Registry ID = 0000001541 (Greater California) and Year of
     Diagnosis = 1988-1993
  2) Year of diagnosis is blank or after 1997
  3) Registry ID = 0000001535 (Los Angeles) and Year of
     Diagnosis = 1988-1991.


For cases coded using the SEER Ten-digit Extent of Disease coding scheme (Coding System for EOD = 4) this edit validates the extent of disease according to the Ten-digit Extent of Disease codes allowable for each site as defined in the Extent of Disease - Codes and Coding Instructions Manual (1988).


The behavior code is checked against the extent of disease fields to verify validity.

If Death Certificate only case (Type of Reporting Source = '7') the SEER 10-digit Extent of Disease must be '999999999'.

If Regional Nodes Positive is 01-97, then EOD--lymph node involv must be = 1-8.  (Check not performed for Kaposi's sarcoma; hematopoietic etc.; lymphomas; mycosis fungoides; brain and meninges; other CNS; and other and ill-defined sites.

For brain, other CNS, other and ill-defined sites, hematopoietic and lymphomas, Regional nodes examined and Regional nodes positive must both be coded '99'.

For 1991+ Pancreas cases the valid codes for EOD--Extension have been changed.  Therefore, Date of diagnosis had to be added to the edit.

For 1994 Prostate cases the valid codes for EOD--Extension have been changed.

For 1995 Prostate cases the valid codes for EOD--Extension have been modified and EOD--Extension prost path has been added.

For site C77.8 the EOD--Extension field cannot be 10 or 11.]]></description>
            <history>
                <event version="SE11-001-04" user="greend" date="1988-11-01">&apos;9800&apos; is valid for in situ positive/examined nodes.</event>
                <event version="SE11-001-05" user="greend" date="1989-02-01">New versions of coding manual (12/88 and 02/89) caused some changes.</event>
                <event version="SE11-001-05" user="greend" date="1989-08-01">Modified to check for non-numeric values in numeric fields.</event>
                <event version="SE11-001-06" user="greend" date="1990-12-01">New version of coding manual caused some changes.  Most changes were in site = EYE.</event>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topography and morphology code from ICD-O-1 to ICD-O-2.</event>
                <event version="SE11-001-08" user="greend" date="1992-02-03">For site C31.0 (Maxillary sinus) the extension code 65 is now valid for diagnosis years 1988+.</event>
                <event version="SE11-001-08" user="greend" date="1992-07-15">For site C24.1 (Ampulla of Vater) the extension codes 55 and 65 are now valid.  For site C34.0-C34.3, C34.8-C34.9 (Lung) the extension code 25 is valid and the extension code 55 is not.  For site C22.0-C22.1 (interhepatic bile ducts) 5 is no longer valid for lymph node.</event>
                <event version="SE11-001-08" user="greend" date="1992-12-15">Site C70.9 was grouped with Other parts of CNS instead of Brain.  Diagnosis date was added to the edit.  For 1991+ new extension codes apply for sites C25.0-C25.4 (Pancreas: head, body, &amp; tail) and sites C25.7-C25.9 (Pancreas: other &amp; unspecified).  An error message was added to the edit.  There is now a check that if positive lymph nodes = 01 - 97 then the lymph node field must = 1 - 8.  The new message is EOD10-NUM REG NODES POS/LYMPH NODES.</event>
                <event version="SE11-001-09" user="greend" date="1993-02-01">The edit was modified so that when checking 1991+ pancreas extension the histology is considered instead of just the site i.e., pancreas with histology 9680 (lymphoma) would be treated as a lymphoma and therefore would not be checked for a 1991+ pancreas extension.</event>
                <event version="SE11-001-09" user="greend" date="1993-04-28">The edit was modified so that the definition of lymph node values is character instead of numeric.  This allows blanks in the lymph node but they will still be flagged as an error.</event>
                <event version="SE11-001-10" user="greend" date="1994-01-10">The following check was added:  for brain, other CNS, other and ill-defined sites, hematopoletic, and lymphomas, number of nodes examined and number of positive nodes must both be coded to &apos;99&apos;.</event>
                <event version="SE11-001-10" user="greend" date="1994-07-01">Program modified to include histology 9740, 9741 with the coding scheme used for hematopoietic, reticuloendothelial, immunoproliferative and myeloproliferative neoplasms.  New extension codes for prostate cases diagnosed in 1994 are:  00, 10-15, 20-29, 30-31, 40-41, 48, 49, 50-53, 55-56, 60-62, 65, 70, 80, 85, 99.</event>
                <event version="SE11-001-11" user="greend" date="1995-10-01">Valid codes for the 1995 prostate clinical extension field are:  00, 10-15, 20-24, 30-32, 41-45, 49-53, 60-61, 70, 85, 90.  Valid codes for the new 1995 prostate pathological extension field are:  00, 20-23, 30-32, 41-45, 49-53, 60-61, 70, 85, 90, 98, 99.  Error message was added for new path extension field.  Error message was added for death certificate cases that are coded improperly.</event>
                <event version="SE11-001-12" user="greend" date="1996-07-17">Program modified to correctly edit Death Certificate Only cases.</event>
                <event version="SE11-001-13" user="greend" date="1997-01-27">Program modified to include new lymphoma codes.</event>
                <event version="SE11-001-16" user="greend" date="2002-10-07">Edit skipped for cases diagnosed before 1994 from the California registry.</event>
                <event version="SE11-001-17" user="greend" date="2003-01-30">Updated to correctly edit behavior and extension for prostate cases.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">For site C77.8 the EOD--extension field cannot be 10 or 11.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-18">Edit no longer checks for 9-filled dates.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IF2610DG_P2" name="Extent of Disease 10-Digit(SEER IF2610DG)" tag="S014" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[Integer site = Functions.asInt(line.primarySite.substring(1))
Integer histIcdO3 = Functions.asInt(line.histologicTypeIcdO3)

if (line.codingSystemForEod != '4' || line.dateOfDiagnosisYear < '1930' || line.dateOfDiagnosisYear > '1997' || (line.registryId == '0000001541' && line.dateOfDiagnosisYear < '1994')
         || (line.registryId == '0000001535' && line.dateOfDiagnosisYear < '1992') || line.typeOfReportingSource == '7' || line.behaviorCodeIcdO3 != '3')
    return true
if (!(Functions.matches(line.eodExtension, /^[0-9][0-9]$/)))
    return false
if (site == 589 && Functions.matches(line.eodExtension, /^([467][1-4])$/))
    return true
if (histIcdO3 == 9731 && line.eodExtension == '10')
    return true
if (site == 778 && Functions.matches(line.eodExtension, /^1[01]$/))
    return false
if (((Map)Context.If2610DG_HIST_MALIG_EXT).containsKey(histIcdO3))
    return ((List)((Map)Context.If2610DG_HIST_MALIG_EXT).getOrDefault(histIcdO3, [])).contains(Functions.asInt(line.eodExtension))
if (((Map)Context.If2610DG_HIST_SITE_MALIG_EXT).containsKey(histIcdO3) && ((Map)((Map)Context.If2610DG_HIST_SITE_MALIG_EXT).getOrDefault(histIcdO3, [:])).containsKey(site))
    return ((List)((Map)((Map)Context.If2610DG_HIST_SITE_MALIG_EXT).getOrDefault(histIcdO3, [:])).getOrDefault(site, [])).contains(Functions.asInt(line.eodExtension))
if (line.dateOfDiagnosisYear > '1990' && site > 249 && site < 255)
    return Functions.matches(line.eodExtension, /^([13]0|4[048]|5[0246]|6[24]|7[2468]|8[05]|99)$/)
if (line.dateOfDiagnosisYear > '1990' && site > 256 && site < 260)
    return Functions.matches(line.eodExtension, /^([135]0|4[05]|8[05]|99)$/)
if (line.dateOfDiagnosisYear == '1994' && site == 619)
    return Functions.matches(line.eodExtension, /^(1[0-5]|2[0-9]|3[01]|4[0189]|5[0-356]|6[0-25]|70|8[05]|99)$/)
if (line.dateOfDiagnosisYear > '1994' && site == 619)
    return (Functions.matches(line.eodExtension, /^(1[0-5]|[23][0-4]|4[1-59]|5[0-3]|6[015]|70|85|90)$/))
return ((List)((Map)Context.If2610DG_SITE_MALIG_EXT).getOrDefault(site, [])).contains(Functions.asInt(line.eodExtension))]]></expression>
            <message>Primary Site and Malig EOD--extension pre-1998 conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1) Registry ID = 0000001541 (Greater California) and Year of
     Diagnosis = 1988-1993
  2) Year of diagnosis is blank or after 1997
  3) Registry ID = 0000001535 (Los Angeles) and Year of
     Diagnosis = 1988-1991.


For cases coded using the SEER Ten-digit Extent of Disease coding scheme (Coding System for EOD = 4) this edit validates the extent of disease according to the Ten-digit Extent of Disease codes allowable for each site as defined in the Extent of Disease - Codes and Coding Instructions Manual (1988).


The behavior code is checked against the extent of disease fields to verify validity.

If Death Certificate only case (Type of Reporting Source = '7') the SEER 10-digit Extent of Disease must be '999999999'.

If Regional Nodes Positive is 01-97, then EOD--lymph node involv must be = 1-8.  (Check not performed for Kaposi's sarcoma; hematopoietic etc.; lymphomas; mycosis fungoides; brain and meninges; other CNS; and other and ill-defined sites.

For brain, other CNS, other and ill-defined sites, hematopoietic and lymphomas, Regional nodes examined and Regional nodes positive must both be coded '99'.

For 1991+ Pancreas cases the valid codes for EOD--Extension have been changed.  Therefore, Date of diagnosis had to be added to the edit.

For 1994 Prostate cases the valid codes for EOD--Extension have been changed.

For 1995 Prostate cases the valid codes for EOD--Extension have been modified and EOD--Extension prost path has been added.

For site C77.8 the EOD--Extension field cannot be 10 or 11.]]></description>
            <history>
                <event version="SE11-001-04" user="greend" date="1988-11-01">&apos;9800&apos; is valid for in situ positive/examined nodes.</event>
                <event version="SE11-001-05" user="greend" date="1989-02-01">New versions of coding manual (12/88 and 02/89) caused some changes.</event>
                <event version="SE11-001-05" user="greend" date="1989-08-01">Modified to check for non-numeric values in numeric fields.</event>
                <event version="SE11-001-06" user="greend" date="1990-12-01">New version of coding manual caused some changes.  Most changes were in site = EYE.</event>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topography and morphology code from ICD-O-1 to ICD-O-2.</event>
                <event version="SE11-001-08" user="greend" date="1992-02-03">For site C31.0 (Maxillary sinus) the extension code 65 is now valid for diagnosis years 1988+.</event>
                <event version="SE11-001-08" user="greend" date="1992-07-15">For site C24.1 (Ampulla of Vater) the extension codes 55 and 65 are now valid.  For site C34.0-C34.3, C34.8-C34.9 (Lung) the extension code 25 is valid and the extension code 55 is not.  For site C22.0-C22.1 (interhepatic bile ducts) 5 is no longer valid for lymph node.</event>
                <event version="SE11-001-08" user="greend" date="1992-12-15">Site C70.9 was grouped with Other parts of CNS instead of Brain.  Diagnosis date was added to the edit.  For 1991+ new extension codes apply for sites C25.0-C25.4 (Pancreas: head, body, &amp; tail) and sites C25.7-C25.9 (Pancreas: other &amp; unspecified).  An error message was added to the edit.  There is now a check that if positive lymph nodes = 01 - 97 then the lymph node field must = 1 - 8.  The new message is EOD10-NUM REG NODES POS/LYMPH NODES.</event>
                <event version="SE11-001-09" user="greend" date="1993-02-01">The edit was modified so that when checking 1991+ pancreas extension the histology is considered instead of just the site i.e., pancreas with histology 9680 (lymphoma) would be treated as a lymphoma and therefore would not be checked for a 1991+ pancreas extension.</event>
                <event version="SE11-001-09" user="greend" date="1993-04-28">The edit was modified so that the definition of lymph node values is character instead of numeric.  This allows blanks in the lymph node but they will still be flagged as an error.</event>
                <event version="SE11-001-10" user="greend" date="1994-01-10">The following check was added:  for brain, other CNS, other and ill-defined sites, hematopoletic, and lymphomas, number of nodes examined and number of positive nodes must both be coded to &apos;99&apos;.</event>
                <event version="SE11-001-10" user="greend" date="1994-07-01">Program modified to include histology 9740, 9741 with the coding scheme used for hematopoietic, reticuloendothelial, immunoproliferative and myeloproliferative neoplasms.  New extension codes for prostate cases diagnosed in 1994 are:  00, 10-15, 20-29, 30-31, 40-41, 48, 49, 50-53, 55-56, 60-62, 65, 70, 80, 85, 99.</event>
                <event version="SE11-001-11" user="greend" date="1995-10-01">Valid codes for the 1995 prostate clinical extension field are:  00, 10-15, 20-24, 30-32, 41-45, 49-53, 60-61, 70, 85, 90.  Valid codes for the new 1995 prostate pathological extension field are:  00, 20-23, 30-32, 41-45, 49-53, 60-61, 70, 85, 90, 98, 99.  Error message was added for new path extension field.  Error message was added for death certificate cases that are coded improperly.</event>
                <event version="SE11-001-12" user="greend" date="1996-07-17">Program modified to correctly edit Death Certificate Only cases.</event>
                <event version="SE11-001-13" user="greend" date="1997-01-27">Program modified to include new lymphoma codes.</event>
                <event version="SE11-001-16" user="greend" date="2002-10-07">Edit skipped for cases diagnosed before 1994 from the California registry.</event>
                <event version="SE11-001-17" user="greend" date="2003-01-30">Updated to correctly edit behavior and extension for prostate cases.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">For site C77.8 the EOD--extension field cannot be 10 or 11.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-18">Edit no longer checks for 9-filled dates.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Switch from ICD-O-2 to ICD-O-3.</event>
                <event version="SE24-024-07" user="shearerw" date="2024-08-06" ref="69522">Add more valid histology values to account for ICD-O-2 to ICD-O-3 switch.</event>
            </history>
        </rule>
        <rule id="IF2610DG_P3" name="Extent of Disease 10-Digit(SEER IF2610DG)" tag="S015" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[Integer site = Functions.asInt(line.primarySite.substring(1))
Integer histIcdO3 = Functions.asInt(line.histologicTypeIcdO3)

if (line.codingSystemForEod != '4' ||
    line.dateOfDiagnosisYear < '1930' || line.dateOfDiagnosisYear > '1997' ||
    (line.registryId == '0000001541' && line.dateOfDiagnosisYear < '1994') ||
    (line.registryId == '0000001535' && line.dateOfDiagnosisYear < '1992') ||
    line.typeOfReportingSource == '7' || line.behaviorCodeIcdO3 != '2')
    return true
if (!Functions.matches(line.eodExtension, /^[0-9][0-9]$/))
   return false
if (histIcdO3 == 9731 && line.eodExtension == '10')
   return true
if (site == 778 && Functions.matches(line.eodExtension, /^1[01]$/))
   return false
if (((Map)Context.If2610DG_HIST_INSITU_EXT).containsKey(histIcdO3))
    return ((List)((Map)Context.If2610DG_HIST_INSITU_EXT).getOrDefault(histIcdO3, [])).contains(Functions.asInt(line.eodExtension))
if (((Map)Context.If2610DG_HIST_SITE_INSITU_EXT).containsKey(histIcdO3) && ((Map)((Map)Context.If2610DG_HIST_SITE_INSITU_EXT).getOrDefault(histIcdO3, [:])).containsKey(site))
    return ((List)((Map)((Map)Context.If2610DG_HIST_SITE_INSITU_EXT).getOrDefault(histIcdO3, [:])).getOrDefault(site, [])).contains(Functions.asInt(line.eodExtension))
if (line.dateOfDiagnosisYear >= '1994' && site == 619)
   return line.eodExtension == '00'
return ((List)((Map)Context.If2610DG_SITE_INSITU_EXT).getOrDefault(site, [])).contains(Functions.asInt(line.eodExtension))]]></expression>
            <message>Primary Site and InSitu EOD--extension pre-1998 conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1) Registry ID = 0000001541 (Greater California) and Year of
     Diagnosis = 1988-1993
  2) Year of diagnosis is blank or after 1997
  3) Registry ID = 0000001535 (Los Angeles) and Year of
     Diagnosis = 1988-1991.


For cases coded using the SEER Ten-digit Extent of Disease coding scheme (Coding System for EOD = 4) this edit validates the extent of disease according to the Ten-digit Extent of Disease codes allowable for each site as defined in the Extent of Disease - Codes and Coding Instructions Manual (1988).


The behavior code is checked against the extent of disease fields to verify validity.

If Death Certificate only case (Type of Reporting Source = '7') the SEER 10-digit Extent of Disease must be '999999999'.

If Regional Nodes Positive is 01-97, then EOD--lymph node involv must be = 1-8.  (Check not performed for Kaposi's sarcoma; hematopoietic etc.; lymphomas; mycosis fungoides; brain and meninges; other CNS; and other and ill-defined sites.

For brain, other CNS, other and ill-defined sites, hematopoietic and lymphomas, Regional nodes examined and Regional nodes positive must both be coded '99'.

For 1991+ Pancreas cases the valid codes for EOD--Extension have been changed.  Therefore, Date of diagnosis had to be added to the edit.

For 1994 Prostate cases the valid codes for EOD--Extension have been changed.

For 1995 Prostate cases the valid codes for EOD--Extension have been modified and EOD--Extension prost path has been added.

For site C77.8 the EOD--Extension field cannot be 10 or 11.]]></description>
            <history>
                <event version="SE11-001-04" user="greend" date="1988-11-01">&apos;9800&apos; is valid for in situ positive/examined nodes.</event>
                <event version="SE11-001-05" user="greend" date="1989-02-01">New versions of coding manual (12/88 and 02/89) caused some changes.</event>
                <event version="SE11-001-05" user="greend" date="1989-08-01">Modified to check for non-numeric values in numeric fields.</event>
                <event version="SE11-001-06" user="greend" date="1990-12-01">New version of coding manual caused some changes.  Most changes were in site = EYE.</event>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topography and morphology code from ICD-O-1 to ICD-O-2.</event>
                <event version="SE11-001-08" user="greend" date="1992-02-03">For site C31.0 (Maxillary sinus) the extension code 65 is now valid for diagnosis years 1988+.</event>
                <event version="SE11-001-08" user="greend" date="1992-07-15">For site C24.1 (Ampulla of Vater) the extension codes 55 and 65 are now valid.  For site C34.0-C34.3, C34.8-C34.9 (Lung) the extension code 25 is valid and the extension code 55 is not.  For site C22.0-C22.1 (interhepatic bile ducts) 5 is no longer valid for lymph node.</event>
                <event version="SE11-001-08" user="greend" date="1992-12-15">Site C70.9 was grouped with Other parts of CNS instead of Brain.  Diagnosis date was added to the edit.  For 1991+ new extension codes apply for sites C25.0-C25.4 (Pancreas: head, body, &amp; tail) and sites C25.7-C25.9 (Pancreas: other &amp; unspecified).  An error message was added to the edit.  There is now a check that if positive lymph nodes = 01 - 97 then the lymph node field must = 1 - 8.  The new message is EOD10-NUM REG NODES POS/LYMPH NODES.</event>
                <event version="SE11-001-09" user="greend" date="1993-02-01">The edit was modified so that when checking 1991+ pancreas extension the histology is considered instead of just the site i.e., pancreas with histology 9680 (lymphoma) would be treated as a lymphoma and therefore would not be checked for a 1991+ pancreas extension.</event>
                <event version="SE11-001-09" user="greend" date="1993-04-28">The edit was modified so that the definition of lymph node values is character instead of numeric.  This allows blanks in the lymph node but they will still be flagged as an error.</event>
                <event version="SE11-001-10" user="greend" date="1994-01-10">The following check was added:  for brain, other CNS, other and ill-defined sites, hematopoletic, and lymphomas, number of nodes examined and number of positive nodes must both be coded to &apos;99&apos;.</event>
                <event version="SE11-001-10" user="greend" date="1994-07-01">Program modified to include histology 9740, 9741 with the coding scheme used for hematopoietic, reticuloendothelial, immunoproliferative and myeloproliferative neoplasms.  New extension codes for prostate cases diagnosed in 1994 are:  00, 10-15, 20-29, 30-31, 40-41, 48, 49, 50-53, 55-56, 60-62, 65, 70, 80, 85, 99.</event>
                <event version="SE11-001-11" user="greend" date="1995-10-01">Valid codes for the 1995 prostate clinical extension field are:  00, 10-15, 20-24, 30-32, 41-45, 49-53, 60-61, 70, 85, 90.  Valid codes for the new 1995 prostate pathological extension field are:  00, 20-23, 30-32, 41-45, 49-53, 60-61, 70, 85, 90, 98, 99.  Error message was added for new path extension field.  Error message was added for death certificate cases that are coded improperly.</event>
                <event version="SE11-001-12" user="greend" date="1996-07-17">Program modified to correctly edit Death Certificate Only cases.</event>
                <event version="SE11-001-13" user="greend" date="1997-01-27">Program modified to include new lymphoma codes.</event>
                <event version="SE11-001-16" user="greend" date="2002-10-07">Edit skipped for cases diagnosed before 1994 from the California registry.</event>
                <event version="SE11-001-17" user="greend" date="2003-01-30">Updated to correctly edit behavior and extension for prostate cases.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">For site C77.8 the EOD--extension field cannot be 10 or 11.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-18">Edit no longer checks for 9-filled dates.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="cooki" date="2024-07-18" ref="69509">Deleted deprecated dependency.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Switch from ICD-O-2 to ICD-O-3.</event>
            </history>
        </rule>
        <rule id="IF2610DG_P4" name="Extent of Disease 10-Digit(SEER IF2610DG)" tag="S016" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[Integer site = Functions.asInt(line.primarySite.substring(1))
Integer histIcdO3 = Functions.asInt(line.histologicTypeIcdO3)

if (line.codingSystemForEod != '4' ||
     line.dateOfDiagnosisYear < '1930' || line.dateOfDiagnosisYear > '1997' ||
     (line.registryId == '0000001541' && line.dateOfDiagnosisYear < '1994') ||
     (line.registryId == '0000001535' && line.dateOfDiagnosisYear < '1992') ||
     line.typeOfReportingSource == '7')
   return true
if ( ! (Functions.matches(line.eodTumorSize, /^[0-9][0-9][0-9]$/)))
   return false
if ([180,181,182,183,184,185,186,187,188,189,199,209].contains(site) &&
    line.eodTumorSize == '998' &&
    !(histIcdO3 == 8220 || histIcdO3 == 8221))
   return false
if (((Map)Context.If2610DG_HIST_SIZE).containsKey(histIcdO3))
    return ((List)((Map)Context.If2610DG_HIST_SIZE).getOrDefault(histIcdO3, [])).contains(Functions.asInt(line.eodTumorSize))
if (((Map)Context.If2610DG_HIST_SITE_SIZE).containsKey(histIcdO3) && ((Map)((Map)Context.If2610DG_HIST_SITE_SIZE).getOrDefault(histIcdO3, [:])).containsKey(site))
    return ((List)((Map)((Map)Context.If2610DG_HIST_SITE_SIZE).getOrDefault(histIcdO3, [:])).getOrDefault(site, [])).contains(Functions.asInt(line.eodTumorSize))
return ((List)((Map)Context.If2610DG_SITE_SIZE).getOrDefault(site, [])).contains(Functions.asInt(line.eodTumorSize))]]></expression>
            <message>Primary Site and EOD--tumor size pre-1998 conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1) Registry ID = 0000001541 (Greater California) and Year of
     Diagnosis = 1988-1993
  2) Year of diagnosis is blank or after 1997
  3) Registry ID = 0000001535 (Los Angeles) and Year of
     Diagnosis = 1988-1991.


For cases coded using the SEER Ten-digit Extent of Disease coding scheme (Coding System for EOD = 4) this edit validates the extent of disease according to the Ten-digit Extent of Disease codes allowable for each site as defined in the Extent of Disease - Codes and Coding Instructions Manual (1988).


The behavior code is checked against the extent of disease fields to verify validity.

If Death Certificate only case (Type of Reporting Source = '7') the SEER 10-digit Extent of Disease must be '999999999'.

If Regional Nodes Positive is 01-97, then EOD--lymph node involv must be = 1-8.  (Check not performed for Kaposi's sarcoma; hematopoietic etc.; lymphomas; mycosis fungoides; brain and meninges; other CNS; and other and ill-defined sites.

For brain, other CNS, other and ill-defined sites, hematopoietic and lymphomas, Regional nodes examined and Regional nodes positive must both be coded '99'.

For 1991+ Pancreas cases the valid codes for EOD--Extension have been changed.  Therefore, Date of diagnosis had to be added to the edit.

For 1994 Prostate cases the valid codes for EOD--Extension have been changed.

For 1995 Prostate cases the valid codes for EOD--Extension have been modified and EOD--Extension prost path has been added.

For site C77.8 the EOD--Extension field cannot be 10 or 11.]]></description>
            <history>
                <event version="SE11-001-04" user="greend" date="1988-11-01">&apos;9800&apos; is valid for in situ positive/examined nodes.</event>
                <event version="SE11-001-05" user="greend" date="1989-02-01">New versions of coding manual (12/88 and 02/89) caused some changes.</event>
                <event version="SE11-001-05" user="greend" date="1989-08-01">Modified to check for non-numeric values in numeric fields.</event>
                <event version="SE11-001-06" user="greend" date="1990-12-01">New version of coding manual caused some changes.  Most changes were in site = EYE.</event>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topography and morphology code from ICD-O-1 to ICD-O-2.</event>
                <event version="SE11-001-08" user="greend" date="1992-02-03">For site C31.0 (Maxillary sinus) the extension code 65 is now valid for diagnosis years 1988+.</event>
                <event version="SE11-001-08" user="greend" date="1992-07-15">For site C24.1 (Ampulla of Vater) the extension codes 55 and 65 are now valid.  For site C34.0-C34.3, C34.8-C34.9 (Lung) the extension code 25 is valid and the extension code 55 is not.  For site C22.0-C22.1 (interhepatic bile ducts) 5 is no longer valid for lymph node.</event>
                <event version="SE11-001-08" user="greend" date="1992-12-15">Site C70.9 was grouped with Other parts of CNS instead of Brain.  Diagnosis date was added to the edit.  For 1991+ new extension codes apply for sites C25.0-C25.4 (Pancreas: head, body, &amp; tail) and sites C25.7-C25.9 (Pancreas: other &amp; unspecified).  An error message was added to the edit.  There is now a check that if positive lymph nodes = 01 - 97 then the lymph node field must = 1 - 8.  The new message is EOD10-NUM REG NODES POS/LYMPH NODES.</event>
                <event version="SE11-001-09" user="greend" date="1993-02-01">The edit was modified so that when checking 1991+ pancreas extension the histology is considered instead of just the site i.e., pancreas with histology 9680 (lymphoma) would be treated as a lymphoma and therefore would not be checked for a 1991+ pancreas extension.</event>
                <event version="SE11-001-09" user="greend" date="1993-04-28">The edit was modified so that the definition of lymph node values is character instead of numeric.  This allows blanks in the lymph node but they will still be flagged as an error.</event>
                <event version="SE11-001-10" user="greend" date="1994-01-10">The following check was added:  for brain, other CNS, other and ill-defined sites, hematopoletic, and lymphomas, number of nodes examined and number of positive nodes must both be coded to &apos;99&apos;.</event>
                <event version="SE11-001-10" user="greend" date="1994-07-01">Program modified to include histology 9740, 9741 with the coding scheme used for hematopoietic, reticuloendothelial, immunoproliferative and myeloproliferative neoplasms.  New extension codes for prostate cases diagnosed in 1994 are:  00, 10-15, 20-29, 30-31, 40-41, 48, 49, 50-53, 55-56, 60-62, 65, 70, 80, 85, 99.</event>
                <event version="SE11-001-11" user="greend" date="1995-10-01">Valid codes for the 1995 prostate clinical extension field are:  00, 10-15, 20-24, 30-32, 41-45, 49-53, 60-61, 70, 85, 90.  Valid codes for the new 1995 prostate pathological extension field are:  00, 20-23, 30-32, 41-45, 49-53, 60-61, 70, 85, 90, 98, 99.  Error message was added for new path extension field.  Error message was added for death certificate cases that are coded improperly.</event>
                <event version="SE11-001-12" user="greend" date="1996-07-17">Program modified to correctly edit Death Certificate Only cases.</event>
                <event version="SE11-001-13" user="greend" date="1997-01-27">Program modified to include new lymphoma codes.</event>
                <event version="SE11-001-16" user="greend" date="2002-10-07">Edit skipped for cases diagnosed before 1994 from the California registry.</event>
                <event version="SE11-001-17" user="greend" date="2003-01-30">Updated to correctly edit behavior and extension for prostate cases.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">For site C77.8 the EOD--extension field cannot be 10 or 11.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-18">Edit no longer checks for 9-filled dates.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="cooki" date="2024-07-18" ref="69509">Deleted deprecated dependency.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Switch from ICD-O-2 to ICD-O-3.</event>
            </history>
        </rule>
        <rule id="IF2610DG_P7" name="Extent of Disease 10-Digit(SEER IF2610DG)" tag="S017" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[Integer site = Functions.asInt(line.primarySite.substring(1))
Integer histIcdO3 = Functions.asInt(line.histologicTypeIcdO3)

if (line.codingSystemForEod != '4' ||
     line.dateOfDiagnosisYear < '1930' || line.dateOfDiagnosisYear > '1997' ||
     (line.registryId == '0000001541' && line.dateOfDiagnosisYear < '1994') ||
     (line.registryId == '0000001535' && line.dateOfDiagnosisYear < '1992') ||
      line.typeOfReportingSource == '7')
   return true
if ( ! (line.regionalNodesPositive ==~/^[0-9][0-9]$/))
   return false
if (line.behaviorCodeIcdO3 == '2') {
    if (((Map)Context.If2610DG_HIST_INSITU_POS_NODES).containsKey(histIcdO3))
        return ((List)((Map)Context.If2610DG_HIST_INSITU_POS_NODES).getOrDefault(histIcdO3, [])).contains(Functions.asInt(line.regionalNodesPositive))
    if (((Map)Context.If2610DG_HIST_SITE_INSITU_POS_NODES).containsKey(histIcdO3) && ((Map)((Map)Context.If2610DG_HIST_SITE_INSITU_POS_NODES).getOrDefault(histIcdO3, [:])).containsKey(site))
        return ((List)((Map)((Map)Context.If2610DG_HIST_SITE_INSITU_POS_NODES).getOrDefault(histIcdO3, [:])).getOrDefault(site, [])).contains(Functions.asInt(line.regionalNodesPositive))
    return ((List)((Map)Context.If2610DG_SITE_INSITU_POS_NODES).getOrDefault(site, [])).contains(Functions.asInt(line.regionalNodesPositive))
}
else if (line.behaviorCodeIcdO3 == '3') {
    if (((Map)Context.If2610DG_HIST_MALIG_POS_NODES).containsKey(histIcdO3))
        return ((List)((Map)Context.If2610DG_HIST_MALIG_POS_NODES).getOrDefault(histIcdO3, [])).contains(Functions.asInt(line.regionalNodesPositive))
    if (((Map)Context.If2610DG_HIST_SITE_MALIG_POS_NODES).containsKey(histIcdO3) && ((Map)((Map)Context.If2610DG_HIST_SITE_MALIG_POS_NODES).getOrDefault(histIcdO3, [:])).containsKey(site))
        return ((List)((Map)((Map)Context.If2610DG_HIST_SITE_MALIG_POS_NODES).getOrDefault(histIcdO3, [:])).getOrDefault(site, [])).contains(Functions.asInt(line.regionalNodesPositive))
    return ((List)((Map)Context.If2610DG_SITE_MALIG_POS_NODES).getOrDefault(site, [])).contains(Functions.asInt(line.regionalNodesPositive))
}

return true]]></expression>
            <message>Primary Site and Regional nodes positive pre-1998 conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1) Registry ID = 0000001541 (Greater California) and Year of
     Diagnosis = 1988-1993
  2) Year of diagnosis is blank or after 1997
  3) Registry ID = 0000001535 (Los Angeles) and Year of
     Diagnosis = 1988-1991.


For cases coded using the SEER Ten-digit Extent of Disease coding scheme (Coding System for EOD = 4) this edit validates the extent of disease according to the Ten-digit Extent of Disease codes allowable for each site as defined in the Extent of Disease - Codes and Coding Instructions Manual (1988).


The behavior code is checked against the extent of disease fields to verify validity.

If Death Certificate only case (Type of Reporting Source = '7') the SEER 10-digit Extent of Disease must be '999999999'.

If Regional Nodes Positive is 01-97, then EOD--lymph node involv must be = 1-8.  (Check not performed for Kaposi's sarcoma; hematopoietic etc.; lymphomas; mycosis fungoides; brain and meninges; other CNS; and other and ill-defined sites.

For brain, other CNS, other and ill-defined sites, hematopoietic and lymphomas, Regional nodes examined and Regional nodes positive must both be coded '99'.

For 1991+ Pancreas cases the valid codes for EOD--Extension have been changed.  Therefore, Date of diagnosis had to be added to the edit.

For 1994 Prostate cases the valid codes for EOD--Extension have been changed.

For 1995 Prostate cases the valid codes for EOD--Extension have been modified and EOD--Extension prost path has been added.

For site C77.8 the EOD--Extension field cannot be 10 or 11.]]></description>
            <history>
                <event version="SE11-001-04" user="greend" date="1988-11-01">&apos;9800&apos; is valid for in situ positive/examined nodes.</event>
                <event version="SE11-001-05" user="greend" date="1989-02-01">New versions of coding manual (12/88 and 02/89) caused some changes.</event>
                <event version="SE11-001-05" user="greend" date="1989-08-01">Modified to check for non-numeric values in numeric fields.</event>
                <event version="SE11-001-06" user="greend" date="1990-12-01">New version of coding manual caused some changes.  Most changes were in site = EYE.</event>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topography and morphology code from ICD-O-1 to ICD-O-2.</event>
                <event version="SE11-001-08" user="greend" date="1992-02-03">For site C31.0 (Maxillary sinus) the extension code 65 is now valid for diagnosis years 1988+.</event>
                <event version="SE11-001-08" user="greend" date="1992-07-15">For site C24.1 (Ampulla of Vater) the extension codes 55 and 65 are now valid.  For site C34.0-C34.3, C34.8-C34.9 (Lung) the extension code 25 is valid and the extension code 55 is not.  For site C22.0-C22.1 (interhepatic bile ducts) 5 is no longer valid for lymph node.</event>
                <event version="SE11-001-08" user="greend" date="1992-12-15">Site C70.9 was grouped with Other parts of CNS instead of Brain.  Diagnosis date was added to the edit.  For 1991+ new extension codes apply for sites C25.0-C25.4 (Pancreas: head, body, &amp; tail) and sites C25.7-C25.9 (Pancreas: other &amp; unspecified).  An error message was added to the edit.  There is now a check that if positive lymph nodes = 01 - 97 then the lymph node field must = 1 - 8.  The new message is EOD10-NUM REG NODES POS/LYMPH NODES.</event>
                <event version="SE11-001-09" user="greend" date="1993-02-01">The edit was modified so that when checking 1991+ pancreas extension the histology is considered instead of just the site i.e., pancreas with histology 9680 (lymphoma) would be treated as a lymphoma and therefore would not be checked for a 1991+ pancreas extension.</event>
                <event version="SE11-001-09" user="greend" date="1993-04-28">The edit was modified so that the definition of lymph node values is character instead of numeric.  This allows blanks in the lymph node but they will still be flagged as an error.</event>
                <event version="SE11-001-10" user="greend" date="1994-01-10">The following check was added:  for brain, other CNS, other and ill-defined sites, hematopoletic, and lymphomas, number of nodes examined and number of positive nodes must both be coded to &apos;99&apos;.</event>
                <event version="SE11-001-10" user="greend" date="1994-07-01">Program modified to include histology 9740, 9741 with the coding scheme used for hematopoietic, reticuloendothelial, immunoproliferative and myeloproliferative neoplasms.  New extension codes for prostate cases diagnosed in 1994 are:  00, 10-15, 20-29, 30-31, 40-41, 48, 49, 50-53, 55-56, 60-62, 65, 70, 80, 85, 99.</event>
                <event version="SE11-001-11" user="greend" date="1995-10-01">Valid codes for the 1995 prostate clinical extension field are:  00, 10-15, 20-24, 30-32, 41-45, 49-53, 60-61, 70, 85, 90.  Valid codes for the new 1995 prostate pathological extension field are:  00, 20-23, 30-32, 41-45, 49-53, 60-61, 70, 85, 90, 98, 99.  Error message was added for new path extension field.  Error message was added for death certificate cases that are coded improperly.</event>
                <event version="SE11-001-12" user="greend" date="1996-07-17">Program modified to correctly edit Death Certificate Only cases.</event>
                <event version="SE11-001-13" user="greend" date="1997-01-27">Program modified to include new lymphoma codes.</event>
                <event version="SE11-001-16" user="greend" date="2002-10-07">Edit skipped for cases diagnosed before 1994 from the California registry.</event>
                <event version="SE11-001-17" user="greend" date="2003-01-30">Updated to correctly edit behavior and extension for prostate cases.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">For site C77.8 the EOD--extension field cannot be 10 or 11.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-18">Edit no longer checks for 9-filled dates.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="cooki" date="2024-07-18" ref="69509">Deleted deprecated dependency.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Switch from ICD-O-2 to ICD-O-3.</event>
            </history>
        </rule>
        <rule id="IF2610DG_P8" name="Extent of Disease 10-Digit(SEER IF2610DG)" tag="S018" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[Integer site = Functions.asInt(line.primarySite.substring(1))
Integer histIcdO3 = Functions.asInt(line.histologicTypeIcdO3)

if (line.codingSystemForEod != '4' ||
     line.dateOfDiagnosisYear < '1930' || line.dateOfDiagnosisYear > '1997' ||
     (line.registryId == '0000001541' && line.dateOfDiagnosisYear < '1994') ||
     (line.registryId == '0000001535' && line.dateOfDiagnosisYear < '1992') ||
      line.typeOfReportingSource == '7')
   return true
if ( ! (Functions.matches(line.regionalNodesExamined, /^[0-9][0-9]$/)))
   return false
if (line.behaviorCodeIcdO3 == '2') {
    if (((Map)Context.If2610DG_HIST_INSITU_REG_EXAM).containsKey(histIcdO3))
        return ((List)((Map)Context.If2610DG_HIST_INSITU_REG_EXAM).getOrDefault(histIcdO3, [])).contains(Functions.asInt(line.regionalNodesExamined))
    if (((Map)Context.If2610DG_HIST_SITE_INSITU_REG_EXAM).containsKey(histIcdO3) && ((Map)((Map)Context.If2610DG_HIST_SITE_INSITU_REG_EXAM).getOrDefault(histIcdO3, [:])).containsKey(site))
        return ((List)((Map)((Map)Context.If2610DG_HIST_SITE_INSITU_REG_EXAM).getOrDefault(histIcdO3, [:])).getOrDefault(site, [])).contains(Functions.asInt(line.regionalNodesExamined))
    return ((List)((Map)Context.If2610DG_SITE_INSITU_REG_EXAM).getOrDefault(site, [])).contains(Functions.asInt(line.regionalNodesExamined))
}
else if (line.behaviorCodeIcdO3 == '3') {
    if (((Map)Context.If2610DG_HIST_MALIG_REG_EXAM).containsKey(histIcdO3))
        return ((List)((Map)Context.If2610DG_HIST_MALIG_REG_EXAM).getOrDefault(histIcdO3, [])).contains(Functions.asInt(line.regionalNodesExamined))
    if (((Map)Context.If2610DG_HIST_SITE_MALIG_REG_EXAM).containsKey(histIcdO3) && ((Map)((Map)Context.If2610DG_HIST_SITE_MALIG_REG_EXAM).getOrDefault(histIcdO3, [:])).containsKey(site))
        return ((List)((Map)((Map)Context.If2610DG_HIST_SITE_MALIG_REG_EXAM).getOrDefault(histIcdO3, [:])).getOrDefault(site, [])).contains(Functions.asInt(line.regionalNodesExamined))
    return ((List)((Map)Context.If2610DG_SITE_MALIG_REG_EXAM).getOrDefault(site, [])).contains(Functions.asInt(line.regionalNodesExamined))
}

return true]]></expression>
            <message>Primary Site and Regional nodes examined pre-1998 conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
  1) Registry ID = 0000001541 (Greater California) and Year of
     Diagnosis = 1988-1993
  2) Year of diagnosis is blank or after 1997
  3) Registry ID = 0000001535 (Los Angeles) and Year of
     Diagnosis = 1988-1991.


For cases coded using the SEER Ten-digit Extent of Disease coding scheme (Coding System for EOD = 4) this edit validates the extent of disease according to the Ten-digit Extent of Disease codes allowable for each site as defined in the Extent of Disease - Codes and Coding Instructions Manual (1988).


The behavior code is checked against the extent of disease fields to verify validity.

If Death Certificate only case (Type of Reporting Source = '7') the SEER 10-digit Extent of Disease must be '999999999'.

If Regional Nodes Positive is 01-97, then EOD--lymph node involv must be = 1-8.  (Check not performed for Kaposi's sarcoma; hematopoietic etc.; lymphomas; mycosis fungoides; brain and meninges; other CNS; and other and ill-defined sites.

For brain, other CNS, other and ill-defined sites, hematopoietic and lymphomas, Regional nodes examined and Regional nodes positive must both be coded '99'.

For 1991+ Pancreas cases the valid codes for EOD--Extension have been changed.  Therefore, Date of diagnosis had to be added to the edit.

For 1994 Prostate cases the valid codes for EOD--Extension have been changed.

For 1995 Prostate cases the valid codes for EOD--Extension have been modified and EOD--Extension prost path has been added.

For site C77.8 the EOD--Extension field cannot be 10 or 11.]]></description>
            <history>
                <event version="SE11-001-04" user="greend" date="1988-11-01">&apos;9800&apos; is valid for in situ positive/examined nodes.</event>
                <event version="SE11-001-05" user="greend" date="1989-02-01">New versions of coding manual (12/88 and 02/89) caused some changes.</event>
                <event version="SE11-001-05" user="greend" date="1989-08-01">Modified to check for non-numeric values in numeric fields.</event>
                <event version="SE11-001-06" user="greend" date="1990-12-01">New version of coding manual caused some changes.  Most changes were in site = EYE.</event>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topography and morphology code from ICD-O-1 to ICD-O-2.</event>
                <event version="SE11-001-08" user="greend" date="1992-02-03">For site C31.0 (Maxillary sinus) the extension code 65 is now valid for diagnosis years 1988+.</event>
                <event version="SE11-001-08" user="greend" date="1992-07-15">For site C24.1 (Ampulla of Vater) the extension codes 55 and 65 are now valid.  For site C34.0-C34.3, C34.8-C34.9 (Lung) the extension code 25 is valid and the extension code 55 is not.  For site C22.0-C22.1 (interhepatic bile ducts) 5 is no longer valid for lymph node.</event>
                <event version="SE11-001-08" user="greend" date="1992-12-15">Site C70.9 was grouped with Other parts of CNS instead of Brain.  Diagnosis date was added to the edit.  For 1991+ new extension codes apply for sites C25.0-C25.4 (Pancreas: head, body, &amp; tail) and sites C25.7-C25.9 (Pancreas: other &amp; unspecified).  An error message was added to the edit.  There is now a check that if positive lymph nodes = 01 - 97 then the lymph node field must = 1 - 8.  The new message is EOD10-NUM REG NODES POS/LYMPH NODES.</event>
                <event version="SE11-001-09" user="greend" date="1993-02-01">The edit was modified so that when checking 1991+ pancreas extension the histology is considered instead of just the site i.e., pancreas with histology 9680 (lymphoma) would be treated as a lymphoma and therefore would not be checked for a 1991+ pancreas extension.</event>
                <event version="SE11-001-09" user="greend" date="1993-04-28">The edit was modified so that the definition of lymph node values is character instead of numeric.  This allows blanks in the lymph node but they will still be flagged as an error.</event>
                <event version="SE11-001-10" user="greend" date="1994-01-10">The following check was added:  for brain, other CNS, other and ill-defined sites, hematopoletic, and lymphomas, number of nodes examined and number of positive nodes must both be coded to &apos;99&apos;.</event>
                <event version="SE11-001-10" user="greend" date="1994-07-01">Program modified to include histology 9740, 9741 with the coding scheme used for hematopoietic, reticuloendothelial, immunoproliferative and myeloproliferative neoplasms.  New extension codes for prostate cases diagnosed in 1994 are:  00, 10-15, 20-29, 30-31, 40-41, 48, 49, 50-53, 55-56, 60-62, 65, 70, 80, 85, 99.</event>
                <event version="SE11-001-11" user="greend" date="1995-10-01">Valid codes for the 1995 prostate clinical extension field are:  00, 10-15, 20-24, 30-32, 41-45, 49-53, 60-61, 70, 85, 90.  Valid codes for the new 1995 prostate pathological extension field are:  00, 20-23, 30-32, 41-45, 49-53, 60-61, 70, 85, 90, 98, 99.  Error message was added for new path extension field.  Error message was added for death certificate cases that are coded improperly.</event>
                <event version="SE11-001-12" user="greend" date="1996-07-17">Program modified to correctly edit Death Certificate Only cases.</event>
                <event version="SE11-001-13" user="greend" date="1997-01-27">Program modified to include new lymphoma codes.</event>
                <event version="SE11-001-16" user="greend" date="2002-10-07">Edit skipped for cases diagnosed before 1994 from the California registry.</event>
                <event version="SE11-001-17" user="greend" date="2003-01-30">Updated to correctly edit behavior and extension for prostate cases.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">For site C77.8 the EOD--extension field cannot be 10 or 11.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-18">Edit no longer checks for 9-filled dates.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-16" ref="68185">Updated documentation; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="cooki" date="2024-07-18" ref="69509">Deleted deprecated dependency.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Switch from ICD-O-2 to ICD-O-3.</event>
            </history>
        </rule>
        <rule id="IF2613DG_P1" name="EOD--Old 13 digit, Primary Site (SEER IF2613DG)" tag="N0317" java-path="lines.line" category="inter-field" depends="Coding_System_for_EOD,Histologic_Type_ICD-O-3,Primary_Site">
            <expression><![CDATA[Integer site = Functions.asInt(line.primarySite.substring(1))
Integer histIcdO3 = Functions.asInt(line.histologicTypeIcdO3)

return ('2' != line.codingSystemForEod
        || (((List)Context.IF26_13_Digit_Site_List).contains(site) && !((((List)Context.LymphNodesLymphoidTIS_IF2613DG).contains(site) && !((List)Context.Lymphoma_IF2613DG).contains(histIcdO3))
            || (((List)Context.Skin_IF2613DG).contains(site) && !((List)Context.MaligMelanoma_IF2613DG).contains(histIcdO3)))))]]></expression>
            <message>EOD--Old 13 digit and Primary Site conflict</message>
            <description><![CDATA[For cases coded using the EOD--Old 13 digit[840] (Coding System for EOD[870]=2) this edit validates extent of disease according to the 13-digit Extent of Disease codes allowable for each site/morphology as defined in the Extent of Disease - Codes and Coding Instructions Manual (1977).

If the case is in situ (Behavior = 2), the Extent of Disease code must also indicate an in situ behavior:

A zero in the fifth position of the 13-digit extent disease indicates in situ for all sites except:

1.  melanomas of the skin (Primary site = C440-C447, C510-C519, C600-C601,
    C608, C609 and histology = 8720-8790) where a '1' in the fifth
    position indicates in situ,

2.  lung (Primary site C340 - C349) where a '00', '01' or '10' in the
    fourth and fifth positions indicate in situ,

3.  lymph nodes and lymphoid tissues (Primary Sites CO24, CO98-CO99, C142,
    C379, C422, C770-C779) where as code is provided for in situ.

Similarly an invasive case (Behavior = 3) may not have an in situ extent of disease.  Thus the above codes valid for in situ cases are invalid for invasive cases.]]></description>
            <history>
                <event version="SE11-001-01" user="greend" date="1985-11-29">Added an edit that if the histology behavior code is in situ, and the site is C340-C349, then the fourth and fifth column positions of the thirteen digit Extent of Disease must be &quot;01&quot; or &quot;10&quot;.  The Extent of Disease fields are now three separate fields, one for each of the four distinct types of extent of disease coding.  The thirteen digit extent of disease field is therefore a separate field and the call sequence and handling of this field have been modified.</event>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topography and morphology codes from ICD-O-1 to ICD-O-2.</event>
                <event version="SE11-001-08" user="greend" date="1992-07-15">Modified program to reflect changes made to 13 digit extent of disease in 1978.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="cooki" date="2024-07-18" ref="69509">Deleted deprecated dependency.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Switch from ICD-O-2 to ICD-O-3.</event>
                <event version="SE24-024-09" user="beverung" date="2024-08-21" ref="69531">Added 9727 to histology list for lymphoma.</event>
            </history>
        </rule>
        <rule id="IF2613DG_P2" name="EOD--Old 13 digit, Primary Site (SEER IF2613DG)" tag="N0317" java-path="lines.line" category="inter-field" depends="Coding_System_for_EOD,EOD--Old_13_Digit,IF2613DG_P1,Primary_Site">
            <expression><![CDATA[if ('2' != line.codingSystemForEod)
   return true
if (Functions.matches(line.primarySite, /^C16\d$/))  /* STOMACH  */
   return Functions.matches(line.eodOld13Digit, /^(0&|\d\d|--)--[-0-9][-0-9][-&0-689]--[-01]-[01][&0-9]$/)
if (line.primarySite == 'C180')     /* CECUM  */
   return Functions.matches(line.eodOld13Digit, /^(0&|[0-8][0-9]|9[0-8]|--)--[-0-9]-[-0-9][-0-7]-[-01]-[01][&0-9]$/)
if (line.primarySite == 'C182')  /* ASCENDING_COLON  */
   return Functions.matches(line.eodOld13Digit, /^(0&|[0-8][0-9]|9[0-8]|--)--[-0-9]-[-0-9][-0-7]-[-01]-[01][&0-9]$/)
if (Functions.matches(line.primarySite, /^C18[345]$/))  /* TRANSVERS_COLON  */
   return Functions.matches(line.eodOld13Digit, /^(0&|[0-8][0-9]|9[0-8]|--)--[-&0-9]-[-&0-9][-0-7]-[-01]-[01][&0-9]$/)
if (line.primarySite == 'C186')  /* DESCENDING_COLON  */
   return Functions.matches(line.eodOld13Digit, /^(0&|[0-8][0-9]|9[0-8]|--)--[-0-9]-[-&0-9][-0-7]-[-01]-[01][&0-9]$/)
if (line.primarySite == 'C187')  /*  SIGMOID_COLON */
   return Functions.matches(line.eodOld13Digit, /^(0&|[0-8][0-9]|9[0-8]|--)--[-0-9]-[-&0-9][-0-7]-[-01]-[01][&0-9]$/)
if (line.primarySite == 'C199')  /* RECTOSIGMOID  */
   return Functions.matches(line.eodOld13Digit, /^(0&|[0-8][0-9]|9[0-8]|--)--[-0-9]-[-&0-79][-0-7]-[-01]-[01][&0-9]$/)
if (line.primarySite == 'C209')   /* RECTUM  */
   return Functions.matches(line.eodOld13Digit, /^(0&|[0-8][0-9]|9[0-8]|--)--[-0-689]-[-&0-9][-0-7]-[-01]-[01][&0-9]$/)
if (Functions.matches(line.primarySite, /^C34[01236789]$/))   /* BRONCHUS_LUNG  */
   return Functions.matches(line.eodOld13Digit, /^(0[-&]|[0-9][0-9]|--)-[-&0-9][-&0-9][&0-9][0-9][&0-9][-0-9][-01][01][01][&0-589]$/)
if (Functions.matches(line.primarySite, /^C(44[0-7]|51[01289]|60[0189])$/))   /* MALIGNANT_MEL  */
   return Functions.matches(line.eodOld13Digit, /^[-0-9][-0-5]-[&1-9][-1-9][0-4][01][0-5][-0-4][-0-2][01][01][&0-9]$/)
if (Functions.matches(line.primarySite, /^C50\d$/))   /* BREAST  */
   return Functions.matches(line.eodOld13Digit, /^[-&0-9][-&0-9]-[-&0-9][-&0-24-9]-[-0-4][-0-9]([0-9][0-9]|--)-[01][&0-9]$/)
if (Functions.matches(line.primarySite, /^C53\d$/))   /* CERVIX_UTERI  */
   return Functions.matches(line.eodOld13Digit, /^([0-9][0-9]|--)-[&02-9][-&0-9][&0-9][&0-9]-[-0-3][-01][01][01][&0-9]$/)
if (Functions.matches(line.primarySite, /^C54\d$/))   /* CORPUS_UTERI  */
   return Functions.matches(line.eodOld13Digit, /^([0-8][0-9]|9[0-8]|--)-[-0-6][-0-9][0-8][0-8]-[-0-3][-01][01][01][&0-9]$/)
if (line.primarySite == 'C619')   /* PROSTATE  */
   return Functions.matches(line.eodOld13Digit, /^[0-8][-&0-8]-[&0-9][-&0-9]--[0-8][0-3][-01][01][01][&0-9]$/)
if (Functions.matches(line.primarySite, /^C67[0-689]$/))   /* BLADDER  */
   return Functions.matches(line.eodOld13Digit, /^[-0-8][-&0-8]--[-&0-9][&0-9][&0-9]-[0-3][-01][01][01][&0-9]$/)
if (Functions.matches(line.primarySite, /^C(024|09[89]|111|142|379|422|77\d)$/))   /* LYMPH */
   return Functions.matches(line.eodOld13Digit, /^[-&0-57-9][-0-3][-0-3][-0-3][-0-3][0-7][0-7][0-7][0-7][0-3][0-7][0-7]-$/)
return true]]></expression>
            <message>Primary Site, EOD--Old 13 digit, Coding System for EOD conflict</message>
            <description><![CDATA[For cases coded using the EOD--Old 13 digit[840] (Coding System for EOD[870]=2) this edit validates extent of disease according to the 13-digit Extent of Disease codes allowable for each site/morphology as defined in the Extent of Disease - Codes and Coding Instructions Manual (1977).

If the case is in situ (Behavior = 2), the Extent of Disease code must also indicate an in situ behavior:

A zero in the fifth position of the 13-digit extent disease indicates in situ for all sites except:

1.  melanomas of the skin (Primary site = C440-C447, C510-C519, C600-C601,
    C608, C609 and histology = 8720-8790) where a '1' in the fifth
    position indicates in situ,

2.  lung (Primary site C340 - C349) where a '00', '01' or '10' in the
    fourth and fifth positions indicate in situ,

3.  lymph nodes and lymphoid tissues (Primary Sites CO24, CO98-CO99, C142,
    C379, C422, C770-C779) where as code is provided for in situ.

Similarly an invasive case (Behavior = 3) may not have an in situ extent of disease.  Thus the above codes valid for in situ cases are invalid for invasive cases.]]></description>
            <history>
                <event version="SE11-001-01" user="greend" date="1985-11-29">Added an edit that if the histology behavior code is in situ, and the site is C340-C349, then the fourth and fifth column positions of the thirteen digit Extent of Disease must be &quot;01&quot; or &quot;10&quot;.  The Extent of Disease fields are now three separate fields, one for each of the four distinct types of extent of disease coding.  The thirteen digit extent of disease field is therefore a separate field and the call sequence and handling of this field have been modified.</event>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topography and morphology codes from ICD-O-1 to ICD-O-2.</event>
                <event version="SE11-001-08" user="greend" date="1992-07-15">Modified program to reflect changes made to 13 digit extent of disease in 1978.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Remove reference to ICD-O-2 from description.</event>
            </history>
        </rule>
        <rule id="IF2613DG_P3" name="EOD--Old 13 digit, Primary Site (SEER IF2613DG)" tag="N0317" java-path="lines.line" category="inter-field" depends="Coding_System_for_EOD,EOD--Old_13_Digit,Histologic_Type_ICD-O-3,IF2613DG_P1,IF2613DG_P2,Primary_Site">
            <expression><![CDATA[Integer site = Functions.asInt(line.primarySite.substring(1))
Integer histIcdO3 = Functions.asInt(line.histologicTypeIcdO3)

if (line.codingSystemForEod != '2')
   return true
if (((List)Context.BRONCHUS_LUNG_IF2613DG).contains(site)) {
   if (line.behaviorCodeIcdO3 == '2') {
      if (line.eodOld13Digit == null)
          return false
      return (line.eodOld13Digit.charAt(3) == '0' as char && line.eodOld13Digit.charAt(4) == '1' as char) ||
        (line.eodOld13Digit.charAt(3) == '1' as char && line.eodOld13Digit.charAt(4) == '0' as char)
   }
   if (line.behaviorCodeIcdO3 == '3') {
      if (line.eodOld13Digit == null)
          return true
      if (line.eodOld13Digit.charAt(3) == '0' as char && line.eodOld13Digit.charAt(4) == '0' as char)
          return false
   }
}
else if (((List)Context.Skin_IF2613DG).contains(site) && ((List)Context.MaligMelanoma_IF2613DG).contains(histIcdO3)) {
   if (line.behaviorCodeIcdO3 == '2') {
      if (line.eodOld13Digit == null)
          return false
      return line.eodOld13Digit.charAt(4) == '1' as char
   }
   if (line.behaviorCodeIcdO3 == '3') {
      if (line.eodOld13Digit == null)
          return true
      return line.eodOld13Digit.charAt(4) != '1' as char
   }
}
else if (!((List)Context.LymphNodesLymphoidTIS_IF2613DG).contains(site)) {
    if (line.behaviorCodeIcdO3 == '2') {
      if (line.eodOld13Digit == null)
          return false
      return line.eodOld13Digit.charAt(4) == '0' as char
   }
   if (line.behaviorCodeIcdO3 == '3') {
      if (line.eodOld13Digit == null)
          return true
      return line.eodOld13Digit.charAt(4) != '0' as char
   }
}
return true]]></expression>
            <message>InSitu Behavior and EOD--Old 13 digit conflict</message>
            <description><![CDATA[For cases coded using the EOD--Old 13 digit[840] (Coding System for EOD[870]=2) this edit validates extent of disease according to the 13-digit Extent of Disease codes allowable for each site/morphology as defined in the Extent of Disease - Codes and Coding Instructions Manual (1977).

If the case is in situ (Behavior = 2), the Extent of Disease code must also indicate an in situ behavior:

A zero in the fifth position of the 13-digit extent disease indicates in situ for all sites except:

1.  melanomas of the skin (Primary site = C440-C447, C510-C519, C600-C601,
    C608, C609 and histology = 8720-8790) where a '1' in the fifth
    position indicates in situ,

2.  lung (Primary site C340 - C349) where a '00', '01' or '10' in the
    fourth and fifth positions indicate in situ,

3.  lymph nodes and lymphoid tissues (Primary Sites CO24, CO98-CO99, C142,
    C379, C422, C770-C779) where as code is provided for in situ.

Similarly an invasive case (Behavior = 3) may not have an in situ extent of disease.  Thus the above codes valid for in situ cases are invalid for invasive cases.]]></description>
            <history>
                <event version="SE11-001-01" user="greend" date="1985-11-29">Added an edit that if the histology behavior code is in situ, and the site is C340-C349, then the fourth and fifth column positions of the thirteen digit Extent of Disease must be &quot;01&quot; or &quot;10&quot;.  The Extent of Disease fields are now three separate fields, one for each of the four distinct types of extent of disease coding.  The thirteen digit extent of disease field is therefore a separate field and the call sequence and handling of this field have been modified.</event>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topography and morphology codes from ICD-O-1 to ICD-O-2.</event>
                <event version="SE11-001-08" user="greend" date="1992-07-15">Modified program to reflect changes made to 13 digit extent of disease in 1978.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="cooki" date="2024-07-18" ref="69509">Deleted deprecated dependency.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-07-25" ref="69510">Switch from ICD-O-2 to ICD-O-3.</event>
            </history>
        </rule>
        <rule id="IFN0246" name="Recurrence Date--1st, Date Last Contact (COC)" tag="N0246" java-path="lines.line" category="inter-field" depends="DateFollowUpEdit,RecurrenceDate1stEdit">
            <expression><![CDATA[if ((line.dateOfLastContactYear == null && line.dateOfLastContactMonth == null && line.dateOfLastContactDay == null)
            || (line.recurrenceDate1stYear == null && line.recurrenceDate1stMonth == null && line.recurrenceDate1stDay == null))
    return true

Integer recurrenceYear = Functions.asInt(line.recurrenceDate1stYear)
Integer recurrenceMonth = Functions.asInt(line.recurrenceDate1stMonth)
Integer recurrenceDay = Functions.asInt(line.recurrenceDate1stDay)
Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)

return ((Integer)((Closure)Context.compareDate).call(recurrenceYear, recurrenceMonth, recurrenceDay, dolcYear, dolcMonth, dolcDay)) <= 0]]></expression>
            <message>Recurrence Date--1st must be &lt; or = Date of Last Contact</message>
            <description><![CDATA[This edit is skipped if Recurrence Date--1st or Date of Last Contact is blank.

Recurrence Date--1st must be less than or equal to Date of Last Contact.
If both years are known, but either month is blank, then only the years are compared.
If either day is blank, then only the years and months are compared.]]></description>
            <history>
                <event version="SE23-023-04" user="shearerw" date="2023-06-02" ref="69274">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN0248" name="Recurrence Type--1st, Recurrence Date--1st (COC)" tag="N0248" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.recurrenceType1st == null || (line.recurrenceDate1stYear == null && line.recurrenceDate1stMonth == null && line.recurrenceDate1stDay == null))
    return true

if (line.recurrenceType1st == '00' || line.recurrenceType1st == '70')
    return false

return true]]></expression>
            <message>Recurrence Type--1st conflicts with Recurrence Date--1st</message>
            <description><![CDATA[This edit is skipped if any of the following conditions is true:
1.  Recurrence Type--1st is blank
2.  Recurrence Date--1st is blank

If Recurrence Type--1st = 00 or 70, Recurrence Date--1st must be blank.]]></description>
            <history>
                <event version="SE23-023-04" user="shearerw" date="2023-06-02" ref="69274">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN0528" name="RX Date Systemic, Date Last Contact (COC)" tag="N0528" java-path="lines.line" category="inter-field" depends="DateFollowUpEdit,RXDateSystemicEdit">
            <expression><![CDATA[if (line.rxDateSystemicYear == null || line.dateOfLastContactYear == null)
    return true

if (line.rxDateSystemicYear > line.dateOfLastContactYear)
    return false

if (line.rxDateSystemicYear < line.dateOfLastContactYear || line.rxDateSystemicMonth == null || line.dateOfLastContactMonth == null)
    return true

if (line.rxDateSystemicMonth > line.dateOfLastContactMonth)
    return false

if (line.rxDateSystemicMonth < line.dateOfLastContactMonth || line.rxDateSystemicDay == null || line.dateOfLastContactDay == null)
    return true

return line.rxDateSystemicDay <= line.dateOfLastContactDay]]></expression>
            <message>RX Date Systemic, Date of Last Contact conflict.</message>
            <description><![CDATA[This edit is skipped if any of the fields are blank.

RX Date Systemic must be less than or equal to Date of Last Contact. If both years are known, but either month is blank, then only the years are compared. If either day is blank, then only the years and months are compared.]]></description>
            <history>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67780">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN2514" name="Date of Sentinel Lymph Node Biopsy, RPTSRC (SEER)" tag="N2514" java-path="lines.line" category="inter-field">
            <expression><![CDATA[boolean dateSentinelLymphNodeBiopsyIsBlank = line.dateSentinelLymphNodeBiopsyYear == null && line.dateSentinelLymphNodeBiopsyMonth == null && line.dateSentinelLymphNodeBiopsyDay == null
    if (line.typeOfReportingSource == '6' || line.typeOfReportingSource == '7')
        return dateSentinelLymphNodeBiopsyIsBlank

return true]]></expression>
            <message>Date of Sentinel Lymph Node Biopsy and Type of Reporting Source conflict.</message>
            <description><![CDATA[
If Type of Reporting Source = 6 (Autopsy Only), or 7 (Death Certificate Only) then Date of Sentinel Lymph Node Biopsy must be blank.
]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-01" ref="67781">Edit created.</event>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-20" ref="67961">Removed unnecessary dependency.</event>
                <event version="SE18-018-05" user="kirbyk" date="2018-08-15" ref="68017">Changed edit to use date year field instead of full date field.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-04" ref="68491">Changed edit name.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-01" user="smithm" date="2022-02-15" ref="68801">Add Type of Reporting Source condtions to logic</event>
                <event version="SE23-023-01" user="cooki" date="2023-01-23" ref="69081">Update edit name and change Date of Sentinel Lymph Node Biopsy conditions to be blank.</event>
            </history>
        </rule>
        <rule id="IFN2516" name="Date of Sentinel Lymph Node Biopsy, Date Last Contact (COC)" tag="N2516" java-path="lines.line" category="inter-field" depends="DateFollowUpEdit,DateSentinelLymphNodeBiopsyEdit">
            <expression><![CDATA[if (line.dateSentinelLymphNodeBiopsyYear == null || line.dateOfLastContactYear == null)
    return true

if (line.dateSentinelLymphNodeBiopsyYear > line.dateOfLastContactYear)
    return false

if (line.dateSentinelLymphNodeBiopsyYear < line.dateOfLastContactYear || line.dateSentinelLymphNodeBiopsyMonth == null || line.dateOfLastContactMonth == null)
    return true

if (line.dateSentinelLymphNodeBiopsyMonth > line.dateOfLastContactMonth)
    return false

if (line.dateSentinelLymphNodeBiopsyMonth < line.dateOfLastContactMonth || line.dateSentinelLymphNodeBiopsyDay == null || line.dateOfLastContactDay == null)
    return true

return line.dateSentinelLymphNodeBiopsyDay <= line.dateOfLastContactDay]]></expression>
            <message>Date of Sentinel Lymph Node Biopsy must be less than or equal to Date of Last Contact.</message>
            <description><![CDATA[This edit is skipped if either Date of Sentinel Lymph Biopsy or Date of Last
Contact is blank or invalid.

Date of Sentinel Lymph Node Biopsy must be less than or equal to Date of Last
Contact. If both years are known, but either month is blank, then only the years
are compared. If either day is blank, then only the years and months are compared.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-01" ref="67781">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IFN2517" name="Date of Sentinel Lymph Node Biopsy, Date of Diagnosis (COC)" tag="N2517" java-path="lines.line" category="inter-field" depends="DateDiagnosisEdit,DateSentinelLymphNodeBiopsyEdit">
            <expression><![CDATA[if (line.dateSentinelLymphNodeBiopsyYear == null || line.dateOfDiagnosisYear == null)
    return true

if (line.dateSentinelLymphNodeBiopsyYear < line.dateOfDiagnosisYear)
    return false

if (line.dateSentinelLymphNodeBiopsyYear > line.dateOfDiagnosisYear || line.dateSentinelLymphNodeBiopsyMonth == null || line.dateOfDiagnosisMonth == null)
    return true

if (line.dateSentinelLymphNodeBiopsyMonth < line.dateOfDiagnosisMonth)
    return false

if (line.dateSentinelLymphNodeBiopsyMonth > line.dateOfDiagnosisMonth || line.dateSentinelLymphNodeBiopsyDay == null || line.dateOfDiagnosisDay == null)
    return true

return line.dateSentinelLymphNodeBiopsyDay >= line.dateOfDiagnosisDay]]></expression>
            <message>Date of Sentinel Lymph Node Biopsy must be greater than or equal to Date of Diagnosis.</message>
            <description><![CDATA[This edit is skipped if Date of Sentinel Lymph Node Biopsy or Date of Diagnosis
is blank or invalid.

Date of Sentinel Lymph Node Biopsy must be greater than or equal to Date of
Diagnosis. If both years are known, but either month is blank, then only the
years are compared. If either day is blank, then only the years and months are
compared.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-01" ref="67781">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IFN2522" name="Date Regional Lymph Node Dissection, Date Last Contact (COC)" tag="N2522" java-path="lines.line" category="inter-field" depends="DateFollowUpEdit,DateRegionalLymphNodeDissectionEdit">
            <expression><![CDATA[if (line.dateRegionalLNDissectionYear == null || line.dateOfLastContactYear == null)
    return true

if (line.dateRegionalLNDissectionYear > line.dateOfLastContactYear)
    return false

if (line.dateRegionalLNDissectionYear < line.dateOfLastContactYear || line.dateRegionalLNDissectionMonth == null || line.dateOfLastContactMonth == null)
    return true

if (line.dateRegionalLNDissectionMonth > line.dateOfLastContactMonth)
    return false

if (line.dateRegionalLNDissectionMonth < line.dateOfLastContactMonth || line.dateRegionalLNDissectionDay == null || line.dateOfLastContactDay == null)
    return true

return line.dateRegionalLNDissectionDay <= line.dateOfLastContactDay]]></expression>
            <message>Date Regional Lymph Node Dissection must be less than or equal to Date of Last Contact.</message>
            <description><![CDATA[This edit is skipped if Date Regional Lymph Node Dissection or Date Last Contact
is blank or invalid.

Date Regional Lymph Node Dissection must be less than or equal to Date of Last
contact. If both years are known, but either month is blank, then only the years
are compared. If either day is blank, then only the years and months are compared.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-01" ref="67782">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IFN2523" name="Date Regional Lymph Node Dissection, Date of Diagnosis (COC)" tag="N2523" java-path="lines.line" category="inter-field" depends="DateDiagnosisEdit,DateRegionalLymphNodeDissectionEdit">
            <expression><![CDATA[if (line.dateRegionalLNDissectionYear == null || line.dateOfDiagnosisYear == null)
    return true

if (line.dateRegionalLNDissectionYear < line.dateOfDiagnosisYear)
    return false

if (line.dateRegionalLNDissectionYear > line.dateOfDiagnosisYear || line.dateRegionalLNDissectionMonth == null || line.dateOfDiagnosisMonth == null)
    return true

if (line.dateRegionalLNDissectionMonth < line.dateOfDiagnosisMonth)
    return false

if (line.dateRegionalLNDissectionMonth > line.dateOfDiagnosisMonth || line.dateRegionalLNDissectionDay == null || line.dateOfDiagnosisDay == null)
    return true

return line.dateRegionalLNDissectionDay >= line.dateOfDiagnosisDay]]></expression>
            <message>Date Regional Lymph Node Dissection must be greater than or equal to Date of Diagnosis.</message>
            <description><![CDATA[This edit is skipped if Date Regional Lymph Node Dissection or Date of Diagnosis
is blank or invalid.

Date Regional Lymph Node Dissection must be greater than or equal to Date of
Diagnosis. If both years are known, but either month is blank, then only the
years are compared. If either day is blank, then only the years and months are
compared.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-01" ref="67782">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IFN2524" name="Date of Last Cancer (tumor) Status (COC)" tag="N2524" java-path="lines.line" category="inter-field">
            <expression><![CDATA[Integer year = Functions.asInt(line.dateOfLastCancerStatusYear)
Integer month = Functions.asInt(line.dateOfLastCancerStatusMonth)
Integer day = Functions.asInt(line.dateOfLastCancerStatusDay)

Integer yearCur  = Functions.getCurrentYear()
Integer monthCur = Functions.getCurrentMonth()
Integer dayCur = Functions.getCurrentDay()

if (line.dateOfLastCancerStatusYear == null)
    return (line.dateOfLastCancerStatusMonth == null && line.dateOfLastCancerStatusDay == null)

if ((line.dateOfLastCancerStatusMonth == null && line.dateOfLastCancerStatusDay != null) || (month > 12 || (line.dateOfLastCancerStatusMonth != null && month < 1)))
    return false

if (!Functions.between(year, 1930, yearCur))
    return false

if (line.dateOfLastCancerStatusMonth == null) //by now year fits and day is null if month is null
    return true

if (year == yearCur && month > monthCur)
    return false

if (line.dateOfLastCancerStatusDay == null) //by now year and month fit
    return true

if (year == yearCur && month == monthCur && day > dayCur)
    return false

Calendar cal = new GregorianCalendar(year, month - 1, 1)
return cal != null && day <= cal.getActualMaximum(Calendar.DAY_OF_MONTH)]]></expression>
            <message>Date of Last Cancer (tumor) Status is an invalid date</message>
            <description><![CDATA[This data item documents the date of last cancer (tumor) status of the patient's
malignant or non-malignant tumor.

This data item may be blank. Another edit checks that the item is recorded
according to standard setter requirements by date and class of case.

General Date Editing Rules:

Date fields are recorded in the D1 date format of year, month, day (CCYYMMDD).
Month and day must have leading zeros for values 01...09.

The following date formats are allowed:

CCYYMMDD    Century+Year, Month and Day are provided.
CCYYMM    Century+Year and Month. Day consists of two blank spaces.
CCYY        Century+Year. Month and Day consist of four blank spaces.

Dates are checked first to ensure they conform to one of these formats, then for
errors in the components. Checking stops on the first non-valid situation.

Range checking:
    Lowest allowed value:  January 1, 1850 (or in D1 format: 18500101)
    Highest allowed value: current system date
    When month is known, it is checked to ensure it falls within range 01...12.
    When month and day are known, day is checked to ensure it falls within range
    for that specific month. Accommodation is made for leap years.]]></description>
            <history>
                <event version="SE23-023-04" user="cooki" date="2023-06-13" ref="69275">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN2528" name="Date of Last Cancer (tumor) Status, Date Last Contact (COC)" tag="N2528" java-path="lines.line" category="inter-field" depends="DateFollowUpEdit">
            <expression><![CDATA[if (line.dateOfLastCancerStatusYear == null || line.dateOfLastContactYear == null)
    return true

if (line.dateOfLastCancerStatusYear > line.dateOfLastContactYear)
    return false

if (line.dateOfLastCancerStatusYear < line.dateOfLastContactYear || line.dateOfLastCancerStatusMonth == null || line.dateOfLastContactMonth == null)
    return true

if (line.dateOfLastCancerStatusMonth > line.dateOfLastContactMonth)
    return false

if (line.dateOfLastCancerStatusMonth < line.dateOfLastContactMonth || line.dateOfLastCancerStatusDay == null || line.dateOfLastContactDay == null)
    return true

return line.dateOfLastCancerStatusDay <= line.dateOfLastContactDay]]></expression>
            <message>Date of Last Cancer (tumor) Status must be less than or equal to Date of Last Contact.</message>
            <description><![CDATA[This edit is skipped if either Date of Last Cancer (tumor) Status or Date Last
Contact is blank or invalid.

Date of Last Cancer (tumor) Status must be less than or equal to Date of Last
Contact. If both years are known, but either month is blank, then only the
years are compared. If either day is blank, then only the years and months
are compared.]]></description>
            <history>
                <event version="SE23-023-02" user="cooki" date="2023-04-14" ref="69215">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN2529" name="Date of Last Cancer (tumor) Status, Date of Diagnosis (COC)" tag="N2529" java-path="lines.line" category="inter-field" depends="DateFollowUpEdit">
            <expression><![CDATA[if (line.dateOfLastCancerStatusYear == null || line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfLastCancerStatusYear < line.dateOfDiagnosisYear)
    return false

if (line.dateOfLastCancerStatusYear > line.dateOfDiagnosisYear || line.dateOfLastCancerStatusMonth == null || line.dateOfDiagnosisMonth == null)
    return true

if (line.dateOfLastCancerStatusMonth < line.dateOfDiagnosisMonth)
    return false

if (line.dateOfLastCancerStatusMonth > line.dateOfDiagnosisMonth || line.dateOfLastCancerStatusDay == null || line.dateOfDiagnosisDay == null)
    return true

return line.dateOfLastCancerStatusDay >= line.dateOfDiagnosisDay]]></expression>
            <message>Date of Last Cancer (tumor) Status must be greater than or equal to Date of Diagnosis.</message>
            <description><![CDATA[This edit is skipped if either Date of Last Cancer (tumor) Status or Date of
Diagnosis is blank or invalid.

Date of Last Cancer (tumor) Status must be greater than or equal to Date of
Diagnosis. If both years are known, but either month is blank, then only the
years are compared. If either day is blank, then only the years and months are
compared.]]></description>
            <history>
                <event version="SE23-023-04" user="cooki" date="2023-06-13" ref="69275">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN2535" name="Sentinel Lymph Nodes Examined, Sentinel Lymph Nodes Positive (COC)" tag="N2535" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.sentinelLymphNodesExamined == null || line.sentinelLymphNodesPositive == null)
    return true
    
if (line.sentinelLymphNodesExamined == '00' && line.sentinelLymphNodesPositive != '98')
    return false
else if (line.sentinelLymphNodesExamined >= '01' && line.sentinelLymphNodesExamined <= '90')
    return line.sentinelLymphNodesPositive == '97' || line.sentinelLymphNodesPositive == '99' || line.sentinelLymphNodesPositive <= line.sentinelLymphNodesExamined    
else if (line.sentinelLymphNodesExamined == '95') 
    return line.sentinelLymphNodesPositive == '00' || line.sentinelLymphNodesPositive == '95' || line.sentinelLymphNodesPositive == '99'
else if (line.sentinelLymphNodesExamined == '98') 
    return (line.sentinelLymphNodesPositive >= '00' && line.sentinelLymphNodesPositive <= '90') || line.sentinelLymphNodesPositive == '97' || line.sentinelLymphNodesPositive == '99'
else if (line.sentinelLymphNodesExamined == '99') 
    return line.sentinelLymphNodesPositive == '99'
return true]]></expression>
            <message>Sentinel Lymph Nodes Positive conflicts with Sentinel Lymph Nodes Examined</message>
            <description><![CDATA[This edit checks that Sentinel Lymph Nodes Examined and Sentinel Lymph Nodes 
Positive are coded consistently with each other. 

This edit is skipped if:
1. Sentinel Lymph Nodes Examined is blank
2. Sentinel Lymph Nodes Positive is blank


1.  If Sentinel Lymph Nodes Examined = 00 (no sentinel nodes examined),
    Sentinel Lymph Nodes Positive must = 98 (no sentinel nodes examined).

2.  If Sentinel Lymph Nodes Examined = 01-90 (number of sentinel nodes 
    examined), 
    Sentinel Lymph Nodes Positive must = 00-90 (number of positive sentinel 
    nodes) and less than or equal to Sentinel Lymph Nodes Examined), 97 (sentinel 
    nodes positive, number unknown), or 99 (unknown if positive nodes).

3.  If Sentinel Lymph Nodes Examined = 95 (aspiration of sentinel nodes), 
    Sentinel Lymph Nodes Positive must = 00 (no positive sentinel nodes), 95 
    positive aspiration of sentinel nodes), or 99 (unknown if positive sentinel
    nodes).

4.  If Sentinel Lymph Nodes Examined = 98 (sentinel nodes biopsied but unknown 
    number), 
    Sentinel Lymph Nodes Positive must = 00-90 (number of positive sentinel
    nodes), 97 (positive sentinel nodes, unknown number; or for breast only, 
    sentinel lymph node biopsy and regional node dissection occurred in same 
    procedure), or 99 (unknown if positive sentinel nodes).

5.  If Sentinel Lymph Nodes Examined = 99 (unknown if sentinel nodes examined), 
    then Sentinel Lymph Nodes Positive must = 99 (unknown if positive sentinel
    nodes).]]></description>
            <history>
                <event version="SE18-018-02" user="schadega" date="2018-05-30" ref="67783">Edit created.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IFN2536" name="Sentinel Lymph Nodes Examined, Date of Sentinel Lymph Node Biopsy (NAACCR)" tag="N2536" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || !['00480','00470'].contains(line.schemaId) || line.typeOfReportingSource == '7')
    return true

if (line.dateSentinelLymphNodeBiopsyYear != null)
    return Functions.matches(line.sentinelLymphNodesExamined, /(^[0-8][0-9]|9[08]$)/)
if (line.sentinelLymphNodesExamined == '99' || line.sentinelLymphNodesExamined == null)
    return line.dateSentinelLymphNodeBiopsyYear == null

return true]]></expression>
            <message>Sentinel Lymph Nodes Examined conflicts with Date of Sentinel Lymph Node Biopsy</message>
            <description><![CDATA[This edit checks that Sentinel Lymph Nodes Examined and Date Sentinel Lymph Node
Biopsy are coded consistently with each other.

1. This edit is skipped for any of the following:
    a. Date of diagnosis blank (unknown), invalid, or before 2018.
    b. Schema ID is not 00480, 00470
    c. Type of Reporting Source = 7

2. If Date of Sentinel Lymph Biopsy is not blank, Sentinel Lymph Nodes Examined must
= 00-90, 98

3. If Sentinel Lymph Nodes Examined is blank or = 99 (unknown if
sentinel lymph nodes examined), Date of Sentinel Lymph Node Biopsy must be blank.]]></description>
            <history>
                <event version="SE23-023-02" user="cooki" date="2023-04-14" ref="69217">Edit created.</event>
                <event version="SE23-023-03" user="kirbyk" date="2023-05-25" ref="69285">Fixed edit logic when Date of Sentinel Lymph Biopsy is blank.</event>
            </history>
        </rule>
        <rule id="IFN2606" name="Date of Last Cancer (tumor) Status, Recurrence Date--1st (COC)" tag="N2606" java-path="lines.line" category="inter-field">
            <expression><![CDATA[
if (line.dateOfLastCancerStatusYear == null || line.recurrenceDate1stYear == null)
    return true
Integer dolctsYear = Functions.asInt(line.dateOfLastCancerStatusYear)
Integer dolctsMonth = Functions.asInt(line.dateOfLastCancerStatusMonth)
Integer dolctsDay = Functions.asInt(line.dateOfLastCancerStatusDay)
Integer recurYear = Functions.asInt(line.recurrenceDate1stYear)
Integer recurMonth = Functions.asInt(line.recurrenceDate1stMonth)
Integer recurDay = Functions.asInt(line.recurrenceDate1stDay)

return ((Integer)((Closure)Context.compareDate).call(dolctsYear, dolctsMonth, dolctsDay, recurYear, recurMonth, recurDay)) >= 0
            ]]></expression>
            <message>Date of Last Cancer (tumor) Status must be &gt; or = Recurrence Date--1st</message>
            <description><![CDATA[This edit is skipped if either Date of Last Cancer Status or Recurrence
Date--1st is blank or invalid.

Date of Last Cancer Status must be greater than or equal to Recurrence Date--1st.
If both years are known, but either month is blank, then only the years are
compared. If either day is blank, then only the years and months are compared.]]></description>
            <history>
                <event version="SE22-022-06" user="beverung" date="2022-05-26" ref="68941">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN2621" name="Methylation of O6-Methylguanine-Methyltransferase, Date DX (NAACCR)" tag="N2621" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.methylationOfO6MGMT != null)
    return false

return  line.methylationOfO6MGMT == null || Functions.matches(line.methylationOfO6MGMT, /^[01236789]$/)]]></expression>
            <message>Methylation of O6-Methylguanine-Methyltransferase value is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Methylation of O6-Methylguanine-Methyltransferase code or
   blank:

    0: MGMT methylation absent/not present, unmethylated MGMT
    1: MGMT methylation present, low level
       Hypomethylated
       Partial methylated
    2: MGMT methylation present, high level
       Hypermethylated
    3: MGMT methylation present, level unspecified
    6: Benign or borderline tumor
    7: Test done, result not in chart
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Cannot be determined by the pathologist
       Methylation of O6-Methylguanine-Methyltransferase not assessed or unknown
       if assessed


Another edit, Methylation of O6-Methylguanine-Methyltransferase (NAACCR),
Schema ID, Required (NAACCR), checks that the item is coded by Schema ID
if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-13" ref="67810">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IFN2622" name="Chromosome 1p: Loss of Heterozygosity (LOH), Date DX (NAACCR)" tag="N2622" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.chromosome1pLossHeterozygosity != null)
    return false

return  line.chromosome1pLossHeterozygosity == null || Functions.matches(line.chromosome1pLossHeterozygosity, /^[016789]$/)]]></expression>
            <message>Chromosome 1p: Loss of Heterozygosity (LOH) value is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Chromosome 1p: Loss of Heterozygosity (LOH) code or blank:

    0: Chromosome 1p deletion/LOH not identified/not present
    1: Chromosome 1p deletion/LOH identified/present
    6: Benign or borderline tumor
    7: Test ordered, results not in chart
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Cannot be determined by the pathologist
       Chromosome 1p: Loss of Heterozygosity (LOH) not assessed or unknown if
        assessed

Another edit, Chromosome 1p: Loss of Heterozygosity (LOH) Schema ID, Required
(NAACCR), checks that the item is coded by Schema ID if required by a standard
setter.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-07" ref="67812">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IFN2623" name="Chromosome 19q: Loss of Heterozygosity (LOH), Date DX (NAACCR)" tag="N2623" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.chromosome19qLossHeterozygosity != null)
    return false

return  line.chromosome19qLossHeterozygosity == null || Functions.matches(line.chromosome19qLossHeterozygosity, /^[016789]$/)]]></expression>
            <message>Chromosome 19q: Loss of Heterozygosity (LOH) value is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Chromosome 19q: Loss of Heterozygosity (LOH) code or blank:

    0: Chromosome 19q deletion/LOH not identified/not present
    1: Chromosome 19q deletion/LOH present
    6: Benign or borderline tumor
    7: Test ordered, results not in chart
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Cannot be determined by the pathologist.
       Chromosome 19q: Loss of Heterozygosity (LOH) not assessed or unknown if
       assessed

Another edit, Chromosome 19q: Loss of Heterozygosity (LOH) (NAACCR), Schema ID,
Required (NAACCR), checks that the item is coded by Schema ID if required by a
standard setter.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-07" ref="67811">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IFN2624" name="FIGO Stage, Schema ID, Required (NAACCR)" tag="N2624" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

String[] schemaIds = ['00500','09500','00510','00520','09520','00528','00530','00541','00542','00551','00552','00553','00560']
if (schemaIds.contains(line.schemaId))
    return line.figoStage != null && line.figoStage != '98'

return true]]></expression>
            <message>FIGO Stage must not be blank or not applicable for cases with this schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that FIGO Stage is not "98" (not applicable) and not blank
   for the Schema IDs for which it is required.

    Required for Schema ID:

    00500: Vulva [8th: 2018-2023]
    09500: Vulva [V9: 2024+]
    00510: Vagina
    00520: Cervix [8th: 2018-2020 only]
    09520: Cervix [9th: 2021+ only]
    00528: Cervix Sarcoma [2021+]
    00530: Corpus Carcinoma and Carcinosarcoma
    00541: Corpus Sarcoma (Sarcoma)
    00542: Corpus Sarcoma (Adenosarcoma)
    00551: Ovary
    00552: Primary Peritoneal Carcinoma
    00553: Fallopian Tube
    00560: Placenta]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-14" ref="67813">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-14" ref="68003">Added DCO skip condition</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-30" ref="68394">Add 09520 to list of schema IDs.</event>
                <event version="SE21-021-03" user="secristm" date="2021-03-04" ref="68589">Separate cervix schema ID logic by year</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-01" user="smithm" date="2022-02-15" ref="68831">Add 00528 to skip condition</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-04" ref="69403">Added logic for Schema ID 09500.</event>
            </history>
        </rule>
        <rule id="IFN2632" name="LN Laterality, Date DX (NAACCR)" tag="N2632" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.lnLaterality == null

return line.lnLaterality == null || Functions.matches(line.lnLaterality, /^[0-389]$/)]]></expression>
            <message>LN Laterality is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.
1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid LN Laterality code or blank:

    0: No regional lymph node involvement
    1: Unilateral - all positive regional nodes with same laterality,
        OR only one regional node positive
    2: Bilateral - positive bilateral regional lymph nodes
    3: Laterality unknown - positive regional lymph nodes with unknown laterality
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
        LN Laterality not assessed or unknown if assessed

Another edit, LN Laterality, Schema ID, Required (NAACCR), checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-02" user="schadega" date="2018-06-04" ref="67814">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2634" name="LN Assessment Method Para-Aortic, Date DX (NAACCR)" tag="N2634" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
    
if (line.dateOfDiagnosisYear < '2018')
    return line.lnAssessMethodParaaortic == null 
    
return line.lnAssessMethodParaaortic == null || Functions.matches(line.lnAssessMethodParaaortic, /^[0-27-9]$/)]]></expression>
            <message>LN Assessment Method Para-aortic is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid LN Assessment Method Para-Aortic code or blank: 

    0: Radiography, imaging
        (Ultrasound (US), computed tomography scan (CT), magnetic resonance 
        imaging (MRI), positron emission tomography scan (PET))
        Physical exam only
    1: Incisional biopsy; fine needle aspiration (FNA)
    2: Lymphadenectomy
        Sentinel node biopsy
        Excisional biopsy or resection with microscopic confirmation
    7: Para-aortic lymph node(s) assessed, unknown assessment method
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
        Para-aortic lymph nodes not assessed or unknown if assessed

Another edit, LN Assessment Method Para-Aortic, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-02" user="schadega" date="2018-06-13" ref="67817">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-01" user="smithm" date="2022-03-01" ref="68891">Update description</event>
            </history>
        </rule>
        <rule id="IFN2635" name="LN Assessment Method Pelvic, Date DX (NAACCR)" tag="N2635" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
    
if (line.dateOfDiagnosisYear < '2018')
    return line.lnAssessMethodPelvic == null 
    
return line.lnAssessMethodPelvic == null || Functions.matches(line.lnAssessMethodPelvic, /^[0-27-9]$/)]]></expression>
            <message>LN Assessment Method Pelvic is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid LN Assessment Method Pelvic code or blank: 

    0: Radiography, imaging
        (Ultrasound (US), computed tomography scan (CT), magnetic resonance 
        imaging (MRI), positron emission tomography scan (PET))
        Physical exam only
    1: Incisional biopsy; fine needle aspiration (FNA)
    2: Lymphadenectomy
        Sentinel node biopsy
        Excisional biopsy or resection with microscopic confirmation
    7: Pelvic lymph node(s) assessed, unknown assessment method
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
        Pelvic lymph nodes not assessed or unknown if assessed

Another edit, LN Assessment Method Pelvic, Schema ID, Required (NAACCR), checks 
that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-02" user="schadega" date="2018-06-19" ref="67818">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-01" user="beverung" date="2022-02-04" ref="68893">Update descriptions for LN Assessment Method Pelvic codes 2, 7, and 9.</event>
            </history>
        </rule>
        <rule id="IFN2636" name="LN Assessment Method Femoral-Inguinal, Date DX (NAACCR)" tag="N2636" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
    
if (line.dateOfDiagnosisYear < '2018')
    return line.lnAssessMethodFemoralInguinal == null 
    
return line.lnAssessMethodFemoralInguinal == null || Functions.matches(line.lnAssessMethodFemoralInguinal, /^[012789]$/)]]></expression>
            <message>LN Assessment Method Femoral-Inguinal is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid LN Assessment Method Femoral-Inguinal code or blank:

    0: Radiography, imaging
       (Ultrasound (US), computed tomography scan (CT), magnetic resonance
       imaging (MRI), positron emission tomography scan (PET))
       Physical exam only
    1: Incisional biopsy; fine needle aspiration(FNA)
    2: Lymphadenectomy
       Sentinel node biopsy
       Excisional biopsy or resection with microscopic confirmation
    7: Femoral-inguinal lymph node(s) assessed, unknown assessment method
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Femoral-inguinal lymph nodes not assessed or unknown if assessed


Another edit, LN Assessment Method Femoral-Inguinal, Schema ID, Required (NAACCR),
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-07" ref="67819">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-01" user="secristc" date="2022-02-23" ref="68889">Updated description for LN Assessment Method codes 2, 7, 9.</event>
            </history>
        </rule>
        <rule id="IFN2637" name="LN Distant: Mediastinal, Scalene, Date DX (NAACCR)" tag="N2637" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
    
if (line.dateOfDiagnosisYear < '2018')
    return line.lnDistantMediastinalScalene == null 
    
return line.lnDistantMediastinalScalene == null || Functions.matches(line.lnDistantMediastinalScalene, /^[012389]$/)]]></expression>
            <message>LN Distant: Mediastinal, Scalene is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid LN Distant: Mediastinal, Scalene code or blank:

    0: Negative mediastinal and scalene lymph nodes
    1: Positive mediastinal lymph nodes
    2: Positive scalene lymph nodes
    3: Positive mediastinal and scalene lymph nodes
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Mediastinal and scalene lymph nodes not assessed or unknown if assessed

Another edit, LN Distant: Mediastinal, Scalene, Schema ID, Required (NAACCR),
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-07" ref="67821">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2638" name="LN Distant Assessment Method, Date DX (NAACCR)" tag="N2638" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
    
if (line.dateOfDiagnosisYear < '2018')
    return line.lnDistantAssessMethod == null 
    
return line.lnDistantAssessMethod == null || Functions.matches(line.lnDistantAssessMethod, /^[012789]$/)]]></expression>
            <message>LN Distant Assessment Method is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid LN Distant Assessment Method code or blank:

    0: Radiography, imaging
       (Ultrasound (US), computed tomography scan (CT), magnetic resonance
       imaging (MRI), positron emission tomography scan (PET))
       Physical exam only
    1: Incisional biopsy; fine needle aspiration (FNA)
    2: Lymphadenectomy
       Excisional biopsy or resection with microscopic confirmation
    7: Distant lymph node(s) assessed, unknown assessment method
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Distant lymph nodes not assessed or unknown if assessed

Another edit, LN Distant Assessment Method, Schema ID, Required (NAACCR), checks
that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-07" ref="67820">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IFN2639" name="Peritoneal Cytology, Date DX (NAACCR)" tag="N2639" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.peritonealCytology != null)
    return false

return  line.peritonealCytology == null || Functions.matches(line.peritonealCytology, /^[0123789]$/)]]></expression>
            <message>Peritoneal Cytology value is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Peritoneal Cytology code or blank:

    0: Peritoneal cytology/washing negative for malignancy
    1: Peritoneal cytology/washing atypical and/or suspicious
    2: Peritoneal cytology/washing malignant (positive for malignancy)
    3: Unsatisfactory/nondiagnostic
    7: Test done, results not in chart
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Peritoneal Cytology not assessed or unknown if assessed

Another edit, Peritoneal Cytology, Schema ID, Required (NAACCR), checks that the
item is coded Schema ID if required by a standard setter.

This data item is required for EOD Derived Stage Group.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-06" ref="67822">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2640" name="Number of Positive Pelvic Nodes, Date DX (NAACCR)" tag="N2640" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
    
if (line.dateOfDiagnosisYear < '2018')
    return line.numberOfPositivePelvicNodes == null 
    
return line.numberOfPositivePelvicNodes == null || Functions.matches(line.numberOfPositivePelvicNodes, /^\d\d|X[12689]$/)]]></expression>
            <message>Number of Positive Pelvic Nodes is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Number of Positive Pelvic Nodes code or blank:

    00: All pelvic nodes examined negative
    01-99: 1-99 pelvic nodes positive
          (Exact number of nodes positive)
    X1: 100 or more pelvic nodes positive
    X2: Positive pelvic nodes identified, number unknown
    X6: Positive aspiration or core biopsy of pelvic lymph node(s)
    X8: Not applicable: Information not collected for this case
    X9: Not documented in medical record;
        Cannot be determined, indeterminate if positive pelvic nodes present
        No lymph nodes removed
        Pelvic Lymph Nodes not assessed or unknown if assessed

3. Numeric values must be right-justified and zero-filled.

Another edit, Number of Positive Pelvic Nodes, Schema ID, Required (NAACCR),
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-13" ref="67824">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-31" ref="68438">Updated code 9 description.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-06-28" ref="69490">Replace line in code 9 description.</event>
            </history>
        </rule>
        <rule id="IFN2641" name="Number of Positive Para-Aortic Nodes, Date DX (NAACCR)" tag="N2641" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
    
if (line.dateOfDiagnosisYear < '2018')
    return line.numberOfPositiveParaAorticNodes == null 
    
return line.numberOfPositiveParaAorticNodes == null || Functions.matches(line.numberOfPositiveParaAorticNodes, /^\d\d|X[12689]$/)]]></expression>
            <message>Number of Positive Para-Aortic Nodes is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Number of Positive Para-Aortic Nodes code or blank:

    00: All para-aortic lymph nodes examined negative
    01-99: 1-99 para-aortic lymph nodes positive
           (Exact number of nodes positive)
    X1: 100 or more para-aortic nodes positive
    X2: Positive para-aortic nodes identified, number unknown
    X6: Positive aspiration or core biopsy of para-aortic lymph node(s)
    X8: Not applicable: Information not collected for this case
    X9: Not documented in medical record
        Cannot be determined, indeterminate if positive para-aortic nodes present
        No lymmph nodes removed
        Para-Aortic Lymph Nodes not assessed or unknown if assessed

3. Numeric values must be right-justified and zero-filled.

Another edit, Number of Positive Para-Aortic Nodes, Schema ID, Required (NAACCR),
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-20" ref="67823">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-31" ref="68437">Update code 9 description.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-06-28" ref="69490">Replace line in code 9 description.</event>
            </history>
        </rule>
        <rule id="IFN2642" name="Number of Examined Pelvic Nodes, Date DX (NAACCR)" tag="N2642" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
    
if (line.dateOfDiagnosisYear < '2018')
    return line.numberOfExaminedPelvicNodes == null 
    
return line.numberOfExaminedPelvicNodes == null || Functions.matches(line.numberOfExaminedPelvicNodes, /^\d\d|X[12689]$/)]]></expression>
            <message>Number of Examined Pelvic Nodes is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Number of Examined Pelvic Nodes code or blank:

    00: No pelvic lymph nodes examined
    01-99: 1-99 pelvic lymph nodes examined
           (Exact number of pelvic nodes examined)
    X1: 100 or more pelvic nodes examined
    X2: Pelvic nodes examined, number unknown
    X6: No pelvic lymph nodes removed, but aspiration or core biopsy of pelvic
        node(s) only
    X8: Not applicable: Information not collected for this case
    X9: Not documented in medical record
        Cannot be determined, indeterminate if pelvic nodes examined
        Pelvic Lymph Nodes not assessed or unknown if assessed

3. Numeric values must be right-justified and zero-filled.

Another edit, Number of Examined Pelvic Nodes, Schema ID, Required (NAACCR),
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-13" ref="67825">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-28" ref="68436">Update code 9 description.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-06-28" ref="69490">Remove line from code 9 description.</event>
            </history>
        </rule>
        <rule id="IFN2643" name="Number of Examined Para-Aortic Nodes, Date DX (NAACCR)" tag="N2643" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.numberOfExaminedParaAorticNodes != null)
    return false

return  line.numberOfExaminedParaAorticNodes == null || Functions.matches(line.numberOfExaminedParaAorticNodes, /^\d\d|X[12689]$/)]]></expression>
            <message>Number of Examined Para-Aortic Nodes value is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Number of Examined Para-Aortic Nodes code or blank:

    00: No para-aortic nodes examined
    01-99: 1-99 para-aortic nodes examined
           (Exact number of para-aortic nodes examined)
    X1: 100 or more para-aortic nodes examined
    X2: Para-aortic nodes examined, number unknown
    X6: No para-aortic lymph nodes removed, but aspiration or core biopsy of
        para-aortic node(s) only
    X8: Not applicable: Information not collected for this case
    X9: Not documented in medical record;
        Cannot be determined, indeterminate if para-aortic nodes examined
        Para-Aortic Lymph Nodes not assessed or unknown if assessed

3. Numeric values must be right-justified and zero-filled.

Another edit, Number of Examined Para-Aortic Nodes, Schema ID, Required (NAACCR),
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-13" ref="67826">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-27" ref="68435">Update description for code 9.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-06-28" ref="69490">Remove line in code 9 description.</event>
            </history>
        </rule>
        <rule id="IFN2644" name="CA-125 Pretreatment Interpretation, Date DX (NAACCR)" tag="N2644" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.ca125PretreatmentInterpretation != null)
    return false

return  line.ca125PretreatmentInterpretation == null || Functions.matches(line.ca125PretreatmentInterpretation, /^[0-27-9]$/)]]></expression>
            <message>CA-125 Pretreatment Interpretation value is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid CA-125 Pretreatment Interpretation code or blank: 
                                    
    0: Negative/normal; within normal limits
    1: Positive/elevated
    2: Stated as borderline; undetermined whether positive or negative
    7: Test done, results not in chart
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       CA-125 Pretreatment Interpretation not assessed or unknown if assessed

Another edit, CA-125 Pretreatment Interpretation (NAACCR), Schema ID, Required 
(NAACCR), checks that the item is coded by Schema ID if required by a standard 
setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-13" ref="67827">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2645" name="HIV Status, Date DX (NAACCR)" tag="N2645" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
    
if (line.dateOfDiagnosisYear < '2018')
    return line.hivStatus == null 
    
return line.hivStatus == null || Functions.matches(line.hivStatus, /^[01789]$/)]]></expression>
            <message>HIV Status is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid HIV Status code or blank:

    0: Not associated with Human Immunodeficiency Virus (HIV)/Acquired Immune
       Deficiency Syndrome (AIDS)
        HIV negative
    1: Associated with HIV/AIDS
      HIV positive
    7: Test done, results not in chart
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
      HIV Status not assessed or unknown if assessed

Another edit, HIV Status, Schema ID, Required (NAACCR), checks that the
item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-04" user="kirbyk" date="2018-08-01" ref="67828">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2646" name="JAK2, Date DX (NAACCR)" tag="N2646" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.jak2 != null)
    return false

return  line.jak2 == null || Functions.matches(line.jak2, /^[0-57-9]$/)]]></expression>
            <message>JAK2 is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid JAK2 code or blank: 
                                    
    0: JAK2 result stated as negative
    1: JAK2 positive for mutation V617F WITH or WITHOUT other mutations
    2: JAK2 positive for exon 12 mutation
    3: JAK2 positive for other specified mutation
    4: JAK2 positive for more than one mutation other than V617F
    5: JAK2 positive NOS
       Specific mutation(s) not stated
    7: Test ordered, results not in chart
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       JAK2 not assessed or unknown if assessed

Another edit, JAK2, Schema ID, Required (NAACCR), checks that the 
item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-01" ref="67829">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2647" name="NCCN International Prognostic Index (IPI), Date DX (NAACCR)" tag="N2647" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
    
if (line.dateOfDiagnosisYear < '2018')
    return line.nccnInternationalPrognosticIndex == null 
    
return line.nccnInternationalPrognosticIndex == null || Functions.matches(line.nccnInternationalPrognosticIndex, /^0[0-8]|X[123489]$/)]]></expression>
            <message>NCCN International Prognostic Index (IPI) is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid NCCN International Prognostic Index (IPI) code or blank:

    00-08: 0-8 points
    X1: Stated as low risk (0-1 point)
    X2: Stated as low intermediate risk (2-3 points)
    X3: Stated as intermediate risk (4-5 points)
    X4: Stated as high risk (6-8 points)
    X8: Not applicable: Information not collected for this case
    X9: Not documented in medical record
        NCCN International Prognostic Index (IPI) not assessed or unknown if assessed

3. Numeric values must be right-justified and zero-filled.

Another edit, NCCN International Prognostic Index (IPI), Schema ID, Required
(NAACCR), checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-12" ref="67830">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2648" name="LN Size, Date DX (NAACCR)" tag="N2648" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
    
if (line.dateOfDiagnosisYear < '2018')
    return line.lnSize == null 
    
return line.lnSize == null || Functions.matches(line.lnSize, /^[1-9]{0,1}\d\.\d|XX\.\d$/)]]></expression>
            <message>LN Size is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid LN Size code or blank: 

     0.0: No involved regional nodes
     0.1-99.9: 0.1-99.9 millimeters (mm)
               (Exact size of lymph node to nearest tenth of a mm)
     XX.1: 100 millimeters (mm) or greater
     XX.2: Microscopic focus or foci only and no size of focus given
     XX.3: Described as "less than 1 centimeter (cm)"
     XX.4: Described as "at least" 2cm
     XX.5: Described as "at least" 3cm
     XX.6: Described as "at least" 4cm
     XX.7: Described as greater than 5cm
     XX.8: Not applicable: Information not collected for this case
     XX.9: Not documented in medical record
           Regional lymph node(s) involved, size not stated
           LN Size not assessed or unknown if assessed
  
3. Code must contain decimal point with at least one character before and one character
after decimal point.

Another edit, LN Size, Schema ID, Required (NAACCR), checks that the item is 
coded by Schema ID if required by a standard setter. 

This data item is required for EOD Derived Stage Group for certain Schema IDs.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-18" ref="67831">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-03-01" ref="68780">Removed right justified from description.</event>
            </history>
        </rule>
        <rule id="IFN2649" name="CEA Pretreatment Lab Value, Date DX (NAACCR)" tag="N2649" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
    
if (line.dateOfDiagnosisYear < '2018')
    return line.ceaPretreatmentLabValue == null 
    
return line.ceaPretreatmentLabValue == null || Functions.matches(line.ceaPretreatmentLabValue, /^XXXX\.[17-9]|0\.\d|[1-9]\d{0,3}\.\d$/)]]></expression>
            <message>CEA Pretreatment Lab Value is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid CEA Pretreatment Lab Value code or blank: 
                                    
    0.0: 0.0 nanograms/milliliter (ng/ml) exactly
    0.1-9999.9: 0.1-9999.9 ng/ml
                (Exact value to nearest tenth in ng/ml)
    XXXX.1: 10,000 ng/ml or greater 
    XXXX.7: Test ordered, results not in chart
    XXXX.8: Not applicable: Information not collected for this case
    XXXX.9: Not documented in medical record
            CEA Pretreatment Lab Value not assessed or unknown if assessed

3. Code must contain decimal point with at least one character before and one character
after decimal point.

Another edit, CEA Pretreatment Lab Value, Schema ID, Required (NAACCR), checks 
that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-18" ref="67832">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-03-01" ref="68780">Removed right justified from description.</event>
            </history>
        </rule>
        <rule id="IFN2650" name="AFP Pretreatment Lab Value, Date DX (NAACCR)" tag="N2650" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
    
if (line.dateOfDiagnosisYear < '2018')
    return line.afpPretreatmentLabValue == null 
    
return line.afpPretreatmentLabValue == null || Functions.matches(line.afpPretreatmentLabValue, /^XXXX\.[17-9]|0\.\d|[1-9]\d{0,3}\.\d$/)]]></expression>
            <message>AFP Pretreatment Lab Value is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid AFP Pretreatment Lab Value code or blank: 
                                    
    0.0: 0.0 nanograms/milliliter (ng/ml); not detected
    0.1-9999.9: 0.1-9999.9 ng/mL
                (Exact value to nearest tenth of ng/ml)
    XXXX.1: 10,000 ng/ml or greater 
    XXXX.7: Test ordered, results not in chart
    XXXX.8: Not applicable: Information not collected for this case
    XXXX.9: Not documented in medical record
            AFP Pretreatment Lab Value not assessed or unknown if assessed

3. Code must contain decimal point with at least one character before and one character after
decimal point.

Another edit, AFP Pretreatment Lab Value, Schema ID, Required (NAACCR), checks 
that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-24" ref="67833">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-018-11" user="kirbyk" date="2019-01-04" ref="68079">Fixed regular expression to check valid values.</event>
                <event version="SE22-022-01" user="secristc" date="2022-03-01" ref="68780">Removed right justified from description.</event>
            </history>
        </rule>
        <rule id="IFN2651" name="Creatinine Pretreatment Lab Value, Date DX (NAACCR)" tag="N2651" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
    
if (line.dateOfDiagnosisYear < '2018')
    return line.creatininePretreatmentLabValue == null 
    
return line.creatininePretreatmentLabValue == null || Functions.matches(line.creatininePretreatmentLabValue, /^XX\.[17-9]|[1-9]{0,1}\d\.\d$/)]]></expression>
            <message>Creatinine Pretreatment Lab Value is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid Creatinine Pretreatment Lab Value code or blank: 
                                    
    0.0: 0.0 milligram/deciliter (mg/dl)
         0.0 micromole/liter (umol/L)
    0.1-99.9: 0.1-99.9 milligram/deciliter (mg/dl)
              0.1-99.9 micromole/liter (umol/L)
              (Exact value to nearest tenth of mg/dl or umol/L)
    XX.1: 100 mg/dl or greater
          100 umol/L or greater 
    XX.7: Test ordered, results not in chart
    XX.8: Not applicable: Information not collected for this case
    XX.9: Not documented in medical record
          Creatinine Pretreatment Lab Value not assessed or unknown if assessed

3. Code must contain decimal point with at least one character before and one character after
decimal point.

Another edit, Creatinine Pretreatment Lab Value, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-18" ref="67834">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-03-01" ref="68780">Removed right justified from description.</event>
            </history>
        </rule>
        <rule id="IFN2652" name="Bilirubin Pretreatment Total Lab Value, Date DX (NAACCR)" tag="N2652" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
    
if (line.dateOfDiagnosisYear < '2018')
    return line.bilirubinPretxTotalLabValue == null 
    
return line.bilirubinPretxTotalLabValue == null || Functions.matches(line.bilirubinPretxTotalLabValue, /^XXX\.[17-9]|0\.\d|[1-9]\d{0,2}\.\d$/)]]></expression>
            <message>Bilirubin Pretreatment Total Lab Value is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid Bilirubin Pretreatment Total Lab Value code or blank: 
                                    
    0.0: 0.0 milligram/deciliter (mg/dl)
         0.0 micromole/liter (umol/L)
    0.1-999.9: 0.1-999.9 milligram/deciliter (mg/dl)
               0.1-999.9 micromole/liter (umol/L)
    XXX.1: 1000 milligram/deciliter (mg/dl) or greater 
           1000 micromole/liter (umol/L) or greater
    XXX.7: Test ordered, results not in chart
    XXX.8: Not applicable: Information not collected for this case
    XXX.9: Not documented in medical record 
           Bilirubin Pretreatment Total Lab Value not assessed or unknown if 
           assessed

3. Code must contain decimal point with at least one character before and one character after
decimal point.

Another edit, Bilirubin Pretreatment Total Lab Value, Schema ID, Required 
(NAACCR), checks that the item is coded by Schema ID if required by a standard
setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-18" ref="67835">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-01" user="secristc" date="2022-03-01" ref="68780">Removed right justified from description.</event>
            </history>
        </rule>
        <rule id="IFN2653" name="International Normalized Ratio Prothrombin Time, Date DX (NAACCR)" tag="N2653" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
    
if (line.dateOfDiagnosisYear < '2018')
    return line.iNRProthrombinTime == null 
    
return line.iNRProthrombinTime == null || Functions.matches(line.iNRProthrombinTime, /^(\d\.\d)|(X\.[1789])$/)]]></expression>
            <message>International Normalized Ratio Prothrombin Time is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid International Normalized Ratio Prothrombin Time
   code or blank:

    0.0: 0.0
    0.1: 0.1 or less
    0.2-9.9: 0.2-9.9
             (Exact ratio to nearest tenth)
    X.1: 10 or greater
    X.7: Test ordered, results not in chart
    X.8: Not applicable: Information not collected for this case
    X.9: Not documented in medical record
         INR International Normalized Ratio Prothrombin Time not assessed
         or unknown if assessed

3. Code must contain decimal point with ne character before and one character
after decimal point.

Another edit, International Normalized Ratio Prothrombin Time, Schema
ID, Required (NAACCR), checks that the item is coded by Schema ID if required
by a standard setter.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-21" ref="67837">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-01" user="secristc" date="2022-03-01" ref="68780">Removed right justified from description.</event>
            </history>
        </rule>
        <rule id="IFN2654" name="Percent Necrosis Post Neoadjuvant, Date DX (NAACCR)" tag="N2654" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
    
if (line.dateOfDiagnosisYear < '2018')
    return line.percentNecrosisPostNeoadjuvant == null 
    
return line.percentNecrosisPostNeoadjuvant == null || Functions.matches(line.percentNecrosisPostNeoadjuvant, /^XXX\.[289]|100\.0|[1-9]{0,1}\d\.\d$/)]]></expression>
            <message>Percent Necrosis Post Neoadjuvant is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Percent Necrosis Post Neoadjuvant code or blank: 
                                    
    0.0: Tumor necrosis not identified/not present
    0.1-100.0: 0.1-100.0 percent tumor necrosis 
                (Percentage of tumor necrosis to nearest tenth of a percent)
    XXX.2: Tumor necrosis present, percent not stated
    XXX.8: Not applicable: Information not collected for this case
    XXX.9: Not documented in medical record 
           No histologic examination of primary site
           No neoadjuvant therapy
           No surgical resection of primary site is performed

3. Code must contain decimal point with at least one character before and one character
after decimal point.

Another edit, Percent Necrosis Post Neoadjuvant, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-19" ref="67838">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-03-01" ref="68780">Removed right justified from description.</event>
            </history>
        </rule>
        <rule id="IFN2655" name="Breslow Tumor Thickness, Date DX (NAACCR)" tag="N2655" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
    
if (line.dateOfDiagnosisYear < '2018')
    return line.breslowTumorThickness == null 
    
return line.breslowTumorThickness == null || Functions.matches(line.breslowTumorThickness, /^XX\.[189]|A(X\.0|0\.[1-9]|[1-9]\.\d)|[1-9]{0,1}\d\.\d$/)]]></expression>
            <message>Breslow Tumor Thickness is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses. 

2. Must be a valid Breslow Tumor Thickness code or blank: 
                                    
    0.0: No mass/tumor found
   0.1: Greater than 0.0 and less than or equal to 0.1 millimeter
    0.2-99.9: 0.2-99.9 millimeters
    XX.1: 100 millimeters or larger
    A0.1-A9.9: Stated as "at least" some measured value of 0.1 to 9.9
    AX.0: Stated as greater than 9.9 mm
    XX.8: Not applicable: Information not collected for this schema
    XX.9: Not documented in medical record 
          Microinvasion; microscopic focus or foci only and no depth given
          Cannot be determined by the pathologist
          In situ melanoma
          Breslow Tumor Thickness not assessed or unknown if assessed

3. Code must contain decimal point with at least one character before and one character after
decimal point.

Another edit, Breslow Tumor Thickness, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID if required by a standard setter. 
This data item is required for EOD Derived Stage Group.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-18" ref="67839">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-03-01" ref="68780">Removed right justified from description.</event>
            </history>
        </rule>
        <rule id="IFN2656" name="LDH Lab Value, Date DX (NAACCR)" tag="N2656" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
    
if (line.dateOfDiagnosisYear < '2018')
    return line.ldhPretreatmentLabValue == null 
    
return line.ldhPretreatmentLabValue == null || Functions.matches(line.ldhPretreatmentLabValue, /^XXXXX\.[1789]|(0|[1-9]\d{0,4})\.\d$/)]]></expression>
            <message>LDH Lab Value is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid LDH Lab Value code or blank:
                                    
    0.0: 0.0 (U/L)
    0.1-99999.9: 0.1-99,999.9 U/L
    XXXXX.1: 100,000 U/L or greater 
    XXXXX.7: Test ordered, results not in chart
    XXXXX.8: Not applicable: Information not collected for this case
    XXXXX.9: Not documented in medical record
             LDH Lab Value not assessed or unknown if assessed

3. Code must contain decimal point with at least one character before and one character
after decimal point.

Another edit, LDH Lab Value, Schema ID, Required (NAACCR),
checks that the item is coded by Schema ID if required by a standard setter.

This data item is required for EOD Derived Stage Group.]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-02" ref="67840">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-30" ref="68414">Change variable name in description.</event>
                <event version="SE22-022-01" user="secristc" date="2022-03-01" ref="68780">Removed right justified from description.</event>
            </history>
        </rule>
        <rule id="IFN2657" name="Mitotic Rate Melanoma, Date DX (NAACCR)" tag="N2657" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.mitoticRateMelanoma != null)
    return false

return line.mitoticRateMelanoma == null || Functions.matches(line.mitoticRateMelanoma, /^\d\d|X[1234789]$/)]]></expression>
            <message>Mitotic Rate Melanoma value is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Mitotic Rate Melanoma code or blank:

    00: 0 mitoses per square millimeter (mm)
        Mitoses absent
        No mitoses present
    01-99: 01-99 mitoses/square mm
        (Exact measurement in mitoses/square mm)
    X1: 100 mitoses/square mm or more
    X2: Stated as "less than 1 mitosis/square mm"
        Stated as "nonmitogenic"
    X3: Stated as "at least 1 mitosis/square mm"
        Stated as "mitogenic"
    X4: Mitotic rate described with denominator other than square millimeter
    X7: Test done, results not in chart
    X8: Not applicable: Information not collected for this case
    X9: Not documented in medical record
        Mitotic Rate Melanoma not assessed or unknown if assessed

3. Numeric values must be right-justified and zero-filled.

Another edit, Mitotic Rate Melanoma, Schema ID, Required (NAACCR), checks that
the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-12" ref="67841">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2658" name="AFP Pre-Orchiectomy Lab Value, Date DX (NAACCR)" tag="N2658" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.afpPreOrchiectomyLabValue != null)
    return false

return line.afpPreOrchiectomyLabValue == null || Functions.matches(line.afpPreOrchiectomyLabValue, /^0\.\d|([1-9]\d{0,4}\.\d)|XXXXX\.[17-9]$/)]]></expression>
            <message>AFP Pre-Orchiectomy Lab Value is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid AFP Pre-Orchiectomy Lab Value code or blank: 
                                    
    0.0: 0.0 nanograms/milliliter (ng/ml)
    0.1-99999.9: 0.1-99,999.9 ng/ml
    XXXXX.1: 100,000 ng/ml or greater 
    XXXXX.7: Test ordered, results not in chart
    XXXXX.8: Not applicable: Information not collected for this case
    XXXXX.9: Not documented in medical record 
             AFP Pre-Orchiectomy Lab Value not assessed or unknown if assessed

3. Code must contain decimal point with at least one character before and one
   character after decimal point.

Another edit, AFP Pre-Orchiectomy Lab Value, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-19" ref="67842">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-03-01" ref="68780">Removed right justified from description.</event>
            </history>
        </rule>
        <rule id="IFN2659" name="hCG Pre-Orchiectomy Lab Value, Date DX (NAACCR)" tag="N2659" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.hcgPreOrchiectomyLabValue != null)
    return false

return line.hcgPreOrchiectomyLabValue == null || Functions.matches(line.hcgPreOrchiectomyLabValue, /^0\.\d|([1-9]\d{0,4}\.\d)|XXXXX\.[17-9]$/)]]></expression>
            <message>hCG Pre-Orchiectomy Lab Value is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid hCG Pre-Orchiectomy Lab Value code or blank: 
                                    
    0.0: 0.0 milli-International Units/milliliter (mIU/mL)
    0.1-99999.9: 0.1-99,999.9 mIU/mL
    XXXXX.1: 100,000 mIU/mL or greater 
    XXXXX.7: Test ordered, results not in chart
    XXXXX.8: Not applicable: Information not collected for this case
    XXXXX.9: Not documented in medical record
             hCG Pre-Orchiectomy Lab Value not assessed or unknown if assessed

3. Code must contain decimal point with at least one character before and one character
after decimal point.

Another edit, hCG Pre-Orchiectomy Lab Value, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-12" ref="67843">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-03-01" ref="68780">Removed right justified from description.</event>
            </history>
        </rule>
        <rule id="IFN2660" name="AFP Post-Orchiectomy Lab Value, Date DX (NAACCR)" tag="N2660" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.afpPostOrchiectomyLabValue != null)
    return false

return line.afpPostOrchiectomyLabValue == null || Functions.matches(line.afpPostOrchiectomyLabValue, /^(0|[1-9]\d{0,4})\.\d|XXXXX\.[1789]$/)]]></expression>
            <message>AFP Post-Orchiectomy Lab Value is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid AFP Post-Orchiectomy Lab Value code or blank: 
                                    
    0.0: 0.0 nanograms/milliliter (ng/mL)
    0.1-99999.9: 0.1-99,999.9 ng/mL
    XXXXX.1: 100,000 ng/mL or greater 
    XXXXX.7: Test ordered, results not in chart
    XXXXX.8: Not applicable: Information not collected for this case
    XXXXX.9: Not documented in medical record
             No orchiectomy performed
             AFP Post-Orchiectomy Lab Value not assessed or unknown if assessed

3. Code must contain decimal point with at least one character before and one character after
decimal point.

Another edit, AFP Post-Orchiectomy Lab Value, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-02" ref="67844">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-03-01" ref="68780">Removed right justified from description.</event>
            </history>
        </rule>
        <rule id="IFN2661" name="hCG Post-Orchiectomy Lab Value, Date DX (NAACCR)" tag="N2661" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.hcgPostOrchiectomyLabValue != null)
    return false

return line.hcgPostOrchiectomyLabValue == null || Functions.matches(line.hcgPostOrchiectomyLabValue, /^(0|[1-9]\d{0,4})\.\d|XXXXX\.[1789]$/)]]></expression>
            <message>hCG Post-Orchiectomy Lab Value is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid hCG Post-Orchiectomy Lab Value code or blank: 
                                    
    0.0: 0.0 milli-International Units/milliliter (mIU/mL)
    0.1-99999.9: 0.1-99,999.9 mIU/mL
    XXXXX.1: 100,000 mIU/mL or greater 
    XXXXX.7: Test ordered, results not in chart
    XXXXX.8: Not applicable: Information not collected for this case
    XXXXX.9: Not documented in medical record
             No orchiectomy performed
             hCG Post-Orchiectomy Lab Value not assessed or unknown if assessed

3. Code must contain decimal point with at least one character before and one character
after decimal point.

Another edit, hCG Post-Orchiectomy Lab Value, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID if required by a standard setter.
]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-02" ref="67845">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-03-01" ref="68780">Removed right justified from description.</event>
            </history>
        </rule>
        <rule id="IFN2662" name="Measured Basal Diameter, Date DX (NAACCR)" tag="N2662" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.measuredBasalDiameter != null)
    return false

return line.measuredBasalDiameter == null || Functions.matches(line.measuredBasalDiameter, /^([1-9]{0,1}\d|XX)\.\d$/)]]></expression>
            <message>Measured Basal Diameter is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Measured Basal Diameter code or blank: 
                                    
    0.0: No mass/tumor found
    0.1-99.9: 0.1-99.9 millimeters (mm) 
              Exact measurement to nearest tenth of mm)
    XX.0: 100 millimeters (mm) or larger
    XX.1: Described as "less than 3 mm"
    XX.2: Described as "at least" 3 mm
    XX.3: Described as "at least" 6 mm
    XX.4: Described as "at least" 9 mm
    XX.5: Described as "at least" 12 mm
    XX.6: Described as "at least" 15 mm
    XX.7: Described as "at least" 18 mm
    XX.8: Not applicable: Information not collected for this case
    XX.9: Not documented in medical record
          Cannot be determined by the pathologist
          Measured Basal Diameter not assessed or unknown if assessed

3. Code must contain decimal point with at least one character before and one character
after decimal point.

Another edit, Measured Basal Diameter, Schema ID, Required (NAACCR), checks that 
the item is coded by Schema ID if required by a standard setter.

This data item is required for EOD Derived Stage Group.]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-02" ref="67846">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-03-01" ref="68780">Removed right justified from description.</event>
            </history>
        </rule>
        <rule id="IFN2663" name="Measured Thickness, Date DX (NAACCR)" tag="N2663" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.measuredThickness != null)
    return false

return line.measuredThickness == null || Functions.matches(line.measuredThickness, /^[1-9]{0,1}\d\.\d|XX\.[0-689]$/)]]></expression>
            <message>Measured Thickness is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown),
or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Measured Thickness code or blank:

    0.0: No mass/tumor found
    0.1-99.9: 0.1-99.9 millimeters (mm)
              (Exact measurement to nearest tenth of mm)
    XX.0: 100 millimeters (mm) or larger
    XX.1: Described as "less than 3 mm"
    XX.2: Described as "at least" 3 mm
    XX.3: Described as "at least" 6 mm
    XX.4: Described as "at least" 9 mm
    XX.5: Described as "at least" 12 mm
    XX.6: Described as "greater than" 15 mm
    XX.8: Not applicable: Information not collected for this
case
    XX.9: Not documented in medical record
          Cannot be determined Measured Thickness not assessed or unknown if assessed;

3. Code must contain decimal point with at least one character before and one character
after decimal point.

Another edit, Measured Thickness, Schema ID, Required (NAACCR), checks that
the item is coded by Schema ID if required by a standard setter.

This data item is required for EOD Derived Stage Group.]]></description>
            <history>
                <event version="SE18-018-04" user="kirbyk" date="2018-07-31" ref="67847">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-27" ref="68430">Add note to description.</event>
                <event version="SE22-022-01" user="secristc" date="2022-03-01" ref="68780">Removed right justified from description.</event>
            </history>
        </rule>
        <rule id="IFN2664" name="Mitotic Count Uveal Melanoma, Date DX (NAACCR)" tag="N2664" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
if (line.dateOfDiagnosisYear < '2018')
    return line.mitoticCountUvealMelanoma == null
return line.mitoticCountUvealMelanoma == null || Functions.matches(line.mitoticCountUvealMelanoma, /^[1-9]{0,1}\d\.\d|XX\.[1-4789]$/)]]></expression>
            <message>Mitotic Count Uveal Melanoma is not valid for Date DX.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid Mitotic Count Uveal Melanoma code or blank:

    0.0: 0 mitoses per 40 high power fields (HPF)
         Mitoses absent, no mitoses present, no mitotic activity
    0.1-99.9: 0.1-99.9 mitoses per 40 HPF
    XX.1: 100 or more mitoses per 40 HPF
    XX.2: Stated as low mitotic count or rate with no specific number
    XX.3: Stated as high mitotic count or rate with no specific number
    XX.4: Mitotic count described with denominator other than 40 HPF
    XX.7: Test done, results not in chart
    XX.8: Not applicable: Information not collected for this case
    XX.9: Not documented in medical record
          Mitotic Count Uveal Melanoma not assessed or unknown if assessed

3. Code must contain decimal point with at least one character before and one character
after decimal point.

Another edit, Mitotic Count Uveal Melanoma, Schema ID, Required (NAACCR), checks
that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-04" user="kirbyk" date="2018-07-31" ref="67848">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-03-01" ref="68780">Removed right justified from description.</event>
            </history>
        </rule>
        <rule id="IFN2665" name="Chromosome 3 Status, Date DX (NAACCR)" tag="N2665" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
if (line.dateOfDiagnosisYear < '2018')
    return line.chromosome3Status == null
return line.chromosome3Status == null || Functions.matches(line.chromosome3Status, /^[0123789]$/)]]></expression>
            <message>Chromosome 3 Status is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Chromosome 3 Status code or blank:

    0: No loss of chromosome 3
    1: Partial loss of chromosome 3
    2: Complete loss of chromosome 3
    3: Loss of chromosome 3, NOS
    7: Test ordered, results not available
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Chromosome 3 Status not assessed or unknown if assessed

Another edit, Chromosome 3 Status, Schema ID, Required (NAACCR), checks that the
item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-04" user="smithm" date="2018-07-27" ref="67851">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2666" name="Chromosome 8q Status, Date DX (NAACCR)" tag="N2666" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
if (line.dateOfDiagnosisYear < '2018')
    return line.chromosome8qStatus == null
return line.chromosome8qStatus == null || Functions.matches(line.chromosome8qStatus, /^[01789]$/)]]></expression>
            <message>Chromosome 8q Status is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Chromosome 8q Status code or blank:

    0: No gain in chromosome 8q
    1: Gain in chromosome 8q
    7: Test ordered, results not available
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Chromosome 8q Status not assessed or unknown if assessed

Another edit, Chromosome 8q Status, Schema ID, Required (NAACCR), checks that
the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-04" user="smithm" date="2018-07-31" ref="67852">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2667" name="Extravascular Matrix Patterns, Date DX (NAACCR)" tag="N2667" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
if (line.dateOfDiagnosisYear < '2018')
    return line.extravascularMatrixPatterns == null
return line.extravascularMatrixPatterns == null || Functions.matches(line.extravascularMatrixPatterns, /^[0189]$/)]]></expression>
            <message>Extravascular Matrix Patterns is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Extravascular Matrix Patterns code or blank:

    0: Extravascular matrix patterns not present/not identified
    1: Extravascular matrix patterns present
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Extravascular Matrix Patterns not assessed or unknown if assessed

Another edit, Extravascular Matrix  Patterns, Schema ID, Required (NAACCR),
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-04" user="smithm" date="2018-08-06" ref="67853">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2668" name="Microvascular Density, Date DX (NAACCR)" tag="N2668" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
if (line.dateOfDiagnosisYear < '2018')
    return line.microvascularDensity == null
return line.microvascularDensity == null || Functions.matches(line.microvascularDensity, /^X[1-5789]|\d\d$/)]]></expression>
            <message>Microvascular Density is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Microvascular Density code or blank:

    00: No vessels involved
    01-99: 01-99 vessels    per 0.3 square millimeter (mm2)
    X1: Greater than or equal to 100 vessels per 0.3 square millimeter (mm2)
    X2: Lowest quartile for laboratory
    X3: Second quartile for laboratory
    X4: Third quartile for laboratory
    X5: Highest quartile for laboratory
    X7: Test ordered, results not available
    X8: Not applicable: Information not collected for this case
    X9: Not documented in medical record
        Microvascular Density not assessed or unknown if assessed

3. Numeric value must be right-justified and zero-filled.

Another edit, Measured Thickness, Schema ID, Required (NAACCR), checks that
the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-04" user="smithm" date="2018-08-01" ref="67854">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2669" name="Adenoid Cystic Basaloid Pattern, Date DX (NAACCR)" tag="N2669" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.adenoidCysticBasaloidPattern != null)
    return false

return line.adenoidCysticBasaloidPattern == null || Functions.matches(line.adenoidCysticBasaloidPattern, /^XXX\.[589]|[1-9]{0,1}\d\.\d|100\.0$/)]]></expression>
            <message>Adenoid Cystic Basaloid Pattern value is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses. 

2. Must be a valid Adenoid Cystic Basaloid Pattern code or blank: 

    0.0-100.0: 0.0-100.0 percent basaloid pattern
    XXX.5: Basaloid pattern present, percentage not stated
    XXX.8: Not applicable: Information not collected for this case
    XXX.9: Not documented in medical record
          Adenoid Cystic Basaloid Pattern not assessed or unknown if assessed

3.Code must contain decimal point with at least one character before and one character after
decimal point.

Another edit, Adenoid Cystic Basaloid Pattern, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-16" ref="67855">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-03-01" ref="68780">Removed right justified from description.</event>
            </history>
        </rule>
        <rule id="IFN2670" name="Separate Tumor Nodules, Date DX (NAACCR)" tag="N2670" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.separateTumorNodules != null)
    return false

return line.separateTumorNodules == null || Functions.matches(line.separateTumorNodules, /^[0-4789]$/)]]></expression>
            <message>Separate Tumor Nodules is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Separate Tumor Nodules code or blank:

    0: No separate tumor nodules; single tumor only
       Separate tumnor nodules of same histologic type not identified/not present
       Intrapulmonary metastatis not identified/not present
       Multiple nodules described as multiple foci of adenocarcinoma in situ or
       minimally invasive adenocarcinoma
    1: Separate tumor nodules of same histologic type in ipsilateral lung, same
       lobe
    2: Separate tumor nodules of same histologic type in ipsilateral lung,
       different lobe
    3: Separate tumor nodules of same histologic type in ipsilateral lung, same
       AND different lobes
    4: Separate tumor nodules of same histologic type in ipsilateral lung,
       unknown if same or different lobe(s)
    7: Multiple nodules or foci of tumor present, not classifiable based on
       notes 3 and 4
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Primary tumor is in situ
       Separate Tumor Nodules not assessed or unknown if assessed;

Another edit, Separate Tumor Nodules, Schema ID, Required (NAACCR), checks that
the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-04" user="kirbyk" date="2018-08-01" ref="67856">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2671" name="Visceral and Parietal Pleural Invasion, Date DX (NAACCR)" tag="N2671" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.visceralParietalPleuralInvasion != null)
    return false

return line.visceralParietalPleuralInvasion == null || Functions.matches(line.visceralParietalPleuralInvasion, /^[045689]$/)]]></expression>
            <message>Visceral and Parietal Pleural Invasion is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Visceral and Parietal Pleural Invasion code or blank: 

    0: No evidence of visceral pleural invasion, not identified
       Tumor does not completely traverse the elastic layer of the pleura
       Stated as PL0
    4: Invasion of visceral pleura present, NOS; not stated if PL1 or PL2
    5: Tumor invades into or through the parietal pleural OR chest wall;
      stated as PL3
    6: Tumor extends to pleura, NOS; not stated if visceral or parietal
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record 
       No surgical resection of primary site is performed
       Visceral and Parietal Pleural Invasion not assessed or unknown if assessed 
      or cannot be determined
    
Another edit, Visceral and Parietal Pleural Invasion, Schema ID, Required 
(NAACCR), checks that the item is coded correctly by Schema ID if required by a 
standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-12" ref="67857">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-01" user="kirbyk" date="2021-01-08" ref="68479">Updated valid codes; removed codes &apos;1&apos;, &apos;2&apos;, &apos;3&apos; and added code &apos;5&apos;.</event>
            </history>
        </rule>
        <rule id="IFN2672" name="Pleural Effusion, Date DX (NAACCR)" tag="N2672" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
if (line.dateOfDiagnosisYear < '2018')
    return line.pleuralEffusion == null
return line.pleuralEffusion == null || Functions.matches(line.pleuralEffusion, /^[0123489]$/)]]></expression>
            <message>Pleural Effusion is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Pleural Effusion code or blank:

    0: Pleural effusion not identified/not present
    1: Pleural effusion present, non-malignant (negative)
    2: Pleural effusion present, malignant (positive)
       Physician states pleural effusion is malignant in the absence of positive cytology
    3: Pleural effusion, atypical/atypical mesothelial cells
    4. Pleural effusion, NOS
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Pleural Effusion not assessed or unknown if assessed;

Another edit, Pleural Effusion, Schema ID, Required (NAACCR), checks that the item
is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-04" user="smithm" date="2018-07-31" ref="67858">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="smithm" date="2022-02-28" ref="68879">Update description</event>
            </history>
        </rule>
        <rule id="IFN2673" name="LN Positive Axillary Level I-II, Date DX (NAACCR)" tag="N2673" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
if (line.dateOfDiagnosisYear < '2018')
    return line.lnPositiveAxillaryLevel1To2 == null
    
return line.lnPositiveAxillaryLevel1To2 == null || Functions.matches(line.lnPositiveAxillaryLevel1To2, /^\d\d|X[15689]$/)]]></expression>
            <message>LN Positive Axillary Level I-II is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid LN Positive Axillary Level I-II code or blank: 
                                    
    00: All ipsilateral axillary nodes examined negative 
    01-99: 1-99 nodes positive 
           (Exact number of nodes positive)
    X1: 100 or more nodes positive
    X5: Positive nodes, number unspecified
    X6: Positive aspiration of lymph node(s)
    X8: Not applicable: Information not collected for this case
    X9: Not documented in medical record 
        LN Positive Axillary Level I-II not assessed or unknown if assessed

3. Numeric values must be right-justified and zero-filled. 

Another edit, LN Positive Axillary Level I-II, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID if required by a standard setter.

This data item is required for EOD Derived Stage Group.]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-02" ref="67859">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2674" name="Response to Neoadjuvant Therapy, Date DX (NAACCR)" tag="N2674" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.responseToNeoadjuvantTherapy != null)
    return false

return line.responseToNeoadjuvantTherapy == null || Functions.matches(line.responseToNeoadjuvantTherapy, /^[0-489]$/)]]></expression>
            <message>Response to Neoadjuvant Therapy is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Response to Neoadjuvant Therapy code or blank: 

    0: Neoadjuvant therapy not given
    1: Stated as complete response (CR)
    2: Stated as partial response (PR)
    3: Stated as response to treatment, but not noted if complete or partial
    4: Stated as no response (NR)
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record 
       Response to Neoadjuvant Therapy not assessed or unknown if assessed
       Unknown if Neoadjuvant Therapy done
    
Another edit, Response to Neoadjuvant Therapy, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-13" ref="67860">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE24-024-01" user="kirbyk" date="2024-03-04" ref="69413">Updated description.</event>
            </history>
        </rule>
        <rule id="IFN2675" name="Multigene Signature Method, Date DX (NAACCR)" tag="N2675" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.multigeneSignatureMethod != null)
    return false

return line.multigeneSignatureMethod == null || Functions.matches(line.multigeneSignatureMethod, /^[1-9]$/)]]></expression>
            <message>Multigene Signature Method is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Multigene Signature Method code or blank: 
    
    1: Mammaprint
    2: PAM50 (Prosigna)
    3: Breast Cancer Index
    4. EndoPredict
    5: Test performed, type of test unknown
    6: Multiple tests, any tests in codes 1-4
    7: Test done, results not in chart
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record 
      Multigene Signature Method not assessed or unknown if assessed;
    
Another edit, Multigene Signature Method, Schema ID, Required (NAACCR), checks 
that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-03" ref="67861">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2676" name="Multigene Signature Results, Date DX (NAACCR)" tag="N2676" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
if (line.dateOfDiagnosisYear < '2018')
    return line.multigeneSignatureResults == null
return line.multigeneSignatureResults == null || Functions.matches(line.multigeneSignatureResults, /^X[1-47-9]|\d\d$/)]]></expression>
            <message>Multigene Signature Results is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Multigene Signature Results code or blank:

    00-99: 00-99 Actual recurrence score.
           Note: Depending on the test, the range of values may be different
    X1: Score 100
    X2: Low risk
    X3: Moderate (intermediate) risk
    X4: High risk
    X7: Test done, results not in chart
    X8: Not applicable: Information not collected for this case
    X9: Not documented in medical record
        Multigene Signature Results not assessed or unknown if assessed

3. Numeric values must be right-justified and zero-filled.

Another edit, Multigene Signature Results, Schema ID, Required (NAACCR), checks
that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-04" user="smithm" date="2018-08-02" ref="67862">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2677" name="Estrogen Receptor Percent Positive or Range, Date DX (NAACCR)" tag="N2677" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
if (line.dateOfDiagnosisYear < '2018')
    return line.estrogenReceptorPercntPosOrRange == null
    
return line.estrogenReceptorPercntPosOrRange == null || Functions.matches(line.estrogenReceptorPercntPosOrRange, /^100|0\d\d|R([1-9]0|99)|XX[789]$/)]]></expression>
            <message>Estrogen Receptor Percent Positive or Range is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Estrogen Receptor Percent Positive or Range code or blank: 
                                    
    000:  ER negative, or stated as less than 1%
    001-100:  1-100 percent 
    R10 Stated as 1-10%
    R20:    Stated as 11-20%
    R30:    Stated as 21-30%
    R40:    Stated as 31-40%
    R50:    Stated as 41-50%
    R60:    Stated as 51-60%
    R70:    Stated as 61-70%
    R80:    Stated as 71-80%
    R90:    Stated as 81-90%
    R99:    Stated as 91-100%
    XX7:  Test done,  results not in chart
    XX8:  Not applicable: Information not collected for this case
    XX9:  Not documented in medical record 
          Estrogen Receptor Percent Positive or Range not assessed or unknown if 
          assessed

3. Numeric value must be right-justified and zero-filled.
    
Another edit, Estrogen Receptor Percent Positive or Range, Schema ID, Required 
(NAACCR), checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-03" ref="67863">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-04-25" ref="68177">Added &apos;XX7&apos; as a valid value.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IFN2679" name="Progesterone Receptor Percent Positive or Range, Date DX (NAACCR)" tag="N2679" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.progesteroneRecepPrcntPosOrRange != null)
    return false

if (line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2021' && line.progesteroneRecepPrcntPosOrRange == 'XX6')
    return true

return line.progesteroneRecepPrcntPosOrRange == null || Functions.matches(line.progesteroneRecepPrcntPosOrRange, /^100|0\d\d|XX[789]|R([1-9]0|99)$/)]]></expression>
            <message>Progesterone Receptor Percent Positive or Range is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Progesterone Receptor Percent Positive or Range code or blank:

    000:    PR negative, or stated as less than 1%
    001-100: 1 to 100 percent
    R10:    Stated as 1-10%
    R20:    Stated as 11-20%
    R30:    Stated as 21-30%
    R40:    Stated as 31-40%
    R50:    Stated as 41-50%
    R60:    Stated as 51-60%
    R70:    Stated as 61-70%
    R80:    Stated as 71-80%
    R90:    Stated as 81-90%
    R99:    Stated as 91-100%
    XX6:  PR results cannot be determined (indeterminate) - valid for 2018-2020 only
    XX7:  Test done, results not in chart
    XX8:  Not applicable: Information not collected for this case
    XX9:  Not documented in medical record
          Progesterone Receptor Percent Positive or Range not assessed or unknown
          if assessed

3. Numeric value must be right-justified and zero-filled.

Another edit, Progesterone Receptor Percent Positive or Range, Schema ID,
Required (NAACCR), checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-06" ref="67865">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-04-25" ref="68177">Added &apos;XX7&apos; as a valid value.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-06" ref="68445">Added &apos;XX6&apos; as a valid value for years 2018-2020.</event>
            </history>
        </rule>
        <rule id="IFN2686" name="Ki-67, Date DX (NAACCR)" tag="N2686" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.ki67 != null)
    return false

boolean netSchemas = ['00290', '00301', '00302', '00310', '00320', '00330', '00340'].contains(line.schemaId)
boolean expandedNetSchemas = ['00290', '00301', '00302', '00310', '00320', '00330', '00340', '09290', '09301', '09302', '09310', '09320', '09330', '09340'].contains(line.schemaId)

if (line.dateOfDiagnosisYear < '2021' && netSchemas && line.ki67 != null)
    return false

if (Functions.matches(line.ki67, /^XXX\.[456]$/) && !expandedNetSchemas)
    return false

return line.ki67 == null || Functions.matches(line.ki67, /^XXX\.[4-9]|[1-9]{0,1}\d\.\d|100\.0$/)]]></expression>
            <message>Ki-67 is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Ki-67 code or blank: 
                                    
    0.0-100.0: 0.0-100.0 percent positive: enter percent positive
    XXX.4: Ki-67 stated as less than 3%
    XXX.5: Ki-67 stated as 3%-20%
    XXX.6: Ki-67 stated as greater than 20%
    XXX.7: Test done, actual percentage not stated
    XXX.8: Not applicable: Information not collected for this case
    XXX.9: Not documented in medical record
           Ki-67(MIB-1) not assessed or unknown if assessed

3. Code must contain decimal point with at least one character before and one character
after decimal point.

4. This data item must be blank for pre-2021 cases assigned to Schema IDs
   00290, 00301, 00302, 00310, 00320, 00330, and 00340

5. Codes XXX.4, XXX.5, and XXX.6 must only be used for Schema IDs
   00290, 00301, 00302, 00310, 00320, 00330, 00340, 09290, 09301, 09302, 09310, 09320, 09330, and 09340

Another edit, Ki-67, Schema ID, Required (NAACCR), checks that the item is coded 
by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-01" ref="67868">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-28" ref="68412">Add new codes and add logic for DX year 2021.</event>
                <event version="SE22-022-01" user="secristc" date="2022-03-01" ref="68780">Removed right justified from description.</event>
                <event version="SE24-024-03" user="cooki" date="2024-03-27" ref="69446">Added additional schemas to condition 5.</event>
            </history>
        </rule>
        <rule id="IFN2687" name="Oncotype Dx Recurrence Score-Invasive, Date DX (NAACCR)" tag="N2687" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.oncotypeDxRecurrenceScoreInvasiv != null)
    return false

return line.oncotypeDxRecurrenceScoreInvasiv == null || Functions.matches(line.oncotypeDxRecurrenceScoreInvasiv, /^0\d\d|100|XX[4-79]$/)]]></expression>
            <message>Oncotype Dx Recurrence Score-Invasive is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped for the following conditions:
    a. Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Oncotype Dx Recurrence Score-Invasive code or blank: 
                                    
    000-100: Enter actual recurrence score between 0 and 100 
    XX4:    Stated as less than 11
    XX5:  Stated as equal to or greater than 11
    XX6:  Not applicable: in situ case
    XX7:  Test done, results not in chart
    XX9:  Not documented in medical record 
          Oncotype Dx Recurrence Score-Invasive not assessed or unknown if 
          assessed

3. Numeric values must be right-justified and zero-filled.

Another edit, Oncotype Dx Recurrence Score-Invasive, Schema ID, Required 
(NAACCR), checks that the item is coded by Schema ID if required by a standard 
setter.   

This data item is required for AJCC staging and EOD Derived Stage Group.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-13" ref="67869">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-31" ref="68301">Added skip conditions for histology/behavior = 8520/2, 8519/2, 8522/2.</event>
                <event version="SE24-024-01" user="cooki" date="2024-03-08" ref="69390">Removed skip conditions for histology/behavior = 8520/2, 8519/2, 8522/2.</event>
            </history>
        </rule>
        <rule id="IFN2688" name="Oncotype Dx Recurrence Score-DCIS, Date DX (NAACCR)" tag="N2688" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.oncotypeDxRecurrenceScoreDcis != null)
    return false

return line.oncotypeDxRecurrenceScoreDcis == null || Functions.matches(line.oncotypeDxRecurrenceScoreDcis, /^0\d\d|100|XX[6-9]$/)]]></expression>
            <message>Oncotype Dx Recurrence Score-DCIS is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Oncotype Dx Recurrence Score-DCIS code or blank: 
                                    
    000-100: Enter actual recurrence score between 0 and 100 
    XX6:  Not applicable: invasive case
    XX7:  Test done, results not in chart
    XX8:  Not applicable: Information not collected for this case
    XX9:  Not documented in medical record 
          Oncotype Dx Recurrence Score-DCIS not assessed or unknown if assessed;

3. Numeric values must be right-justified and zero-filled. 

Another edit, Oncotype Dx Recurrence Score-DCIS, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-13" ref="67869">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2689" name="Oncotype Dx Risk Level-Invasive, Date DX (NAACCR)" tag="N2689" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

String hist = line.histologicTypeIcdO3
if ((hist == '8520' || hist == '8519' || hist == '8522') && line.behaviorCodeIcdO3 == '2')
    return true

if (line.dateOfDiagnosisYear < '2018' && line.oncotypeDxRiskLevelInvasive != null)
    return false

return line.oncotypeDxRiskLevelInvasive == null || Functions.matches(line.oncotypeDxRiskLevelInvasive, /^[0-26-9]$/)]]></expression>
            <message>Oncotype Dx Risk Level-Invasive is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped for the following conditions:
    a. Date of Diagnosis is blank (unknown), or invalid.
    b. Histologic Type ICD-O-3 = 8520, 8519, 8522 and Behavior Code ICD-O-3 is 2 (in situ)

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Oncotype Dx Risk Level-Invasive code or blank: 

    0: Low risk (recurrence score 0-17)
    1: Intermediate risk (recurrence score 18-30)
    2: High risk (recurrence score greater than or equal to 31) 
    6: Not applicable: DCIS case
    7: Test done, results not in chart
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record 
      Oncotype Dx Risk Level-Invasive not assessed or unknown if assessed

Another edit, Oncotype Dx Risk Level-Invasive, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-16" ref="67869">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-31" ref="68301">Added skip conditions for histology/behavior = 8520/2, 8519/2, 8522/2.</event>
            </history>
        </rule>
        <rule id="IFN2690" name="Oncotype Dx Risk Level-DCIS, Date DX (NAACCR)" tag="N2690" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.oncotypeDxRiskLevelDcis != null)
    return false

return line.oncotypeDxRiskLevelDcis == null || Functions.matches(line.oncotypeDxRiskLevelDcis, /^[0-26-9]$/)]]></expression>
            <message>Oncotype Dx Risk Level-DCIS is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Oncotype Dx Risk Level-DCIS code or blank: 

    0: Low risk (recurrence score 0-38)
    1: Intermediate risk (recurrence score 39-54)
    2: High risk (recurrence score greater than or equal to 55) 
    6: Not applicable: invasive case
    7: Test done, results not in chart
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record 
      Oncotype Dx Risk Level-DCIS not assessed or unknown if assessed

Another edit, Oncotype Dx Risk Level-DCIS, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-16" ref="67869">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2691" name="CEA Pretreatment Interpretation, Date DX (NAACCR)" tag="N2691" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.ceaPretreatmentInterpretation != null)
    return false

return line.ceaPretreatmentInterpretation == null || Functions.matches(line.ceaPretreatmentInterpretation, /^[0-37-9]$/)]]></expression>
            <message>CEA Pretreatment Interpretation is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid CEA Pretreatment Interpretation code or blank: 
    0: CEA negative/normal; within normal limits
    1: CEA positive/elevated
    2: Borderline
    3: Undetermined if positive or negative (normal values not available)
       AND no MD interpretation 
    7: Test ordered, results not in chart
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       CEA Pretreatment Interpretation not assessed or unknown if assessed

Another edit, CEA Pretreatment Interpretation, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-03" ref="67870">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2692" name="Tumor Deposits, Date DX (NAACCR)" tag="N2692" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
if (line.dateOfDiagnosisYear < '2018')
    return line.tumorDeposits == null
return line.tumorDeposits == null || Functions.matches(line.tumorDeposits, /^X[1289]|\d\d$/)]]></expression>
            <message>Tumor Deposits is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Tumor Deposits code or blank:
    00: No tumor deposits
    01-99: 01-99 Tumor Deposits
           (Exact number of Tumor Deposits)
    X1: 100 or more Tumor Deposits
    X2: Tumor Deposits identified, number unknown
    X8: Not applicable: Information not collected for this case
    X9: Not documented in medical record
        Cannot be determined by the pathologist
        Pathology report does not mention tumor deposits
        No surgical resection done
        Tumor Deposits not assessed or unknown if assessed

3. Numeric values must be right-justified and zero-filled.

Another edit, Tumor Deposits, Schema ID, Required (NAACCR), checks that the
item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-04" user="smithm" date="2018-08-02" ref="67871">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2693" name="Circumferential Resection Margin (CRM), Date DX (NAACCR)" tag="N2693" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.circumferentialResectionMargin != null)
    return false

return line.circumferentialResectionMargin == null || Functions.matches(line.circumferentialResectionMargin, /^[1-9]{0,1}\d\.\d|XX\.\d$/)]]></expression>
            <message>Circumferential Resection Margin (CRM) is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Circumferential Resection Margin (CRM) code or blank:

    0.0: Circumferential resection margin (CRM) positive
         Margin IS involved with tumor
         Described as "less than 0.1 millimeter (mm)"
    0.1-99.9: Distance of tumor from margin: 0.1-99.9 millimeters (mm)
              (Exact size to nearest tenth of millimeter)
    XX.0: 100 mm or greater
    XX.1: Margins clear, distance from tumor not stated
          Circumferential or radial resection margin negative, NOS
          No residual tumor identified on specimen
    XX.2: Margins cannot be assessed
    XX.3: Described as "at least" 1mm
    XX.4: Described as "at least" 2mm
    XX.5: Described as "at least" 3mm
    XX.6: Described as "greater than" 3mm
    XX.7: No resection of primary site
          Surgical procedure did not remove enough tissue to measure the
          circumferential or radial resection margin
          (Examples include: polypectomy only, endoscopic mucosal resection (EMR),
          excisional biopsy only, transanal disk excision)
    XX.8: Not applicable: Information not collected for this case
    XX.9: Not documented in medical record
          Circumferential Resection Margin (CRM) not assessed or unknown if assessed

3. Code must contain decimal point with at least one character before and one character after
decimal point.

Another edit, Circumferential Resection Margin (CRM), Schema ID, Required
(NAACCR), checks that the item is coded by Schema ID if required by a standard
setter.]]></description>
            <history>
                <event version="SE18-018-04" user="kirbyk" date="2018-07-31" ref="67872">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-03-01" ref="68780">Removed right justified from description.</event>
            </history>
        </rule>
        <rule id="IFN2694" name="Microsatellite Instability (MSI), Date DX (NAACCR)" tag="N2694" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.microsatelliteInstability == null

return line.microsatelliteInstability == null || Functions.matches(line.microsatelliteInstability, /^[01289]$/)]]></expression>
            <message>Microsatellite Instability (MSI) is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Microsatellite Instability (MSI) code or blank:

    0: Microsatellite instability (MSI) stable; microsatellite stable (MSS);
       negative, NOS
       AND/OR
       Mismatch repair (MMR) intact, no loss of nuclear expression of MMR
       proteins
       MMR proficient (pMMR or MMR-P)
    1: MSI unstable low (MSI-L)
    2: MSI unstable high (MSI-H)
       AND/OR
       MMR deficient (dMMR or MMR-D), (loss of nuclear expression of one or
       more MMR proteins
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       MSI indeterminate
       MSI equivocal
       Microsatellite Instability (MSI) not assessed or unknown if assessed

Another edit, Microsatellite Instability (MSI), Schema ID, Required (NAACCR),
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-12" ref="67873">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-27" ref="68433">Update descriptions for codes 0 and 2.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-28" ref="68878">Update descriptions for code 9.</event>
            </history>
        </rule>
        <rule id="IFN2695" name="Perineural Invasion, Date DX (NAACCR)" tag="N2695" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.perineuralInvasion == null

return line.perineuralInvasion == null || Functions.matches(line.perineuralInvasion, /^[0189]$/)]]></expression>
            <message>Perineural Invasion is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid Perineural Invasion code or blank: 

    0: Perineural invasion not identified/not present
    1: Perineural invasion identified/present
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Pathology report does not mention perineural invasion
       Cannot be determined by the pathologist
       Perineural Invasion not assessed or unknown if assesse
    
Another edit, Perineural Invasion, Schema ID, Required (NAACCR), checks that the 
item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-02" ref="67874">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2696" name="KRAS, Date DX (NAACCR)" tag="N2696" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.kras != null)
    return false

return line.kras == null || Functions.matches(line.kras, /^[01234789]$/)]]></expression>
            <message>KRAS is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid KRAS code or blank:

    0: Normal
       KRAS negative, KRAS wild type
       Negative for (somatic) mutations, no alterations, no (somatic) mutations
       identified, not present, not detected
    1: Abnormal (mutated) in codon(s) 12, 13 and/or 61
    2: Abnormal (mutated) in codon 146 only
    3: Abnormal (mutated), but not in codon(s) 12, 13, 61, or 146
    4: Abnormal (mutated), NOS, codon(s) not specified
    7: Test ordered, results not in chart
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       KRAS not assessed or unknown if assessed]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-20" ref="67875">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-24" ref="68413">Update code 0 description.</event>
            </history>
        </rule>
        <rule id="IFN2697" name="Bone Invasion, Date DX (NAACCR)" tag="N2697" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.boneInvasion != null)
    return false

return line.boneInvasion == null || Functions.matches(line.boneInvasion, /^[0189]$/)]]></expression>
            <message>Bone Invasion is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Bone Invasion code or blank: 

    0: Bone invasion not present/not identified on imaging
    1: Bone invasion present/identified on imaging
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Bone Invasion not assessed or unknown if assessed

    
Another edit, Bone Invasion, Schema ID, Required (NAACCR), checks that the item is 
coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-03" ref="67876">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2698" name="KIT Gene Immunohistochemistry, Date DX (NAACCR)" tag="N2698" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.kitGeneImmunohistochemistry != null)
    return false

return line.kitGeneImmunohistochemistry == null || Functions.matches(line.kitGeneImmunohistochemistry, /^[017-9]$/)]]></expression>
            <message>KIT Gene Immunohistochemistry is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid KIT Gene Immunohistochemistry code or blank: 

    0: KIT negative/normal; within normal limits
    1: KIT positive
    7: Test ordered, results not in chart
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Cannot be determined by the pathologist
       KIT Gene Immunohistochemistry not assessed or unknown if assessed

Another edit, KIT Gene Immunohistochemistry, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-25" ref="67877">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2699" name="LN Isolated Tumor Cells (ITC), Date DX (NAACCR)" tag="N2699" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.lnIsolatedTumorCells == null

return line.lnIsolatedTumorCells == null || Functions.matches(line.lnIsolatedTumorCells, /^[0189]$/)]]></expression>
            <message>LN Isolated Tumor Cells (ITC) is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid LN Isolated Tumor Cells (ITC) code or blank:

   0: Regional lymph nodes negative for ITCs
    1: Regional lymph nodes positive for ITCs
       (Tumor cell clusters not greater than 0.2 millimeters (mm))
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       LN Isolated Tumor Cells (ITC) not assessed or unknown if assessed

Another edit, LN Isolated Tumor Cells (ITC), Schema ID, Required (NAACCR),
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-12" ref="67878">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2700" name="Profound Immune Suppression, Date DX (NAACCR)" tag="N2700" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.profoundImmuneSuppression != null)
    return false

return line.profoundImmuneSuppression == null || Functions.matches(line.profoundImmuneSuppression, /^[0-689]$/)]]></expression>
            <message>Profound Immune Suppression is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Profound Immune Suppression code or blank: 

   0: No immune suppression condition(s) identified/not present
    1: Human Immunodeficiency Virus (HIV)/Acquired Immunodeficiency Syndrome 
       (AIDS)
    2: Solid organ transplant recipient
    3: Chronic lymphocytic leukemia
    4: Non-Hodgkin lymphoma
    5: Multiple immune suppression conditions
    6: Profound immune suppression present
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record 
       Profound Immune Suppression not assessed or unknown if assessed

Another edit, Profound Immune Suppression, Schema ID, Required (NAACCR), checks 
that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-12" ref="67879">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2701" name="Ulceration, Date DX (NAACCR)" tag="N2701" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.ulceration == null

return line.ulceration == null || Functions.matches(line.ulceration, /^[0189]$/)]]></expression>
            <message>Ulceration is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnose

2. Must be a valid Ulceration code or blank:

    0: Ulceration not identified/not present
    1: Ulceration present
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Cannot be determined by the pathologist
       Pathology report does not mention ulceration
       Ulceration not assessed or unknown if assessed

Another edit, Ulceration, Schema ID, Required (NAACCR), checks that the item is
coded by Schema ID if required by a standard setter.  This data item is required
for EOD Derived Stage Group.]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-12" ref="67880">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2702" name="LDH Upper Limits of Normal, Date DX (NAACCR)" tag="N2702" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
if (line.dateOfDiagnosisYear < '2018')
    return line.ldhUpperLimitsOfNormal == null
return line.ldhUpperLimitsOfNormal == null || Functions.matches(line.ldhUpperLimitsOfNormal, /^\d\d[1-9]|[1-9]\d\d|\d[1-9]\d|XX[89]$/)]]></expression>
            <message>LDH Upper Limits of Normal is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid LDH Upper Limits of Normal code or blank:

    001-999: 001-999 upper limit of normal
             (Exact upper limit of normal)
    XX8:  Not applicable: Information not collected for this case
    XX9:  Not documented in medical record
          LDH Upper Limit of Normal not assessed or unknown if assessed

3. Numeric value must be right-justified and zero-filled.

Another edit, LDH Upper Limits of Normal, Schema ID, Required (NAACCR), checks
that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-04" user="smithm" date="2018-08-07" ref="67881">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2705" name="EOD Prostate Pathologic Extension, Date DX (SEER)" tag="N2705" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.prostatePathologicalExtension != null)
    return false

return line.prostatePathologicalExtension == null || Functions.matches(line.prostatePathologicalExtension, /^999|([39]5|[03-9]0)0$/)]]></expression>
            <message>Prostate Pathological Extension is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses. 

2. Must be a valid Prostate Pathological Extension code or blank: 

    000: In situ; noninvasive; intraepithelial
    300: Confined to prostate, NOS
         Localized, NOS
    350: Bladder neck, microscopic invasion
         Extraprostatic extension (beyond prostatic capsule), unilateral, 
         bilateral, or NOS WITHOUT invasion of the seminal vesicles
         extension to periprostatic tissue WITHOUT invasion of the seminal 
         vesicles
    400: Tumor invades seminal vesicle(s)
    500: Extraprostatic tumor that is not fixed WITHOUT invasion of adjacent
         structures
    600: Bladder neck, except microscopic bladder neck involvement
         Bladder, NOS 
         External sphincter
         Extraprostatic urethra (membranous urethra)
         Fixation, NOS
         Levator muscles
         Rectovesical (Denonvillilier's) fascia
         Rectum
         Skeletal muscle
         Ureter(s)
    700: Extension to or fixation to pelvic wall or pelvic bone
         "Frozen pelvis", NOS
         Further contiguous extension including
         - Bone
         - Other organs
         - Penis
         - Sigmoid colon
         - Soft tissue other than periprostatic
    800: No evidence of primary tumor
    900: No prostatectomy or autopsy performed
    950: Prostatectomy performed, but not first course of treatment,  
         for example performed after disease progression
    999: Unknown; extension not stated
         Unknown if prostatectomy done
         Primary tumor cannot be assessed; 
         Not documented in medical record
   
Another edit, EOD Prostate Pathologic Extension, Schema ID, Required
(SEER),
checks that the item is coded by Schema ID. The item is required by SEER for 
prostate cancer.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-12" ref="67882">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-16" ref="68175">Removed &apos;250&apos; as a valid code.</event>
                <event version="SE21-021-03" user="beverung" date="2021-02-26" ref="68576">Update edit name.</event>
            </history>
        </rule>
        <rule id="IFN2706" name="Gleason Patterns Clinical, Date DX (NAACCR)" tag="N2706" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.gleasonPatternsClinical != null)
    return false

return line.gleasonPatternsClinical == null || Functions.matches(line.gleasonPatternsClinical, /^X[6-9]|[1-5][1-59]$/)]]></expression>
            <message>Gleason Patterns Clinical is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Gleason Patterns Clinical code or blank: 

    11: Primary pattern 1, secondary pattern 1
    12: Primary pattern 1, secondary pattern 2
    13: Primary pattern 1, secondary pattern 3
    14: Primary pattern 1, secondary pattern 4
    15: Primary pattern 1, secondary pattern 5
    19: Primary pattern 1, secondary pattern unknown
    21: Primary pattern 2, secondary pattern 1
    22: Primary pattern 2, secondary pattern 2
    23: Primary pattern 2, secondary pattern 3
    24: Primary pattern 2, secondary pattern 4
    25: Primary pattern 2, secondary pattern 5
    29: Primary pattern 2, secondary pattern unknown
    31: Primary pattern 3, secondary pattern 1
    32: Primary pattern 3, secondary pattern 2
    33: Primary pattern 3, secondary pattern 3
    34: Primary pattern 3, secondary pattern 4
    35: Primary pattern 3, secondary pattern 5
    39: Primary pattern 3, secondary pattern unknown
    41: Primary pattern 4, secondary pattern 1
    42: Primary pattern 4, secondary pattern 2
    43: Primary pattern 4, secondary pattern 3
    44: Primary pattern 4, secondary pattern 4
    45: Primary pattern 4, secondary pattern 5
    49: Primary pattern 4, secondary pattern unknown
    51: Primary pattern 5, secondary pattern 1
    52: Primary pattern 5, secondary pattern 2
    53: Primary pattern 5, secondary pattern 3
    54: Primary pattern 5, secondary pattern 4
    55: Primary pattern 5, secondary pattern 5
    59: Primary pattern 5, secondary pattern unknown
    X6: TURP and/or biopsy done, primary pattern unknown, secondary pattern unknown
    X7: No needle core biopsy/TURP performed
    X8: Not applicable: Information not collected for this case
    X9: Not documented in medical record
        Gleason Patterns Clinical not assessed or unknown if assessed
        Unknown whether TURP and/or biopsy done

Another edit, Gleason Patterns Clinical, Schema ID, Required (NAACCR), checks that 
the item is coded correctly by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-16" ref="67883">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-24" ref="68395">Update X6 and X9 description.</event>
            </history>
        </rule>
        <rule id="IFN2707" name="Gleason Score Clinical, Date DX (NAACCR)" tag="N2707" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.gleasonScoreClinical != null)
    return false

return line.gleasonScoreClinical == null || Functions.matches(line.gleasonScoreClinical, /^X[7-9]|0[2-9]|10$/)]]></expression>
            <message>Gleason Score Clinical is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid Gleason Score Clinical code or blank: 

    02: Gleason score 2
    03: Gleason score 3
    04: Gleason score 4
    05: Gleason score 5
    06: Gleason score 6
    07: Gleason score 7
    08: Gleason score 8
    09: Gleason score 9
    10: Gleason score 10
    X7: No needle core biopsy/TURP performed
    X8: Not applicable: Information not collected for this case
    X9: Not documented in medical record 
        Gleason Score Clinical not assessed or unknown if assessed

Another edit, Gleason Score Clinical, Schema ID, Required (NAACCR), checks that 
the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-16" ref="67883">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2708" name="Gleason Patterns Pathological, Date DX (NAACCR)" tag="N2708" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.gleasonPatternsPathological != null)
    return false

return line.gleasonPatternsPathological == null || Functions.matches(line.gleasonPatternsPathological, /^X[6-9]|[1-5][1-59]$/)]]></expression>
            <message>Gleason Patterns Pathological is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Gleason Patterns Pathological code or blank: 

    11: Primary pattern 1, secondary pattern 1
    12: Primary pattern 1, secondary pattern 2
    13: Primary pattern 1, secondary pattern 3
    14: Primary pattern 1, secondary pattern 4
    15: Primary pattern 1, secondary pattern 5
    19: Primary pattern 1, secondary pattern unknown
    21: Primary pattern 2, secondary pattern 1
    22: Primary pattern 2, secondary pattern 2
    23: Primary pattern 2, secondary pattern 3
    24: Primary pattern 2, secondary pattern 4
    25: Primary pattern 2, secondary pattern 5
    29: Primary pattern 2, secondary pattern unknown
    31: Primary pattern 3, secondary pattern 1
    32: Primary pattern 3, secondary pattern 2
    33: Primary pattern 3, secondary pattern 3
    34: Primary pattern 3, secondary pattern 4
    35: Primary pattern 3, secondary pattern 5
    39: Primary pattern 3, secondary pattern unknown
    41: Primary pattern 4, secondary pattern 1
    42: Primary pattern 4, secondary pattern 2
    43: Primary pattern 4, secondary pattern 3
    44: Primary pattern 4, secondary pattern 4
    45: Primary pattern 4, secondary pattern 5
    49: Primary pattern 4, secondary pattern unknown
    51: Primary pattern 5, secondary pattern 1
    52: Primary pattern 5, secondary pattern 2
    53: Primary pattern 5, secondary pattern 3
    54: Primary pattern 5, secondary pattern 4
    55: Primary pattern 5, secondary pattern 5
    59: Primary pattern 5, secondary pattern unknown
    X6: Prostatectomy done, primary pattern unknown, secondary pattern unknown
    X7: No prostatectomy/autopsy performed
    X8: Not applicable: Information not collected for this case
    X9: Not documented in medical record
        Gleason Patterna Pathological not assessed or unknown if assessed
        Unknown if prostatectomy done

Another edit, Gleason Patterns Pathological, Schema ID, Required (NAACCR), 
checks that the item is coded correctly by Schema ID if required by a standard 
setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-16" ref="67883">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-24" ref="68396">Update X6 and X9 descriptions.</event>
            </history>
        </rule>
        <rule id="IFN2709" name="Gleason Score Pathological, Date DX (NAACCR)" tag="N2709" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.gleasonScorePathological != null)
    return false

return line.gleasonScorePathological == null || Functions.matches(line.gleasonScorePathological, /^X[7-9]|0[2-9]|10$/)]]></expression>
            <message>Gleason Score Pathological is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid Gleason Score Pathological code or blank: 

    02: Gleason score 3
    03: Gleason score 3
    04: Gleason score 4
    05: Gleason score 5
    06: Gleason score 6
    07: Gleason score 7
    08: Gleason score 8
    09: Gleason score 9
    10: Gleason score 10
    X7: No radical prostatectomy/autopsy performed
    X8: Not applicable: Information not collected for this case
    X9: Not documented in medical record 
        Gleason Score Pathological not assessed or unknown if assessed
        Unknown if radical prostatectomy done

Another edit, Gleason Score Pathological, Schema ID, Required (NAACCR), checks 
that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-16" ref="67883">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-02-17" ref="68876">Updated description for Gleason Score Pathological codes X7 and X9.</event>
            </history>
        </rule>
        <rule id="IFN2710" name="Gleason Tertiary Pattern, Date DX (NAACCR)" tag="N2710" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.gleasonTertiaryPattern != null)
    return false

return line.gleasonTertiaryPattern == null || Functions.matches(line.gleasonTertiaryPattern, /^X[7-9]|[1-5]0$/)]]></expression>
            <message>Gleason Tertiary Pattern is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid Gleason Tertiary Pattern code or blank: 

    10: Tertiary pattern 1
    20: Tertiary pattern 2
    30: Tertiary pattern 3
    40: Tertiary pattern 4
    50: Tertiary pattern 5
    X7: No prostatectomy/autopsy performed
    X8: Not applicable: Information not collected for this case
    X9: Not documented in medical record 
        Gleason Tertiary Pattern not assessed or unknown if assessed

Another edit, Gleason Tertiary Pattern, Schema ID, Required (NAACCR), checks 
that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-16" ref="67883">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2711" name="Number of Cores Positive, Date DX (NAACCR)" tag="N2711" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.numberOfCoresPositive != null)
    return false

return line.numberOfCoresPositive == null || Functions.matches(line.numberOfCoresPositive, /^X[16-9]|\d\d$/)]]></expression>
            <message>Number of Cores Positive is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Number of Cores Positive code or blank: 

    00: All examined cores negative
    01-99: 1-99 cores positive 
           (Exact number of cores positive)
    X1: 100 or more cores positive
    X6: Biopsy cores positive, number unknown
    X7: No needle core biopsy performed
    X8: Not applicable: Information not collected for this case
    X9: Not documented in medical record 
        Number of Cores Positive not assessed or unknown if assessed

3. Numeric values must be right-justified and zero-filled. 

Another edit, Number of Cores Positive, Schema ID, Required (NAACCR), checks 
that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-17" ref="67884">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2712" name="Number of Cores Examined, Date DX (NAACCR)" tag="N2712" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.numberOfCoresExamined != null)
    return false

return line.numberOfCoresExamined == null || Functions.matches(line.numberOfCoresExamined, /^X[16-9]|0[1-9]|[1-9]\d$/)]]></expression>
            <message>Number of Cores Examined is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Number of Cores Examined code or blank:
 
    01-99: 01-99 cores examined 
           (Exact number of cores examined)
    X1: 100 or more cores examined
    X6: Biopsy cores examined, number unknown
    X7: No needle core biopsy performed
    X8: Not applicable: Information not collected for this case
    X9: Not documented in medical record 
        Number of Cores Examined not assessed or unknown if assessed

3. Numeric values must be right-justified and zero-filled. 

Another edit, Number of Cores Examined, Schema ID, Required (NAACCR), checks 
that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-17" ref="67884">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2713" name="AFP Pre-Orchiectomy Range, Date DX (NAACCR)" tag="N2713" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.afpPreOrchiectomyRange != null)
    return false

return line.afpPreOrchiectomyRange == null || Functions.matches(line.afpPreOrchiectomyRange, /^[0-47-9]$/)]]></expression>
            <message>AFP Pre-Orchiectomy Range is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid AFP Pre-Orchiectomy Range code or blank: 

   0: Within normal limits
    1: Above normal and less than 1,000 nanograms/milliter (ng/mL)
    2: 1,000-10,000 ng/mL
    3: Greater than 10,000 ng/mL
    4: Pre-Orchiectomy alpha fetoprotein (AFP) stated to be elevated
    7: Test ordered, results not in chart
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record 
      AFP Pre-Orchiectomy Range not assessed or unknown if assessed
    
Another edit, AFP Pre-Orchiectomy Range, Schema ID, Required (NAACCR), checks
that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-17" ref="67885">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2714" name="hCG Pre-Orchiectomy Range, Date DX (NAACCR)" tag="N2714" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.hcgPreOrchiectomyRange != null)
    return false

return line.hcgPreOrchiectomyRange == null || Functions.matches(line.hcgPreOrchiectomyRange, /^[0-47-9]$/)]]></expression>
            <message>hCG Pre-Orchiectomy Range is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid hCG Pre-Orchiectomy Range code or blank: 

   0: Within normal limits 
    1: Above normal and less than 5,000 milli-International Units/milliliter 
      (mIU/mL)
    2: 5,000-50,000 mIU/mL
    3: Greater than 50,000 mIU/mL
    4: Pre-Orchiectomy human chorionic gonadotropin (hCG) stated to be elevated
    7: Test ordered, results not in chart
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record 
      hCG Pre-Orchiectomy Range not assessed or unknown if assessed
    
Another edit, hCG Pre-Orchiectomy Range, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-17" ref="67885">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2715" name="LDH Pre-Orchiectomy Range, Date DX (NAACCR)" tag="N2715" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.ldhPreOrchiectomyRange != null)
    return false

return line.ldhPreOrchiectomyRange == null || Functions.matches(line.ldhPreOrchiectomyRange, /^[0-47-9]$/)]]></expression>
            <message>LDH Pre-Orchiectomy Range is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid LDH Pre-Orchiectomy Range code or blank: 

   0: Within normal limits 
    1: Less than 1.5 x N 
       (Less than 1.5 times the upper limit of normal for LDH) 
    2: 1.5 to 10 x N 
       (Between 1.5 and 10 times the upper limit of normal for LDH)
    3: Greater than 10 x N 
       (Greater than 10 times the upper limit of normal for LDH)
    4: Pre-Orchiectomy lactate dehydrogenase (LDH) stated to be elevated
    7: Test ordered, results not in chart
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record 
      LDH Pre-Orchiectomy Range not assessed or unknown if assessed
    
Another edit, LDH Pre-Orchiectomy Range, Schema ID, Required (NAACCR), checks 
that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-17" ref="67885">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2716" name="AFP Post-Orchiectomy Range, Date DX (NAACCR)" tag="N2716" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.afpPostOrchiectomyRange != null)
    return false

return line.afpPostOrchiectomyRange == null || Functions.matches(line.afpPostOrchiectomyRange, /^[0-57-9]$/)]]></expression>
            <message>AFP Post-Orchiectomy Range is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid AFP Post-Orchiectomy Range code or blank: 

   0: Within normal limits
    1: Above normal and less than 1,000 nanograms/milliter (ng/mL)
    2: 1,000-10,000 ng/mL
    3: Greater than 10,000 ng/mL
    4: Post-Orchiectomy alpha fetoprotein (AFP) stated to be elevated
    5: Post-Orchiectomy alpha fetoprotein (AFP) unknown or not done but
       pre-orchiectomy AFP was normal
    7: Test ordered, results not in chart
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       No orchiectomy performed 
      AFP Post-Orchiectomy Range not assessed or unknown if assessed

Another edit, AFP Post-Orchiectomy Range, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-17" ref="67885">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-22" ref="68373">Add code 5.</event>
            </history>
        </rule>
        <rule id="IFN2717" name="hCG Post-Orchiectomy Range, Date DX (NAACCR)" tag="N2717" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.hcgPostOrchiectomyRange != null)
    return false

return line.hcgPostOrchiectomyRange == null || Functions.matches(line.hcgPostOrchiectomyRange, /^[0-457-9]$/)]]></expression>
            <message>hCG Post-Orchiectomy Range is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid hCG Post-Orchiectomy Range code or blank: 

   0: Within normal limits
    1: Above normal and less than 5,000 milli-International Units/milliliter 
       (MIU/mL)
    2: 5,000-50,000 mIU/mL
    3: Greater than 50,000 mIU/mL
    4: Post-Orchiectomy human chorionic gonadotropin (hCG) stated to be elevated
    5: Post-Orchiectomy human chorionic gonadotropin (hCG) unknown or not done
       but pre-orchiectomy hCG was normal
    7: Test ordered, results not in chart
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       No orchiectomy performed 
       hCG Post-Orchiectomy Range not assessed or unknown if assessed

Another edit, hCG Post-Orchiectomy Range, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-18" ref="67885">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-23" ref="68403">Add code 5 to description and logic.</event>
            </history>
        </rule>
        <rule id="IFN2718" name="LDH Post-Orchiectomy Range, Date DX (NAACCR)" tag="N2718" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.ldhPostOrchiectomyRange != null)
    return false

return line.ldhPostOrchiectomyRange == null || Functions.matches(line.ldhPostOrchiectomyRange, /^[0-457-9]$/)]]></expression>
            <message>LDH Post-Orchiectomy Range is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid LDH Post-Orchiectomy Range code or blank: 

   0: Within normal limits
    1: Less than 1.5 x N 
       (Less than 1.5 times the upper limit of normal for LDH) 
    2: 1.5 to 10 x N 
       (Between 1.5 and 10 times the upper limit of normal for LDH)
    3: Greater than 10 x N 
       (Greater than 10 times the upper limit of normal for LDH)
    4: Post-Orchiectomy lactate dehydrogenase (LDH) range stated to be elevated
    5: Post-Orchiectomy lactate dehydrogenase (LDH) unknown or not done but
       pre-orchiectomy LDH was normal
    7: Test ordered, results not in chart
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       No orchiectomy performed 
       LDH Post-Orchiectomy Range not assessed or unknown if assessed
    
Another edit, LDH Post-Orchiectomy Range, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-18" ref="67885">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-24" ref="68419">Add code 5 to description and logic.</event>
            </history>
        </rule>
        <rule id="IFN2719" name="AFP Pretreatment Interpretation, Date DX (NAACCR)" tag="N2719" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.afpPretreatmentInterpretation != null)
    return false

return line.afpPretreatmentInterpretation == null || Functions.matches(line.afpPretreatmentInterpretation, /^[0-27-9]$/)]]></expression>
            <message>AFP Pretreatment Interpretation is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid AFP Pretreatment Interpretation code or blank:

   0: Negative/normal; within normal limits
    1: Positive/elevated
    2: Borderline; undetermined if positive or negative
    7: Test ordered, results (interpretation) not in chart
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
      AFP Pretreatment Interpretation not assessed or unknown if assessed


Another edit, AFP Pretreatment Interpretation, Schema ID, Required (NAACCR),
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-06" ref="67886">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2720" name="Fibrosis Score, Date DX (NAACCR)" tag="N2720" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.fibrosisScore == null

return line.fibrosisScore == null || Functions.matches(line.fibrosisScore, /^[01789]$/)]]></expression>
            <message>Fibrosis Score is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Fibrosis Score code or blank:

    0: Any of the following histologically confirmed:
       No to moderate fibrosis
       Ishak fibrosis score 0-4
       METAVIR score F0-F3
       Batt-Ludwig score 0-3
    1: Any of the following histologically confirmed:
       Advanced/severe fibrosis
       Developing cirrhosis
       Incomplete cirrhosis
       Transition to cirrhosis
       Cirrhosis, probable or definite
       Cirrhosis, NOS
       Ishak fibrosis score 5-6
       METAVIR score F4
       Batt-Ludwig score 4
    7: Clinical statement of advanced/severe fibrosis or cirrhosis, AND
       Not histologically confirmed or unknown if histologically confirmed
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Stated in medical record that patient does not have advanced cirrhosis/
       advanced fibrosis, not histologically confirmed or unknown if
       histologically confirmed
       Fibrosis Score stated but cannot be assigned to codes 0 or 1
       Fibrosis Score stated but scoring system not recorded
       Fibrosis Score not assessed or unknown if assessed

Another edit, Fibrosis Score, Schema ID, Required (NAACCR), checks that the item
is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-12" ref="67887">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-23" ref="68392">Update description for codes 0 and 1.</event>
            </history>
        </rule>
        <rule id="IFN2721" name="Creatinine Pretreatment Unit of Measure, Date DX (NAACCR)" tag="N2721" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.creatininePretxUnitOfMeasure == null

return line.creatininePretxUnitOfMeasure == null || Functions.matches(line.creatininePretxUnitOfMeasure, /^[127-9]$/)]]></expression>
            <message>Creatinine Pretreatment Unit of Measure is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid Creatinine Pretreatment Unit of Measure code or blank: 

    1: Milligrams/deciliter (mg/dl)
    2: Micromoles/liter (umol/l)
    7: Test ordered, results not in chart
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record 
      Creatinine Pretreatment Unit of Measure not assessed or unknown if 
       assessed
    
Another edit, Creatinine Pretreatment Unit of Measure, Schema ID, Required 
(NAACCR), checks that the item is coded by Schema ID if required by a standard 
setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-18" ref="67834">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IFN2722" name="Bilirubin Pretreatment Unit of Measure, Date DX (NAACCR)" tag="N2722" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return  line.bilirubinPretxUnitOfMeasure == null

return  line.bilirubinPretxUnitOfMeasure == null || Functions.matches(line.bilirubinPretxUnitOfMeasure, /^[127-9]$/)]]></expression>
            <message>Bilirubin Pretreatment Unit of Measure is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses

2. Must be a valid Bilirubin Pretreatment Unit of Measure code or blank: 

    1: Milligrams/deciliter (mg/dl)
    2: Micromoles/liter (umol/L)
    7: Test ordered, results not in chart
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record 
      Bilirubin Pretreatment Unit of Measure not assessed or unknown if assessed
    
Another edit, Bilirubin Pretreatment Unit of Measure, Schema ID, Required 
(NAACCR), checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-18" ref="67835">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IFN2725" name="LN Head and Neck Levels I-III, Date DX (NAACCR)" tag="N2725" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return  line.lnHeadAndNeckLevels1To3 == null

return  line.lnHeadAndNeckLevels1To3 == null || Functions.matches(line.lnHeadAndNeckLevels1To3, /^\d$/)]]></expression>
            <message>LN Head and Neck Levels I-III is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid LN Head and Neck Levels I-III code or blank: 

    0: No involvement in Levels I, II, or III lymph nodes
    1: Level I lymph node(s) involved
    2: Level II lymph node(s) involved
    3: Level III lymph Node(s) involved
    4: Levels I and II lymph nodes involved
    5: Levels I and III lymph Nodes involved
    6: Level II and III lymph Nodes involved
    7: Levels I, II, and III lymph Nodes involved
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Positive node(s), but level of positive node(s) unknown
       LN Head and Neck levels I-III not assessed or unknown if assessed
    
Another edit, LN Head and Neck Levels I-III, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-16" ref="67890">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2726" name="LN Head and Neck Levels IV-V, Date DX (NAACCR)" tag="N2726" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return  line.lnHeadAndNeckLevels4To5 == null

return  line.lnHeadAndNeckLevels4To5 == null || Functions.matches(line.lnHeadAndNeckLevels4To5, /^[0-389]$/)]]></expression>
            <message>LN Head and Neck Levels IV-V is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid LN Head and Neck Levels IV-V code or blank: 

    0: No involvement in Levels IV or V lymph nodes
    1: Level IV lymph node(s) involved
    2: Level V lymph node(s) involved
    3: Levels IV and V lymph nodes involved
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Positive node(s), but level of positive node(s) unknown
       LN Head and Neck Levels IV-V not assessed or unknown if assessed
    
Another edit, LN Head and Neck Levels IV-V, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-17" ref="67890">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2727" name="LN Head and Neck Levels VI-VII, Date DX (NAACCR)" tag="N2727" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return  line.lnHeadAndNeckLevels6To7 == null

return  line.lnHeadAndNeckLevels6To7 == null || Functions.matches(line.lnHeadAndNeckLevels6To7, /^[0-389]$/)]]></expression>
            <message>LN Head and Neck Levels VI-VII is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid LN Head and Neck Levels VI-VII code or blank: 

    0: No involvement in Levels VI or VII lymph nodes
    1: Level VI lymph node(s) involved
    2: Level VII lymph node(s) involved
    3: Levels VI and VII lymph nodes involved
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Positive node(s), but level of positive node(s) unknown
       LN Head and Neck Levels VI-VII not assessed or unknown if assessed
    
Another edit, LN Head and Neck Levels VI-VII, Schema ID, Required 
(NAACCR), checks that the item is coded by Schema ID if required by a standard 
setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-17" ref="67890">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2728" name="LN Head and Neck Other, Date DX (NAACCR)" tag="N2728" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return  line.lnHeadAndNeckOther == null

return  line.lnHeadAndNeckOther == null || Functions.matches(line.lnHeadAndNeckOther, /^\d$/)]]></expression>
            <message>LN Head and Neck Other is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid LN Head and Neck Other code or blank: 

    0: No involvement in other head and neck lymph node regions
    1: Buccinator (facial) lymph node(s) involved
    2: Parapharyngeal lymph node(s) involved
    3: Periparotid and intraparotid lymph node(s) involved
    4: Preauricular lymph node(s) involved
    5: Retropharyngeal lymph node(s) involved
    6: Suboccipital/retroauricular lymph node(s) involved
    7: Any combination of codes 1-6
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Positive node(s), but level of positive node(s) unknown
       LN Head and Neck Other not assessed or unknown if assessed
    
Another edit, LN Head and Neck Other, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-17" ref="67890">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2729" name="Extranodal Extension Head and Neck Clinical, Date DX (NAACCR)" tag="N2729" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return  line.extranodalExtensionHeadNeckClin == null

return  line.extranodalExtensionHeadNeckClin == null || Functions.matches(line.extranodalExtensionHeadNeckClin, /^[0-247-9]$/)]]></expression>
            <message>Extranodal Extension Head and Neck Clinical is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Extranodal Extension Head and Neck Clinical code or blank:

    0: Regional lymph nodes involved, ENE not present/not identified during
       diagnostic workup
    1: Regional lymph nodes involved, ENE present/identified during diagnostic
       workup, based on physicial exam WITH or WITHOUT imaging
    2: Regional lymph nodes involved, ENE present/identified during diagnostic
       workup, based on microscopic confirmation
    4: Regional lymph nodes involved, ENE present/identified, unknown how identified
    7: No lymph node involvement during diagnostic workup (cN0)
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       ENE not assessed during diagnostic workup, or unknown if assessed
      Clinical assessment of lymph nodes not done, or unknown if done

Another edit, Extranodal Extension Head and Neck Clinical, Schema ID, Required
(NAACCR), checks that the item is coded by Schema ID if required by a standard
setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-13" ref="67891">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-24" ref="68389">Add code 4.</event>
            </history>
        </rule>
        <rule id="IFN2730" name="Extranodal Extension Head and Neck Pathological, Date DX (NAACCR)" tag="N2730" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return  line.extranodalExtensionHeadNeckPath == null

return  line.extranodalExtensionHeadNeckPath == null || Functions.matches(line.extranodalExtensionHeadNeckPath, /^(\d\.\d)|(X\.[1-47-9])$/)]]></expression>
            <message>Extranodal Extension Head and Neck Pathological is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Extranodal Extension Head and Neck Pathological code or blank: 

    0.0: Lymph nodes positive for cancer but ENE not identified or negative
    0.1-9.9: ENE 0.1 to 9.9 mm
    X.1: ENE 10 mm or greater  
    X.2: ENE microscopic, size unknown
         Stated as ENE (mi)
    X.3: ENE major, size unknown
         Stated as ENE (ma)
    X.4: ENE present, microscopic or major unknown, size unknown
    X.7: Surgically resected regional lymph nodes negative for cancer (pN0)
    X.8: Not applicable: Information not collected for this case
    X.9: Not documented in medical record
         No surgical resection of regional lymph nodes 
         ENE not assessed pathologically, or unknown if assessed;
         Pathological assessment of lymph nodes not done, or unknown if done

3. Code must contain decimal point with one character before and one character after
decimal point.

Another edit, Extranodal Extension Head and Neck Pathological, Schema ID, 
Required (NAACCR), checks that the item is coded by Schema ID if required by a 
standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-13" ref="67891">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-01" user="secristc" date="2022-03-01" ref="68780">Removed right justified from description.</event>
            </history>
        </rule>
        <rule id="IFN2731" name="High Risk Histologic Features, Date DX (NAACCR)" tag="N2731" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return  line.highRiskHistologicFeatures == null

return  line.highRiskHistologicFeatures == null || Functions.matches(line.highRiskHistologicFeatures, /^[0-689]$/)]]></expression>
            <message>High Risk Histologic Features is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid High Risk Histologic Features code or blank:

    0: No high risk histologic features
    1: Desmoplasia
    2: Poor differentiation (grade 3)
    3: Sarcomatoid differentiation
    4: Undifferentiated (grade 4)
    5: Multiple high risk histologic features
    6: Histologic features, NOS (type of high risk histologic feature not
       specified)
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
      High Risk Histologic Features not assessed or unknown if assessed

Another edit, High Risk Histologic Features, Schema ID, Required (NAACCR),
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-04" user="kirbyk" date="2018-08-02" ref="67892">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2732" name="Esophagus and EGJ Tumor Epicenter, Date DX (NAACCR)" tag="N2732" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return  line.esophagusAndEgjTumorEpicenter == null

return  line.esophagusAndEgjTumorEpicenter == null || Functions.matches(line.esophagusAndEgjTumorEpicenter, /^[0-29]$/)]]></expression>
            <message>Esophagus and EGJ Tumor Epicenter is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses. 

2. Must be a valid Esophagus and EGJ Tumor Epicenter code or blank: 

    0: U: Upper (Cervical/Proximal esophagus to lower border of azygos vein)
    1: M: Middle (Lower border of azygos vein to lower border of inferior 
       pulmonary vein)
    2: L: Lower (Lower border of inferior pulmonary vein to stomach including 
       gastroesophageal junction)
    9: X: Esophagus NOS; 
       Specific location of epicenter not documented in medical record 
       Specific location of epicenter not assessed or unknown if assessed 

Another edit, Esophagus and EGJ Tumor Epicenter, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID if required by a standard setter. 

The data item is required for AJCC staging and EOD Derived Stage Group.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-25" ref="67893">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2733" name="Estrogen Receptor Summary, Date DX (NAACCR)" tag="N2733" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return  line.estrogenReceptorSummary == null

return  line.estrogenReceptorSummary == null || Functions.matches(line.estrogenReceptorSummary, /^[0179]$/)]]></expression>
            <message>Estrogen Receptor Summary is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Estrogen Receptor Summary code or blank:

    0: ER negative (0.0% or less than 1%)
    1: ER positive
    7: Test done, results not in chart
    9: Not documented in medical record
       Cannot be determined (indeterminate)
       Estrogen Receptor Summary status not assessed or unknown if assessed

Another edit, Estrogen Receptor Summary, Schema ID, Required (NAACCR), checks
that the item is coded by Schema ID if required by a standard setter.

This data item is required for AJCC staging and EOD Derived Stage Group.]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-06" ref="67894">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-23" ref="68381">Update description for code 0</event>
            </history>
        </rule>
        <rule id="IFN2734" name="Progesterone Receptor Summary, Date DX (NAACCR)" tag="N2734" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
if (line.dateOfDiagnosisYear < '2018')
    return line.progesteroneRecepSummary == null
return line.progesteroneRecepSummary == null || Functions.matches(line.progesteroneRecepSummary, /^[0179]$/)]]></expression>
            <message>Progesterone Receptor Summary is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Progesterone Receptor Summary code or blank:

    0: PR negative (0.0 or less than <1%)
    1: PR positive
    7: Test done, results not in chart
    9: Not documented in medical record
       Cannot be determined (indeterminate)
       Progesterone Receptor Summary status not assessed or unknown if assessed

Another edit, Progesterone Receptor Summary, Schema ID, Required (NAACCR),
checks that the item is coded by Schema ID if required by a standard setter.

This data item is required for AJCC staging and EOD Derived Stage Group.]]></description>
            <history>
                <event version="SE18-018-04" user="smithm" date="2018-08-06" ref="67895">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-06" ref="68446">Update description for code &apos;0&apos;.</event>
            </history>
        </rule>
        <rule id="IFN2735" name="HER2 Overall Summary, Date DX (NAACCR)" tag="N2735" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' || (line.dateOfDiagnosisYear < '2021' && ['00161', '00169', '00170'].contains(line.schemaId)))
    return line.her2OverallSummary == null

if (line.her2OverallSummary == null || Functions.matches(line.her2OverallSummary, /^[0179]$/))
    return true

return ['00161', '00169', '00170'].contains(line.schemaId) && line.her2OverallSummary == '8']]></expression>
            <message>HER2 Overall Summary is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid HER2 Overall Summary code or blank: 

    0: HER2 negative; equivocal
    1: HER2 positive
    7: Test done, results not in chart
    8: Not applicable, information not collected for this case
    9: Not documented in medical record
       Cannot be determined (indeterminate)
       Borderline
       HER2 Overall Summary status not assessed or unknown if assessed

3. This data item must be blank for pre-2021 cases assigned to Schema IDs
00161, 00169, and 00170.

4. Code 8, Not applicable, must only be used for Schema IDs 00161, 00169, and 00170.

Another edit, HER2 Overall Summary, Schema ID, Required (NAACCR), checks that the 
item is coded by Schema ID if required by a standard setter.  

This data item is required for AJCC staging and EOD Derived Stage Group for Schema ID 00480, Breast.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-17" ref="67867">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-27" ref="68409">Update code 9 description and add logic for pre-2021 cases.</event>
                <event version="SE21-021-03" user="secristm" date="2021-02-24" ref="68577">Add logic and description for code 8.</event>
            </history>
        </rule>
        <rule id="IFN2736" name="Gestational Trophoblastic Prognostic Scoring Index, Date DX (NAACCR)" tag="N2736" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.gestationalTrophoblasticPxIndex == null

return line.gestationalTrophoblasticPxIndex == null || Functions.matches(line.gestationalTrophoblasticPxIndex, /^[01]\d|2[0-5]|X9$/)]]></expression>
            <message>Gestational Trophoblastic Prognostic Scoring Index is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Gestational Trophoblastic Prognostic Scoring Index code or
   blank: 

    00-25: Risk factor score
    X9: Not documented in medical record 
        Prognostic Trophoblastic Scoring Index not assessed or unknown if 
        assessed

Another edit, Gestational Trophoblastic Prognostic Scoring Index, Schema ID, 
Required (NAACCR), checks that the item is coded by Schema ID if required by a 
standard setter. 

This data item is required for AJCC staging and EOD Derived Stage Group.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-11" ref="67896">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IFN2737" name="PSA (Prostatic Specific Antigen) Lab Value, Date DX (NAACCR)" tag="N2737" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.psaLabValue != null)
    return false

return  line.psaLabValue == null || Functions.matches(line.psaLabValue, /^XXX\.[12379]|[1-9]\d\d\.\d|[1-9]\d\.\d|[1-9]\.\d|0\.[1-9]$/)]]></expression>
            <message>PSA (Prostatic Specific Antigen) Lab Value is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid PSA (Prostatic Specific Antigen) Lab Value code or blank:

    0.1: 0.1 or less nanograms/milliliter (ng/ml)
   0.2-999.9: 0.2-999.9 ng/ml
               (Exact value to nearest tenth of ng/ml)
    XXX.1: 10,000 ng/ml or greater
    XXX.2: Lab value not available, physician states PSA is negative/normal
    XXX.3: Lab value not available, physician states PSA is positive/elevated/high
    XXX.7: Test ordered, results not in chart
    XXX.9: Not documented in medical record
           PSA (Prostatic Specific Antigen) Lab Value not assessed or unknown
           if assessed

3. Code must contain one place after decimal point.

Another edit, PSA (Prostatic Specific Antigen) Lab Value, Schema ID, Required
(NAACCR), checks that the item is coded by Schema ID if required by a standard
setter.

This data item is required for AJCC staging and EOD Derived Stage Group.]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-10" ref="67898">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-21" ref="68882">Added new valid PSA lab value codes.</event>
            </history>
        </rule>
        <rule id="IFN2738" name="S Category Clinical, Date DX (NAACCR)" tag="N2738" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.sCategoryClinical != null)
    return false

return  line.sCategoryClinical == null || Functions.matches(line.sCategoryClinical, /^[0-39]$/)]]></expression>
            <message>S Category Clinical is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid S Category Clinical code or blank: 

   0: S0: Marker study levels within normal levels
   1: S1: At least one of these values is elevated AND
          LDH less than 1.5 x N* AND
          hCG (mIU/L) less than 5,000 AND
          AFP (ng/mL) less than 1,000 
   2: S2: LDH 1.5 x N* to 10 x N* OR
          hCG (mIU/L) 5,000 to 50,000 OR 
          AFP (ng/mL) 1,000 to 10,000
   3: S3: Only one elevated test is needed
          LDH greater than 10 x N* OR
          hcG (mIU/mL) greater than 50,000 OR
          AFP (ng/mL) greater than 10,000
   9: SX: Not documented in medical record
          S Category Clinical not assessed or unknown if assessed

Another edit, S Category Clinical, Schema ID, Required (NAACCR), checks that the 
item is coded by Schema ID if required by a standard setter. 

This data item is required for AJCC staging and EOD Derived Stage Group.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-25" ref="67897">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2739" name="S Category Pathological, Date DX (NAACCR)" tag="N2739" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.sCategoryPathological != null)
    return false

return  line.sCategoryPathological == null || Functions.matches(line.sCategoryPathological, /^[0-359]$/)]]></expression>
            <message>S Category Pathological is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid S Category Pathological code or blank: 

   0: S0: Marker study levels within normal levels
   1: S1: At least one of these values is elevated AND
          LDH less than 1.5 x N* AND
          hCG (mIU/L) less than 5,000 AND
          AFP (ng/mL) less than 1,000 
   2: S2: LDH 1.5 x N* to 10 x N* OR
          hCG (mIU/L) 5,000 to 50,000 OR 
          AFP (ng/mL) 1,000 to 10,000
   3: S3: Only one elevated test is needed
          LDH greater than 10 x N* OR
          hcG (mIU/mL) greater than 50,000 OR
          AFP (ng/mL) greater than 10,000
   5: Post-Orchiectomy serum tumor markers unknown or not done but
          pre-orchiectomy serum tumor markers were normal
   9: SX: Not documented in medical record
          S Category Pathological not assessed or unknown if assessed

Another edit, S Category Pathological, Schema ID, Required (NAACCR), checks that the 
item is coded by Schema ID if required by a standard setter. 

This data item is required for AJCC staging and EOD Derived Stage Group.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-25" ref="67897">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-06" ref="68454">Added code &apos;5&apos;.</event>
            </history>
        </rule>
        <rule id="IFN2740" name="Heritable Trait, Date DX (NAACCR)" tag="N2740" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.heritableTrait != null)
    return false

return  line.heritableTrait == null || Functions.matches(line.heritableTrait, /^[0179]$/)]]></expression>
            <message>Heritable Trait value is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Heritable Trait code or blank:

    0: H0: Normal RB1 alleles
       No clinical evidence of mutation
    1: H1: RB1 gene mutation OR
       Clinical evidence of mutation
    7: Test done, results not in chart
    9: HX: Not documented in medical record
       Test not done, or unknown if done
       Insufficient evidence of a constitutional RB1 gene mutation

Another edit, Heritable Trait, Schema ID, Required (NAACCR), checks that the
item is coded by Schema ID if required by a standard setter.

The data item is required for AJCC staging and EOD Derived Stage Group.]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-10" ref="67899">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2741" name="Adenopathy, Date DX (NAACCR)" tag="N2741" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.adenopathy == null

if (line.primarySite == 'C421')
    return line.adenopathy == null || Functions.matches(line.adenopathy, /^[019]$/)
else
    return line.adenopathy == null || line.adenopathy == '5'
    ]]></expression>
            <message>Adenopathy value is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Adenopathy code or blank:

    0: Adenopathy not identified/not present
       No lymph nodes > 1.5cm
       Physician states Rai stage 0
    1: Adenopathy present
       Presence of lymph nodes > 1.5cm
       Physician states Rai stage I
    5: Not applicable: Primary site is not C421
    9: Not documented in medical record
       Adenopathy not assessed or unknown if assessed
       No Rai Stage is documented in the record and there is no documentation of adenopathy
       Physician states Rai Stage II-IV and there is no documentation of adenopathy

3. Code 5 must be used if primary site not C421

4. Codes 0, 1, and 9 must be used if primary site = C421

Another edit, Adenopathy, Schema ID, Required (NAACCR), checks that the item is
coded by Schema ID if required by a standard setter.

This data item is required for AJCC staging and EOD Derived Stage Group.]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-12" ref="67900">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-14" ref="68849">Updated adenopathy description, added logic related to primary site.</event>
            </history>
        </rule>
        <rule id="IFN2742" name="Anemia, Date DX (NAACCR)" tag="N2742" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.anemia == null

if (line.primarySite != 'C421')
    return line.anemia == null || line.anemia == '5'

else
    return line.anemia == null || Functions.matches(line.anemia, /^[01679]$/)]]></expression>
            <message>Anemia is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Anemia code or blank:

    0: Anemia not identified/not present
       Hgb >= 11.0 grams/deciliter (g/dL)
       Physician states Rai Stage 0-II
    1: Anemia present
       Hgb <11.0 g/dL
    5: Not applicable: Primary site is not C421
    6: Lab value unknown, physician states patient is anemic
       Physician states Rai Stage III
    7: Test done, results not in chart
    9: Not documented in medical record
       Anemia not assessed or unknown if assessed
       No Rai Stage is doumented in the record and there is no documentation of anemia
       Physician states Rai Stage IV and there is no documentation of anemia

3. Code 5 must be used if primary site not C421

4. Codes 0, 1, 6, 7, and 9 must be used if primary site = C421

Another edit, Anemia, Schema ID, Required (NAACCR), checks that the item is coded
by Schema ID if required by a standard setter.

This data item is required for AJCC staging and EOD Derived Stage Group.]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-11" ref="67901">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-20" ref="68850">Added logic related to primary site and code 5</event>
            </history>
        </rule>
        <rule id="IFN2743" name="Lymphocytosis, Date DX (NAACCR)" tag="N2743" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.lymphocytosis != null)
    return false

if (line.primarySite == 'C421')
    return  line.lymphocytosis == null || Functions.matches(line.lymphocytosis, /^[01679]$/)

else
    return  line.lymphocytosis == null || line.lymphocytosis == '5']]></expression>
            <message>Lymphocytosis value is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Lymphocytosis code or blank:

    0: Lymphocytosis not present
       Absolute lymphocyte count <= 5,000 cells/microliter
    1: Lymphocytosis present
       Absolute lymphocyte count > 5,000 cells/microliter
    5: Not applicable: Primary site is not C421
    6: Lab value unknown, physician states lymphocytosis is present
       Physician states Rai Stage 0-IV
    7: Test done, results not in chart
    9: Not documented in medical record
       Lymphocytosis not assessed or unknown if assessed
       No Rai Stage is documented in the record and there is no
       documentation of lymphocytosis

3. Code 5 must be used if primary site not C421

4. Codes 0, 1, 6, 7, and 9 must be used if primary site = C421

Another edit, Lymphocytosis, Schema ID, Required (NAACCR), checks that the item
is coded by Schema ID if required by a standard setter.

This data item is required for AJCC staging and EOD Derived Stage Group.]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-10" ref="67902">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-21" ref="68854">Added logic for code 5</event>
            </history>
        </rule>
        <rule id="IFN2744" name="Organomegaly, Date DX (NAACCR)" tag="N2744" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.organomegaly == null
if (line.primarySite == 'C421')
    return line.organomegaly == null || Functions.matches(line.organomegaly, /^[019]$/)
else
    return line.organomegaly == null || line.organomegaly == '5']]></expression>
            <message>Organomegaly is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Organomegaly code or blank:

    0: Organomegaly of liver and/or spleen not present
       Physician statges Rai Stage 0-I
    1: Organomegaly of liver and/or spleen present
       Physician statges Rai Stage II
    5: Not applicable: Primary site is not C421
    9: Not documented in medical record
       Organomegaly not assessed or unknown if assessed
       No Rai Stage is documented in the record and there is no documentation of organomegaly
       Physician states Rai Stage III-IV and there is no documentation of organomegaly

3. Code 5 must be used if primary site not C421

4. Codes 0, 1, and 9 must be used if primary site = C421

Another edit, Organomegaly, Schema ID, Required (NAACCR), checks that the item is
coded by Schema ID if required by a standard setter.

This data item is required for AJCC staging and EOD Derived Stage Group.]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-11" ref="67903">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-26" ref="68855">Added logic for organomegaly code 5, primary site.</event>
            </history>
        </rule>
        <rule id="IFN2745" name="Thrombocytopenia, Date DX (NAACCR)" tag="N2745" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.thrombocytopenia == null
else if (line.primarySite == 'C421')
    return line.thrombocytopenia == null || Functions.matches(line.thrombocytopenia, /^[01679]$/)
else
    return line.thrombocytopenia == null || line.thrombocytopenia == '5']]></expression>
            <message>Thrombocytopenia is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Thrombocytopenia code or blank:

    0: Thrombocytopenia not present
       Platelets (Plt) >= 100,000/microliter
       Physician states Rai Stage 0-III
    1: Thrombocytopenia present
       Platelets (Plt) < 100,000/microliter
    5: Not applicable: Primary site is not C421
    6: Lab value unknown, physician states thrombocytopenia is present
       Physician states Rai Stage IV
    7: Test done, results not in chart
    9: Not documented in medical record
       Thrombocytopenia not assessed or unknown if assessed
       No Rai Stage is documented in the record and there is no
       documentation of thrombocytopenia

3. Code 5 must be used if primary site not C421

4. Codes 0, 1, 6, 7, and 9 must be used if primary site = C421

Another edit, Thrombocytopenia, Schema ID, Required (NAACCR), checks that the item
is coded by Schema ID if required by a standard setter.

The data item is required for AJCC staging and EOD Derived Stage Group.]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-11" ref="67904">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-27" ref="68860">Added logic for code 5.</event>
            </history>
        </rule>
        <rule id="IFN2746" name="Peripheral Blood Involvement, Date DX (NAACCR)" tag="N2746" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.peripheralBloodInvolvement == null

return line.peripheralBloodInvolvement == null || Functions.matches(line.peripheralBloodInvolvement, /^[0-79]$/)]]></expression>
            <message>Peripheral Blood Involvement is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Peripheral Blood Involvement code or blank: 

    0: Absence of significant blood involvement 
       5% or less peripheral blood lymphocytes are atypical (Sezary) cells
       Clone unknown 
       Stated as B0
    1: Absence of significant blood involvement 
       5% or less of peripheral blood lymphocytes are atypical (Sezary) cells
       Clone negative
       Stated as B0a
   2: Absence of significant blood involvement 
       5% or less of peripheral blood lymphocytes are atypical (Sezary) cells
       Clone positive
       Stated as B0b
   3: Low blood tumor burden 
       More than 5% of peripheral blood lymphocytes are atypical (Sezary) 
       cells 
       Clone unknown
       Stated as B1
   4: Low blood tumor burden; 
       More than 5% of peripheral blood lymphocytes are atypical (Sezary) 
       cells but does not meet the criteria of B2
       Clone negative
       Stated as B1a
   5: Low blood tumor burden 
       More than 5% of peripheral blood lymphocytes are atypical (Sezary) 
       cells but does not meet the criteria of B2
       Clone positive
       Stated as B1b
    6: High blood tumor burden
       Greater than or equal to 1,000 Sezary cells per microliter (uL) 
       Clone positive
       Stated as B2
    7: Test done, results not in chart
    9: Not documented in medical record
       Peripheral Blood Involvement not assessed or unknown if assessed

Another edit, Peripheral Blood Involvement, Schema ID, Required (NAACCR), checks 
that the item is coded by Schema ID if required by a standard setter. 

This data item is required for AJCC staging and EOD Derived Stage Group.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-10" ref="67905">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2747" name="Serum Albumin Pretreatment Level, Date DX (NAACCR)" tag="N2747" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.serumAlbuminPretreatmentLevel == null

return line.serumAlbuminPretreatmentLevel == null || Functions.matches(line.serumAlbuminPretreatmentLevel, /^[01579]$/)]]></expression>
            <message>Serum Albumin Pretreatment Level is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Serum Albumin Pretreatment Level code or blank: 

    0: Serum albumin <3.5 g/dL
    1: Serum albumin >= 3.5 g/dL
    5: Schema Discriminator 1: Plasma Cell Myeloma Terminology coded to 1 or 9
    7: Test done, results not in chart
    9: Not documented in medical record
       Serum albumin Pretreatment Level not assessed or unknown if assessed

Another edit, Serum Albumin Pretreatment Level, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID if required by a standard setter. 

This data item is required for AJCC staging and EOD Derived Stage Group.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-17" ref="67906">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-28" ref="68856">Added logic for code 5</event>
            </history>
        </rule>
        <rule id="IFN2748" name="Serum Beta-2 Microglobulin Pretreatment Level, Date DX (NAACCR)" tag="N2748" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.serumBeta2MicroglobulinPretxLvl == null

return line.serumBeta2MicroglobulinPretxLvl == null || Functions.matches(line.serumBeta2MicroglobulinPretxLvl, /^[0-2579]$/)]]></expression>
            <message>Serum Beta-2 Microglobulin Pretreatment Level is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Serum Beta2-Microglobulin Pretreatment Level code or blank: 

    0: Beta-2 microglobulin < 3.5 mg/L
    1: Beta-2 microglobulin >= 3.5 mg/L < 5.5 mg/L
    2: Beta-2 microglobulin >= 5.5 mg/L
    5: Schema Discriminator 1: Plasma Cell Myeloma Terminology coded to 1 or 9
    7: Test done, results not in chart
    9: Not documented in medical record
       Serum Beta-2 Microglobulin Pretreatment Level not assessed or unknown if 
       assessed

Another edit, Serum Beta2-Microglobulin Pretreatment Level, Schema ID, Required 
(NAACCR), checks that the item is coded by Schema ID if required by a standard 
setter. 

This data item is required for AJCC staging and EOD Derived Stage Group.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-17" ref="67906">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-27" ref="68858">Added logic for code 5</event>
            </history>
        </rule>
        <rule id="IFN2749" name="High Risk Cytogenetics, Date DX (NAACCR)" tag="N2749" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
if (line.dateOfDiagnosisYear < '2018')
    return line.highRiskCytogenetics == null
return line.highRiskCytogenetics == null || Functions.matches(line.highRiskCytogenetics, /^[01579]$/)]]></expression>
            <message>High Risk Cytogenetics is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid High Risk Cytogenetics code or blank:

    0: High risk cytogenetics not identified/not present
    1: High risk cytogenetics present
    5: Schema Discriminator 1: Plasma Cell Myeloma Terminology coded to 1 or 9
    7: Test done, results not in chart
    9: Not documented in medical record;
      High Risk Cytogenetics not assessed or unknown if assessed

Another edit, High Risk Cytogenetics, Schema ID, Required (NAACCR), checks that
the item is coded by Schema ID if required by a standard setter.

This data item is required for AJCC staging and EOD Derived Stage Group.]]></description>
            <history>
                <event version="SE18-018-04" user="smithm" date="2018-08-06" ref="67907">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-20" ref="68851">Added logic for code 5.</event>
            </history>
        </rule>
        <rule id="IFN2750" name="LDH Level, Date DX (NAACCR)" tag="N2750" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.ldhPretreatmentLevel == null
if (line.ldhPretreatmentLevel == '5')
    return line.schemaId == '00821'
else
    return line.ldhPretreatmentLevel == null || Functions.matches(line.ldhPretreatmentLevel, /^[0179]$/)]]></expression>
            <message>LDH Level is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid LDH Level code or blank:

    0: Normal LDH level
       Low, below normal 
    1: Above normal LDH level; High
    5: Schema Discriminator 1: Plasma Cell Myeloma Terminology coded to 1 or 9
    7: Test done, results not in chart
    9: Not documented in medical record 
       LDH Level not assessed or unknown if assessed

3. If LDH Level = 5, Schema ID must = 00821

Other edits, LDH Level, Melanoma, Schema ID, Required (NAACCR),
and LDH Level, Myeloma, Schema ID, Required (NAACCR) check that
the item is coded by Schema ID if required by a standard setter.

This data item is required for AJCC staging for Myeloma, and EOD Derived Stage 
Group for Melanoma of Skin and Myeloma.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-25" ref="67908">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-30" ref="68416">Change variable name in description.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-27" ref="68814">Added logic for code 5</event>
            </history>
        </rule>
        <rule id="IFN2760" name="Schema Discriminator 1, Date DX (NAACCR)" tag="N2760" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.schemaDiscriminator1 != null)
    return false

return  line.schemaDiscriminator1 == null || Functions.matches(line.schemaDiscriminator1, /^[0-79]$/)]]></expression>
            <message>Schema Discriminator 1 is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if date of diagnosis is blank or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Schema Discriminator 1 code

    0
    1
    2
    3
    4
    5
    6
    7
    9
   blank

Other edits for Schema Discriminator 1 check for appropriate codes by Schema ID
and AJCC ID.  This data item is used in determining Schema IDs and AJCC IDs and
is required by all standard setters.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67784">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2802" name="Grade Clin,Path,PostTX, Date of Diagnosis (NAACCR)" tag="N2802" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.gradeClinical == null && line.gradePathological == null && line.gradePostTherapy == null

return line.gradeClinical != null && line.gradePathological != null]]></expression>
            <message>Grade Clin,Path,PostTX is not valid for Date DX</message>
            <description><![CDATA[This edit is skipped if date of diagnosis = blank (unknown) or invalid.

1. Grade Clinical, Grade Pathological, and Grade Post Therapy must be blank 
   if diagnosis date pre-2018.

2. Grade Clinical must not be blank if diagnosis date 2018+.
    
3. Grade Pathological must not be blank if diagnosis date 2018+.

4. Grade Post Therapy may be blank if diagnosis date 2018+.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-09" ref="67926">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2803" name="Grade, Schema ID (NAACCR)" tag="N2803" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null)
    return true

if (line.gradeClinical == null && line.gradePathological == null)
    return true

List validCodes = (List)((Map)Context.IFN2803_Table).get(line.schemaId)
if (validCodes == null)
    return true

boolean isClinValid = line.gradeClinical == null || validCodes.contains(line.gradeClinical)
boolean isPathValid = line.gradePathological == null || validCodes.contains(line.gradePathological)
boolean isPostTxValid = line.gradePostTherapy == null || validCodes.contains(line.gradePostTherapy)
boolean isPostTxClinValid = line.gradePostTherapyClin == null || validCodes.contains(line.gradePostTherapyClin)

return isClinValid && isPathValid && isPostTxValid && isPostTxClinValid]]></expression>
            <message>Grade Clin,Path,PostTX and Schema ID conflict</message>
            <description><![CDATA[This edit checks that the four grade data items, Grade Clinical, Grade Pathological, Grade Post Therapy Clin (yc), and Grade Post Therapy Path (yp), are correct by Schema ID.  The grade data items may be blank because they are not required before 2018.  Grade Clinical and Grade Pathological are required for cases diagnosed 2018 and later. Grade Post Therapy Clin (yc) and Grade PostTherapy Path (yp) may be blank for cases diagnosed 2018 and later.  Another edit, Grade Clin, Path, PostTX, Date of Diagnosis (NAACCR), checks that the grade data items are reported by diagnosis date.

The edit is skipped if any of the following conditions are true:
   a. Date of diagnosis is pre-2018, blank or invalid
   b. Grade Clinical and Grade Pathological are both blank
   c. Schema ID is blank

The allowable values for Grade Clinical, Grade Pathological, Grade Post Therapy Clin (yc), and Grade Post Therapy Path (yp) are listed by Schema ID.  The values are the same for the four grade items. The sites and histologies for each schema are listed in the edit _SYS Schema ID, Primary Site, Histology, Behavior (NAACCR).


00060       Cervical Lymph Nodes and Unknown Primary Tumors of the Head and Neck

    Grade: 9

00071       Lip
00072       Tongue Anterior
00073       Gum
00074       Floor of Mouth
00075       Palate Hard
00076       Buccal Mucosa
00077       Mouth Other

    Grade: 1, 2, 3, 9


00080       Major Salivary Glands

    Grade: A, B, C, D, 9


00090       Nasopharynx

    Grade: A, B, C, D, 9


00100   HPV-Mediated (p16+) Oropharyngeal Cancer

    Grade: A, B, C, D, 9


00111        Oropharynx (p16-)
00112        Hypopharynx

    Grade: 1, 2, 3, 4, 9


00118       Pharynx Other

    Grade: A, B, C, D, 9


00119   Middle Ear
    Grade: A, B, C, D, 9


00121        Maxillary Sinus
00122        Nasal Cavity and Ethmoid Sinus

    Grade: 1, 2, 3, 9


00128        Sinus Other

    Grade: A, B, C, D, 9


00130       Larynx Other
00131       Larynx Supraglottic
00132       Larynx Glottic
00133       Larynx Subglottic

    Grade: 1, 2, 3, 9


00140       Mucosal Melanoma of the Head and Neck

    Grade: A, B, C, D, 9


00150       Cutaneous Carcinoma of the Head and Neck

    Grade: 1, 2, 3, 4, 9


000161      Esophagus and Esophagogastric Junction (Squamous)

    Grade: 1, 2, 3, 9


00169       Esophagus and GE Junction (Adenocarcinoma and Other)

    Grade: 1, 2, 3, 9


00170       Stomach

    Grade: 1, 2, 3, 9


00180       Small Intestine

    Grade: 1, 2, 3, 4, 9


00190       Appendix [8th: 2018-2022]

    Grade: 1, 2, 3, 9


09190       Appendix [V9: 2023+]

    Grade: 1, 2, 3, 9


00200       Colon and Rectum

    Grade: 1, 2, 3, 4, 9


00210        Anus [8th: 2018-2022]

    Grade: 1, 2, 3, 4, L, H, 9


09210        Anus [V9: 2023+]

    Grade: 1, 2, 3, 4, L, H, 9


00220       Liver

    Grade: 1, 2, 3, 4, 9


00230       Bile Ducts Intrahepatic

    Grade: 1, 2, 3, 9


00241       Gallbladder
00242       Cystic Duct

    Grade: 1, 2, 3, 9


00250       Bile Ducts Perihilar

    Grade: 1, 2, 3, 9


00260       Bile Ducts Distal

    Grade: 1, 2, 3, 9


00270       Ampulla of Vater

    Grade: 1, 2, 3, 9


00278       Biliary Other

    Grade: A, B, C, D, 9


00280       Pancreas

    Grade: 1, 2, 3, 9


00288       Digestive Other

    Grade: A, B, C, D, 9


00290       NET Stomach [8th: 2018-2023]

    Grade: 1, 2, 3, A, B, C, D, 9


09290       NET Stomach [V9: 2024+]

    Grade: 1, 2, 3, A, B, C, D, 9


00301       NET Duodenum [8th: 2018-2023]

    Grade: 1, 2, 3, A, B, C, D, 9


09301       NET Duodenum [V9: 2024+]

    Grade: 1, 2, 3, A, B, C, D, 9


00302       NET Ampulla of Vater [8th: 2018-2023]

    Grade: 1, 2, 3, A, B, C, D, 9


09302       NET Ampulla of Vater [V9: 2024+]

    Grade: 1, 2, 3, A, B, C, D, 9


00310       NET Jejunum and Ileum [8th: 2018-2023]

    Grade: 1, 2, 3, A, B, C, D, 9


09310       NET Jejunum and Ileum [V9: 2024+]

    Grade: 1, 2, 3, A, B, C, D, 9


00320       NET Appendix [8th: 2018-2023]

    Grade: 1, 2, 3, A, B, C, D, 9


09320       NET Appendix [V9: 2024+]

    Grade: 1, 2, 3, A, B, C, D, 9


00330       NET Colon and Rectum [8th: 2018-2023]

    Grade: 1, 2, 3, A, B, C, D, 9


09330       NET Colon and Rectum [V9: 2024+]

    Grade: 1, 2, 3, A, B, C, D, 9


00340       NET Pancreas [8th: 2018-2023]

    Grade: 1, 2, 3, A, B, C, D, 9


09340       NET Pancreas [V9: 2024+]

    Grade: 1, 2, 3, A, B, C, D, 9


00350       Thymus

    Grade: A, B, C, D, 9


00358       Trachea

    Grade: A, B, C, D, 9


00360       Lung

    Grade: 1, 2, 3, 4, 9


00370       Pleura

    Grade: 1, 2, 3, 4, 9


00378       Respiratory Other

    Grade: A, B, C, D, 9


00381       Bone Appendicular
00382       Bone Spine
00383       Bone Pelvis

    Grade: 1, 2, 3, H, 9


00400       Soft Tissues Head and Neck

    Grade: 1, 2, 3, A, B, C, D, H, 9


00410       Soft Tissue Trunk and Extremities

    Grade: 1, 2, 3, A, B, C, D, H, 9


00421       Soft Tissue Abdomen and Thorax
00422       Heart, Mediastinum, Pleura

    Grade: 1, 2, 3, A, B, C, D, H, 9


00430       Gastrointestinal Stromal Tumor (GIST)

    Grade: L, H, A, B, C, D, 9


00440       Retroperitoneum

    Grade: 1, 2, 3, A, B, C, D, H, 9


00450       Soft Tissue Rare

    Grade: 1, 2, 3, A, B, C, D, H, 9


00458       Kaposi Sarcoma

    Grade: 1, 2, 3, A, B, C, D, H, 9


00459       Soft Tissue Other

    Grade: 1, 2, 3, A, B, C, D, H, 9


00460       Merkel Cell Skin

    Grade: A, B, C, D, 9


00470       Melanoma Skin

    Grade: A, B, C, D, 9


00478       Skin Other

    Grade: A, B, C, D, 9


00480       Breast

    Grade: 1, 2, 3, L, M, H, A, B, C, D, 9


00500       Vulva [8th: 2018-2023]

    Grade: 1, 2, 3, 9


09500       Vulva [V9: 2024+]

    Grade: 1, 2, 3, 9


00510       Vagina

    Grade: 1, 2, 3, 9


00520       Cervix Uteri [8th: 2018-2020]

    Grade: 1, 2, 3, 9


09520       Cervix Uteri [V9: 2021+]

    Grade: 1, 2, 3, 9


00528       Cervix Sarcoma [2021+]

    Grade: 1, 2, 3, 9


00530       Corpus Carcinoma and Carcinosarcoma

    Grade: 1, 2, 3, 9


00541       Corpus Sarcoma

    Grade: 1, 2, 3, 9


00542       Corpus Adenosarcoma

    Grade: 1, 2, 3, L, H, S, 9


00551       Ovary
00552       Primary Peritoneal Carcinoma
00553       Fallopian Tube

    Grade: 1, 2, 3, B, L, H, 9


00558       Adnexa Uterine Other

    Grade: A, B, C, D, 9


00559       Genital Female Other

    Grade: A, B, C, D, 9


00560       Placenta

    Grade: A, B, C, D, 9


00570       Penis

    Grade: 1, 2, 3, 9


00580       Prostate

    Grade: 1, 2, 3, 4, 5, A, B, C, D, E, 9


00590       Testis

    Grade: A, B, C, D, 9


00598       Genital Male Other

    Grade: A, B, C, D, 9


00600       Kidney Parenchyma

    Grade: 1, 2, 3, 4, A, B, C, D, 9


00610       Kidney Renal Pelvis

    Grade: 1, 2, 3, L, H, 9


00620       Urinary Bladder

    Grade: 1, 2, 3, L, H, 9


00631       Urethra
00633       Urethra-Prostatic

    Grade: 1, 2, 3, L, H, 9


00638       Urinary Other

    Grade: A, B, C, D, 9


00640       Skin Eyelid

    Grade: 1, 2, 3, 4, 9


00650       Conjunctiva

    Grade: 1, 2, 3, 4, 9


00660        Melanoma Conjunctiva

    Grade: A, B, C, D, 9


00671       Melanoma Iris
00672       Melanoma Choroid and Ciliary Body

    Grade: 1, 2, 3, A, B, C, D, 9


00680       Retinoblastoma

    Grade: 1, 2, 3, 4, A, B, C, D, 9


00690       Lacrimal Gland

    Grade: 1, 2, 3, 4, 9


00698       Lacrimal Sac

    Grade: A, B, C, D, 9


00700       Orbital Sarcoma

    Grade: 1, 2, 3, A, B, C, D, H, 9


00710       Lymphoma Ocular Adnexa

    Grade: 1, 2, 3, 4, 9


00718       Eye Other

    Grade: A, B, C, D, 9


00721       Brain and Spinal Cord [8th: 2018-2022]
00722       CNS Other [8th: 2018-2022]
00723       Intracranial Gland [8th: 2018-2022]

    Grade: 1, 2, 3, 4, L, H, A, B, C, D, 9

09721       Brain and Spinal Cord Other [V9: 2023+]
09722       CNS Other [V9: 2023+]
09723       Intracranial Gland [V9: 2023+]
09724       Brain and Spinal Cord Medulloblastoma [V9: 2023+]

    Grade: 1, 2, 3, 4, L, H, A, B, C, D, 9


00730       Thyroid

    Grade: A, B, C, D, 9


00740       Thyroid Medullary

    Grade: A, B, C, D, 9


00750       Parathyroid

    Grade: L, H, A, B, C, D, 9


00760       Adrenal Gland

    Grade: L, H, M, A, B, C, D, 9


00770       NET Adrenal

    Grade: A, B, C, D, 9


00778       Endocrine Other

    Grade: A, B, C, D, 9


00790       Lymphoma
00795       Lymphoma-CLL/SLL

    Grade: 8


00811       Mycosis Fungoides
00812       Primary Cutaneous Lymphomas (excluding Mycosis Fungoides)

    Grade: 8


00821       Plasma Cell Myeloma
00822       Plasma Cell Disorder

    Grade: 8


00830       HemeRetic

    Grade: 8


99999       Ill-Defined Other

    Grade: A, B, C, D, 9]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-13" ref="67946">Edit created.</event>
                <event version="SE18-018-04" user="kirbyk" date="2018-08-08" ref="67985">Updated names for schemas 00821 and 00822 in description.</event>
                <event version="SE18-018-05" user="kirbyk" date="2018-08-17" ref="68020">Changed schema name for 00150.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-13" ref="68832">Updated names for schemas 00450 and 00520 in the description, added 00459, 00528, and 09520 to the list</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-06" ref="69130">Updated grade codes for multiple schemas and added schema IDs 09190, 09210, and 09721-4</event>
                <event version="SE24-024-01" user="kirbyk" date="2024-03-13" ref="69404">Added new schema IDs; added Grade Post Therapy Clin.</event>
            </history>
        </rule>
        <rule id="IFN2811" name="CoC Accredited Flag, Date DX, Type Report Source (NAACCR)" tag="N2811" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018')
    return true

if (line.typeOfReportingSource != '7')
    return line.cocAccreditedFlag != null

return line.cocAccreditedFlag == null]]></expression>
            <message>CoC Accredited Flag cannot be blank for non-DCO cases diagnosed 2018+, DCO cases must be blank.</message>
            <description><![CDATA[1. This edit is skipped for Date of diagnosis before 2018, blank (unknown), or
   invalid.

2. This data item must not be blank for 2018+ date of diagnosis if Type of
   Reporting Source not = 7.

3. CoC Accredited Flag must be blank for DCO cases, Type of Reporting Source = 7.]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-06" ref="68156">Edit created.</event>
                <event version="SE18-019-05" user="kirbyk" date="2019-09-27" ref="68256">Edit now runs on cases diagnosed 2018+.</event>
                <event version="SE18-019-06" user="kirbyk" date="2019-10-22" ref="68264">Fixed year in error message to match previous change.</event>
                <event version="SE18-020-04" user="beverung" date="2020-06-18" ref="68359">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN2814" name="_SYS Schema ID, AJCC ID (NAACCR)" tag="N2814" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.ajccId == null || line.schemaId == null || line.dateOfDiagnosisYear == null)
    return true
return ((List)(((Map)Context.SchemaIdAjccIdTable).getOrDefault(line.schemaId, []))).contains(line.ajccId)]]></expression>
            <message>Schema ID and AJCC ID are incompatible.</message>
            <description><![CDATA[_SYS in edit name indicates an edit on system-generated data items.  The edit is
intended for use by software vendors in testing the accuracy of algorithms used
to assign Schema ID and AJCC ID, and for use by central registries in verifying
the quality of submitted data.

This edit verifies that the data items Schema ID, used to identify site/
histology schemas for EOD and site-specific data item (SSDI) assignment, and AJCC
ID, used to identify site/histology schemas by chapter for AJCC staging, are
consistent in their designations.  If there is an edit failure, the problem most
likely is a registry software issue, as both these fields are derived from coding
of primary site, histology, and schema discriminator(s) if required; they are not
directly coded data items.

The edit is skipped if Schema ID or AJCC ID is blank. Other edits check
that these fields are left blank for pre-2018 cases and are assigned for 2018 and
later cases by standard setter requirements. Schema ID and AJCC ID are required
fields for 2018 and later.

The edit is skipped if date of diagnosis blank (unknown), or invalid.

The list of Schema IDs by site and histology with corresponding AJCC IDs is
included in the edit _SYS Schema ID, Primary Site, Histology, Behavior (NAACCR).]]></description>
            <history>
                <event version="SE18-018-10" user="kirbyk" date="2018-12-05" ref="68064">Edit created.</event>
                <event version="SE18-018-11" user="kirbyk" date="2019-01-04" ref="68081">Fixed table values.</event>
                <event version="SE21-021-02" user="kirbyk" date="2021-01-26" ref="68555">Added Schema ID = 09520 to the table.</event>
                <event version="SE21-021-03" user="smithm" date="2021-03-02" ref="68586">Added DX Year skip conditions. Allowed schema ID 00421 with AJCC ID 41 or 42 for some cases.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-31" ref="68724">Updated error message.</event>
                <event version="SE22-022-01" user="smithm" date="2022-02-04" ref="68870">Remove skip condition for 00421</event>
                <event version="SE22-022-01" user="kirbyk" date="2022-03-09" ref="68916">Updated table for Schema IDs 00459 and 00528.</event>
                <event version="SE23-023-02" user="kirbyk" date="2023-04-17" ref="69245">Added new schemas to table for 2023.</event>
                <event version="SE24-024-02" user="kirbyk" date="2024-03-21" ref="69444">Updated Schema IDs and AJCC IDs in table for 2024.</event>
                <event version="SE24-024-03" user="kirbyk" date="2024-03-27" ref="69445">Fixed AJCC IDs in table for 2024.</event>
            </history>
        </rule>
        <rule id="IFN2816" name="_SYS Schema ID (NAACCR)" tag="N2816" java-path="lines.line" category="field">
            <expression><![CDATA[if (line.schemaId == null)
    return true

return ((Map)Context.SchemaIdAjccIdTable).containsKey(line.schemaId)]]></expression>
            <message>Schema ID is invalid.</message>
            <description><![CDATA[_SYS in edit name indicates an edit on system-generated data items.  The edit is
intended for use by software vendors in testing the accuracy of algorithms used
to assign Schema ID, and for use by central registries in verifying the quality
of submitted data.

This edit checks that the Schema ID assigned to the case is a valid code. If
there is an edit failure, the problem most likely is a registry software issue,
as this data item is derived from coding of primary site, histology, and schema
discriminator(s) if required; it is not directly coded.

The Schema ID is assigned to schemas for EOD coding based on site, histology, and
schema discriminator if required.  The Schema ID is related in format to the AJCC
ID but covers all combinations of site/histology including those not staged by
AJCC.  The Schema ID is also used to identify the site/histology combinations that
are assigned Site-Specific Data Items (SSDI).

Another edit, _SYS Schema ID, Primary Site, Histology, Behavior (NAACCR), checks
that the Schema ID assigned is valid for the coded site, histology, behavior, and
schema discriminator(s) if required. The edit, _SYS Schema ID, Date of Diagnosis
(NAACCR), checks that the data item is collected appropriately for diagnosis year.

The edit is skipped if Schema ID is blank]]></description>
            <history>
                <event version="SE18-018-10" user="kirbyk" date="2018-12-05" ref="68064">Edit created.</event>
                <event version="SE21-021-02" user="kirbyk" date="2021-01-26" ref="68555">Added Schema ID = 09520 to the table.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-31" ref="68724">Updated error message.</event>
                <event version="SE22-022-01" user="kirbyk" date="2022-03-09" ref="68916">Updated table for Schema IDs 00459 and 00528.</event>
                <event version="SE23-023-02" user="kirbyk" date="2023-04-17" ref="69245">Added new schemas to table for 2023.</event>
                <event version="SE24-024-02" user="kirbyk" date="2024-03-21" ref="69444">Updated Schema IDs in table for 2024.</event>
            </history>
        </rule>
        <rule id="IFN2822" name="_SYS AJCC ID, Date of Diagnosis (NAACCR)" tag="N2822" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[ if (line.dateOfDiagnosisYear == null)
            return true
if (line.dateOfDiagnosisYear < '2018' && line.ajccId != null)
    return false
else if (line.dateOfDiagnosisYear >= '2018' && line.ajccId == null)
    return false
else if (line.dateOfDiagnosisYear < '2021' && line.ajccId == '9001')
    return false
else if (line.dateOfDiagnosisYear < '2023' && Functions.matches(line.ajccId, /^(900[2-5])$/))
    return false
else if (line.dateOfDiagnosisYear < '2024' && Functions.matches(line.ajccId, /^(900[6-9]|901[0-2])$/))
    return false
else if (line.dateOfDiagnosisYear >= '2021' && line.ajccId == '52')
    return false
else if (line.dateOfDiagnosisYear >= '2023' && Functions.matches(line.ajccId, /^(19|21|72)$/))
    return false
else if (line.dateOfDiagnosisYear >= '2024' && Functions.matches(line.ajccId, /^(29|3[0-4]|50)$/))
    return false
return true]]></expression>
            <message>AJCC ID must be blank for cases diagnosed before 2018</message>
            <description><![CDATA[_SYS in edit name indicates an edit on system-generated data items. The edit is intended for use by software vendors in testing the accuracy of algorithms used to assign AJCC ID, and for use by central registries in verifying the quality of submitted data.

The edit checks that AJCC ID is blank for pre-2018 diagnoses and is coded for 2018 and later diagnoses.

The edit checks the following:
    AJCC ID 9001 is assigned for 2021+ diagnoses only.
    AJCC IDS 9002, 9003, 9004, and 9005 are assigned for 2023+ diagnoses only.
    AJCC IDs 9006 - 9012 are assigned for 2024+ diagnoses only.
    AJCC ID 52 is assigned for 2018-2020 diagnoses only.
    AJCC IDs 19, 21, and 72 are assigned for 2018-2022 diagnoses only.
    AJCC IDs 29, 30, 31, 32, 33, 34, and 50 assigned for 2018-2023 diagnoses only.

Another edit, _SYS AJCC ID, Primary Site, Histology, Behavior (NAACCR), checks that the AJCC ID is assigned correctly by primary site, histology, and behavior for 2018+ diagnoses.]]></description>
            <history>
                <event version="SE22-022-01" user="secristc" date="2022-02-23" ref="68903">Edit created.</event>
                <event version="SE23-023-02" user="shearerw" date="2023-05-02" ref="69246">Update what schemas are valid before and after 2023.</event>
                <event version="SE24-024-01" user="cooki" date="2024-03-14" ref="69385">Updated description and logic to match V24.</event>
            </history>
        </rule>
        <rule id="IFN2823" name="_SYS Schema ID, Date of Diagnosis (NAACCR)" tag="N2823" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.schemaId == null
else if (line.schemaId == null)
    return false

if (line.schemaId == '00520')
    return line.dateOfDiagnosisYear >= '2018' && line.dateOfDiagnosisYear <= '2020'

if ((line.schemaId == '09520' || line.schemaId == '00528') && line.dateOfDiagnosisYear < '2021')
    return false

if (line.dateOfDiagnosisYear < '2023') {
    if (Functions.matches(line.schemaId, /^0972[1234]|09190|09210$/))
        return false
}
else if (Functions.matches(line.schemaId, /^0072[123]|00190|00210$/))
    return false

return true]]></expression>
            <message>Schema ID must be blank for cases diagnosed before 2018 and must not be blank for cases diagnosed 2018+.</message>
            <description><![CDATA[_SYS in edit name indicates an edit on system-generated data items.  The edit is
intended for use by software vendors in testing the accuracy of algorithms used
to assign Schema ID, and for use by central registries in verifyingthe quality of
submitted data.

The edit checks that Schema ID is blank for pre-2018 diagnoses and is coded for
2018 and later diagnoses.

The edit checks that Schema ID 00520 is assigned for 2018-2020 diagnoses only.

The edit checks that Schema IDs 00528 and 09520 are assigned for 2021+ diagnoses only.

The edit checks that Schema ID 09721, 09722, 09723, 09724, 09190 09210 are assigned for 2023+ diagnoses only.

The edit checks that Schema IDs 00721, 00722, 00723, 00190, 00210 are not assigned for 2023+ diagnoses.

Another edit, _SYS Schema ID, Primary Site, Histology, Behavior (NAACCR), checks that
the Schema ID is assigned correctly by primary site, histology, and behavior for
2018+ diagnoses.]]></description>
            <history>
                <event version="SE18-018-10" user="kirbyk" date="2018-12-03" ref="68067">Edit created.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-15" ref="68173">Changed error message.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-28" ref="68371">Add logic to verify that schema ID = 09520 is only assigned to 2021+ cases.</event>
                <event version="SE21-021-03" user="smithm" date="2021-03-01" ref="68587">Add logic to verify that Schema ID 00520 is assigned for 2018-2020 diagnoses only.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-13" ref="68829">Add logic to verify that Schema ID = 00528 is only assigned for 2021+ cases.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-24" ref="69196">Add logic for Schema IDs that should and should not be assigned for 2023+ cases.</event>
            </history>
        </rule>
        <rule id="IFN2827" name="Derived Summary Stage 2018, Date of DX (SEER)" tag="N2827" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.registryId == '0000001563' && line.dateOfDiagnosisYear == '2018')
    return true
if ('0000001565' == line.registryId && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if ('0000001566' == line.registryId && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.derivedSummaryStage2018 == null

return line.derivedSummaryStage2018 != null]]></expression>
            <message>Conflict between Date of Diagnosis and Derived items</message>
            <description><![CDATA[The purpose of this edit is to verify that Derived Summary Stage 2018 required
by SEER is calculated (not blank) for cases diagnosed 2018 and later.

This edit is skipped if year of Date of Diagnosis is blank or invalid.

This edit is skipped if Date of Diagnosis is 2018 and Registry ID = 0000001563 (Massachusetts)
This edit is skipped if Date of Diagnosis is 2018-2022 and Registry ID = 0000001565 (Illinois)
This edit is skipped if Date of Diagnosis is 2018-2021 and Registry ID = 0000001566 (Texas)

1. If year of Date of Diagnosis is pre-2018, then Derived Summary Stage 2018 must
    be blank.

2. If year of Date of Diagnosis is 2018+, then Derived Summary Stage 2018 must not
    be blank.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-29" ref="67785">Edit created.</event>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-20" ref="67961">Removed unnecessary dependency.</event>
                <event version="SE21-021-03" user="smithm" date="2021-03-03" ref="68597">Added skip condition for MA cases diagnosed in 2018.</event>
                <event version="SE21-021-07" user="kirbyk" date="2021-07-20" ref="68692">Added skip condition for IL and TX cases diagnosed 2018-2020.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68987">Updated skip condition for IL cases diagnosed 2018-2022, for TX cases diagnosed 2018-2021.</event>
            </history>
        </rule>
        <rule id="IFN2833" name="Sentinel Lymph Nodes Examined, Regional Nodes Examined (COC)" tag="N2833" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.sentinelLymphNodesExamined == null || line.regionalNodesExamined == null)
    return true
    
if (line.regionalNodesExamined == '00')
    return line.sentinelLymphNodesExamined == '00'
else if (line.regionalNodesExamined == '95')
    return line.sentinelLymphNodesExamined == '95' || line.sentinelLymphNodesExamined == '00'
else if (line.sentinelLymphNodesExamined >= '01' && line.sentinelLymphNodesExamined <= '90') 
    return ((line.regionalNodesExamined >= '01' && line.regionalNodesExamined <= '90' && line.sentinelLymphNodesExamined <= line.regionalNodesExamined) || line.regionalNodesExamined >= '96' && line.regionalNodesExamined <= '98')
else if (line.sentinelLymphNodesExamined == '98') 
    return ((line.regionalNodesExamined >= '01' && line.regionalNodesExamined <= '90') || (line.regionalNodesExamined >= '96' && line.regionalNodesExamined <= '98'))     
else if (line.sentinelLymphNodesExamined == '95')
    return ((line.regionalNodesExamined >= '01' && line.regionalNodesExamined <= '90') || (line.regionalNodesExamined >= '95' && line.regionalNodesExamined <= '98'))

return true]]></expression>
            <message>Sentinel Lymph Nodes Examined conflicts with Regional Nodes Examined</message>
            <description><![CDATA[This edit checks that Sentinel Lymph Nodes Examined and Regional Nodes Examined 
are coded consistently with each other. 

This edit is skipped if:
1. Sentinel Lymph Nodes Examined is blank
2. Regional Nodes Examined is blank


1.  If Regional Lymph Nodes Examined = 00 (no regional nodes examined), 
    Sentinel Lymph Nodes Examined must = 00 (no sentinel nodes examined).

2.  If Regional Lymph Nodes Examined = 95 (aspiration or core biopsy of
    regional nodes only), 
    Sentinel Lymph Nodes Examined must = 00 (no sentinel nodes examined) or 
    95 (aspiration of sentinel nodes).

3.  If Sentinel Lymph Nodes Examined = 01-90 (number of sentinel nodes
    examined), 
    Regional Nodes Examined must = 01-90 (number of regional nodes examined) and 
    be greater than or equal to Sentinel Lymph Nodes Examined, or = 96-98 
    (regional nodes examined, unknown number). 

4.  If Sentinel Lymph Nodes Examined = 98 (sentinel nodes examined, unknown 
    number), 
    Regional Nodes Examined must = 01-90 (number of regional nodes examined)
     or = 96-98 (regional nodes examined, unknown number).

5.  If Sentinel Lymph Nodes Examined = 95 (aspiration of sentinel nodes), 
    Regional Nodes Examined must = 01-90 (number of nodes examined), 95 
    (aspiration or core biopsy of nodes only), or 96-98 (regional nodes examined, 
    unknown number).]]></description>
            <history>
                <event version="SE18-018-02" user="schadega" date="2018-05-30" ref="67783">Edit created.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IFN2834" name="Sentinel Lymph Nodes Positive, Regional Nodes Positive (COC)" tag="N2834" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.sentinelLymphNodesPositive == null || line.regionalNodesPositive == null)
    return true

if (line.regionalNodesPositive == '00')
    return line.sentinelLymphNodesPositive == '00' || line.sentinelLymphNodesPositive == '98'
else if (line.regionalNodesPositive == '95')
    return line.sentinelLymphNodesPositive == '95' || line.sentinelLymphNodesPositive == '00' || line.sentinelLymphNodesPositive == '98'
else if (line.sentinelLymphNodesPositive >= '01' && line.sentinelLymphNodesPositive <= '90')
    return (line.regionalNodesPositive >= '01' && line.regionalNodesPositive <= '90' && line.sentinelLymphNodesPositive <= line.regionalNodesPositive) || line.regionalNodesPositive == '97'
else if (line.sentinelLymphNodesPositive == '95')
    return Functions.matches(line.regionalNodesPositive, /^0[1-9]|[1-8]\d|9[057]$/)
else if (line.sentinelLymphNodesPositive == '97')
    return Functions.matches(line.regionalNodesPositive, /^0[1-9]|[1-8]\d|9[07]$/)

return true]]></expression>
            <message>Sentinel Lymph Nodes Positive conflicts with Regional Nodes Positive.</message>
            <description><![CDATA[This edit checks that Sentinel Lymph Nodes Positive and Regional Nodes Positive
are coded consistently with each other.

This edit is skipped if:
1. Sentinel Lymph Nodes Positive is blank
2. Regional Nodes Positive is blank


1.  If Regional Lymph Nodes Positive = 00 (no regional nodes positive),
    Sentinel Lymph Nodes Positive must = 00 (no sentinel nodes positive) or 98 (No sentinel nodes were biopsied).

2.  If Regional Lymph Nodes Positive = 95 (positive aspiration or core biopsy),
    Sentinel Lymph Nodes Positive must = 00 (no sentinel nodes positive) or 95
    (positive aspiration of sentinel nodes) or 98 (No sentinel nodes were biopsied).

3.  If Sentinel Lymph Nodes Positive = 01-90 (number of positive sentinel nodes),
    Regional Nodes Positive must = 01-90 (number of positive regional nodes) and
    be greater than or equal to Sentinel Lymph Nodes Positive), or = 97
    (positive regional nodes).

4.  If Sentinel Lymph Nodes Positive = 95 (positive aspiration of sentinel nodes),
    Regional Nodes Positive must = 01-90 (number of positive regional nodes), 95
    positive aspiration of regional nodes), or 97 (positive regional nodes).

5.  If Sentinel Lymph Nodes Positive = 97 (97 (positive sentinel nodes, unknown
    number; or for breast only, sentinel lymph node biopsy and regional node
    dissection occurred in same procedure)),
    Regional Nodes Positive must = 01-90 (number of positive nodes), or 97
    (positive regional nodes).]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-31" ref="67786">Edit created.</event>
                <event version="SE18-018-03" user="schadega" date="2018-07-25" ref="67973">Allow Sentinel Nodes to be 98 if Regional Nodes is 00 or 95.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-03-03" ref="69210">Stop allowing Regional Nodes to be 98 if Sentinel Nodes is 01-90, 95, or 97</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IFN2836" name="Sentinel Lymph Nodes Ex, Reg Nodes Ex, Date RLN Dissection (NAACCR)" tag="N2836" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.sentinelLymphNodesExamined == null || line.regionalNodesExamined == null)
    return true

if (line.schemaId != '00470' && line.schemaId != '00480')
    return true

String sentinelNodes = line.sentinelLymphNodesExamined
String regionalNodes = line.regionalNodesExamined
if (sentinelNodes == regionalNodes && sentinelNodes != '00' && sentinelNodes != '95' && sentinelNodes != '98' && sentinelNodes != '99')
    return line.dateRegionalLNDissectionYear == null

return true]]></expression>
            <message>If Sentinel Lymph Nodes Examined = Regional Nodes Examined, Date Regional Lymph Node Dissection must be blank and Date Regional Lymph Node Dissection Flag indicate reason why.</message>
            <description><![CDATA[This edit checks that Date Regional Lymph Node Dissection is blank if Sentinel Lymph Nodes
Examined and Regional Nodes Examined are the same numeric value. If Sentinel
Lymph Nodes Examined equals Regional Nodes Examined, only a Sentinel Node Biopsy
should have been performed; there would be no date to record for Regional Lymph
Node Dissection.

1. This edit is skipped if:
   a. Sentinel Lymph Nodes Examined is blank
   b. Regional Nodes Examined is blank
   c. Date of diagnosis is less than 2019, blank (unknown), or invalid.
   d. Schema ID is not 00470 (Melanoma of Skin) or 00480 (Breast)

2. If number of Sentinel Lymph Nodes Examined = number of Regional Nodes Examined,
   and number of Sentinel Nodes examined > 00 and number of Regional Nodes
   Examined > 00 and number of Sentinel Nodes Examined does not = 95, 98, or 99,
   Date Regional Lymph Node Dissection must be blank.]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-23" ref="69194">Remove references to Date Regional Lymph Node Dissection Flag.</event>
            </history>
        </rule>
        <rule id="IFN2838" name="CS Items, DX Post 2017 (CS)" tag="N2838" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear <= '2017')
    return true
    
if (line.csTumorSize != null || line.csExtension != null || line.csTumorSizeExtEval != null || line.csLymphNodes != null || 
    line.csLymphNodesEval != null || line.csMetsAtDx != null || line.csMetsAtDxBone != null || line.csMetsAtDxBrain != null || 
    line.csMetsAtDxLiver != null || line.csMetsAtDxLung != null || line.csMetsEval != null ||
    line.csSiteSpecificFactor1 != null || line.csSiteSpecificFactor2 != null || line.csSiteSpecificFactor3 != null ||
    line.csSiteSpecificFactor4 != null || line.csSiteSpecificFactor5 != null || line.csSiteSpecificFactor6 != null ||
    line.csSiteSpecificFactor7 != null || line.csSiteSpecificFactor8 != null || line.csSiteSpecificFactor9 != null ||
    line.csSiteSpecificFactor10 != null || line.csSiteSpecificFactor11 != null || line.csSiteSpecificFactor12 != null || 
    line.csSiteSpecificFactor13 != null || line.csSiteSpecificFactor14 != null ||line.csSiteSpecificFactor15 != null ||
    line.csSiteSpecificFactor16 != null || line.csSiteSpecificFactor17 != null || line.csSiteSpecificFactor18 != null || 
    line.csSiteSpecificFactor19 != null || line.csSiteSpecificFactor20 != null || line.csSiteSpecificFactor21 != null || 
    line.csSiteSpecificFactor22 != null || line.csSiteSpecificFactor23 != null || line.csSiteSpecificFactor24 != null || 
    line.csSiteSpecificFactor25 != null)
   return false

return true]]></expression>
            <message>CS Items and Date DX conflict for 2018+</message>
            <description><![CDATA[If year of Date of Diagnosis is blank or invalid, this edit is skipped.

If year of Date of Diagnosis is greater than 2017, then the following CS data items
must be blank:

    CS Tumor Size
    CS Extension
    CS Tumor Size/Ext Eval
    CS Lymph Nodes
    CS Lymph Nodes Eval
    CS Mets at DX
    CS Mets at Dx-Bone
    CS Mets at Dx-Brain
    CS Mets at Dx-Liver
    CS Mets at Dx-Lung
    CS Mets Eval
    CS Site-Specific Factor 1 - 25]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-29" ref="67787">Edit created.</event>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-20" ref="67961">Removed unnecessary dependencies.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2839" name="Derived CS Items, DX Post 2017 (NAACCR)" tag="N2839" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear <= '2017')
    return true
    
if (line.derivedAjcc6T != null || line.derivedAjcc6TDescript != null || line.derivedAjcc6N != null || line.derivedAjcc6NDescript != null || 
    line.derivedAjcc6M != null || line.derivedAjcc6MDescript != null || line.derivedAjcc6StageGrp != null ||
    line.derivedAjcc7T != null || line.derivedAjcc7TDescript != null || line.derivedAjcc7N != null ||
    line.derivedAjcc7NDescript != null || line.derivedAjcc7M != null || line.derivedAjcc7MDescript != null ||
    line.derivedAjcc7StageGrp != null || line.derivedSs1977 != null || line.derivedSs2000 != null ||
    line.derivedSs2000Flag != null || line.derivedSs1977Flag != null || line.derivedAjccFlag != null ||
    line.csVersionInputOriginal != null || line.csVersionInputCurrent != null || line.csVersionDerived != null)
   return false

return true]]></expression>
            <message>Derived Items and Date DX conflict for 2018+</message>
            <description><![CDATA[This edit is skipped if Date of Diagnosis is blank or invalid.

If year of Date of Diagnosis is greater than 2017, then the following CS derived
and version data items must be blank:

    Derived AJCC-6 T
    Derived AJCC-6 T Descript
    Derived AJCC-6 N
    Derived AJCC-6 N Descript
    Derived AJCC-6 M
    Derived AJCC-6 M Descript
    Derived AJCC-6 Stage Grp
    Derived AJCC-7 T
    Derived AJCC-7 T Descript
    Derived AJCC-7 N
    Derived AJCC-7 N Descript
    Derived AJCC-7 M
    Derived AJCC-7 M Descript
    Derived AJCC-7 Stage Grp
    Derived SS1977
    Derived SS2000
    Derived AJCC-Flag
    Derived SS1977-Flag
    Derived SS2000-Flag 
    CS Version Input Original
    CS Version Input Current
    CS Version Derived]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-01" ref="67788">Edit created.</event>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-20" ref="67961">Removed unnecessary dependencies.</event>
                <event version="SE18-018-05" user="kirbyk" date="2018-08-14" ref="67997">Added stage flags to fields that must be blank post-2017.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-31" ref="68428">Change edit name.</event>
            </history>
        </rule>
        <rule id="IFN2855" name="Breslow Tumor Thickness, Schema ID, Required (NAACCR)" tag="N2855" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
    
return line.schemaId != '00470' || (line.breslowTumorThickness != null && line.breslowTumorThickness != 'XX.8')]]></expression>
            <message>Breslow Tumor Thickness must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)

2. This edit verifies that Breslow Tumor Thickness is not "XX.8" (not applicable)
   and not blank for the Schema IDs for which it is required by a standard setter.
   
   This data item is required for EOD Derived Stage Group.

    Required for Schema ID:

    00470: Melanoma of Skin]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-18" ref="67839">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-14" ref="68003">Added DCO skip condition</event>
            </history>
        </rule>
        <rule id="IFN2856" name="Esophagus and EGJ Tumor Epicenter, Schema ID, Required (NAACCR)" tag="N2856" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (['0000001565','0000001566'].contains(line.registryId) && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00161' || line.esophagusAndEgjTumorEpicenter != null]]></expression>
            <message>Esophagus and EGJ Tumor Epicenter must not be blank for cases with this Schema ID diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) or 0000001566 (Texas) and Year of Diagnosis = 2018-2021


2. This edit verifies that Esophagus and EGJ Tumor Epicenter is coded (not blank) 
   for the Schema IDs for which it is required by a standard setter. 

    The data item is required for AJCC staging and EOD Derived Stage Group.  

    Required for Schema ID:

    00161: Esophagus and Esophagus GE Junction (Squamous)]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-18" ref="67893">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-14" ref="68003">Added DCO skip condition</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68955">Update skip conditions for IL and TX to DX Years 2018-2021.</event>
            </history>
        </rule>
        <rule id="IFN2861" name="Heritable Trait, Schema ID, Required (NAACCR)" tag="N2861" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear <= '2017' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.schemaId == '00680')
    return line.heritableTrait != null

return true]]></expression>
            <message>Heritable Trait must not be blank for cases with this Schema ID diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Heritable Trait is coded (not blank) for the
   Schema IDs for which it is required by a standard setter.

   This data item is required for AJCC staging and EOD Derived Stage Group.

    Required for Schema ID:

    00680: Retinoblastoma]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-10" ref="67899">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-14" ref="68003">Added DCO skip condition</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2869" name="Pleural Effusion, Schema ID, Required (NAACCR)" tag="N2869" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.schemaId == '00370')
    return line.pleuralEffusion != null && line.pleuralEffusion != '8'
return true]]></expression>
            <message>Pleural Effusion must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Pleural Effusion is not "8" (not applicable) and not
   blank for the Schema IDs for which it is required by a standard setter.

    Required for Schema ID:
        00370: Pleura]]></description>
            <history>
                <event version="SE18-018-04" user="smithm" date="2018-07-31" ref="67858">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-14" ref="68003">Added DCO skip condition</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2870" name="Profound Immune Suppression, Schema ID, Required (NAACCR)" tag="N2870" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear <= '2017' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00460' || (line.profoundImmuneSuppression != null && line.profoundImmuneSuppression != '8')]]></expression>
            <message>Profound Immune Suppression must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Profound Immune Suppression is not "8" (not 
   applicable) and not blank for the Schema IDs for which it is required by a 
   standard setter. 

    Required for Schema ID:
    
    00460: Merkel Cell Carcinoma]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-12" ref="67879">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-14" ref="68003">Added DCO skip condition</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2871" name="Separate Tumor Nodules, Schema ID, Required (NAACCR)" tag="N2871" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear <= '2017' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00360' || (line.separateTumorNodules != null && line.separateTumorNodules != '8')]]></expression>
            <message>Separate Tumor Nodules must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Separate Tumor Nodules is not "8" (not applicable)
   and not blank for the Schema IDs for which it is required by a standard
   setter.

    Required for Schema ID:

    00360: Lung]]></description>
            <history>
                <event version="SE18-018-04" user="kirbyk" date="2018-08-01" ref="67856">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-14" ref="68003">Added DCO skip condition</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2872" name="Visceral and Parietal Pleural Invasion, Schema ID, Required (NAACCR)" tag="N2872" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear <= '2017' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00360' || (line.visceralParietalPleuralInvasion != null && line.visceralParietalPleuralInvasion != '8')]]></expression>
            <message>Visceral and Parietal Pleural Invasion must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Visceral and Parietal Pleural Invasion is not "8"
   (not applicable) and not blank for the Schema IDs for which it is required 
   by a standard setter. 

    Required for Schema ID:

    00360: Lung]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-12" ref="67857">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-14" ref="68003">Added DCO skip condition</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2873" name="Adenopathy, Schema ID, Required (NAACCR)" tag="N2873" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear <= '2017' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00795' || line.adenopathy != null]]></expression>
            <message>Adenopathy must not be blank for this Schema ID for cases diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Adenopathy is coded (not blank) for the Schema IDs
   for which it is required by a standard setter.

   This data item is required for AJCC staging and EOD Derived Stage Group.

    Required for Schema ID:

    00795: Lymphoma (CLL/SLL)]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-12" ref="67900">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-14" ref="68003">Added DCO skip condition</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2874" name="Anemia, Schema ID, Required (NAACCR)" tag="N2874" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear <= '2017' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00795' || line.anemia != null]]></expression>
            <message>Anemia must not be blank for Schema ID cases diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Anemia is coded (not blank) for the Schema IDs for
   which it is required by a standard setter.

   This data item is required for AJCC staging and EOD Derived Stage Group.

    Required for Schema ID:

    00795: Lymphoma (CLL/SLL)]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-11" ref="67901">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68004">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2875" name="Bone Invasion, Schema ID, Required (NAACCR)" tag="N2875" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear <= '2017' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return !Functions.matches(line.schemaId, /^004([014]0|5[09]|2[12])$/) || (line.boneInvasion != null && line.boneInvasion != '8')]]></expression>
            <message>Bone Invasion must not be blank or not applicable for Schema ID cases diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Bone Invasion is not "8" (not applicable) and not 
   blank for the Schema IDs for which it is required by a standard setter. 

    Required for Schema ID:

    00400: Soft Tissue Sarcoma of the Head and Neck
    00410: Soft Tissue Sarcoma of the Trunk and Extremities
    00421: Soft Tissue Sarcoma of the Abdomen and Thorax
    00422: Heart, Mediastinum, Pleura
    00440: Soft Tissue Sarcoma of the Retroperitoneum
    00450: Soft Tissue Sarcoma Unusual Histologies and Sites
    00459: Soft Tissue Sarcoma of Other Sites

    ]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-03" ref="67876">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68004">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-01" user="smithm" date="2022-01-19" ref="68847">Added new required schema id condition</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2877" name="Estrogen Receptor Summary, Schema ID, Required (NAACCR)" tag="N2877" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear <= '2017' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true

return line.schemaId != '00480' || line.estrogenReceptorSummary != null]]></expression>
            <message>Estrogen Receptor Summary must not be blank for Schema ID cases diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)

2. This edit verifies that Estrogen Receptor Summary is coded (not blank)
   for the Schema IDs for which it is required by a standard setter.

   This data item is required for AJCC staging and EOD Derived Stage Group.

    Required for Schema ID:

    00480: Breast]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-06" ref="67894">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68004">Added DCO skip condition.</event>
            </history>
        </rule>
        <rule id="IFN2879" name="FIGO Stage, Date DX (NAACCR)" tag="N2879" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.figoStage != null)
    return false

if (line.dateOfDiagnosisYear < '2021' && line.figoStage == '1B3')
    return false

List validValues = (List)Context.FigoStageList
return  line.figoStage == null || validValues.contains(line.figoStage)]]></expression>
            <message>FIGO Stage value is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid FIGO Stage code or blank:

    1:    FIGO Stage I
    1A:   FIGO Stage IA
    1A1:  FIGO Stage IA1
    1A2:  FIGO Stage IA2
    1B:   FIGO Stage 1B
    1B1:  FIGO Stage IB1
    1B2:  FIGO Stage IB2
    1B3:  FIGO Stage IB3
    1C:   FIGO Stage IC
    1C1:  FIGO Stage IC1
    1C2:  FIGO Stage IC2
    1C3:  FIGO Stage IC3
    2:    FIGO Stage II
    2A:   FIGO Stage IIA
    2A1:  FIGO Stage IIA1
    2A2:  FIGO Stage IIA2
    2B:   FIGO Stage IIB
    3:    FIGO Stage III
    3A:   FIGO Stage IIIA
    3A1:  FIGO Stage IIIA1
    3A11: FIGO Stage IIIA1i
    3A12: FIGO Stage IIIA1ii
    3A2:  FIGO Stage IIIA2
    3B:   FIGO Stage IIIB
    3C:   FIGO Stage IIIC
    3C1:  FIGO Stage IIIC1
    3C2:  FIGO Stage IIIC2
    4:    FIGO Stage IV
    4A:   FIGO Stage IVA
    4B:   FIGO Stage IVB
    97:   Not applicable: Carcinoma in situ (intraepithelial, noninvasive,
          preinvasive)
    98:   Not applicable: Information not collected for this case
    99:   Not documented in medical record
          FIGO Stage unknown, not assessed or unknown if assessed

3. Code 1B3 may only be used for 2021+ diagnoses


Another edit, FIGO Stage, Schema ID, Required (NAACCR), checks that the
item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-14" ref="67813">Edit created.</event>
                <event version="SE18-018-05" user="kirbyk" date="2018-08-14" ref="67987">Fixed valid values check.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE21-021-02" user="kirbyk" date="2021-01-26" ref="68494">Changed valid values for NAACCR 21.</event>
            </history>
        </rule>
        <rule id="IFN2880" name="FIGO Stage, Gynecologic, Schema ID (NAACCR)" tag="N2880" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.figoStage == null || !Functions.matches(line.schemaId, /^005([01236]0|4[12]|5[123]|28)|095[02]0$/))
    return true

Map<String, List<String>> valueMap = (Map<String, List<String>>)Context.IFN2880_Table
return valueMap.get(line.schemaId).contains(line.figoStage)]]></expression>
            <message>FIGO Stage not valid for Schema ID</message>
            <description><![CDATA[1. The edit is skipped for the following condition:
        a. Date of diagnosis before 2019, blank (unknown), or invalid.
        b. FIGO Stage is blank.
        c. Schema ID is not 00500, 00510, 00520, 00528, 00530, 00541, 00542, 00551,
           00552, 00553, 00560, 09520, 09500

2. This edit verifies that FIGO Stage is coded appropriately by Schema ID as
   shown in the following chart:

    Code                                    Schema ID

             ____________________________________________________________________

                           00500 00510 00520 00530 00541 00542 00551 00552 00560
                           09500       09520       00528       00553
    1: FIGO Stage I         X     X     X     X     X     X     X           X
    1A: FIGO Stage IA       X           X     X     X     X     X
    1A1: FIGO Stage IA1                 X
    1A2: FIGO Stage IA2                 X
    1B: FIGO Stage IB       X           X     X     X     X     X
    1B1: FIGO Stage IB1                 X
    1B2: FIGO Stage IB2                 X
    1B3: FIGO Stage IB3                 X*
    1C: FIGO Stage IC                                     X     X
    1C1: FIGO Stage IC1                                         X
    1C2: FIGO Stage IC2                                         X
    1C3: FIGO Stage IC3                                         X
    2: FIGO Stage II        X     X     X     X     X     X     X     X     X
    2A: FIGO Stage IIA                  X           X     X     X     X
    2A1: FIGO Stage IIA1                X
    2A2: FIGO Stage IIA2                X
    2B: FIGO Stage IIB                  X           X     X     X     X
    3: FIGO Stage III       X     X     X     X     X     X     X     X     X
    3A: FIGO Stage IIIA     X           X     X     X     X     X     X
    3A1: FIGO Stage IIIA1                                       X     X
    3A11: FIGO Stage IIIA1i                                     X     X
    3A12: FIGO Stage IIIA1ii                                    X     X
    3A2: FIGO Stage IIIA2                                       X     X
    3B: FIGO Stage IIIB     X           X     X     X     X     X     X
    3C: FIGO Stage IIIC     X                 X     X     X     X     X
    3C1: FIGO Stage IIIC1               X*    X
    3C2: FIGO Stage IIIC2               X*    X 
    4: FIGO Stage IV        X     X     X     X     X     X     X     X     X
    4A: FIGO Stage IVA      X     X     X     X     X     X     X     X
    4B: FIGO Stage IVB      X     X     X     X     X     X     X     X
    97: NA, Ca in situ     97    97    97    97                97    97    97
    98: NA, not collected  98    98    98    98    98    98    98    98    98
    99: Unknown            99    99    99    99    99    99    99    99    99

* For 09520 only]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-14" ref="68166">Edit created.</event>
                <event version="SE21-021-02" user="kirbyk" date="2021-01-26" ref="68494">Changed valid values for NAACCR 21.</event>
                <event version="SE22-022-01" user="smithm" date="2022-02-15" ref="68831">Add 00528 to skip condition</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-04" ref="69403">Added logic for Schema ID 09500.</event>
            </history>
        </rule>
        <rule id="IFN2881" name="Gestational Trophoblastic Prognostic Scoring Index, Schema ID, Required (NAACCR)" tag="N2881" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00560' || line.gestationalTrophoblasticPxIndex != null]]></expression>
            <message>Gestational Trophoblastic Prognostic Scoring Index must not be blank for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Gestational Trophoblastic Prognostic Scoring Index is
   coded (not blank) for the Schema IDs for which it is required by a standard 
   setter.  

   This data item is required for AJCC staging and EOD Derived Stage Group.  

    Required for Schema ID:

    00560: Placenta]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-11" ref="67896">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68004">Added DCO skip condition.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2883" name="Gleason Patterns Clinical, Schema ID, Required (NAACCR)" tag="N2883" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00580' || (line.gleasonPatternsClinical != null && line.gleasonPatternsClinical != 'X8')]]></expression>
            <message>Gleason Patterns Clinical must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Gleason Patterns Clinical is not "X8" (not applicable)
   not blank for the Schema IDs for which it is required by a standard setter. 

    Required for Schema ID:

    00580: Prostate]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-16" ref="67883">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68004">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2884" name="Gleason Patterns Pathological, Schema ID, Required (NAACCR)" tag="N2884" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00580' || (line.gleasonPatternsPathological != null && line.gleasonPatternsPathological != 'X8')]]></expression>
            <message>Gleason Patterns Pathological must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Gleason Patterns Pathological is not "X8" (not
   applicable) and not blank for the Schema IDs for which it is required by a 
   standard setter. 

    Required for Schema ID:

    00580: Prostate]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-16" ref="67883">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68004">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2889" name="HER2 Overall Summary, Breast, Schema ID, Required (NAACCR)" tag="N2889" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true

return  line.schemaId != '00480' || line.her2OverallSummary != null]]></expression>
            <message>HER2 Overall Summary must not be blank for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)

2. This edit verifies that HER2 Overall Summary is coded (not blank) for the 
   Schema IDs for which it is required by a standard setter. 

   This data item is required for AJCC staging and EOD Derived Stage Group for
   Schema ID 00480, Breast.

    Required for Schema ID:
    00480: Breast]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-17" ref="67867">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68004">Added DCO skip condition.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-05" ref="68482">Updated edit name and description.</event>
            </history>
        </rule>
        <rule id="IFN2890" name="Ipsilateral Adrenal Gland Involvement, Date DX (NAACCR)" tag="N2890" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.ipsilateralAdrenalGlandInvolve == null

return line.ipsilateralAdrenalGlandInvolve == null || Functions.matches(line.ipsilateralAdrenalGlandInvolve, /^[0-489]$/)]]></expression>
            <message>Ipsilateral Adrenal Gland Involvement is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Ipsilateral Adrenal Gland Involvement code or blank: 

    0: Ipsilateral adrenal gland involvement not present/not identified
    1: Adrenal gland involvement by direct involvement (contiguous involvement)
    2: Adrenal gland involvement by separate nodule (noncontiguous involvement) 
    3: Combination of codes 1-2
    4: Ipsilateral adrenal gland involvement, unknown if direct involvement or 
       separate nodule
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record 
       Ipsilateral adrenal gland not resected
       Ipsilateral adrenal gland involvement not assessed or unknown if 
       assessed
       No surgical resection of primary site is performed
    
Another edit, Ipsilateral Adrenal Gland Involvement, Schema ID, Required (NAACCR), 
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-24" ref="67909">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IFN2891" name="Ipsilateral Adrenal Gland Involvement, Schema ID, Required (NAACCR)" tag="N2891" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00600' || (line.ipsilateralAdrenalGlandInvolve != null && line.ipsilateralAdrenalGlandInvolve != '8')]]></expression>
            <message>Ipsilateral Adrenal Gland Involvement must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Ipsilateral Adrenal Gland Involvement is not "8" (not 
    applicable) and not blank for the Schema IDs for which it is required by a 
   standard setter. 

    Required for Schema ID:

    00600: Kidney Parenchyma]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-24" ref="67909">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68004">Added DCO skip condition.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2893" name="Invasion Beyond Capsule, Date DX (NAACCR)" tag="N2893" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.invasionBeyondCapsule == null

return line.invasionBeyondCapsule == null || Functions.matches(line.invasionBeyondCapsule, /^[0-589]$/)]]></expression>
            <message>Invasion Beyond Capsule is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Invasion Beyond Capsule code or blank: 

    0: Invasion beyond capsule not identified
    1: Perinephric (beyond renal capsule) fat or tissue
    2: Renal sinus 
    3: Gerota's fascia
    4: Any combination of codes 1-3
    5: Invasion beyond capsule, NOS
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record 
       Invasion Beyond Capsule not assesssed or unknown if assessed
       No surgical resection of primary site is performed

Another edit, Invasion Beyond Capsule, Schema ID, Required (NAACCR), checks that 
the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-10" ref="67910">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2894" name="Invasion Beyond Capsule, Schema ID, Required (NAACCR)" tag="N2894" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00600' || (line.invasionBeyondCapsule != null && line.invasionBeyondCapsule != '8')]]></expression>
            <message>Invasion Beyond Capsule must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Invasion Beyond Capsule is not "8" (not applicable) 
   and not blank for the Schema IDs for which it is required by a standard setter. 

    Required for Schema ID:

    00600: Kidney Parenchyma]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-10" ref="67910">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68004">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2895" name="LDH Level, Myeloma, Schema ID, Required (NAACCR)" tag="N2895" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true

if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true

if (line.schemaId == '00821') {
    if (line.schemaDiscriminator1 == '0')
        return line.ldhPretreatmentLevel != null && line.ldhPretreatmentLevel != '5'
    else if (line.schemaDiscriminator1 == '1' || line.schemaDiscriminator1 == '9')
        return line.ldhPretreatmentLevel == '5'
}

return true]]></expression>
            <message>LDH Level, Schema Discriminator 1 conflict for Myeloma</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank. 
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis = 2018-2022
    e. Registry ID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that LDH Level is coded (not blank) for the
   Schema IDs for which it is required by a standard setter. Schema Discriminator 
   1 is required to identify a plasma cell myeloma diagnosis eligible for RISS staging.

   This data item is required for AJCC staging and EOD Derived Stage Group.

   Required for Schema ID:

   00821: Plasma Cell Myeloma:
            If Schema Discriminator 1 = 0, LDH Level is not blank and not = 5.
            If Schema Discriminator 1 = 1 or 9, LDH Level must = 5.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-25" ref="67908">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68004">Added DCO skip condition.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-29" ref="68028">LDH Pretreament Level must be blank if Schema Discriminator 1 is not = 0.</event>
                <event version="SE18-018-10" user="kirbyk" date="2018-11-30" ref="68058">Schema Discriminator 1 must not be blank for Schema ID 00821.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-31" ref="68418">Update edit name and change variable name from LDH Pretreatment Level to LDH Level.</event>
                <event version="SE21-021-11" user="beverung" date="2021-12-22" ref="68767">Added skip condition for IL and TX for DX Year 2018-2019.</event>
                <event version="SE22-022-01" user="secristc" date="2022-02-22" ref="68853">Updated logic for Schema ID = 00821.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-22" ref="68959">Changed skip condition for IL to DX Years 2018-2022, TX to 2018-2021.</event>
            </history>
        </rule>
        <rule id="IFN2897" name="LN Head and Neck Levels I-III, Schema ID, Required (NAACCR)" tag="N2897" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return (line.schemaId != '00060' && line.schemaId != '00140') || (line.lnHeadAndNeckLevels1To3 != null && line.lnHeadAndNeckLevels1To3 != '8')]]></expression>
            <message>LN Head and Neck Levels I-III must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

1. This edit verifies that LN Head and Neck Levels I-III is not "8" (not 
   applicable) and not blank for the Schema IDs for which it is required by a 
   standard setter. 

    Required for Schema ID:

    00060: Cervical LN and Unknown Primary
    00140: Mucosal Melanoma Head and Neck]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-17" ref="67890">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68005">Add DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2898" name="LN Head and Neck Levels IV-V, Schema ID, Required (NAACCR)" tag="N2898" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return (line.schemaId != '00060' && line.schemaId != '00140') || (line.lnHeadAndNeckLevels4To5 != null && line.lnHeadAndNeckLevels4To5 != '8')]]></expression>
            <message>LN Head and Neck Levels IV-V must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that LN Head and Neck Levels IV-V is not "8" (not 
   applicable) and not blank for the Schema IDs for which it is required by a 
   standard setter. 

    Required for Schema ID:

    00060: Cervical LN and Unknown Primary
    00140: Mucosal Melanoma Head and Neck]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-17" ref="67890">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68005">Add DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2899" name="LN Head and Neck Levels VI-VII, Schema ID, Required (NAACCR)" tag="N2899" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return (line.schemaId != '00060' && line.schemaId != '00140') || (line.lnHeadAndNeckLevels6To7 != null && line.lnHeadAndNeckLevels6To7 != '8')]]></expression>
            <message>LN Head and Neck Levels VI-VII must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that LN Head and Neck Levels VI-VII is not "8" (not
   applicable) and not blank for the Schema IDs for which it is required by a 
   standard setter. 

    Required for Schema ID:

    00060: Cervical LN and Unknown Primary
    00140: Mucosal Melanoma Head and Neck]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-17" ref="67890">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68005">Add DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2900" name="LN Head and Neck Other, Schema ID, Required (NAACCR)" tag="N2900" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return (line.schemaId != '00060' && line.schemaId != '00140') || (line.lnHeadAndNeckOther != null && line.lnHeadAndNeckOther != '8')]]></expression>
            <message>LN Head and Neck Other must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

1. This edit verifies that LN Head and Neck Other is not "8" (not applicable)
   and not blank for the Schema IDs for which it is required by a standard setter. 

    Required for Schema ID:

    00060: Cervical LN and Unknown Primary
    00140: Mucosal Melanoma Head and Neck]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-17" ref="67890">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68005">Add DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2901" name="LN Isolated Tumor Cells (ITC), Schema ID, Required (NAACCR)" tag="N2901" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00460' || (line.lnIsolatedTumorCells != null && line.lnIsolatedTumorCells != '8')]]></expression>
            <message>LN Isolated Tumor Cells (ITC) must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

1. This edit verifies that LN Isolated Tumor Cells (ITC) is not "8" (not
   applicable) and not blank for the Schema IDs for which it is required by a
   standard setter.

    Required for Schema ID:

    00460: Merkel Cell Skin]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-12" ref="67878">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68005">Add DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2902" name="LN Laterality, Schema ID, Required (NAACCR)" tag="N2902" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear <= '2017' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.schemaId == '00500' || line.schemaId == '09500')
   return line.lnLaterality != '8' && line.lnLaterality != null 

return true]]></expression>
            <message>LN Laterality must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that LN Laterality is not "8" (not applicable) and not blank for the Schema IDs for which it is required by a standard setter.

    Required for Schema ID:

    00500: Vulva [8th: 2018-2023]
    09500: Vulva [V9: 2024+]]]></description>
            <history>
                <event version="SE18-018-02" user="schadega" date="2018-06-04" ref="67814">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68005">Add DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-04" ref="69403">Added logic for Schema ID 09500.</event>
            </history>
        </rule>
        <rule id="IFN2903" name="LN Positive Axillary Level I-II, Schema ID, Required (NAACCR)" tag="N2903" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear <= '2017' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00480' || (line.lnPositiveAxillaryLevel1To2 != 'X8' && line.lnPositiveAxillaryLevel1To2 != null)]]></expression>
            <message>LN Positive Axillary Level I-II must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that LN Positive Axillary Level I-II is not "X8" (not
   applicable) and not blank for the Schema IDs for which it is required by a 
   standard setter. 

   This data item is required for EOD Derived Stage Group.

    Required for Schema ID:

    00480: Breast]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-02" ref="67859">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68005">Add DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2904" name="Lymphocytosis, Schema ID, Required (NAACCR)" tag="N2904" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear <= '2017' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.schemaId == '00795')
   return line.lymphocytosis != null 

return true]]></expression>
            <message>Lymphocytosis must not be blank for cases with this Schema ID diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Lymphocytosis is coded (not blank) for the Schema IDs
    for which it is required by a standard setter.

   This data item is required for AJCC staging and EOD Derived Stage Group.

    Required for Schema ID:

    00795: Lymphoma (CLL/SLL)]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-10" ref="67902">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68005">Add DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2905" name="Major Vein Involvement, Date DX (NAACCR)" tag="N2905" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.majorVeinInvolvement == null

return line.majorVeinInvolvement == null || Functions.matches(line.majorVeinInvolvement, /^[0-489]$/)]]></expression>
            <message>Mejor Vein Involvement is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Major Vein Involvement code or blank:

    0: Major vein involvement not present/not identified
    1: Renal vein or its segmental branches
    2: Inferior vena cava (IVC)
    3: Major vein invasion, NOS
    4: Any combination of codes 1-3
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Major Vein Involvement not assessed or unknown if assessed
       No surgical resection of primary site is performed

Another edit, Major Vein Involvement, Schema ID, Required (NAACCR), checks that
the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-11" ref="67911">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2906" name="Major Vein Involvement, Schema ID, Required (NAACCR)" tag="N2906" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear <= '2017' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00600' || (line.majorVeinInvolvement != '8' && line.majorVeinInvolvement != null)]]></expression>
            <message>Major Vein Involvement must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Major Vein Involvement is not "8" (not applicable)
   and not blank for the Schema IDs for which it is required by a standard
   setter.

    Required for Schema ID:

    00600: Kidney Parenchyma]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-11" ref="67911">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68005">Add DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2907" name="Mitotic Rate Melanoma, Schema ID, Required (NAACCR)" tag="N2907" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear <= '2017' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.schemaId == '00470')
   return line.mitoticRateMelanoma != 'X8' && line.mitoticRateMelanoma != null 

return true]]></expression>
            <message>Mitotic Rate Melanoma must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Mitotic Rate Melanoma is not "X8" (not applicable)
   and not blank for the Schema IDs for which it is required by a standard setter.

    Required for Schema ID:

    00470: Melanoma Skin]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-12" ref="67841">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68005">Add DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2908" name="Multigene Signature Method, Schema ID, Required (NAACCR)" tag="N2908" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear <= '2017' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00480' || (line.multigeneSignatureMethod != '8' && line.multigeneSignatureMethod != null)]]></expression>
            <message>Multigene Signature Method must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Multigene Signature Method is not "8" (not applicable)
   and not blank for the Schema IDs for which it is required by a standard setter. 

    Required for Schema ID:

    00480: Breast]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-03" ref="67861">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68006">Add DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2909" name="Multigene Signature Results, Schema ID, Required (NAACCR)" tag="N2909" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' ||  line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.schemaId == '00480')
    return line.multigeneSignatureResults != null && line.multigeneSignatureResults != 'X8'
return true]]></expression>
            <message>Multigene Signature Results must not be blank or not applicable for Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Multigene Signature Results is not "X8" (not
   applicable)and not blank) for the Schema IDs for which it is required by a
   standard setter.

    Required for Schema ID:

    00480: Breast]]></description>
            <history>
                <event version="SE18-018-04" user="smithm" date="2018-08-02" ref="67862">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68006">Add DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2910" name="Number of Cores Examined, Schema ID, Required (NAACCR)" tag="N2910" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear <= '2017' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00580' || (line.numberOfCoresExamined != null && line.numberOfCoresExamined != 'X8')]]></expression>
            <message>Number of Cores Examined must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Number of Cores Examined is not "X8" (not applicable)
   and not blank for the Schema IDs for which it is required by a standard setter. 

    Required for Schema ID:

    00580: Prostate]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-17" ref="67884">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68006">Add DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2911" name="Number of Cores Positive, Schema ID, Required (NAACCR)" tag="N2911" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear <= '2017' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00580' || (line.numberOfCoresPositive != null && line.numberOfCoresPositive != 'X8')]]></expression>
            <message>Number of Cores Positive must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Number of Cores Positive is not "X8" (not applicable)
   and not blank for the Schema IDs for which it is required by a standard setter. 

    Required for Schema ID:

    00580: Prostate]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-17" ref="67884">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68006">Add DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2917" name="Oncotype Dx Recurrence Score-Invasive, Schema ID, Required (NAACCR)" tag="N2917" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear <= '2017' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00480' || line.oncotypeDxRecurrenceScoreInvasiv != null]]></expression>
            <message>Oncotype Dx Recurrence Score-Invasive must not be blank for cases with this Schema ID diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Oncotype Dx Recurrence Score-Invasive is coded (not 
   blank) for the Schema IDs for which it is required by a standard setter. 

   This data item is required for AJCC staging and EOD Derived Stage Group. 

    Required for Schema ID:

    00480: Breast]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-16" ref="67869">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68006">Add DCO skip condition.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2920" name="Organomegaly, Schema ID, Required (NAACCR)" tag="N2920" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00795' || line.organomegaly != null]]></expression>
            <message>Organomegaly must not be blank for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Organomegaly is coded (not blank) for the Schema IDs
    for which it is required by a standard setter.

   This data item is required for AJCC staging and EOD Derived Stage Group.

    Required for Schema ID:

    00795: Lymphoma (CLL/SLL)]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-11" ref="67903">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68006">Add DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2921" name="Peripheral Blood Involvement, Schema ID, Required (NAACCR)" tag="N2921" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00811' || line.peripheralBloodInvolvement != null]]></expression>
            <message>Peripheral Blood Involvement must not be blank for cases with this Schema ID diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Peripheral Blood Involvement is coded (not blank) for 
   the Schema IDs for which it is required by a standard setter. 

   This data item is required for AJCC staging and EOD Derived Stage Group. 

    Required for Schema ID:

    00811: Mycosis Fungoides]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-10" ref="67905">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68006">Add DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2922" name="Peritoneal Cytology, Schema ID, Required (NAACCR)" tag="N2922" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

String schemaId = line.schemaId

if (schemaId == '00530' || schemaId == '00541' || schemaId == '00542' || (line.dateOfDiagnosisYear >= '2021' && schemaId == '00528'))
    return line.peritonealCytology != null && line.peritonealCytology != '8'

return true]]></expression>
            <message>Peritoneal Cytology must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Pertoneal Cytology is not "8" (not applicable) and
   not blank for the Schema IDs for which it is required by a standard setter.

   This data item is required for EOD Derived Stage Group.

    Required for Schema ID:

    00528: Cervix Sarcoma [2021+]
    00530: Corpus Carcinoma and Carcinosarcoma
    00541: Corpus Sarcoma (Sarcoma)
    00542: Corpus Sarcoma (Adenosarcoma)]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-06" ref="67822">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68006">Add DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-01" user="smithm" date="2022-01-19" ref="68841">Add 00528 (year &gt;= 2021) to required schema for Pertoneal Cytology != &quot;8&quot;</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2924" name="Progesterone Receptor Summary, Schema ID, Required (NAACCR)" tag="N2924" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.schemaId == '00480')
    return line.progesteroneRecepSummary != null
return true]]></expression>
            <message>Progesterone Receptor Summary must not be blank for Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)

2. This edit verifies that Progesterone Receptor Summary is coded (not blank)
   for the Schema IDs for which it is required by a standard setter.

   This data item is required for AJCC staging and EOD Derived Stage Group.

    Required for Schema ID:

    00480: Breast]]></description>
            <history>
                <event version="SE18-018-04" user="smithm" date="2018-08-06" ref="67895">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68006">Add DCO skip condition.</event>
                <event version="SE18-018-10" user="kirbyk" date="2018-12-12" ref="68077">Changed edit name.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IFN2926" name="Residual Tumor Volume Post Cytoreduction, Date DX (NAACCR)" tag="N2926" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
if (line.dateOfDiagnosisYear < '2018')
    return line.residualTumVolPostCytoreduction == null
return line.residualTumVolPostCytoreduction == null || Functions.matches(line.residualTumVolPostCytoreduction, /^[05-8]0|9[7-9]$/)]]></expression>
            <message>Residual Tumor Volume Post Cytoreduction is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Residual Tumor Volume Post Cytoreduction code or blank:

    00: No gross residual tumor nodules
    50: Residual tumor nodule(s) 1 centimeter (cm) or less (includes
        previous codes 10 and 20)
    60: Residual tumor nodule(s) greater than 1 cm (includes previous
        codes 30 and 40)
    70: Macroscopic residual tumor nodule(s), size not stated (includes
        previous codes 90 and 91)
    80: Procedure described as optimal debulking and size of residual
        tumor nodule(s) not given (includes previous codes 92 and 93)
    97: No cytoreductive surgery performed
    98: Not applicable: Information not collected for this case
    99: Not documented in medical record
        Residual tumor status after cytoreductive surgery not assessed or unknown
        if assessed

Another edit, Residual Tumor Volume Post Cytoreduction, Schema ID, Required
(NAACCR), checks that the item is coded by Schema ID if required by a standard
setter.]]></description>
            <history>
                <event version="SE18-018-04" user="smithm" date="2018-08-07" ref="67912">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-01" user="beverung" date="2021-01-12" ref="68449">Updated valid codes.</event>
            </history>
        </rule>
        <rule id="IFN2927" name="Residual Tumor Volume Post Cytoreduction, Schema ID, Required (NAACCR)" tag="N2927" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.schemaId == '00550' || line.schemaId == '00551' || line.schemaId == '00552')
    return line.residualTumVolPostCytoreduction != null && line.residualTumVolPostCytoreduction != '98'
return true]]></expression>
            <message>Residual Tumor Volume Post Cytoreduction must not be blank or not applicable for Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Residual Tumor Volume Post Cytoreduction is not "98"
   (not applicable) and not blank for the Schema IDs for which it is required
   by a standard setter.

    Required for Schema ID:

    00550: Ovary
    00551: Primary Peritoneal Carcinoma
    00552: Fallopian Tube]]></description>
            <history>
                <event version="SE18-018-04" user="smithm" date="2018-08-07" ref="67912">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68006">Add DCO skip condition.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2928" name="S Category Clinical, Schema ID, Required (NAACCR)" tag="N2928" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00590' || line.sCategoryClinical != null]]></expression>
            <message>S Category Clinical must not be blank for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that S Category Clinical is coded (not blank) for the 
   Schema IDs for which it is required by a standard setter. 

   This data item is required for AJCC staging and EOD Derived Stage Group. 

    Required for Schema ID:

    00590: Testis]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-25" ref="67897">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68007">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2929" name="S Category Pathological, Schema ID, Required (NAACCR)" tag="N2929" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00590' || line.sCategoryPathological != null]]></expression>
            <message>S Category Pathological must not be blank for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that S Category Pathological is coded (not blank) for the 
   Schema IDs for which it is required by a standard setter. 

   This data item is required for AJCC staging and EOD Derived Stage Group. 

    Required for Schema ID:

    00590: Testis]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-25" ref="67897">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68007">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2930" name="Sarcomatoid Features, Date DX (NAACCR)" tag="N2930" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.sarcomatoidFeatures == null

return line.sarcomatoidFeatures == null || Functions.matches(line.sarcomatoidFeatures, /^0\d\d|100|R0[1-5]|XX[5-9]$/)]]></expression>
            <message>Sarcomatoid Features is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Sarcomatoid Features code or blank:

   000: Sarcomatoid features not present/not identified
   001-100: Sarcomatoid features 1-100%
   R01: Sarcomatoid features stated as less than 10%
   R02: Sarcomatoid features stated as range 10%-30% present
   R03: Sarcomatoid features stated as a range 31% to 50% present
   R04: Sarcomatoid features stated as a range 51% to 80% present
   R05: Sarcomatoid features stated as greater than 80%
   XX5: Sarcomatoid features present from metastatic site only AND
        Sarcomatoid features not present in primary site, or unknown if present
   XX6: Sarcomatoid features present, percentage unknown
   XX7: Not applicable: Not a renal cell carcinoma morphology
   XX8: Not applicable: Information not collected for this case
   XX9: Not documented in medical record
        Sarcomatoid features not assessed or unknown if assessed
        No surgical resection of primary site is performed

3. Numeric values must be right-justified and zero-filled

Another edit, Sarcomatoid Features, Schema ID, Required (NAACCR), checks that
the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-04" user="kirbyk" date="2018-07-31" ref="67913">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-28" ref="68884">Added logic for code XX5</event>
            </history>
        </rule>
        <rule id="IFN2931" name="Sarcomatoid Features, Schema ID, Required (NAACCR)" tag="N2931" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00600' || (line.sarcomatoidFeatures != null && line.sarcomatoidFeatures != 'XX8')]]></expression>
            <message>Sarcomatoid Features must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Sarcomatoid Features is not "XX8" (not blank) for the
   Schema IDs for which it is required by a standard setter.

    Required for Schema ID:

    00600: Kidney Parenchyma]]></description>
            <history>
                <event version="SE18-018-04" user="kirbyk" date="2018-07-31" ref="67913">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68007">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2932" name="Serum Albumin Pretreatment Level, Schema ID, Required (NAACCR)" tag="N2932" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.schemaId == '00821') {
    if (line.schemaDiscriminator1 == '0')
        return line.serumAlbuminPretreatmentLevel != null && line.serumAlbuminPretreatmentLevel != '5'
    else if (line.schemaDiscriminator1 == '1' || line.schemaDiscriminator1 == '9')
        return line.serumAlbuminPretreatmentLevel == '5'
}
return true]]></expression>
            <message>Serum Albumin Pretreatment Level, Schema Discriminator 1 conflict for Myeloma</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Serum Albumin Pretreatment Level is coded (not blank) 
   for the Schema IDs for which it is required by a standard setter. Schema 
   Discriminator 1 is required to identify a plasma cell myeloma diagnosis 
   eligible for RISS staging. 

   This data item is required for AJCC staging and EOD Derived Stage Group. 

   Required for Schema ID:

   00821: Plasma Cell Myeloma:
             If Schema Discriminator 1 = 0, Serum Albumin Pretreatment Level is not blank and not = 5.
             If Schema Discriminator 1 = 1 or 9, Serum Albumin Pretreatment Level must = 5.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-17" ref="67906">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68007">Added DCO skip condition.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-29" ref="68028">Serum Albumin Pretreatment Level must be blank if Schema Discriminator 1 is not = 0.</event>
                <event version="SE18-018-10" user="kirbyk" date="2018-11-30" ref="68058">Schema Discriminator 1 must not be blank for Schema ID 00821.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-27" ref="68857">Changed logic for schema ID 00821, added logic for code 5</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2933" name="Serum Beta-2 Microglobulin Pretreatment Level, Schema ID, Required (NAACCR)" tag="N2933" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.schemaId == '00821') {
    if (line.schemaDiscriminator1 == '0')
        return line.serumBeta2MicroglobulinPretxLvl != null && line.serumBeta2MicroglobulinPretxLvl != '5'
    else if (line.schemaDiscriminator1 == '1' || line.schemaDiscriminator1 == '9')
        return line.serumBeta2MicroglobulinPretxLvl == '5'
}

return true]]></expression>
            <message>Serum Beta-2 Microglobulin Pretreatment Level, Schema Discriminator 1 conflict for Myeloma</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Serum Beta-2 Microglobulin Pretreatment Level is 
   coded (not blank) for the Schema IDs for which it is required by a standard 
   setter. Schema Discriminator 1 is required to identify a plasma cell myeloma 
   diagnosis eligible for RISS staging.

   This data item is required for AJCC staging and EOD Derived Stage Group.

   Required for Schema ID:

    00821: Plasma Cell Myeloma:
             If Schema Discriminator 1 = 0, Serum Beta-2 Microglobulin Pretreatment Level is not blank and not = 5.
             If Schema Discriminator 1 = 1 or 9, Serum Beta-2 Microglobulin Pretreatment Level must = 5.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-17" ref="67906">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68007">Added DCO skip condition.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-29" ref="68028">Serum Beta-2 Microglobulin Pretreatment Level must be blank if Schema Discriminator 1 is not = 0.</event>
                <event version="SE18-018-10" user="kirbyk" date="2018-11-30" ref="68058">Schema Discriminator 1 must not be blank for Schema ID 00821.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-28" ref="68859">Updated logic for schema ID 00821 to use code 5</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2934" name="LDH Lab Value, Schema ID, Required (NAACCR)" tag="N2934" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true

return line.schemaId != '00470' || (line.ldhPretreatmentLabValue != null && line.ldhPretreatmentLabValue != 'XXXXX.8')]]></expression>
            <message>LDH Lab Value must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)

2. This edit verifies that LDH Lab Value is not "XXXXX.8" (not
   applicable) and not blank for the Schema IDs for which it is required by a 
   standard setter. 

   This data item is required for EOD Derived Stage Group.

    Required for Schema ID:

    00470: Melanoma Skin]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-02" ref="67840">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68007">Added DCO skip condition.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-30" ref="68415">Change LDH Pretreatment Lab Value to LDH Lab Value</event>
            </history>
        </rule>
        <rule id="IFN2935" name="Thrombocytopenia, Schema ID, Required (NAACCR)" tag="N2935" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00795' || line.thrombocytopenia != null]]></expression>
            <message>Thrombocytopenia must not be blank for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Thrombocytopenia is coded (not blank) for the Schema
    IDs for which it is required by a standard setter.

   This data item is required for AJCC staging and EOD Derived Stage Group.

    Required for Schema ID:

    00795: Lymphoma (CLL/SLL)]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-12" ref="67904">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68007">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2938" name="Brain Molecular Markers, Date DX (NAACCR)" tag="N2938" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
    
if (line.dateOfDiagnosisYear < '2018')
    return line.brainMolecularMarkers == null

if (Functions.matches(line.brainMolecularMarkers, /^1\d|2[0-3]$/))
    return line.dateOfDiagnosisYear >= '2024'

return line.brainMolecularMarkers == null || Functions.matches(line.brainMolecularMarkers, /^0[1-9]|8[5-8]|99$/)]]></expression>
            <message>Brain Molecular Markers is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Brain Molecular Markers code or blank: 

    01: 9400/3  Astrocytoma, IDH-mutant, grade 2
    02: 9400/3  Diffuse astrocytoma, IDH-wildtype
    03: 9401/3  Astrocytoma, IDH-mutant, grade 3
    04: 9401/3  Anaplastic astrocytoma, IDH-wildtype
    05: 9440/3  Glioblastoma, IDH-wildtype
    06: 9450/3  Oligodendroglioma, IDH-mutant and 1p/19q co-deleted
    07: 9451/3  Oligodendroglioma, IDH-mutant and 1p/19q co-deleted, grade 3
    08: 9471/3  Medulloblastoma, SHH-activated and TP53-wildtype
    09: 9478/3  Embryonal tumor with multilayered rosettes, C19MC-altered)
    10: 9385/3  Diffuse hemispheric glioma, H3-34 mutant
    11: 9385/3  Diffuse midline glioma, H3 K27-altered
    12: 9385/3  Diffuse pediatric-type high grade glioma, H3-wildtype and IDH-wildtype
    13: 9385/3  Infant-type hemispheric glioma
    14: 9396/3  Posterior fossa group A (PFA) ependymoma
    15: 9396/3  Posterior fossa group B (PFB) ependymoma
    16: 9396/3  Spinal ependymoma, MYCN-amplified
    17: 9396/3  Supratentorial ependymoma, YAP1 fusion-positive
    18: 9396/3  Supratentorial ependymoma, ZFTA fusion-positive
    19: 9421/1  Diffuse astrocytoma, MYB- or MYBL1-altered
    20: 9421/1  Diffuse low-grade glioma, MAPK pathway-altered
    21: 9430/3  Astroblastoma, MN1-altered
    22: 9500/3  CNS neuroblastoma, FOXR2-activated
    23: 9500/3  CNS tumor BCOR internal tandem duplication
    85: Not applicable: Histology not 9385/3, 9396/3, 9400/3, 9401/3, 9421/1, 9430/3, 9440/3, 9450/3, 9451/3, 9471/3, 9478/3, 9500/3
    86: Benign or borderline tumor (excludes 9421/1, codes 19-20)
    87: Test ordered, results not in chart
    88: Not applicable: Information not collected for this case
    99: Not documented in medical record
        No microscopic confirmation
        Brain Molecular Markers not assessed or unknown if assessed

3. Codes 10 through 23 must only be used for 2024+ cases]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-25" ref="67915">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-02-29" ref="69388">Add codes 10 through 23 for years 2024+.</event>
            </history>
        </rule>
        <rule id="IFN2939" name="B Symptoms, Date DX (NAACCR)" tag="N2939" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.bSymptoms == null

return line.bSymptoms == null || Functions.matches(line.bSymptoms, /^[0189]$/)]]></expression>
            <message>B Symptoms is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid B Symptoms code or blank:

    0: No B symptoms (asymptomatic)
       Classified as "A" by physician when asymptomatic
    1: Any B symptom(s)
       Night sweats (drenching)
       Unexplained fever (above 38 degrees C)
       Unexplained weight loss (generally greater than 10% of body weight in the
       six months before admission)
       B symptoms, NOS
      Classified as "B" by physician when symptomatic
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       B symptoms not assessed or unknown if assessed

Another edit, B Symptoms, Schema ID, Required (NAACCR), checks that the item is
coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-12" ref="67916">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN2940" name="Methylation of O6-Methylguanine-Methyltransferase, Schema ID, Required (NAACCR)" tag="N2940" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.schemaId == '00721' || line.schemaId == '00722' || (line.dateOfDiagnosisYear >= '2023' && (line.schemaId == '09721' || line.schemaId == '09722')))
    return line.methylationOfO6MGMT != null && line.methylationOfO6MGMT != '8'
    
return true]]></expression>
            <message>Methylation of O6-Methylguanine-Methyltransferase must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Methylation of O6-Methylguanine-Methyltransferase is
   not "8" (not applicable) and not blank for the Schema IDs for which it is
   required by a standard setter.

   Required for Schema ID:

    00721: Brain [8th: 2018-2022]
    09721: Brain [V9: 2023+]
    00722: CNS Other [8th: 2018-2022]
    09722: CNS Other [V9: 2023+]]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-13" ref="67810">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68007">Added DCO skip condition.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-08" ref="69141">Add logic for Schema IDs 09721 and 09722. Update descriptions for 00721 and 00722.</event>
            </history>
        </rule>
        <rule id="IFN2941" name="Chromosome 1p: Loss of Heterozygosity (LOH), Schema ID, Required (NAACCR)" tag="N2941" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.dateOfDiagnosisYear < '2023') {
    if (['00721','00722'].contains(line.schemaId))
        return line.chromosome1pLossHeterozygosity != null && line.chromosome1pLossHeterozygosity != '8'
}
else {
    if (['09721','09722'].contains(line.schemaId))
        return line.chromosome1pLossHeterozygosity != null && line.chromosome1pLossHeterozygosity != '8'
}

    
return true]]></expression>
            <message>Chromosome 1p: Loss of Heterozygosity (LOH) must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Chromosome 1p: Loss of Heterozygosity (LOH) is not
   "8" (not applicable) and not blank for the Schema IDs for which it is
   required by a standard setter.

   Required for Schema ID:

    00721: Brain [8th: 2018-2022]
    09721: Brain [V9: 2023+]
    00722: CNS Other [8th: 2018-2022]
    09722: CNS Other [V9: 2023+]]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-07" ref="67812">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68007">Added DCO skip condition.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
                <event version="SE23-023-01" user="cooki" date="2023-02-21" ref="69148">Added required Schema IDs 09721 and 09722.</event>
                <event version="SE23-023-02" user="cooki" date="2023-05-09" ref="69254">Added year restriction for Schema IDs.</event>
            </history>
        </rule>
        <rule id="IFN2942" name="Chromosome 19q: Loss of Heterozygosity (LOH), Schema ID, Required (NAACCR)" tag="N2942" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.dateOfDiagnosisYear < '2023') {
    if (['00721','00722'].contains(line.schemaId))
        return line.chromosome19qLossHeterozygosity != null && line.chromosome19qLossHeterozygosity != '8'
}
else {
    if (['09721','09722'].contains(line.schemaId))
        return line.chromosome19qLossHeterozygosity != null && line.chromosome19qLossHeterozygosity != '8'
}
    
return true]]></expression>
            <message>Chromosome 19q: Loss of Heterozygosity (LOH) must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Chromosome 19q: Loss of Heterozygosity (LOH) is not
   "8" (not applicable) and not blank for the Schema IDs for which it is required
   by a standard setter.

    Required for Schema ID:

    00721: Brain [8th: 2018-2022]
    09721: Brain [V9: 2023+]
    00722: CNS Other [8th: 2018-2022]
    09722: CNS Other [V9: 2023+]]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-07" ref="67811">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68007">Added DCO skip condition.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
                <event version="SE23-023-01" user="cooki" date="2023-02-21" ref="69148">Added required Schema IDs 09721 and 09722.</event>
                <event version="SE23-023-02" user="cooki" date="2023-05-09" ref="69254">Added year restriction for Schema IDs.</event>
            </history>
        </rule>
        <rule id="IFN2943" name="CA-125 Pretreatment Interpretation, Schema ID, Required (NAACCR)" tag="N2943" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.schemaId == '00551' || line.schemaId == '00552' || line.schemaId == '00553')
    return line.ca125PretreatmentInterpretation != null && line.ca125PretreatmentInterpretation != '8'
    
return true]]></expression>
            <message>CA-125 Pretreatment Interpretation must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that CA-125 Pretreatment Interpretation is not "8" (not
   applicable) and not blank for the Schema IDs for which it is required by a 
   standard setter. 
    
    Required for Schema ID:

    00551: Ovary
    00552: Primary Peritoneal Carcinoma
    00553: Fallopian Tube]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-13" ref="67827">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68008">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2944" name="HIV Status, Schema ID, Required (NAACCR)" tag="N2944" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.schemaId == '00790' || line.schemaId == '00795')
    return line.hivStatus != null && line.hivStatus != '8'
    
return true]]></expression>
            <message>HIV Status must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

1. This edit verifies that HIV Status is not "8" (not applicable) and not blank
   for the Schema IDs for which it is required by a standard setter.

   Required for Schema ID:

    00790: Lymphoma
    00795: Lymphoma (CLL/SLL)]]></description>
            <history>
                <event version="SE18-018-04" user="kirbyk" date="2018-08-01" ref="67828">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68008">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2945" name="JAK2, Schema ID, Required (NAACCR)" tag="N2945" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00830' || (line.jak2 != '8' && line.jak2 != null)]]></expression>
            <message>JAK2 must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that JAK2 is not "8" (not applicable) and not blank for 
   the Schema IDs for which it is required by a standard setter. 
    
   Required for Schema ID:

    00830: HemeRetic]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-01" ref="67829">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68008">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2946" name="NCCN International Prognostic Index (IPI), Schema ID, Required (NAACCR)" tag="N2946" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.schemaId == '00790' || line.schemaId == '00795')
    return line.nccnInternationalPrognosticIndex != null && line.nccnInternationalPrognosticIndex != 'X8'
    
return true]]></expression>
            <message>NCCN International Prognostic Index (IPI) must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that NCCN International Prognostic Index (IPI) is not "X8"
   (not applicable) and not blank for the Schema IDs for which it is required by
   a standard setter.

   Required for Schema ID:

    00790: Lymphoma (excluding CLL/SLL)
    00795: Lymphoma (CLL/SLL)]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-12" ref="67830">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68008">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2951" name="B Symptoms, Schema ID, Required (NAACCR)" tag="N2951" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return (line.schemaId != '00790' && line.schemaId != '00795') || (line.bSymptoms != null && line.bSymptoms != '8')]]></expression>
            <message>B Symptoms must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that B Symptoms is not "8" (not applicable) and not blank
   for the Schema IDs for which it is required by a standard setter.

    Required for Schema ID:

    00790: Lymphoma
    00795: Lymphoma (CLL/SLL)]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-12" ref="67916">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68008">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2958" name="Measured Basal Diameter, Schema ID, Required (NAACCR)" tag="N2958" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return (line.schemaId != '00671' && line.schemaId != '00672') || (line.measuredBasalDiameter != null && line.measuredBasalDiameter != 'XX.8')]]></expression>
            <message>Measured Basal Diameter must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Measured Basal Diameter is not "XX.8" ( not 
   applicable) and not blank for the Schema IDs for which it is required by a 
   standard setter.  

   This data item is required for EOD Derived Stage Group. 
    
    Required for Schema ID:

    00671: Melanoma Uvea (Iris)
    00672: Melanoma Uvea (Choroid and Ciliary Body)]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-02" ref="67846">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68008">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2959" name="Measured Thickness, Schema ID, Required (NAACCR)" tag="N2959" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return !Functions.matches(line.schemaId, /^006(60|7[12])$/) || (line.measuredThickness != null && line.measuredThickness != 'XX.8')]]></expression>
            <message>Measured Thickness must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Measured Thickness is not "XX.8" (not applicable) and
   not blank for the Schema IDs for which it is required by a standard setter.

  This data item is required for EOD Derived Stage Group for Schema IDs 00671
  and 00672.

    Required for Schema ID:

    00660: Conjunctival Melanoma
    00671: Melanoma Uvea (Iris)
    00672: Melanoma Uvea (Choroid and Ciliary Body)]]></description>
            <history>
                <event version="SE18-018-04" user="kirbyk" date="2018-07-31" ref="67847">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68008">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2962" name="Perineural Invasion, Schema ID, Required (NAACCR)" tag="N2962" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

String id = line.schemaId
if (id == '00150' || id == '00200' || id == '00640' || id == '00690')
    return line.perineuralInvasion != null && line.perineuralInvasion != '8'

return true]]></expression>
            <message>Perineural Invasion must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Perineural Invasion is not "8" (not applicable) and
   not blank for the Schema IDs for which it is required by a standard setter. 
    
    Required for Schema ID:

    00150: Cutaneous Carcinoma of the Head and Neck
    00200: Colon and Rectum
    00640: Skin of Eyelid
    00690: Lacrimal Gland]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-02" ref="67874">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68008">Added DCO skip condition.</event>
                <event version="SE18-018-05" user="kirbyk" date="2018-08-17" ref="68020">Changed schema name for 00150.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2965" name="Schema ID, Site, Histo, Schema Discriminator 1 (NAACCR)" tag="N2965" java-path="lines.line" category="inter-field" depends="Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018')
    return true

if (line.primarySite == null || line.histologicTypeIcdO3 == null)
    return true

Integer siteInt = Functions.asInt(line.primarySite.substring(1,4))
Map contextMap = (Map)Context.IFN2965_Table
if (!contextMap.containsKey(siteInt))
    return line.schemaDiscriminator1 == null
else {
    Map histologyMap = (Map)contextMap.get(siteInt)
    Integer histInt = Functions.asInt(line.histologicTypeIcdO3)
    if (!histologyMap.containsKey(histInt))
        return line.schemaDiscriminator1 == null
    
    List schemaIds = (List)(histologyMap.get(histInt))
    if (schemaIds != null && schemaIds.contains(line.schemaId)) {
        Map discrimMap = (Map)Context.IFN2965_Schema_ID_Table
        List validDiscrims = (List)discrimMap.get(line.schemaId)

        return validDiscrims.contains(line.schemaDiscriminator1)
    }
    else
        return false
}

return true]]></expression>
            <message>Primary Site, Histologic Type ICD-O-3, and Schema Discriminator 1 are incompatible with Schema ID.</message>
            <description><![CDATA[This edit verifies that Schema Discriminator 1, where required, is used where 
the Primary Site and Histologic Type ICD-O-3 codes are not sufficient to
identify the appropriate Schema ID. Schema Discriminator 1 code is 
used to distinguish between multiple meanings for these codes where required 
for Schema ID assignment.        

For example, for topography code C240, Schema Discriminator 1 code 3 is
assigned if the primary site is cystic duct, Schema ID 00240; code 1, 5, 6
or 9 is assigned if the primary site is perihilar bile ducts, Schema ID
00250; code 4 or 7 is assigned if the primary site is distal bile ducts,
Schema ID 00260. Schema Discriminator 1 is only required for the primary
site codes or histologies listed for each Schema ID; there may be other
primary site codes or histologies within the Schema ID that do not require
Schema Discriminator 1, and Schema Discriminator 1 must be left blank if
not required.

Schema Discriminator 1 is used for staging information rather than Schema ID
assignment for SchemaIDs 00430, 00730, 00740, and 00821.  
    
The edit checks that Schema ID, Primary Site code or Histologic Type ICD-O-3
code, and Schema Discriminator 1 code occur together within the edited
record, as shown in the following chart.  If there is an edit failure, the
problem may be due to a software error. If coding is reviewed and correct,
the software vendor should be consulted for assistance in resolving the
issue.

1. The edit is skipped for the following conditions:
    a.  Date of diagnosis before 2018, blank (unknown), or invalid.
    b.  Primary Site is blank
    c.  Histologic Type ICD-O-3 is blank

2. The edit checks that Schema Discriminator 1 is coded and not blank for
   Primary Site and/or Histologic Type ICD-O-3 as required.  The combinations
    of site and histology are determined by Schema ID but are checked
    independently of Schema ID assignment.

3. The edit then verifies that Schema Discriminator 1 is valid for Primary Site,
   Histologic Type ICD-O-3, and Schema ID.  Where SITE or HISTO is listed as "All",
   Schema Discriminator 1 is required for all the sites or histologies assigned to the
   Schema ID. Where a specific site or histology is listed, Schema Discriminator 1
   is required for only those sites or histologies for the Schema ID. 

    SCHEMA ID                                      SITE    HISTO    DISC 1

    00060    Cervical Lymph Nodes,                 C760    All         2,3,4,5
             Unknown Primary of Head and Neck
    00090    Nasopharynx                           C111    All         1
    00100    Oropharynx (p16+)                     C111    All         2
    00111    Oropharynx (p16-)                     C111    All         2
    00161    Esophagus Squamous                    C160    All         2
    00169    Esophagus excluding Squamous          C160    All         2
    00170    Stomach                               C160    All         0,3,9
    00242    Cystic Duct                           C240    All         3
    00250    Bile Ducts Perihilar                  C240    All         1,5,6,9
    00260    Bile Ducts Distal                     C240    All         4,7
    00430    GIST                                  C481    All         1,2,9
    00459    Soft Tissue Other                     C760    8941        0,1
    00631    Urethra                               C680    All         1
    00633    Urethra-Prostatic                     C680    All         2
    00671    Melanoma Iris                         C694    All         2
    00672    Melanoma Choroid and Ciliary Body     C694    All         1
    00690    Lacrimal Gland                        C695    All         1
    00698    Lacrimal Sac                          C695    All         2,9
    00730    Thyroid                               C739    All         1,2
    00740    Thyroid - Medullary                   C739    All         1,2
    00790    Lymphoma                              All     9591        3,9
    00821    Plasma Cell Myeloma                   All     9732        0,1,9
    00830    HemeRetic                             All     9591        1,2
    99999    Ill-Defined Other                     C760    Some*         0,1

*Histologies requiring Schema Discriminator 1 for 99999:
    8010, 8046, 8051-8052, 8070-8074, 8082-8084, 8121, 8140, 8147, 8200, 8310, 8430,
    8450, 8480, 8525,8550, 8562

4. The edit verifies that Schema Discriminator 1 is blank for all other
   Primary Site or Histologic Type ICD-O-3 codes in the Schema ID.

5. The edit verifies that Schema Discriminator 1 is left blank for all other
   Schema IDs.

6. Where Schema Discriminator 2 is also required to assign the correct Schema ID,
    the edit will pass either Schema ID as correct.  The Schema IDs include 00100 and
   00111, and 00161 and 00169 with histology 8020.

SCHEMA ID-
SITE OR HISTO    SCHEMA DISCRIMINATOR 1 CODES AND DEFINITIONS

00060-C760       2: Not tested for EBV or p16 in head and neck regional nodes
                    (EBV and p16 both unknown)
                 3: Unknown EBV, p16 negative in head and neck regional nodes
                 4: Unknown p16, EBV negative in head and neck regional nodes
                 5: Negative for both EBV and p16 in head and neck regional
                    nodes

00090-C111       1: Posterior wall of nasopharynx, NOS

00100-C111       2: Adenoid; pharyngeal tonsil
00111-C111

00161-C160       2: INVOLVEMENT of esophagus or esophagogastric junction (EGJ)
00169-C160          AND epicenter LESS THAN or EQUAL TO 2 cm into the proximal
                    stomach

00170-C160       0: NO involvement of esophagus or gastroesophageal junction
                    AND epicenter at ANY DISTANCE into the proximal stomach
                    (including distance unknown)
                 3: INVOLVEMENT of esophagus or esophagogastric junction (EGJ)
                    AND epicenter GREATER THAN 2 cm into the proximal stomach
                 9: UNKNOWN involvement of esophagus or gastroesophageal
                    junction
                    AND epicenter at ANY DISTANCE into the proximal stomach
                    (including distance unknown

00242-C240       3: Cystic bile duct; cystic duct

00250-C240       1: Perihilar bile duct(s)
                    Proximal extrahepatic bile duct(s); Hepatic duct(s)
                 5: Diffuse involvement
                    More than one subsite involved, subsite of origin not stated
                 6: Stated as middle extrahepatic bile duct
                    AND treated with combined hepatic and hilar resection
                 9: Extrahepatic bile ducts, NOS

00260-C240       4: Distal bile duct; Common bile duct; Common duct, NOS
                 7: Stated as middle extrahepatic bile duct
                    AND treated with combined hepatic and hilar resection

00430-C481       1: Mesentery; Mesoappendix; Mesocolon; Pelvic peritoneum;
                    Rectouterine pouch: Cul de sac, Pouch of Douglas;
                    Other specified peritoneal site
                 2: Omentum
                 9: Unknown or no information; Not documented in medical record

00459-C760       0: Not occult
                 1: Occult, Negative cervical nodes (regional head and neck nodes)

00631-C680       1: Male penile urethra; Female urethra: Urethral gland;
00633-C680          Cowper gland; Urethra, NOS
                 2: Males only: Prostatic urethra, Prostatic utricle

00671-C694       2: Iris

00672-C694       1: Ciliary Body; Crystalline lens; Sclera; Uveal tract;
                    Intraocular; Eyeball

00690-C695       1: Lacrimal gland

00698-C695       2: Lacrimal sac; Lacrimal duct, NOS; Nasal lacrimal duct/sac;
                    Nasolacrimal duct
                 9: Lacrimal, NOS

00730-C739       1: Thyroid gland; Thyroid, NOS
00740-C739       2: Thyroglossal duct cyst

00790-9591       3: Splenic diffuse red pulp small B-cell lymphoma
                    Splenic marginal zone lymphoma, diffuse variant
                    Splenic red pulp lymphoma with numerous basophilic villous
                    lymphocytes
                    Splenic lymphoma with villous lymphocytes
                 9: Non-Hodgkin lymphoma, NOS
                    Any other terminology describing non-Hodgkin lymphoma, NOS

00821            0: Multiple myeloma
                    Myeloma, NOS
                    Non-secretory myeloma
                    Plasma cell myeloma (PCM)
                    Ultra-High-Risk Smoldering MM (SMM)
                 1: Smoldering plasma cell myeloma (SPCM)
                    Asymptomatic plasma cell myeloma
                    Early myeloma
                    Evolving myeloma
                 9: Other terminology describing myeloma
                    Unknown terminology used

00830-9591       1: Splenic B-cell lymphoma/leukemia, unclassifiable
                 2: Hairy cell leukemia variant
                    Prolymphocytic variant of hairy cell leukemia

99999-C760       0: Not occult
                 1: Occult, Negative cervical nodes (regional head and neck nodes)]]></description>
            <history>
                <event version="SE18-018-10" user="kirbyk" date="2018-12-05" ref="68065">Edit created.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-11" ref="68090">Fixed table values and description and turned edit back on; changed edit name.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-15" ref="68168">Removed skip conditions for Schema ID.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-04" user="kirbyk" date="2021-04-12" ref="68595">Updated edit logic and table for 2021.</event>
                <event version="SE22-022-01" user="beverung" date="2022-02-07" ref="68779">Update table for 2022.</event>
            </history>
        </rule>
        <rule id="IFN2967" name="Ulceration, Schema ID, Required (NAACCR)" tag="N2967" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00470' || (line.ulceration != null && line.ulceration != '8')]]></expression>
            <message>Ulceration must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Ulceration is not "8" (not applicable) and not blank
   for the Schema IDs for which it is required by a standard setter.

   This data item is required for EOD Derived Stage Group.

    Required for Schema ID:

    00470: Melanoma of Skin]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-12" ref="67880">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68008">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2968" name="Schema ID, EOD Primary Tumor (SEER)" tag="N2968" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.eodPrimaryTumor == null)
    return true

List validCode = (List)((Map)Context.IFN2968_Table).get(line.schemaId)

return validCode == null || validCode.contains(line.eodPrimaryTumor)]]></expression>
            <message>EOD Primary Tumor is not valid for this Schema ID.</message>
            <description><![CDATA[This edit checks the values for EOD Primary Tumor by Schema ID.

This edit is skipped for any of the following conditions:
1. Year of Date of Diagnosis is less than 2018, blank (unknown), or invalid
2. Schema ID is blank
3. EOD Primary Tumor is blank


The following list shows the Schema ID, Schema name, and values of EOD--Primary
Tumor by Schema ID. The sites and histologies for each schema are listed in the
edit _SYS Schema ID, Primary Site, Histology, Behavior (NAACCR).


00060       Cervical Lymph Nodes and Unknown Primary


EOD Primary Tumor: 800


00071       Lip

EOD Primary Tumor: 000, 100, 150, 200, 300, 400, 500, 550, 600, 650, 700, 999


00072       Tongue Anterior

EOD Primary Tumor: 000, 100, 150, 200, 300, 400, 500, 600, 650, 700, 999


00073       Gum

EOD Primary Tumor: 000, 100, 150, 200, 300, 400, 500, 600, 650, 700, 999


00074       Floor of Mouth

EOD Primary Tumor: 000, 100, 150, 200, 300, 400, 500, 550, 600, 650, 700, 999


00075       Palate Hard

EOD Primary Tumor: 000, 100, 150, 200, 300, 400, 500, 600, 700, 750, 999


00076       Buccal Mucosa

EOD Primary Tumor: 000, 100, 150, 200, 300, 400, 500, 600, 700, 999


00077       Mouth Other

EOD Primary Tumor: 000, 100, 150, 200, 300, 400, 500, 600, 700, 999


00080       Major Salivary Glands

EOD Primary Tumor: 000, 100, 200, 300, 350, 400, 500, 600, 700, 800, 999


00090       Nasopharynx

EOD Primary Tumor: 000, 100, 200, 300, 500, 700, 800, 999


00100       Oropharynx HPV-Mediated (p16+)

EOD Primary Tumor: 000, 100, 200, 300, 400, 600, 700, 800, 999


00111       Oropharynx (p16-)

EOD Primary Tumor: 000, 100, 200, 300, 400, 500, 550, 600, 700, 999


00112       Hypopharynx

EOD Primary Tumor: 000, 100, 150, 200, 300, 400, 500, 600, 700, 999


00118       Pharynx Other

EOD Primary Tumor: 000, 100, 200, 700, 999


00119       Middle Ear

EOD Primary Tumor: 000, 100, 200, 700, 999


00121       Maxillary Sinus

EOD Primary Tumor: 000, 100, 200, 300, 400, 600, 700, 999


00122       Nasal Cavity and Ethmoid Sinus

EOD Primary Tumor: 000, 100, 150, 175, 200, 300, 400, 500, 550, 600, 700,
                   999


00128       Sinus Other

EOD Primary Tumor: 000, 100, 200, 700, 999


00130       Larynx Other

EOD Primary Tumor: 000, 100, 200, 700, 800, 999


00131       Larynx Supraglottic

EOD Primary Tumor: 000, 100, 200, 250, 300, 400, 450, 500, 600, 700, 999


00132       Larynx Glottic

EOD Primary Tumor: 000, 100, 150, 200, 250, 300, 400, 500, 600, 700, 999


00133       Larynx Subglottic

EOD Primary Tumor: 000, 100, 200, 400, 500, 600, 700, 999


00140       Melanoma Head and Neck

EOD Primary Tumor: 000, 100, 300, 500, 600, 700, 999


00150       Cutaneous Carcinoma Head and Neck

EOD Primary Tumor: 000, 100, 300, 400, 500, 600, 700, 999


00161       Esophagus (incl GE Junction) (incl Squamous)

EOD Primary Tumor: 000, 100, 150, 200, 250, 300, 350, 400, 500, 600, 700,
                   800, 999

00169       Esophagus (incl GE Junction) (excl Squamous)

EOD Primary Tumor: 000, 100, 150, 200, 250, 300, 350, 400, 500, 600, 700,
                   800, 999

00170       Stomach

EOD Primary Tumor: 000, 100, 200, 300, 400, 500, 600, 650, 700, 750, 800, 999


00180       Small Intestine

EOD Primary Tumor: 000, 100, 200, 250, 300, 400, 500, 600, 700, 800, 999


00190       Appendix [8th: 2018-2022]

EOD Primary Tumor: 000, 050, 070, 100, 200, 300, 400, 500, 600, 700, 750,
                   800, 999


09190       Appendix [V9: 2023+]

EOD Primary Tumor: 000, 050, 070, 100, 200, 300, 400, 500, 600, 700, 750,
                   800, 999


00200       Colon and Rectum

EOD Primary Tumor: 000, 050, 100, 200, 300, 400, 500, 600, 700, 800, 999


00210       Anus [8th: 2018-2022]

EOD Primary Tumor: 000, 100, 200, 600, 700, 800, 999


09210       Anus [V9: 2023+]

EOD Primary Tumor: 000, 100, 200, 600, 700, 800, 999


00220       Liver

EOD Primary Tumor: 000, 100, 150, 200, 300, 400, 500, 600, 700, 800, 999


00230       Bile Ducts Intrahepatic

EOD Primary Tumor: 000, 100, 200, 300, 400, 500, 600, 700, 800, 999


00241       Gallbladder

EOD Primary Tumor: 000, 100, 200, 300, 400, 450, 500, 550, 600, 700, 800, 999


00242       Cystic Duct

EOD Primary Tumor: 000, 100, 150, 200, 250, 300, 400, 450, 500, 550, 600,
                   650, 700, 800, 999


00250       Bile    Ducts Perihilar

EOD Primary Tumor: 000, 100, 200, 250, 300, 400, 500, 600, 700, 800, 999


00260       Bile    Ducts Distal

EOD Primary Tumor: 000, 100, 200, 600, 700, 800, 999


00270       Ampulla of Vater

EOD Primary Tumor: 000, 100, 150, 200, 250, 300, 400, 450, 500, 600, 700, 800, 999


00278       Biliary Other

EOD Primary Tumor: 000, 100, 200, 700, 800, 999


00280       Pancreas

EOD Primary Tumor: 000, 100, 500, 600, 700, 800, 999


00288       Digestive Other

EOD Primary Tumor: 000, 100, 200, 700, 800, 999


00290 NET Stomach [8th: 2018-2023]

EOD Primary Tumor: 000, 100, 200, 400, 500, 600, 700, 800, 999


09290 NET Stomach [V9: 2024+]

EOD Primary Tumor: 000, 100, 200, 400, 500, 600, 700, 800, 999


00301 NET Duodenum [8th: 2018-2023]

EOD Primary Tumor: 000, 100, 200, 300, 400, 600, 700, 800, 999


09301 NET Duodenum [V9: 2024+]

EOD Primary Tumor: 000, 100, 200, 300, 400, 600, 700, 800, 999


00302 NET Ampulla of Vater [8th: 2018-2023]

EOD Primary Tumor: 000, 100, 200, 300, 400, 500, 600, 700, 800, 999


09302 NET Ampulla of Vater [V9: 2024+]

EOD Primary Tumor: 000, 100, 200, 300, 400, 500, 600, 700, 800, 999


00310 NET Jejunum and Ileum [8th: 2018-2023]

EOD Primary Tumor: 000, 100, 200, 300, 500, 600, 700, 800, 999


09310 NET Jejunum and Ileum [V9: 2024+]

EOD Primary Tumor: 000, 100, 200, 300, 500, 600, 700, 800, 999


00320 NET Appendix [8th: 2018-2023]

EOD Primary Tumor: 000, 100, 200, 300, 700, 800, 999


09320 NET Appendix [V9: 2024+]

EOD Primary Tumor: 000, 100, 200, 300, 700, 800, 999


00330 NET Colon and Rectum [8th: 2018-2023]

EOD Primary Tumor: 000, 100, 200, 300, 400, 600, 700, 800, 999


09330 NET Colon and Rectum [V9: 2024+]

EOD Primary Tumor: 000, 100, 200, 300, 400, 600, 700, 800, 999


00340 NET Pancreas [8th: 2018-2023]

EOD Primary Tumor: 000, 100, 200, 300, 500, 600, 700, 800, 999


09340 NET Pancreas [V9: 2024+]

EOD Primary Tumor: 000, 100, 200, 300, 500, 600, 700, 800, 999


00350       Thymus

EOD Primary Tumor: 000, 100, 200, 300, 400, 500, 700, 800, 999


00358       Trachea

EOD Primary Tumor: 000, 100, 200, 700, 800, 999


00360       Lung

EOD Primary Tumor: 000, 100, 200, 300, 400, 450, 500, 600, 650, 675, 700, 800,
                   980, 999


00370       Pleural Mesothelioma

EOD Primary Tumor: 000, 100, 300, 500, 600, 700, 800, 999


00378       Respiratory Other

EOD Primary Tumor: 000, 100, 200, 700, 800, 999


00381       Bone Appendicular Skeleton

EOD Primary Tumor: 100, 200, 300, 500, 800, 999


00382       Bone Spine

EOD Primary Tumor: 100, 200, 300, 400, 450, 500, 650, 700, 750, 800, 999


00383       Bone Pelvis

EOD Primary Tumor: 100, 200, 300, 400, 500, 550, 600, 650, 700, 750, 800, 999


00400       Soft Tissue Head and Neck

EOD Primary Tumor: 100, 200, 500, 600, 700, 800, 999


00410       Soft Tissue Trunk and Extremities

EOD Primary Tumor: 100, 200, 700, 800, 999


00421       Soft Tissue Abdomen and Thorax

EOD Primary Tumor: 100, 200, 300, 400, 500, 550, 600, 650, 700, 750, 800, 999


00422       Soft Tissue Heart, Mediastinum, Pleura

EOD Primary Tumor: 100, 200, 300, 400, 500, 550, 600, 650, 700, 750, 800, 999


00430       GIST

EOD Primary Tumor: 000, 100, 400, 700, 800, 999


00440       Soft Tissue Retroperitoneum

EOD Primary Tumor: 100, 200, 700, 800, 999


00450       Soft Tissue Rare

EOD Primary Tumor: 100, 200, 700, 800, 999


00458       Kaposi Sarcoma

EOD Primary Tumor: 100, 200, 300, 600, 700, 800, 999


00459       Soft Tissue Other

EOD Primary Tumor: 100, 200, 700, 800, 999


00460       Merkel Cell Skin

EOD Primary Tumor: 000, 100, 400, 700, 800, 999


00470       Melanoma Skin

EOD Primary Tumor: 000, 100, 200, 300, 400, 500, 700, 800, 999


00478       Skin Other

EOD Primary Tumor: 000, 100, 200, 700, 800, 999


00480       Breast

EOD Primary Tumor: 000, 050, 070, 100, 200, 300, 400, 450, 500, 600, 700,
                   800, 999


00500 Vulva [8th: 2018-2023]

EOD Primary Tumor: 000, 100, 150, 200, 250, 300, 400, 500, 600, 700, 800, 999


09500 Vulva [V9: 2024+]

EOD Primary Tumor: 000, 100, 150, 200, 250, 300, 400, 500, 600, 650, 750, 800, 999


00510       Vagina

EOD Primary Tumor: 000, 100, 300, 400, 500, 600, 700, 800, 999


00520       Cervix [8th: 2018-2020]

EOD Primary Tumor: 000, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550,
                   600, 700, 750, 800, 999


00528       Cervix Sarcoma

EOD Primary Tumor: 100, 200, 300, 400, 500, 550, 600, 650, 700, 750,
800, 999


09520       Cervix [9th: 2021+]

EOD Primary Tumor: 000, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550,
                   600, 700, 750, 800, 999


00530       Corpus Carcinoma and Carcinosarcoma

EOD Primary Tumor: 000, 050, 100, 150, 200, 250, 300, 400, 500, 550,
                   600, 650, 700, 750, 800, 999


00541       Corpus Sarcoma

EOD Primary Tumor: 100, 200, 400, 450, 500, 550, 600, 650, 700, 750,
                   800, 999


00542       Corpus Adenosarcoma

EOD Primary Tumor: 100, 125, 150, 175, 200, 250, 300, 350, 400, 450, 500, 550,
                   600, 650, 700, 750, 800, 999


00551       Ovary

EOD Primary Tumor: 000, 050, 100, 150, 200, 250, 300, 350, 400, 450, 500, 600, 650,
                   700, 750, 800, 999


00552       Primary Peritoneal Carcinoma

EOD Primary Tumor: 000, 300, 400, 450, 600, 650, 700, 750, 800, 999


00553       Fallopian Tube

EOD Primary Tumor: 000, 050, 070, 080, 100, 150, 250, 300, 350, 400, 450, 500, 600, 650,
                   700, 750, 800, 999


00558       Adnexa Uterine Other

EOD Primary Tumor: 000, 100, 200, 700, 800, 999


00559       Genital Female Other

EOD Primary Tumor: 000, 100, 200, 700, 800, 999


00560       Placenta

EOD Primary Tumor: 000, 100, 200, 300, 700, 800, 999


00570       Penis

EOD Primary Tumor: 000, 050, 070, 100, 150, 200, 300, 400, 450, 500, 550, 600,
                   700, 800, 999


00580       Prostate

EOD Primary Tumor: 000, 100, 110, 120, 150, 200, 210, 220, 250, 300, 350, 400,
                   500, 600, 700, 800, 999


00590       Testis

EOD Primary Tumor: 000, 100, 150, 200, 300, 400, 500, 600, 700, 800, 999


00598       Genital Male Other

EOD Primary Tumor: 000, 100, 200, 700, 800, 999


00600       Kidney Parenchyma

EOD Primary Tumor: 000, 100, 200, 300, 400, 500, 600, 700, 800, 999


00610       Kidney Renal Pelvis

EOD Primary Tumor: 000, 050, 100, 200, 300, 400, 500, 600, 700, 800, 999


00620       Bladder

EOD Primary Tumor: 000, 050, 100, 130, 150, 170, 200, 250, 300, 350, 370, 400,
                   450, 500, 550, 600, 650, 700, 720, 750, 800, 999


00631       Urethra

EOD Primary Tumor: 000, 050, 100, 200, 300, 400, 700, 800, 999


00633       Urethra-Prostatic

EOD Primary Tumor: 000, 050, 100, 300, 400, 700, 800, 999


00638       Urinary Other

EOD Primary Tumor: 000, 100, 200, 700, 800, 999


00640       Skin Eyelid

EOD Primary Tumor: 000, 100, 200, 300, 400, 500, 600, 700, 800, 999


00650       Conjunctiva

EOD Primary Tumor: 000, 100, 200, 300, 400, 500, 600, 650, 700, 800, 999


00660       Melanoma Conjunctiva

EOD Primary Tumor: 000, 100, 110, 120, 130, 150, 200, 250, 300, 350, 400, 450,
                   500, 550, 600, 650, 700, 750, 800, 999


00671       Melanoma Iris

EOD Primary Tumor: 000, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550, 600,
                   650, 700, 800, 999


00672       Melanoma Choroid and Cililary Body

EOD Primary Tumor: 000, 100, 200, 300, 400, 500, 600, 700, 800, 999


00680       Retinoblastoma

EOD Primary Tumor: 100, 125, 150, 175, 200, 225, 250, 275, 300, 325, 350, 375,
                   400, 425, 450, 475, 500, 525, 550, 600, 650, 700, 750, 800,
                   999


00690       Lacrimal Gland

EOD Primary Tumor: 000, 100, 200, 300, 700, 800, 999


00698       Lacrimal Sac

EOD Primary Tumor: 000, 100, 200, 700, 800, 999


00700       Orbital Sarcoma

EOD Primary Tumor: 000, 100, 300, 400, 700, 800, 999


00710       Lymphoma    Ocular Adnexa

EOD Primary Tumor: 100, 200, 300, 400, 700, 800, 999


00718       Eye Other

EOD Primary Tumor: 000, 100, 200, 700, 800, 999


00721       Brain [8th: 2018-2022]

EOD Primary Tumor: 050, 100, 500, 700, 800, 999


09721 Brain [9V9: 2023+]

EOD Primary Tumor: 050, 100, 500, 700, 800, 999


00722       CNS Other [8th: 2018-2022]

EOD Primary Tumor: 050, 100, 500, 700, 800, 999


09722 CNS Other [V9: 2023+]

EOD Primary Tumor: 050, 100, 500, 700, 800, 999


00723       Intracranial Gland [8th: 2018-2022]

EOD Primary Tumor: 000, 050, 100, 200, 700, 800, 999


09723       Intracranial Gland [V9: 2023+]

EOD Primary Tumor: 000, 050, 100, 200, 700, 800, 999


09724       Medulloblastoma [V9: 2023+]

EOD Primary Tumor: 050, 150, 250, 800, 999


00730       Thyroid

EOD Primary Tumor: 000, 100, 200, 300, 400, 600, 700, 750, 800, 999


00740       Thyroid Medullary

EOD Primary Tumor: 000, 100, 200, 300, 400, 600, 700, 750, 800, 999


00750       Parathyroid

EOD Primary Tumor: 000, 050, 100, 200, 300, 700, 800, 999


00760       Adrenal Gland

EOD Primary Tumor: 000, 100, 200, 300, 700, 800, 999


00770       NET Adrenal

EOD Primary Tumor: 000, 100, 200, 300, 700, 800, 999


00778       Endocrine Other

EOD Primary Tumor: 000, 100, 200, 700, 800, 999


00790       Lymphoma (excluding CLL/SLL)


EOD Primary Tumor: 100, 200, 300, 400, 500, 575, 600, 700, 750, 800, 999


00795       Lymphoma (CLL/SLL)

EOD Primary Tumor: 100, 200, 300, 400, 500, 575, 600, 700, 750, 800, 999


00811       Mycosis Fungoides

EOD Primary Tumor: 100, 150, 200, 250, 300, 400, 450, 500, 600, 700, 800, 999


00812       Primary Cutaneous Lymphomas (excluding Mycosis Fungoides)

EOD Primary Tumor: 100, 200, 400, 500, 600, 700, 800, 999


00821       Plasma Cell Myeloma

EOD Primary Tumor: 700, 999


00822       Plasma Cell Disorder

EOD Primary Tumor: 100, 200, 700, 999


00830       HemeRetic

EOD Primary Tumor: 100, 700, 999


99999       Ill-Defined Other/Ill-Defined Other

EOD Primary Tumor: 888]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-17" ref="67950">Edit created.</event>
                <event version="SE18-018-04" user="kirbyk" date="2018-08-06" ref="67984">For Schema ID &apos;00822&apos;, changed name to &apos;Plasma Cell Disorder&apos; and added valid code &apos;700&apos;.</event>
                <event version="SE18-018-05" user="kirbyk" date="2018-08-17" ref="68020">Changed schema name for 00150.</event>
                <event version="SE18-018-07" user="kirbyk" date="2018-10-01" ref="68037">Added valid codes &apos;400&apos; and &apos;500&apos; for schema ID &apos;00812&apos;.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-08" ref="68122">Added valid code &apos;675&apos; for schema ID &apos;00360&apos;, and code &apos;400&apos; for schema ID &apos;00740&apos;.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-27" ref="68133">Changed schema ID &apos;00632&apos; to &apos;00633&apos;.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-16" ref="68163">Changed several valid codes in description and logic.</event>
                <event version="SE18-019-03" user="kirbyk" date="2019-08-01" ref="68210">Removed code &apos;250&apos; for prostate (00680).</event>
                <event version="SE18-019-07" user="beverung" date="2019-11-05" ref="68269">Updated table and description to list 250 as a valid code for Retinoblastoma (00680).</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-27" ref="68305">Removed code &apos;250&apos; for prostate (00580).</event>
                <event version="SE18-020-03" user="beverung" date="2020-04-17" ref="68339">Added back code &apos;250&apos; for prostate (00580).</event>
                <event version="SE21-021-01" user="kirbyk" date="2021-01-08" ref="68457">Updated valid codes for NAACCR 21.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-21" ref="68843">Added logic for new schema IDs, removed 070, 080 from 00530.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-06" ref="69133">Added logic for schema IDs 00230, 00370, 00790, 00795, 09190, 09210, 09721-4.</event>
                <event version="SE24-024-01" user="kirbyk" date="2024-03-06" ref="69416">Added new schema IDs for NAACCR 24.</event>
            </history>
        </rule>
        <rule id="IFN2969" name="Schema ID, EOD Regional Nodes (SEER)" tag="N2969" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.eodRegionalNodes == null)
    return true

List validCode = (List)((Map)Context.IFN2969_Table).get(line.schemaId)

return validCode == null || validCode.contains(line.eodRegionalNodes)]]></expression>
            <message>EOD Regional Nodes is not valid for this Schema ID.</message>
            <description><![CDATA[This edit checks the values of EOD Regional Nodes by Schema ID.

This edit is skipped for any of the following conditions:
1. Year of Date of Diagnosis is less than 2018, blank (unknown), or invalid
2. Schema ID is blank
3. EOD Regional Nodes is blank


The following list shows the Schema ID, Schema name, and values of EOD--
Regional Nodes. The sites and histologies for each schema are listed in the edit
_SYS Schema ID, Primary Site, Histology, Behavior (NAACCR).


00060       Cervical Lymph Nodes and Unknown Primary

EOD Regional Nodes: 100, 150, 200, 250, 300, 400, 450, 500, 600, 700,
                    800, 999

00071       Lip

EOD Regional Nodes: 000, 100, 150, 200, 250, 300, 400, 450, 500, 600, 700,
                    800, 999


00072       Tongue Anterior

EOD Regional Nodes: 000, 100, 150, 200, 250, 300, 400, 450, 500, 600, 700,
                    800, 999

00073       Gum

EOD Regional Nodes: 000, 100, 150, 200, 250, 300, 400, 450, 500, 600, 700,
                    800, 999


00074       Floor of Mouth

EOD Regional Nodes: 000, 100, 150, 200, 250, 300, 400, 450, 500, 600, 700,
                    800, 999


00075       Palate Hard

EOD Regional Nodes: 000, 100, 150, 200, 250, 300, 400, 450, 500, 600, 700,
                    800, 999


00076       Buccal Mucosa

EOD Regional Nodes: 000, 100, 150, 200, 250, 300, 400, 450, 500, 600, 700,
                    800, 999


00077       Mouth Other

EOD Regional Nodes: 000, 100, 150, 200, 250, 300, 400, 450, 500, 600, 700,
                    800, 999


00080       Major Salivary Glands

EOD Regional Nodes: 000, 100, 150, 200, 250, 300, 400, 450, 500, 600, 700,
                    800, 999


00090       Nasopharynx

EOD Regional Nodes: 000, 300, 400, 600, 800, 999


00100       Oropharynx HPV-Mediated (p16+)

EOD Regional Nodes: 000, 300, 400, 500, 800, 999


00111       Oropharynx (p16-)

EOD Regional Nodes: 000, 100, 150, 200, 250, 300, 400, 450, 500, 600, 700,
                    800, 999


00112       Hypopharynx

EOD Regional Nodes: 000, 100, 150, 200, 250, 300, 400, 450, 500, 600, 700,
                    800, 999


00118       Pharynx Other

EOD Regional Nodes: 000, 300, 800, 999


00119       Middle Ear

EOD Regional Nodes: 000, 300, 800, 999


00121       Maxillary Sinus

EOD Regional Nodes: 000, 100, 150, 200, 250, 300, 400, 450, 500, 600, 700,
                    800, 999


00122       Nasal Cavity and Ethmoid Sinus

EOD Regional Nodes: 000, 100, 150, 200, 250, 300, 400, 450, 500, 600, 700,
                    800, 999


00128       Sinus Other

EOD Regional Nodes: 000, 300, 800, 999


00130       Larynx Other

EOD Regional Nodes: 000, 100, 150, 200, 250, 300, 400, 500, 600, 700, 800, 999


00131       Larynx Supraglottic

EOD Regional Nodes: 000, 100, 150, 200, 250, 300, 400, 450, 500, 600, 700,
                    800, 999


00132       Larynx Glottic

EOD Regional Nodes: 000, 100, 150, 200, 250, 300, 400, 450, 500, 600, 700,
                    800, 999


00133       Larynx Subglottic

EOD Regional Nodes: 000, 100, 150, 200, 250, 300, 400, 450, 500, 600, 700,
                    800, 999


00140       Melanoma Head and Neck

EOD Regional Nodes: 000, 300, 800, 999


00150       Cutaneous Carcinoma of the Head and Neck

EOD Regional Nodes: 000, 100, 150, 200, 250, 300, 400, 450, 500, 600, 700,
                    800, 999


00161       Esophagus (incl GE Junction) (incl Squamous)

EOD Regional Nodes: 000, 300, 700, 800, 999


00169       Esophagus (incl GE Junction) (excl Squamous)

EOD Regional Nodes: 000, 300, 700, 800, 999


00170       Stomach

EOD Regional Nodes: 000, 300, 400, 800, 999


00180       Small Intestine

EOD Regional Nodes: 000, 300, 800, 999


00190       Appendix [8th: 2018-2022]

EOD Regional Nodes: 000, 300, 400, 800, 999


09190       Appendix [V9: 2023+]

EOD Regional Nodes: 000, 300, 400, 800, 999


00200       Colon and Rectum

EOD Regional Nodes: 000, 200, 300, 800, 999


00210       Anus [8th: 2018-2022]

EOD Regional Nodes: 000, 300, 400, 500, 800, 999


09210       Anus [V9: 2023]

EOD Regional Nodes: 000, 300, 400, 500, 800, 999


00220       Liver

EOD Regional Nodes: 000, 300, 700, 800, 999


00230       Bile Ducts Intrahepatic

EOD Regional Nodes: 000, 300, 400, 700, 800, 999


00241       Gallbladder

EOD Regional Nodes: 000, 300, 700, 800, 999


00242       Cystic Duct

EOD Regional Nodes: 000, 300, 700, 800, 999


00250       Bile Ducts Perihilar

EOD Regional Nodes: 000, 300, 800, 999


00260       Bile Ducts Distal

EOD Regional Nodes: 000, 300, 700, 800, 999


00270       Ampulla Vater

EOD Regional Nodes: 000, 300, 400, 800, 999


00278       Biliary Other

EOD Regional Nodes: 000, 300, 700, 800, 999


00280       Pancreas

EOD Regional Nodes: 000, 300, 700, 800, 999


00288       Digestive Other

EOD Regional Nodes: 000, 300, 800, 999


00290 NET Stomach [8th: 2018-2023]

EOD Regional Nodes: 000, 300, 700, 800, 999


09290 NET Stomach [V9: 2024+]

EOD Regional Nodes: 000, 300, 700, 800, 999


00301 NET Duodenum [8th: 2018-2023]
EOD Regional Nodes: 000, 300, 800, 999


09301 NET Duodenum [V9: 2024+]
EOD Regional Nodes: 000, 300, 800, 999


00302 NET Ampulla of Vater [8th: 2018-2023]
EOD Regional Nodes: 000, 300, 800, 999


09302 NET Ampulla of Vater [V9: 20-24+]
EOD Regional Nodes: 000, 300, 800, 999


00310 NET Jejunum and Ileum [8th: 2018-2023]
EOD Regional Nodes: 000, 300, 400, 800, 999


09310 NET Jejunum and Ileum [V9: 2024+]
EOD Regional Nodes: 000, 300, 400, 800, 999


00320 NET Appendix [8th: 2018-2023]
EOD Regional Nodes: 000, 300, 800, 999


09320 NET Appendix [V9: 2024+]
EOD Regional Nodes: 000, 300, 800, 999


00330 NET Colon and Rectum [8th: 2018-2023]
EOD Regional Nodes: 000, 300, 800, 999


09330 NET Colon and Rectum [V9: 2024+]
EOD Regional Nodes: 000, 300, 800, 999


00340 NET Pancreas [8th: 2018-2023]
EOD Regional Nodes: 000, 300, 700, 800, 999


09340 NET Pancreas [V9: 2024+]
EOD Regional Nodes: 000, 300, 700, 800, 999


00350       Thymus

EOD Regional Nodes: 000, 300, 400, 800, 999


00358       Trachea

EOD Regional Nodes: 000, 300, 800, 999


00360       Lung

EOD Regional Nodes: 000, 300, 400, 600, 700, 800, 999


00370       Pleural Mesothelioma

EOD Regional Nodes: 000, 300, 700, 800, 999


00378       Respiratory Other

EOD Regional Nodes: 000, 300, 800, 999


00381       Bone Appendicular Skeleton

EOD Regional Nodes: 000, 800, 999


00382       Bone Spine

EOD Regional Nodes: 000, 800, 999


00383       Bone Pelvis

EOD Regional Nodes: 000, 800, 999


00400       Soft Tissue Head and Neck

EOD Regional Nodes: 000, 300, 800, 999


00410       Soft Tissue Trunk and Extremities

EOD Regional Nodes: 000, 300, 800, 999


00421       Soft Tissue Abdomen and Thorax

EOD Regional Nodes: 000, 800, 999


00422       Soft Tissue Heart, Mediastinum, Pleura

EOD Regional Nodes: 000, 300, 800, 999


00430       GIST

EOD Regional Nodes: 000, 300, 800, 999


00440       Soft Tissue Retroperitoneum

EOD Regional Nodes: 000, 300, 800, 999


00450       Soft Tissue Rare

EOD Regional Nodes: 000, 800, 999


00458       Kaposi Sarcoma

EOD Regional Nodes: 000, 100, 200, 300, 700, 800, 999

00459 Soft Tissue Other

EOD Regional Nodes: 000, 800, 999


00460       Merkel Cell Skin

EOD Regional Nodes: 000, 100, 200, 300, 350, 400, 500, 600, 650, 700, 750,
                    800, 999


00470       Melanoma Skin

EOD Regional Nodes: 000, 100, 200, 300, 350, 400, 450, 500, 550, 600, 650, 700,
                    750, 800, 999

00478       Skin Other

EOD Regional Nodes: 000, 300, 800, 999


00480       Breast

EOD Regional Nodes: 000, 030, 050, 070, 100, 150, 200, 250, 300, 350, 400,
                    500, 600, 700, 800, 999


00500 Vulva [8th: 2018-2023]

EOD Regional Nodes: 000, 050, 100, 200, 300, 400, 500, 600, 700, 750, 800, 999


09500 Vulva [V9: 2024+]

EOD Regional Nodes: 000, 040, 110, 120, 150, 250, 310, 650, 800, 999


00510       Vagina

EOD Regional Nodes: 000, 050, 300, 800, 999


00520       Cervix [8th: 2018-2020]

EOD Regional Nodes: 000, 050, 300, 800, 999


09520       Cervix [9th: 2021+]

EOD Regional Nodes: 000, 050, 100, 200, 300, 400, 500, 600, 800, 999

00528 Cervix Sarcoma

EOD Regional Nodes: 000, 050, 300, 800, 999


00530       Corpus Carcinoma and Carcinosarcoma

EOD Regional Nodes: 000, 050, 100, 200, 300, 400, 500, 600, 800, 999


00541       Corpus Sarcoma

EOD Regional Nodes: 000, 050, 300, 800, 999


00542       Corpus Adenosarcoma

EOD Regional Nodes: 000, 050, 300, 800, 999


00551       Ovary

EOD Regional Nodes: 000, 050, 300, 400, 500, 800, 999


00552       Primary Peritoneal Carcinoma

EOD Regional Nodes: 000, 050, 300, 400, 500, 800, 999


00553       Fallopian Tube

EOD Regional Nodes: 000, 050, 300, 400, 500, 800, 999


00558       Adnexa Uterine Other

EOD Regional Nodes: 000, 300, 800, 999


00559       Genital Female Other

EOD Regional Nodes: 000, 800, 999


00560       Placenta

EOD Regional Nodes: 000, 300, 800, 999


00570       Penis

EOD Regional Nodes: 000, 100, 200, 300, 400, 500, 800, 999


00580       Prostate

EOD Regional Nodes: 000, 300, 800, 999


00590       Testis

EOD Regional Nodes: 000, 100, 200, 300, 400, 500, 600, 800, 999


00598       Genital Male Other

EOD Regional Nodes: 000, 300, 800, 999


00600       KidneyParenchyma

EOD Regional Nodes: 000, 300, 800, 999


00610       Kidney Renal Pelvis

EOD Regional Nodes: 000, 200, 300, 400, 800, 999


00620       Bladder

EOD Regional Nodes: 000, 300, 400, 700, 800, 999


00631       Urethra

EOD Regional Nodes: 000, 300, 400, 800, 999


00633       Urethra-Prostatic

EOD Regional Nodes: 000, 300, 400, 800, 999


00638       Urinary Other

EOD Regional Nodes: 000, 300, 800, 999


00640       Skin Eyelid

EOD Regional Nodes: 000, 100, 200, 300, 400, 500, 600, 700, 800, 999


00650       Conjunctiva

EOD Regional Nodes: 000, 300, 800, 999


00660       Melanoma Conjunctiva

EOD Regional Nodes: 000, 300, 800, 999


00671       Melanoma Iris

EOD Regional Nodes: 000, 300, 400, 500, 800, 999


00672       Melanoma Choroid and Cililary Body

EOD Regional Nodes: 000, 300, 400, 500, 800, 999


00680       Retinoblastoma

EOD Regional Nodes: 000, 300, 800, 999


00690       Lacrimal Gland

EOD Regional Nodes: 000, 300, 800, 999


00698       Lacrimal Sac

EOD Regional Nodes: 000, 300, 800, 999


00700       Orbital Sarcoma

EOD Regional Nodes: 000, 300, 800, 999


00710       Lymphoma    Ocular Adnexa

EOD Regional Nodes: 000, 300, 400, 500, 600, 700, 750, 800, 999


00718       Eye Other

EOD Regional Nodes: 000, 300, 800, 999


00721       Brain [8th: 2018-2022]

EOD Regional Nodes: 888


09721 Brain [V9: 2023+]

EOD Regional Nodes: 888


00722       CNS Other [8th: 2018-2022]

EOD Regional Nodes: 888


09722       CNS Other [V9: 2023+]

EOD Regional Nodes: 888


00723       Intracranial Gland [8th: 2018-2022]

EOD Regional Nodes: 888


09723       Intracranial Gland [V9: 2023+]

EOD Regional Nodes: 888


09724       Medulloblastoma [V9: 2023+]

EOD Regional Nodes: 888


00730       Thyroid

EOD Regional Nodes: 000, 050, 070, 300, 400, 800, 999


00740       Thyroid Medullary

EOD Regional Nodes: 000, 050, 070, 300, 400, 800, 999


00750       Parathyroid

EOD Regional Nodes: 000, 300, 400, 800, 999


00760       Adrenal Gland

Nodes: 000, 300, 800, 999


00770       NET Adrenal

EOD Regional Nodes: 000, 300, 800, 999


00778       Endocrine Other

EOD Regional Nodes: 000, 300, 800, 999


00790       Lymphoma (excluding CLL/SLL)

EOD Regional Nodes: 888


00795       Lymphoma (CLL/SLL)

EOD Regional Nodes: 888


00811       Mycosis Fungoides

EOD Regional Nodes: 000, 050, 100, 200, 300, 400, 500, 600, 700, 800, 999


00812       Primary Cutaneous Lymphomas (excluding Mycosis Fungoides)

EOD Regional Nodes: 000, 300, 400, 500, 800, 999


00821       Plasma Cell Myeloma

EOD Regional Nodes: 888


00822       Plasma Cell Disorder

EOD Regional Nodes: 000, 800, 987, 999


00830       HemeRetic

EOD Regional Nodes: 888


99999       Ill-Defined Other/Ill-Defined Other

EOD Regional Nodes: 888]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-17" ref="67951">Edit created.</event>
                <event version="SE18-018-04" user="kirbyk" date="2018-08-08" ref="67985">Updated name for schema 00822 in description.</event>
                <event version="SE18-018-05" user="kirbyk" date="2018-08-17" ref="68020">Changed schema name for 00150.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-27" ref="68133">Changed schema ID &apos;00632&apos; to &apos;00633&apos;.</event>
                <event version="SE21-021-01" user="beverung" date="2021-01-12" ref="68459">Added and removed codes.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68725">Added 400 as a valid code for schema ID 00510.</event>
                <event version="SE22-022-01" user="smithm" date="2022-01-19" ref="68844">Added valid codes for schema IDs 00459 and 00528.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-06" ref="69134">Added logic for schema IDs 00458, 09190, 09210, and 09721-4.</event>
                <event version="SE24-024-01" user="kirbyk" date="2024-03-15" ref="69417">Added logic for new NAACCR 24 schema IDs.</event>
            </history>
        </rule>
        <rule id="IFN2970" name="Schema ID, EOD Mets (SEER)" tag="N2970" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.eodMets == null)
    return true

List validCode = (List)((Map)Context.IFN2970_Table).get(line.schemaId)

return validCode == null || validCode.contains(line.eodMets)]]></expression>
            <message>EOD Mets is not valid for this Schema ID.</message>
            <description><![CDATA[This edit checks the values for EOD Mets by Schema ID.

This edit is skipped for any of the following conditions:
1. Year of Date of Diagnosis is less than 2018, blank (unknown), or invalid.
2. Schema ID is blank
3. EOD Mets is blank

The following list shows the Schema ID, Schema name, and values for EOD Mets. The
sites and histologies for each schema are listed in the edit _SYS Schema ID,
Primary Site, Histology, Behavior (NAACCR).


00060       Cervical Lymph Nodes and Unknown Primary

EOD Mets: 00, 10, 70, 99


00071       Lip

EOD Mets: 00, 10, 70, 99


00072       Tongue Anterior

EOD Mets: 00, 10, 70, 99


00073       Gum

EOD Mets: 00, 10, 70, 99


00074       Floor of Mouth

EOD Mets: 00, 10, 70, 99


00075       Palate Hard

EOD Mets: 00, 10, 70, 99


00076       Buccal Mucosa

EOD Mets: 00, 10, 70, 99


00077       Mouth Other

EOD Mets: 00, 10, 70, 99


00080       Major Salivary Glands

EOD Mets: 00, 10, 70, 99


00090       Nasopharynx

EOD Mets: 00, 10, 70, 99


00100       Oropharynx HPV-Mediated (p16+)

EOD Mets: 00, 10, 70, 99


00111       Oropharynx (p16-)

EOD Mets: 00, 10, 70, 99


00112       Hypopharynx

EOD Mets: 00, 10, 70, 99


00118       Pharynx Other

EOD Mets: 00, 10, 70, 99


00119       Middle Ear

EOD Mets: 00, 10, 70, 99


00121       Maxillary Sinus

EOD Mets: 00, 10, 70, 99


00122       Nasal Cavity and Ethmoid Sinus

EOD Mets: 00, 10, 70, 99


00128       Sinus Other

EOD Mets: 00, 10, 70, 99


00130       Larynx Other

EOD Mets: 00, 10, 70, 99


00131       Larynx Supraglottic

EOD Mets: 00, 10, 70, 99


00132       Larynx Glottic

EOD Mets: 00, 10, 70, 99


00133       Larynx Subglottic

EOD Mets: 00, 10, 70, 99


00140       Melanoma Head and Neck

EOD Mets: 00, 10, 70, 99


00150       Cutaneous Carcinoma Head and Neck

EOD Mets: 00, 10, 70, 99


00161       Esophagus (incl GE Junction) (incl Squamous)

EOD Mets: 00, 10, 70, 99


00169       Esophagus (incl GE Junction) (excl Squamous)

EOD Mets: 00, 10, 70, 99


00170       Stomach

EOD Mets: 00, 10, 70, 99


00180       Small Intestine

EOD Mets: 00, 10, 70, 99


00190       Appendix [8th: 2018-2022]

EOD Mets: 00, 10, 30, 40, 50, 70, 99


09190       Appendix [V9: 2023+]

EOD Mets: 00, 10, 30, 40, 50, 70, 99


00200       Colon and Rectum

EOD Mets: 00, 10, 20, 30, 40, 50, 70, 99


00210       Anus [8th: 2018-2022]

EOD Mets: 00, 10, 70, 99


09210       Anus [V9: 2023+}

EOD Mets: 00, 10, 70, 99


00220       Liver

EOD Mets: 00, 10, 70, 99


00230       Bile Ducts Intrahepatic

EOD Mets: 00, 10, 50, 70, 99


00241       Gallbladder

EOD Mets: 00, 10, 70, 99


00242       Cystic Duct

EOD Mets: 00, 10, 70, 99


00250       Bile    Ducts Perihilar

EOD Mets: 00, 10, 70, 99


00260       Bile    Ducts Distal

EOD Mets: 00, 10, 70, 99


00270       Ampulla Vater

EOD Mets: 00, 10, 70, 99


00278       Biliary Other

EOD Mets: 00, 10, 70, 99


00280       Pancreas

EOD Mets: 00, 10, 20, 70, 99


00288       Digestive Other

EOD Mets: 00, 10, 70, 99


00290 NET Stomach [8th: 2018-2023]
EOD Mets: 00, 10, 20, 30, 50, 70, 99

09290 NET Stomach [V9: 2024+]
EOD Mets: 00, 10, 20, 30, 50, 70, 99


00301 NET Duodenum [8th: 2018-2023]
EOD Mets: 00, 10, 20, 30, 50, 70, 99

09301 NET Duodenum [V9: 2024+]
EOD Mets: 00, 10, 20, 30, 50, 70, 99


00302 NET Ampulla of Vater [8th: 2018-2023]
EOD Mets: 00, 10, 20, 30, 50, 70, 99

09302 NET Ampulla of Vater [v9: 2024+]
EOD Mets: 00, 10, 20, 30, 50, 70, 99


00310 NET Jejunum and Ileum [8th: 2018-2023]
EOD Mets: 00, 10, 20, 30, 50, 70, 99

09310 NET Jejunum and Ileum [v9: 2024+]
EOD Mets: 00, 10, 20, 30, 50, 70, 99


00320 NET Appendix [8th: 2018-2023]
EOD Mets: 00, 10, 20, 30, 50, 70, 99

09320 NET Appendix [v9: 2024+]
EOD Mets: 00, 10, 20, 30, 50, 70, 99


00330 NET Colon and Rectum [8th: 2018-2023]
EOD Mets: 00, 10, 20, 30, 50, 70, 99

09330 NET Colon and Rectum [V9: 2024+]
EOD Mets: 00, 10, 20, 30, 50, 70, 99


00340 NET Pancreas [8th: 2018-2023]
EOD Mets: 00, 10, 20, 40, 50, 60, 70, 99

09340 NET Pancreas [V9: 2024+]
EOD Mets: 00, 10, 20, 40, 50, 60, 70, 99


00350       Thymus

EOD Mets: 00, 10, 30, 50, 70, 99


00358       Trachea

EOD Mets: 00, 10, 70, 99


00360       Lung

EOD Mets: 00, 10, 20, 30, 50, 70, 99


00370       Pleural Mesothelioma

EOD Mets: 00, 05, 10, 70, 99


00378       Respiratory Other

EOD Mets: 00, 10, 70, 99


00381       Bone Appendicular Skeleton

EOD Mets: 00, 10, 30, 50, 70, 99


00382       Bone Spine

EOD Mets: 00, 10, 30, 50, 70, 99


00383       Bone Pelvis

EOD Mets: 00, 10, 30, 50, 70, 99


00400       Soft Tissue Head and Neck

EOD Mets: 00, 10, 70, 99


00410       Soft Tissue Trunk and Extremities

EOD Mets: 00, 10, 70, 99


00421       Soft Tissue Abdomen and Thorax

EOD Mets: 00, 10, 70, 99


00422       Soft Tissue Heart, Mediastinum, Pleura

EOD Mets: 00, 10, 70, 99


00430       GIST

EOD Mets: 00, 10, 70, 99


00440       Soft Tissue Retroperitoneum

EOD Mets: 00, 10, 70, 99


00450       Soft Tissue Rare

EOD Mets: 00, 10, 70, 99


00458       Kaposi Sarcoma

EOD Mets: 88

00459 Soft Tissue Other

EOD Mets: 00, 10, 70, 99

00460       Merkel Cell Skin

EOD Mets: 00, 10, 20, 30, 50, 70, 99


00470       Melanoma Skin

EOD Mets: 00, 10, 20, 30, 50, 60, 70, 99


00478       Skin Other

EOD Mets: 00, 10, 70, 99


00480       Breast

EOD Mets: 00, 05, 10, 70, 99


00500 Vulva [8th: 2018-2023]
EOD Mets: 00, 10, 70, 99

09500 Vulva [V9: 2024+]
EOD Mets: 00, 10, 70, 99


00510       Vagina

EOD Mets: 00, 10, 70, 99


00520       Cervix [8th: 2018-2020]

EOD Mets: 00, 10, 70, 99


00528 Cervix Sarcoma [2021+]

EOD Mets: 00, 10, 70, 99

00530       Corpus Carcinoma and Carcinosarcoma

EOD Mets: 00, 10, 70, 99


00541       Corpus Sarcoma

EOD Mets: 00, 10, 70, 99


00542       Corpus Adenosarcoma

EOD Mets: 00, 10, 70, 99


00551       Ovary

EOD Mets: 00, 10, 30, 50, 70, 99


00552       Primary Peritoneal Carcinoma

EOD Mets: 00, 10, 30, 50, 70, 99


00553       Fallopian Tube

EOD Mets: 00, 10, 30, 50, 70, 99


00558       Adnexa Uterine Other

EOD Mets: 00, 10, 70, 99


00559       Genital Female Other

EOD Mets: 00, 10, 70, 99


00560       Placenta

EOD Mets: 00, 10, 30, 50, 70, 99


00570       Penis

EOD Mets: 00, 10, 70, 99


00580       Prostate

EOD Mets: 00, 10, 30, 50, 70, 99


00590       Testis

EOD Mets: 00, 10, 30, 50, 60, 70, 99


00598       Genital Male Other

EOD Mets: 00, 10, 70, 99


00600       KidneyParenchyma

EOD Mets: 00, 10, 70, 99


00610       Kidney Renal Pelvis

EOD Mets: 00, 10, 70, 99


00620       Bladder

EOD Mets: 00, 10, 50, 70, 99


00631       Urethra

EOD Mets: 00, 10, 70, 99


00633       Urethra-Prostatic

EOD Mets: 00, 10, 70, 99


00638       Urinary Other

EOD Mets: 00, 10, 70, 99


00640       Skin Eyelid

EOD Mets: 00, 10, 70, 99


00650       Conjunctiva

EOD Mets: 00, 10, 70, 99


00660       Melanoma Conjunctiva

EOD Mets: 00, 10, 70, 99


00671       Melanoma Iris

EOD Mets: 00, 10, 30, 50, 70, 99


00672       Melanoma Choroid and Cililary Body

EOD Mets: 00, 10, 30, 50, 70, 99


00680       Retinoblastoma

EOD Mets: 00, 10, 30, 50, 70, 99


00690       Lacrimal Gland

EOD Mets: 00, 10, 70, 99


00698       Lacrimal Sac

EOD Mets: 00, 10, 70, 99


00700       Orbital Sarcoma

EOD Mets: 00, 10, 70, 99


00710       Lymphoma    Ocular Adnexa

EOD Mets: 00, 10, 30, 50, 70, 99


00718       Eye Other

EOD Mets: 00, 10, 70, 99


00721       Brain [8th: 2018-2022]

EOD Mets: 00, 10, 70, 99


09721       Brain [V9: 2023+]

EOD Mets: 00, 10, 70, 99



00722       CNS Other [8th: 2018-2022]

EOD Mets: 00, 10, 70, 99


09722       CNS Other [V9: 2023+]

EOD Mets: 00, 10, 70, 99


00723      Intracranial Gland [8th: 2018-2022]

EOD Mets: 00, 10, 70, 99


09723      Intracranial Gland [V9: 2023+]

EOD Mets: 00, 10, 70, 99


09724      Medulloblastoma [V9: 2023+]

EOD Mets: 00, 15, 25, 35, 45, 70, 99


00730       Thyroid

EOD Mets: 00, 10, 70, 99


00740       Thyroid Medullary

EOD Mets: 00, 10, 70, 99


00750       Parathyroid

EOD Mets: 00, 10, 70, 99


00760       Adrenal Gland

Mets: 00, 10, 70, 99


00770       NET Adrenal

EOD Mets: 00, 10, 20, 30, 50, 70, 99


00778       Endocrine Other

EOD Mets: 00, 10, 70, 99


00790       Lymphoma (excluding CLL/SLL)

EOD Mets: 88


00795       Lymphoma (CLL/SLL)

EOD Mets: 88


00811       Mycosis Fungoides

EOD Mets: 00, 10, 70, 99


00812       Primary Cutaneous Lymphomas (excluding Mycosis Fungoides)

EOD Mets: 00, 10, 70, 99


00821       Plasma Cell Myeloma

EOD Mets:  88


00822       Plasma Cell Disorder

EOD Mets:  88


00830       HemeRetic

EOD Mets:  88


09520       Cervix [9th: 2021+]

EOD Mets: 00, 10, 70, 99


99999       Ill-Defined Other/Ill-Defined Other

EOD Mets:  88]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-16" ref="67949">Edit created.</event>
                <event version="SE18-018-04" user="kirbyk" date="2018-08-08" ref="67985">Updated name for schema 00822 in description.</event>
                <event version="SE18-018-05" user="kirbyk" date="2018-08-14" ref="67989">Added valid code &apos;60&apos; for schema ID &apos;00470&apos;.</event>
                <event version="SE18-018-05" user="kirbyk" date="2018-08-17" ref="68020">Changed schema name for 00150.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-27" ref="68133">Changed schema ID &apos;00632&apos; to &apos;00633&apos;.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-12" ref="68456">Added valid codes for Schema IDs &apos;00190&apos;, &apos;00620&apos;, and &apos;09520&apos;.</event>
                <event version="SE22-022-01" user="smithm" date="2022-02-15" ref="68842">Added Schema IDs 00528, 00459 to validation logic</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-06" ref="69132">Added logic for schema IDs 09190, 09210, 09721-4.</event>
                <event version="SE24-024-01" user="kirbyk" date="2024-03-04" ref="69415">Added new schemas for 2024.</event>
            </history>
        </rule>
        <rule id="IFN2972" name="AFP Post-Orchiectomy Range, Schema ID, Required (NAACCR)" tag="N2972" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00590' || (line.afpPostOrchiectomyRange != null && line.afpPostOrchiectomyRange != '8')]]></expression>
            <message>AFP Post-Orchiectomy Range must not be blank or not applicable for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that AFP Post-Orchiectomy Range is not "8" (not applicable)
   and not blank for the Schema IDs for which it is required by a standard setter.

    Required for Schema ID:

    00590: Testis]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-28" ref="68141">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2978" name="hCG Post-Orchiectomy Range, Schema ID, Required (NAACCR)" tag="N2978" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00590' || (line.hcgPostOrchiectomyRange != null && line.hcgPostOrchiectomyRange != '8')]]></expression>
            <message>hCG Post-Orchiectomy Range must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021


2. This edit verifies that hCG Post-Orchiectomy Range is not "8" (not applicable)
   and not blank for the Schema IDs for which it is required by a standard setter.

    Required for Schema ID:

    00590: Testis]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-18" ref="67885">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68009">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2980" name="hCG Pre-Orchiectomy Range, Schema ID, Required (NAACCR)" tag="N2980" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00590' || (line.hcgPreOrchiectomyRange != null && line.hcgPreOrchiectomyRange != '8')]]></expression>
            <message>hCG Pre-Orchiectomy Range must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that hCG Pre-Orchiectomy Range is not "8" (not applicable)
   and not blank for the Schema IDs for which it is required by a standard setter.

    Required for Schema ID:

    00590: Testis]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-18" ref="67885">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68009">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2981" name="High Risk Histologic Features, Schema ID, Required (NAACCR)" tag="N2981" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00150' || (line.highRiskHistologicFeatures != null && line.highRiskHistologicFeatures != '8')]]></expression>
            <message>High Risk Histologic Features must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that High Risk Histologic Features is not "8" (not
   applicable) and not blank for the Schema IDs for which it is required by a
   standard setter.

    Required for Schema ID:

    00150: Cutaneous Carcinoma of the Head and Neck]]></description>
            <history>
                <event version="SE18-018-04" user="kirbyk" date="2018-08-02" ref="67892">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68009">Added DCO skip condition.</event>
                <event version="SE18-018-05" user="kirbyk" date="2018-08-17" ref="68020">Changed schema name for 00150.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2982" name="LDH Post-Orchiectomy Range, Schema ID, Required (NAACCR)" tag="N2982" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00590' || (line.ldhPostOrchiectomyRange != null && line.ldhPostOrchiectomyRange != '8')]]></expression>
            <message>LDH Post-Orchiectomy Range must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that LDH Post-Orchiectomy Range is not "8" (not applicable)
   and not blank for the Schema IDs for which it is required by a standard setter.

    Required for Schema ID:

    00590: Testis]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-18" ref="67885">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68009">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2983" name="LDH Pre-Orchiectomy Range, Schema ID, Required (NAACCR)" tag="N2983" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00590' || (line.ldhPreOrchiectomyRange != null && line.ldhPreOrchiectomyRange != '8')]]></expression>
            <message>LDH Pre-Orchiectomy Range must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that LDH Pre-Orchiectomy Range is not "8" (not applicable)
   and not blank for the Schema IDs for which it is required by a standard setter.

    Required for Schema ID:

    00590: Testis]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-18" ref="67885">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68009">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2987" name="EOD2018, Date of Diagnosis (SEER)" tag="N2987" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.dateOfDiagnosisYear == '2018' && line.registryId == '0000001563'))
    return true
if ('0000001565' == line.registryId && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if ('0000001566' == line.registryId && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true
if (line.dateOfDiagnosisYear < '2018')
    return line.eodPrimaryTumor == null && line.eodRegionalNodes == null && line.eodMets == null
else
    return line.eodPrimaryTumor != null && line.eodRegionalNodes != null && line.eodMets != null

return true]]></expression>
            <message>EOD Primary Tumor, EOD Regional Nodes, and EOD Mets conflict with Date DX</message>
            <description><![CDATA[This edit is skipped if Date of Diagnosis is blank (unknown) or invalid.
This edit is also skipped for Massachusetts (0000001563) for Date of Diagnosis Year = 2018.
This edit is also skipped if Date of Diagnosis is 2018-2022 and Registry ID = 0000001565 (Illinois)
This edit is also skipped if Date of Diagnosis is 2018-2021 and Registry ID = 0000001566 (Texas)

The edit checks that EOD Primary Tumor, EOD Regional Nodes, and EOD Mets are
blank for pre-2018 diagnoses and are coded for 2018 and later diagnoses.

Another edit, Primary Site, Histology, Behavior, Schema ID (NAACCR), checks that
the Schema ID is assigned correctly by primary site, histology, and behavior for
2018+ diagnoses.]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-12" ref="67929">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-19" ref="68511">Edit is now skipped for MA for DX year = 2018.</event>
                <event version="SE21-021-07" user="kirbyk" date="2021-07-20" ref="68692">Added skip condition for IL and TX cases diagnosed 2018-2020.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68987">Updated skip condition for IL cases diagnosed 2018-2022, for TX cases diagnosed 2018-2021.</event>
            </history>
        </rule>
        <rule id="IFN2988" name="Adenoid Cystic Basaloid Pattern, Schema ID, Required (NAACCR)" tag="N2988" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00690' || (line.adenoidCysticBasaloidPattern != null && line.adenoidCysticBasaloidPattern != 'XXX.8')]]></expression>
            <message>Adenoid Cystic Basaloid Pattern must not be blank or not applicable for cases diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Adenoid Cystic Basaloid Pattern is not "XXX.8" (not
   applicable) and not blank for the Schema IDs for which it is required by a
   standard setter.

    Required for Schema ID:

    00690: Lacrimal Gland]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-16" ref="67855">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68009">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2989" name="Circumferential Resection Margin (CRM), Schema ID, Required (NAACCR)" tag="N2989" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00200' || (line.circumferentialResectionMargin != null && line.circumferentialResectionMargin != 'XX.8')]]></expression>
            <message>Circumferential Resection Margin (CRM) must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Circumferential Resection Margin (CRM) is not "XX.8"
   (not applicable) and not blank for the Schema IDs for which it is required by
   a standard setter.

    Required for Schema ID:

    00200: Colon and Rectum]]></description>
            <history>
                <event version="SE18-018-04" user="kirbyk" date="2018-07-31" ref="67872">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68009">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2990" name="Microsatellite Instability (MSI), Schema ID, Required (NAACCR)" tag="N2990" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear <= '2017' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true

return line.schemaId != '00200' || (line.microsatelliteInstability != '8' && line.microsatelliteInstability != null)]]></expression>
            <message>Microsatellite Instability (MSI) must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)

2. This edit verifies that Microsatellite Instability (MSI) is not "8" (not
   applicable) and not blank for the Schema IDs for which it is required by a
   standard setter.

    Required for Schema ID:

    00200: Colon and Rectum]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-12" ref="67873">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68009">Added DCO skip condition.</event>
            </history>
        </rule>
        <rule id="IFN2991" name="PSA (Prostatic Specific Antigen) Lab Value, Schema ID, Required (NAACCR)" tag="N2991" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear <= '2017' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
    
if (line.schemaId == '00580')
   return line.psaLabValue != null 

return true]]></expression>
            <message>PSA (Prostatic Specific Antigen) Lab Value must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)

2. This edit verifies that PSA (Prostatic Specific Antigen) Lab Value is coded
   (not blank) for the Schema IDs for which it is required by a standard setter.

   This data item is required for AJCC staging and EOD Derived Stage Group.

    Required for Schema ID:

    00580: Prostate]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-10" ref="67898">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68009">Added DCO skip condition.</event>
            </history>
        </rule>
        <rule id="IFN2992" name="Tumor Deposits, Schema ID, Required (NAACCR)" tag="N2992" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018'|| line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.schemaId == '00200')
    return line.tumorDeposits != null && line.tumorDeposits != 'X8'
return true]]></expression>
            <message>Tumor Deposits must not be blank or not applicable for Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Tumor Deposits is not "X8" (not applicable) and not
   blank for the Schema IDs for which it is required by a standard setter.

   Required for Schema ID:

    00200: Colon and Rectum]]></description>
            <history>
                <event version="SE18-018-04" user="smithm" date="2018-08-02" ref="67871">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68009">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2996" name="High Risk Cytogenetics, Schema ID, Required (NAACCR)" tag="N2996" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.schemaId == '00821') {
    if (line.schemaDiscriminator1 == null)
        return false
    else if (line.schemaDiscriminator1 == '0')
        return line.highRiskCytogenetics != null && line.highRiskCytogenetics != '5'
    if (line.schemaDiscriminator1 == '1' || line.schemaDiscriminator1 == '9')
        return line.highRiskCytogenetics == '5'
}
return true]]></expression>
            <message>High Risk Cytogenetics, Schema Discriminator 1 conflict for Myeloma</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that High Risk Cytogenetics is coded (not blank) for the
   Schema IDs for which it is required by a standard setter. Schema Discriminator
   1 is required to identify a plasma cell myeloma diagnosis eligible for RISS
   staging.

   This data item is required for AJCC staging and EOD Derived Stage Group.

   Required for Schema ID:

   00821: Plasma Cell Myeloma:
           Schema Discriminator 1 is not blank
             If Schema Discriminator 1 = 0, High Risk Cytogenetics is not blank and not = 5.
             If Schema Discriminator 1 = 1 or 9, High Risk Cytogenetics must = 5.]]></description>
            <history>
                <event version="SE18-018-04" user="smithm" date="2018-08-06" ref="67907">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68010">Added DCO skip condition.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-29" ref="68028">High Risk Cytogenetics must be blank if Schema Discriminator 1 is not = 0.</event>
                <event version="SE18-018-10" user="kirbyk" date="2018-11-30" ref="68058">Schema Discriminator 1 must not be blank for Schema ID 00821.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-21" ref="68852">Add logic for High Risk Cytogenetics code 5.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2997" name="KRAS, Schema ID, Required (NAACCR)" tag="N2997" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear <= '2017' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.schemaId == '00200')
   return line.kras != '8' && line.kras != null 

return true]]></expression>
            <message>KRAS must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that KRAS is not "8" (not applicable) and not blank for
   the Schema IDs for which it is required by a standard setter.

   Required for Schema ID:

    00200: Colon and Rectum]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-20" ref="67875">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68010">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN2998" name="CEA Pretreatment Interpretation, Schema ID, Required (NAACCR)" tag="N2998" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear <= '2017' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if ((line.schemaId == '00190' && line.dateOfDiagnosisYear < '2023') || (line.schemaId == '09190' && line.dateOfDiagnosisYear >= '2023') || line.schemaId == '00200')
    return (line.ceaPretreatmentInterpretation != '8' && line.ceaPretreatmentInterpretation != null)

return true]]></expression>
            <message>CEA Pretreatment Interpretation must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that CEA Pretreatment Interpretation is not "8" (not
   applicable) and not blank for the Schema IDs for which it is required by a 
   standard setter. 
    
   Required for Schema ID:

    00190: Appendix [8th: 2018-2022]
    09190: Appendix [V9: 2023+]
    00200: Colon and Rectum]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-03" ref="67870">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68010">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-07" ref="69138">Add logic for Schema ID 09190. Update year logic for Schema ID 00190.</event>
            </history>
        </rule>
        <rule id="IFN2999" name="CEA Pretreatment Lab Value, Schema ID, Required (NAACCR)" tag="N2999" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear <= '2017' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if ((line.schemaId == '00190' && line.dateOfDiagnosisYear < '2023') || (line.schemaId == '09190' && line.dateOfDiagnosisYear >= '2023') || line.schemaId == '00200')
    return (line.ceaPretreatmentLabValue != 'XXXX.8' && line.ceaPretreatmentLabValue != null)

return true]]></expression>
            <message>CEA Pretreatment Lab Value must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that CEA Pretreatment Lab Value is not "XXXX.8" (not
   applicable) and not blank for the Schema IDs for which it is required by 
   a standard setter. 
    
   Required for Schema ID:

    00190: Appendix [8th: 2018-2022]
    09190: Appendix [V9: 2023+]
    00200: Colon and Rectum]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-18" ref="67832">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68010">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-07" ref="69138">Add logic for Schema ID 09190. Update year logic for Schema ID 00190.</event>
            </history>
        </rule>
        <rule id="IFN3001" name="Extranodal Extension Head and Neck Pathological, Schema ID, Required (NAACCR)" tag="N3001" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return !Functions.matches(line.schemaId, /^00(0[689]0|07[1-7]|1[034]0|1[1-3][12]|133)$/) || (line.extranodalExtensionHeadNeckPath != null && line.extranodalExtensionHeadNeckPath != 'X.8')]]></expression>
            <message>Extranodal Extension Head and Neck Pathological must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Extranodal Extension Head and Neck Pathological is 
   not "X.8" (not applicable) and not blank for the Schema IDs for which it is 
   required by a standard setter. 
    
   Required for Schema ID:

    00060:  Cervical Lymph Nodes and Unknown Primary
    00071:  Lip
    00072:  Tongue Anterior
    00073:  Gum
    00074:  Floor of Mouth
    00075:  Palate Hard
    00076:  Buccal Mucosa
    00077:  Mouth Other
    00080:  Major Salivary Glands
    00090:  Nasopharynx
    00100:  Oropharynx HPV-Mediated (p16+)
    00111:  Oropharynx (p16-)
    00112:  Hypopharynx
    00121:  Maxillary Sinus
    00122:  Nasal Cavity and Ethmoid Sinus
    00130:  Larynx Other
    00131:  Larynx Supraglottic
    00132:  Larynx Glottic
    00133:  Larynx Subglottic
    00140:  Melanoma Head and Neck]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-13" ref="67891">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68010">Added DCO skip condition.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3002" name="Extranodal Extension Clin (non-Head and Neck), Date DX (NAACCR)" tag="N3002" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
 
if (line.dateOfDiagnosisYear < '2018')
    return line.extranodalExtensionClin == null
 
 return line.extranodalExtensionClin == null || Functions.matches(line.extranodalExtensionClin, /^[0-247-9]$/)]]></expression>
            <message>Extranodal Extension Clin (non-Head and Neck) is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Extranodal Extension Clin (non-Head and Neck) code or blank: 

    0: Regional lymph nodes involved, ENE not present/not identified during 
       diagnostic workup 
    1: Regional lymph nodes involved, ENE present/identified during diagnostic
       workup, based on physical exam and/or imaging
    2: Regional lymph nodes involved, ENE present/identified during diagnostic
       workup, based on microscopic confirmation
    4: Regional lymph nodes involved, ENE present/identified, unknown how identified
    7: No lymph node involvement during diagnostic workup (cN0)
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Clinical ENE not assessed or unknown if assessed during diagnostic workup      
       Clinical assessment of lymph nodes not done, or unknown if done
    
Another edit, Extranodal Extension Clin (non-Head and Neck), Schema ID, Required 
(NAACCR), checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-25" ref="67917">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-23" ref="68382">Add code 4 to description and logic.</event>
            </history>
        </rule>
        <rule id="IFN3004" name="Extranodal Extension Path (non-Head and Neck), Date DX (NAACCR)" tag="N3004" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
 
if (line.dateOfDiagnosisYear < '2018')
    return line.extranodalExtensionPath == null
 
 return line.extranodalExtensionPath == null || Functions.matches(line.extranodalExtensionPath, /^[017-9]$/)]]></expression>
            <message>Extranodal Extension Path (non-Head and Neck) is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Extranodal Extension Path (non-Head and Neck) code or blank: 

    0: Regional lymph nodes involved, ENE not present/not identified from 
       surgical resection
    1: Regional lymph nodes involved, ENE present/identified from surgical 
       resection
    7: No lymph node involvement from surgical resection (pN0)
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       No surgical resection of regional lymph nodes
       Cannot be determined
      Pathological assessment of lymph nodes not done, or unknown if done
       Extranodal Extension Path (non-Head and Neck) not assessed or unknown 
       if assessed

Another edit, Extranodal Extension Path (non-Head and Neck), Schema ID, Required 
(NAACCR), checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-25" ref="67917">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN3006" name="Schema Discriminator 2, Date DX (NAACCR)" tag="N3006" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
    
if (line.dateOfDiagnosisYear < '2018')
    return line.schemaDiscriminator2 == null

if (line.schemaDiscriminator2 == '8')
    return line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022'

return line.schemaDiscriminator2 == null || Functions.matches(line.schemaDiscriminator2, /^[129]$/)]]></expression>
            <message>Schema Discriminator 2 is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if date of diagnosis is blank (unknown) or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Schema Discriminator 2 code

    1
    2
    8
    9
    blank

3. Schema Discriminator 2, code 8 may only be used for 2018-2021 diagnoses.

Other edits for Schema Discriminator 2 check for appropriate codes by Schema ID
and AJCC ID. This data item is used to determine Schema IDs and AJCC IDs and is
required by all standard setters.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-30" ref="67790">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-06" ref="68455">Added code &apos;8&apos; for 2018-2021 cases.</event>
            </history>
        </rule>
        <rule id="IFN3007" name="Schema ID, Site, Histo, Schema Discriminator 2 (NAACCR)" tag="N3007" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.primarySite == null || line.histologicTypeIcdO3 == null)
    return true

Map contextMap = (Map)Context.SchemaDiscriminator2Table
Map histMap = (Map)contextMap.get(line.primarySite)
if (histMap == null)
    return line.schemaDiscriminator2 == null

int histInt = Functions.asInt(line.histologicTypeIcdO3)
Map discrimMap = (Map)histMap.get(histInt)
if (discrimMap == null)
    return line.schemaDiscriminator2 == null

// exception case for C111 with schema ID 00090 (Nasopharynx)
if (line.primarySite == 'C111' && line.schemaId == '00090' && line.schemaDiscriminator2 == null)
    return true

// exception case for C160 with schema ID 00170 (Stomach)
if (line.primarySite == 'C160' && line.schemaId == '00170' && line.schemaDiscriminator2 == null && line.histologicTypeIcdO3 == '8020')
    return true

List schemaIds = (List)discrimMap.get(line.schemaDiscriminator2)
if (schemaIds == null)
    return false
else
    return schemaIds.contains(line.schemaId)

return true]]></expression>
            <message>Primary Site, Histologic Type ICD-O-3, and Schema Discriminator 2 are incompatible with Schema ID.</message>
            <description><![CDATA[This edit verifies that Schema Discriminator 2, where required, is used where the Primary Site and Histologic Type ICD-O-3 codes are not sufficient to identify the appropriate Schema ID.

The edit checks that Schema ID, Primary Site code or Histologic Type ICD-O-3
code, and Schema Discriminator 2 code occur together within the edited
record, as shown in the following chart.  If there is an edit failure, the
problem may be due to a software error. If coding is reviewed and correct,
the software vendor should be consulted for assistance in resolving the issue.

1. The edit is skipped for the following conditions:
       a. Date of diagnosis before 2018, blank, or invalid.
       b. Primary Site is blank
       c. Histologic Type ICD-O-3 is blank

2. The edit checks that Schema Discriminator 2 is coded and not blank for combinations of Primary Site and Histologic Type ICD-O-3. The
combinations of site and histology are determined by Schema ID but are checked independently of Schema ID assignment.

3. The edit then verifies that Schema Discriminator 2 is valid for Primary Site, Histologic Type ICD-O-3, and Schema ID. Where SITE or HISTO is listed as "All",
Schema Discriminator 2 is required for all the sites or histologies assigned to the Schema ID. Where a specific site or histology is listed, Schema Discriminator 2
is required for only those sites or histologies for the Schema ID.

4. The edit verifies that Schema Discriminator 2 is blank for all other Primary Site or Histologic Type ICD-O-3 codes in the Schema ID.

5. The edit verifies that Schema Discriminator 2 is left blank for all other Schema IDs.

6. Where Schema Discriminator 1 is also required to assign the correct Schema ID, the edit will pass either Schema ID as correct.
The Schema IDs include 00100 and 00111 for C111, and 00161 and 00169 for C160.

7. Where Schema Discriminator 2 is required for a site/histology combination for one Schema ID, but not for the same combination of site/histology in another Schema ID,
the edit will pass the Schema ID where it is not required: e.g., 00090, C111, all histos, and 00170, C160, 8020.

   SCHEMA ID                   SITE                   HISTO    DISC 2

   00100 Oropharynx (p16+)
                               C019                   All         2
                               C024                   All         2
                               C051                   All         2
                               C052                   All         2
                               C090                   All         2
                               C091                   All         2
                               C098                   All         2
                               C099                   All         2
                               C100                   All         2
                               C102                   All         2
                               C103                   All         2
                               C104                   All         2
                               C108                   All         2
                               C109                   All         2
                               C111                   All         2

   00111 Oropharynx (p16-)
                               C019                   All         1, 9
                               C024                   All         1, 9
                               C051                   All         1, 9
                               C052                   All         1, 9
                               C090                   All         1, 9
                               C091                   All         1, 9
                               C098                   All         1, 9
                               C099                   All         1, 9
                               C100                   All         1, 9
                               C102                   All         1, 9
                               C103                   All         1, 9
                               C104                   All         1, 9
                               C108                   All         1, 9
                               C109                   All         1, 9
                               C111                   All         1, 9

   00161 Esophagus Squamous
                               C150-C155      8020        1, 9
                               C158-C159
                               C160

   00169 Esophagus excl Sqms
                               C150-C155       8020         2
                               C158-C159
                               C160

   00410 Soft Tissue Sarcoma, Trunk, Extremities
                               C473                   All         1
                               C475                   All         1
                               C493                   All         1
                               C494                   All         1
                               C495                   All         1

   00421 Soft Tissue Sarcoma, Abdomen, Thoracic Visceral Organs
                               C473                   All         2, 8
                               C475                   All         2, 8
                               C493                   All         2, 8
                               C494                   All         2, 8
                               C495                   All         2, 8

   00459 Soft Tissue Sarcoma, Other
                               C473                   All*           9
                               C475                   All*           9
                               C493                   All*           9
                               C494                   All*           9
                               C495                   All*           9
    * Excluding 8992



SCHEMA ID     SCHEMA DISCRIMINATOR 2 CODES AND DEFINITIONS

00100         2: p16 Positive; HPV Positive; Diffuse, strong reactivity

00111         1: p16 Negative; Nonreactive
              9: Not tested for p16; Unknown

00161         1: Undifferentiated carcinoma with squamous component
              9: Undifferentiated carcinoma, NOS

00169         2: Undifferentiated carcinoma with glandular component

00410         1: External structure
              Blank:  Primary Site is not C473, C474, C493-C495, Discriminator is not necessary

00421         2: Internal viscera
              8: Not applicable, abstracted prior to 2021 updates
              Blank:  Primary Site is not C473, C474, C493-C495, Discriminator is not necessary

00459         9: Not specified as external or internal, unable to determine
              Blank:  Primary Site is not C473, C474, C493-C495, Discriminator is not necessary
]]></description>
            <history>
                <event version="SE18-018-10" user="kirbyk" date="2018-12-04" ref="68066">Edit created.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-28" ref="68161">Changed edit name.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-02" user="kirbyk" date="2021-01-26" ref="68554">Updated requirements for EOD 2.0 schemas.</event>
                <event version="SE22-022-01" user="beverung" date="2022-02-18" ref="68822">Update for 2022.</event>
                <event version="SE22-022-13" user="kirbyk" date="2022-10-18" ref="69043">Fixed edit to fail correctly when Schema ID is missing.</event>
                <event version="SE22-022-14" user="kirbyk" date="2022-10-20" ref="69047">Fixed Primary Sites in edit table; added exception for schema Nasopharynx.</event>
                <event version="SE22-022-17" user="beverung" date="2022-12-06" ref="69064">Added exception for C160/00170 and updated description to mention exceptions.</event>
                <event version="SE24-024-01" user="kirbyk" date="2024-02-16" ref="69346">Updated requirements for 2024.</event>
                <event version="SE24-024-06" user="cooki" date="2024-07-22" ref="69487">Updated to v24a.</event>
            </history>
        </rule>
        <rule id="IFN3009" name="AFP Pre-Orchiectomy Lab Value, Schema ID, Required, CoC Flag (SEER)" tag="N3009" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00590' || (line.afpPreOrchiectomyLabValue != null && line.afpPreOrchiectomyLabValue != 'XXXXX.8')]]></expression>
            <message>AFP Pre-Orchiectomy Lab Value must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

AFP Pre-Orchiectomy Lab Valu is required by SEER only if collected by 
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).


2. This edit verifies that AFP Pre-Orchiectomy Lab Value is not "XXXXX.8" (not
   applicable) and not blank for the Schema IDs for which it is required by a 
   standard setter. 

    Required for Schema ID:

    00590: Testis]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-19" ref="67842">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3010" name="AJCC ID, Site, Histo, Schema Discriminator 1 (NAACCR)" tag="N3010" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018')
    return true

if (line.primarySite == null || line.histologicTypeIcdO3 == null || line.behaviorCodeIcdO3 == null)
    return true

String ajccId = line.ajccId

Integer siteInt = Functions.asInt(line.primarySite.substring(1,4))
Map contextMap = (Map)Context.IFN3010_Table
if (!contextMap.containsKey(siteInt))
    return true
else {
    Map histologyMap = (Map)contextMap.get(siteInt)
    Integer histInt = Functions.asInt(line.histologicTypeIcdO3)
    if (!histologyMap.containsKey(histInt))
        return true
        
    Map behaviorMap = (Map)(histologyMap.get(histInt))
    if (!behaviorMap.containsKey(line.behaviorCodeIcdO3))
        return line.ajccId == 'XX'
    
    List ajccIds = (List)(behaviorMap.get(line.behaviorCodeIcdO3))
    if (ajccIds != null && ajccIds.contains(line.ajccId)) {
       if (line.ajccId == 'XX' && line.schemaDiscriminator1 == null)
           return true
    
        Map ajccIdMap = (Map)Context.IFN3010_AJCC_ID_Table
        List validDiscrims = (List)ajccIdMap.get(line.ajccId)
        
        return validDiscrims.contains(line.schemaDiscriminator1)
    }
    else
        return line.ajccId == 'XX'
}

return true]]></expression>
            <message>Primary Site, Histologic Type ICD-O-3, and Schema Discriminator 1 are incompatible with AJCC ID.</message>
            <description><![CDATA[This edit verifies that Schema Discriminator 1, where required, is used where
the Primary Site and Histologic Type ICD-O-3 codes are not sufficient to
identify the appropriate AJCC staging scheme. Schema Discriminator 1 code is
used to distinguish between multiple meanings for these codes where required
for AJCC ID assignment.

For example, for topography code C240, Schema Discriminator 1 code 3 is
assigned if the primary site is cystic duct, AJCC ID 24; code 1, 5, 6 or 9
is assigned if the primary site is perihilar bile ducts, AJCC ID 25; code
4 or 7 is assigned if the primary site is distal bile ducts, AJCC ID 26. See
the list of codes and definitions below the chart.

Schema Discriminator 1 is also used in conjunction with an SSDI for AJCC ID
82.1 to identify a plasma cell myeloma that can be assigned staging information.

The edit checks that AJCC ID, Primary Site code or Histologic Type ICD-O-3
code, and Schema Discriminator 1 code occur together within the edited
record, as shown in the following chart. Behavior Code ICD-O-3 must also be
correct for a stageable case. The edit does not check that
Schema Discriminator 1 is blank where not required for AJCC ID; Schema ID
requires Schema Discriminator 1 on additional site/histology combinations.  

1. The edit is skipped for the following conditions:
   a. Date of diagnosis before 2018, blank, or invalid.
   b. Primary Site is blank
   c. Histologic Type ICD-O-3 is blank
   d. Behavior Code ICD-O-3 is blank

2. The edit checks that Schema Discriminator 1 is coded and not blank for
   combinations of Primary Site and Histologic Type ICD-O-3 as required. The
   combinations of site and histology are determined
   by AJCC ID but are checked independently of AJCC ID assignment.

3. The edit then verifies that Schema Discriminator 1 is valid for Primary Site,
   Histologic Type ICD-O-3, Behavior Code ICD-O-3, and AJCC ID.  Where a specific
   site or histology is listed, Schema Discriminator 1 is required for only those
   sites or histologies for the AJCC ID.

4. Where Schema Discriminator 2 is also required to assign the correct AJCC ID between
    two possible AJCC IDs, the edit will pass either AJCC ID as correct.  The AJCC IDs
    include 10 and 11.1, with histologies 8070 and 8083, and 16.1 and 16.2 with histology 8020.

    AJCC ID                                      SITE    HISTO  BEH     DISC 1

    6     Cervical Lymph Nodes,
          Unknown Primary of Head and Neck       C760     All    3      2,3,4,5 
    9     Nasopharynx                            C111     All    2,3    1
    10    Oropharynx (p16+)                      C111     All    3      2
    11.1  Oropharynx (p16-)                      C111     All    2,3    2
    16.1  Esophagus and EGJ: Squamous Cell Ca    C160     All    2,3    2
    16.2  Esophagus and EGJ: Adenocarcinoma      C160     All    2,3    2
    16.3  Esophagus and EGJ: Other Histologies   C160     All    2,3    2
    17    Stomach                                C160     All    2,3    0,3,9
    24    Gallbladder                            C240     All    2,3    3
    25    Perihilar Bile Ducts                   C240     All    2,3    1,5,6,9
    26    Distal Bile Ducts                      C240     All    2,3    4,7
    43.1  GIST: Gastric and Omental              C481     All    3      2
    43.2  GIST: Small Intestinal, Esophageal,    C481     All    3      1,9
            Colorectal, Mesenteric, Perit
    63.1  Urethra, Male Penile, Female: Uroth    C680     All    2,3    1
    63.2  Urethra, Male Penile, Female:          C680     All    2,3    1
            Squamous Cell, Adenocarcinoma
    63.3  Prostatic Urethra: Urothelial          C680     All    2,3    2
    63.4  Prostatic Urethra:                     C680     All    2,3    2
            Squamous Cell, Adenocarcinoma
    67.1  Uveal Melanoma: Iris                   C694     All    3      2
    67.2  Uveal Melanoma: Ciliary Body, Chor     C694     All    3      1
    69    Lacrimal Gland                         C695     All    3      1
    73.1  Thyroid Gland - Differentiated         C739     All    3      1
    73.2  Thyroid Gland - Anaplastic             C739     All    3      1
    74    Thyroid - Medullary                    C739     All    3      1
    79.0  Non-Hodgkin Lymphoma NOS               All      9591   3      3,9
    82.1  Plasma Cell Myeloma                    All      9732   3      0
    83.0  Leukemia NOS                           All      9591   3      1,2

NOTE: Histology 8020 for 16.1,16.2 AJCC ID is only staged with Behavior code 3.

AJCC ID     SCHEMA DISCRIMINATOR 1 CODES AND DEFINITIONS

6-C760      2: Not tested for EBV or p16 in head and neck regional nodes (EBV
               and p16 both unknown)
            3: Unknown EBV, p16 negative in head and neck regional nodes
            4: Unknown p16, EBV negative in head and neck regional nodes
            5: Negative for both EBV and p16 in head and neck regional nodes

9-C111      1: Posterior wall of nasopharynx, NOS

10-C111     2: Adenoid; pharyngeal tonsil
11.1-C111

16.1-C160   2: INVOLVEMENT of esophagus or esophagogastric junction (EGJ)
16.2-C160      AND epicenter LESS THAN or EQUAL TO 2 cm into the proximal
16.3-C160      stomach

17-C160     0: NO involvement of esophagus or gastroesophageal junction
               AND epicenter at ANY DISTANCE into the proximal stomach
               (including distance unknown)
            3: INVOLVEMENT of esophagus or esophagogastric junction (EGJ)
               AND epicenter GREATER THAN 2 cm into the proximal stomach
            9: UNKNOWN involvement of esophagus or gastroesophageal junction
               AND epicenter at ANY DISTANCE into the proximal stomach
               (including distance unknown

24-C240     3: Cystic bile duct; cystic duct

25-C240     1: Perihilar bile duct(s)
               Proximal extrahepatic bile duct(s); Hepatic duct(s)
            5: Diffuse involvement
               More than one subsite involved, subsite of origin not stated
            6: Stated as middle extrahepatic bile duct
               AND treated with combined hepatic and hilar resection
            9: Extrahepatic bile ducts, NOS

26-C240     4: Distal bile duct; Common bile duct; Common duct, NOS
            7: Stated as middle extrahepatic bile duct
               AND treated with combined hepatic and hilar resection

43.1-C481   1: Mesentery; Mesoappendix; Mesocolon; Pelvic peritoneum;
               Rectouterine pouch: Cul de sac, Pouch of Douglas;
               Other specified peritoneal site
            9: Unknown or no information; Not documented in medical record

43.2-C481   2: Omentum

63.1-C680   1: Male penile urethra; Female urethra: Urethral gland;
63.2-C680      Cowper gland; Urethra, NOS

63.3-C680   2: Males only: Prostatic urethra, Prostatic utricle
63.4-C680

67.1-C694   2: Iris

67.2-C694   1: Ciliary Body; Crystalline lens; Sclera; Uveal tract;
               Intraocular; Eyeball

69-C695     1: Lacrimal gland

73.1-C739   1: Thyroid gland; Thyroid, NOS
73.2-C739
74-C739

79.0-9591   3: Splenic diffuse red pulp small B-cell lymphoma
               Splenic marginal zone lymphoma, diffuse variant
               Splenic red pulp lymphoma with numerous basophilic villous
               lymphocytes
               Splenic lymphoma with villous lymphocytes
            9: Non-Hodgkin lymphoma, NOS
               Any other terminology describing non-Hodgkin lymphoma, NOS

82.1-9732   0: Multiple myeloma
               Myeloma, NOS
               Non-secretory myeloma
               Plasma cell myeloma (PCM)
               Ultra-High-Risk Smoldering MM (SMM)

83.0-9591   1: Splenic B-cell lymphoma/leukemia, unclassifiable
            2: Hairy cell leukemia variant
               Prolymphocytic variant of hairy cell leukemia]]></description>
            <history>
                <event version="SE18-018-10" user="kirbyk" date="2018-12-05" ref="68065">Edit created.</event>
                <event version="SE18-018-11" user="kirbyk" date="2019-01-03" ref="68081">Changed the edit so it always returns true. There are issues with the table; the edit will be ignored until those issues are resolved.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-11" ref="68090">Fixed table values and description and turned edit back on; changed edit name.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-16" ref="68163">Removed skip condtiion based on AJCC ID.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-04" user="kirbyk" date="2021-05-20" ref="68595">Updated edit logic and table for 2021.</event>
                <event version="SE22-022-01" user="beverung" date="2022-02-24" ref="68778">Update table for 2022.</event>
                <event version="SE24-024-03" user="beverung" date="2024-02-02" ref="69328">Updated table for 2024. Removed behavior codes 0,1 for AJCC IDs 43.1 and 43.2.</event>
            </history>
        </rule>
        <rule id="IFN3013" name="AJCC ID, Site, Histo, Schema Discriminator 2 (NAACCR)" tag="N3013" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.primarySite == null || line.histologicTypeIcdO3 == null)
    return true

Map contextMap = (Map)Context.AjccIdDiscriminator2Table
int histInt = Functions.asInt(line.histologicTypeIcdO3)
Map siteHistMap = (Map)((Map)contextMap.get(line.primarySite))?.get(histInt)
Map discrimMap = (Map)siteHistMap?.get(line.behaviorCodeIcdO3)
if (discrimMap == null)
    return true
List ajccId = (List)discrimMap.get(line.schemaDiscriminator2)
if (ajccId == null) {
    if (line.ajccId == 'XX' || (line.ajccId == '9' && line.primarySite == 'C111') || (line.ajccId == '17' && line.primarySite == 'C160' && line.histologicTypeIcdO3 == '8020'))
        return true
    return false
}

return ajccId.contains(line.ajccId)]]></expression>
            <message>Primary Site, Histologic Type ICD-O-3, and Schema Discriminator 2 are incompatible with AJCC ID.</message>
            <description><![CDATA[This edit verifies that Schema Discriminator 2, where required, is used where the Primary Site and Histologic Type ICD-O-3 codes are not sufficient to identify the appropriate AJCC staging scheme.

Schema Discriminator 2 code is used to distinguish between p16 positive and p16 negative histologies for oropharyngeal carcinomas. Schema Discriminator 2 is used to distinguish between undifferentiated carcinomas with squamous or glandular components for esophageal primaries. See the list of codes and definitions below the chart.

The edit checks that AJCC ID, Primary Site code or Histologic Type ICD-O-3 code, and Schema Discriminator 2 code occur together within the edited record, as shown in the following chart. The edit does not check that Schema Discriminator 2 is blank where not required for AJCC ID; Schema ID requires Schema Discriminator 2 on additional site/histology combinations.

1. The edit is skipped for the following condition:
   a. Date of diagnosis before 2018, blank, or invalid.
   b. Primary Site is blank
   c. Histologic Type ICD-O-3 is blank

2. The edit checks that Schema Discriminator 2 is coded and not blank for combinations of Primary Site and Histologic Type ICD-O-3. The combinations of site and histology are determined by AJCC ID but are checked independently of AJCC ID assignment.

3. The edit then verifies that Schema Discriminator 2 is valid for Primary Site, Histologic Type ICD-O-3, and AJCC ID.  Where SITE or HISTO is listed as "All", Schema Discriminator 1 is required for all the sites or histologies assigned to the AJCC ID. Where a specific site or histology is listed, Schema Discriminator 2 is required for only those sites or histologies for the AJCC ID.

4. Where Schema Discriminator 1 is also required to assign the correct AJCC ID between two possible AJCC IDs, the edit will pass either AJCC ID as correct.  The AJCC IDs include 10 and 11.1, with histologies 8070 and 8083 for C111, and 16.1 and 16.2 for C160.

5. Where Schema Discriminator 2 is required for a site/histology combination for one AJCC ID, but not for the same combination of site/histology in another AJCCID, the edit will pass the AJCC ID where it is not required: e.g., 9, C111, all histos, and 17, C160, 8020.


   AJCC ID                     SITE                    HISTO   DISC 2

   10 Oropharynx (p16+)
                               C019                    All        2
                               C024                    All        2
                               C051                    All        2
                               C052                    All        2
                               C090                    All        2
                               C091                    All        2
                               C098                    All        2
                               C099                    All        2
                               C100                    All        2
                               C102                    All        2
                               C103                    All        2
                               C104                    All        2
                               C108                    All        2
                               C109                    All        2
                               C111                    All        2

   11.1 Oropharynx (p16-)
                               C019                    All        1, 9
                               C024                    All        1, 9
                               C051                    All        1, 9
                               C052                    All        1, 9
                               C090                    All        1, 9
                               C091                    All        1, 9
                               C098                    All        1, 9
                               C099                    All        1, 9
                               C100                    All        1, 9
                               C102                    All        1, 9
                               C103                    All        1, 9
                               C104                    All        1, 9
                               C108                    All        1, 9
                               C109                    All        1, 9
                               C111                    All        1, 9

   16.1 Esophagus and EGJ: Squamous Cell Carcinoma
                           C150-C155          8020        1, 9
                           C158-C159
                           C160

   16.2 Esophagus and EGJ: Adenocarcinoma
                           C150-C155         8020         2
                           C158-C159
                           C160

   41   Soft Tissue Sarcoma, Trunk, Extremities
                               C473                    All        1
                               C475                    All        1
                               C493                    All        1
                               C494                    All        1
                               C495                    All        1
   42   Soft Tissue Sarcoma, Abdomen, Thoracic Visceral Organs
                               C473                    All        2, 8
                               C475                    All        2, 8
                               C493                    All        2, 8
                               C494                    All        2, 8
                               C495                    All        2, 8


AJCC ID     SCHEMA DISCRIMINATOR 2 CODES AND DEFINITIONS

10          2: p16 Positive; HPV Positive; Diffuse, strong reactivity

11.1        1: p16 Negative; Nonreactive
            9: Not tested for p16; Unknown

16.1        1: Undifferentiated carcinoma with squamous component
            9: Undifferentiated carcinoma, NOS

16.2        2: Undifferentiated carcinoma with glandular component

41          1: External structure
            Blank:  Primary Site is not C473, C475, C493-C495, Discriminator is not necessary

42          2: Internal viscera
            8: Not applicable, abstracted prior to 2021 updates
            Blank:  Primary Site is not C473, C475, C493-C495, Discriminator is not necessary]]></description>
            <history>
                <event version="SE18-018-10" user="kirbyk" date="2018-12-04" ref="68066">Edit created.</event>
                <event version="SE18-018-11" user="kirbyk" date="2019-01-15" ref="68089">Changed the edit so it always returns true. There are issues with the table; the edit will be ignored until those issues are resolved.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-11" ref="68089">Fixed edit logic; edit will not check Schema Discriminator 2 for cases not in the table; changed edit name.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-01" user="beverung" date="2022-02-18" ref="68808">Update for 2022.</event>
                <event version="SE24-024-01" user="cooki" date="2024-03-08" ref="69386">Updated description for 41, 42: blank conditions.</event>
                <event version="SE24-024-03" user="kirbyk" date="2024-03-20" ref="69329">Updated edit for 2024.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69460">Added condition for AJCC ID = 17 with Primary Site = C160.</event>
            </history>
        </rule>
        <rule id="IFN3022" name="Brain Molecular Markers, Schema ID, Required (NAACCR)" tag="N3022" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true

return !['00721','00722','09721','09722','09724'].contains(line.schemaId) || (line.brainMolecularMarkers != null && line.brainMolecularMarkers != '88')]]></expression>
            <message>Brain Molecular Markers must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)

2. This edit verifies that Brain Molecular Markers is not "88" and not blank 
   for the Schema IDs for which it is required by a standard setter. 
    
    Required for Schema ID:

    00721: Brain [8th: 2018-2022]
    09721: Brain [V9: 2023+]
    00722: CNS Other [8th: 2018-2022]
    09722: CNS Other [V9: 2023+]
    09724: Medulloblastoma [V9: 2023+]]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-25" ref="67915">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68010">Added DCO skip condition.</event>
                <event version="SE23-023-01" user="cooki" date="2023-02-21" ref="69146">Added required Schema IDs 09721, 09722, and 09724.</event>
            </history>
        </rule>
        <rule id="IFN3023" name="Mets at DX-Bone, EOD Mets (SEER)" tag="N3023" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018'  || line.eodMets == null || line.eodMets == '88' || line.metsAtDxBone == null)
    return true
    
return line.metsAtDxBone != '1' || line.eodMets != '00']]></expression>
            <message>Mets at DX-Bone and EOD Mets conflict</message>
            <description><![CDATA[Purpose: This edit verifies that Mets at DX-Bone and EOD Mets are coded consistently.

This edit is skipped if any of the following conditions is true:

1. Year of Date of Diagnosis is less than 2018, blank (unknown), or invalid
2. EOD Mets is blank
3. EOD Mets is coded 88.  
4. Mets at DX-Bone is blank


If Mets at DX-Bone = 1 (yes), then EOD Mets must not = 00 (no metastasis or unknown if metastasis).]]></description>
            <history>
                <event version="SE18-018-02" user="schadega" date="2018-05-30" ref="67789">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IFN3024" name="Mets at DX-Brain, EOD Mets (SEER)" tag="N3024" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018'  || line.eodMets == null || line.eodMets == '88' || line.metsAtDxBrain == null)
    return true
    
return line.metsAtDxBrain != '1' || line.eodMets != '00']]></expression>
            <message>Mets at DX-Brain and EOD Mets conflict</message>
            <description><![CDATA[Purpose: This edit verifies that Mets at DX-Brain and EOD Mets are coded consistently.

This edit is skipped if any of the following conditions is true:

1. Year of Date of Diagnosis is less than 2018, blank (unknown), or invalid
2. EOD Mets is blank
3. EOD Mets is coded 88.  
4. Mets at DX-Brain is blank


If Mets at DX-Brain = 1 (yes), then EOD Mets must not = 00 (no metastasis or unknown if metastasis).]]></description>
            <history>
                <event version="SE18-018-02" user="schadega" date="2018-05-30" ref="67789">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IFN3025" name="Mets at DX-Distant LN, EOD Mets (SEER)" tag="N3025" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018'  || line.eodMets == null || line.eodMets == '88' || line.metsAtDxDistantLn == null)
    return true

if (line.schemaId == null || ['00458', '00710', '00811'].contains(line.schemaId))
    return true

return line.metsAtDxDistantLn != '1' || line.eodMets != '00']]></expression>
            <message>Mets at Dx-Distant LN and EOD Mets conflict</message>
            <description><![CDATA[Purpose: This edit verifies that Mets at DX-Distant LN and EOD Mets are coded consistently.

This edit is skipped if any of the following conditions is true:

1. Year of Date of Diagnosis is less than 2018, blank (unknown), or invalid
2. EOD Mets is blank
3. EOD Mets is coded 88.  
4. Mets at DX-Distant LN is blank
5. Schema ID is blank or 00458, 00710, or 00811, Mets to distant nodes coded in EOD Regional Nodes


If Mets at DX-Distant LN = 1 (yes), then EOD Mets must not = 00 (no metastasis or unknown if metastasis).]]></description>
            <history>
                <event version="SE18-018-02" user="schadega" date="2018-05-30" ref="67789">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-06" ref="68432">Add skip condition for schema ID.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IFN3026" name="Mets at DX-Liver, EOD Mets (SEER)" tag="N3026" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018'  || line.eodMets == null || line.eodMets == '88' || line.metsAtDxLiver == null)
    return true
    
return line.metsAtDxLiver != '1' || line.eodMets != '00']]></expression>
            <message>Mets at DX-Liver and EOD Mets conflict</message>
            <description><![CDATA[Purpose: This edit verifies that Mets at DX-Liver and EOD Mets are coded consistently.

This edit is skipped if any of the following conditions is true:

1. Year of Date of Diagnosis is less than 2018, blank (unknown), or invalid
2. EOD Mets is blank
3. EOD Mets is coded 88.  
4. Mets at DX-Liver is blank


If Mets at DX-Liver = 1 (yes), then EOD Mets must not = 00 (no metastasis or unknown if metastasis).]]></description>
            <history>
                <event version="SE18-018-02" user="schadega" date="2018-05-30" ref="67789">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IFN3027" name="Mets at DX-Lung, EOD Mets (SEER)" tag="N3027" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018'  || line.eodMets == null || line.eodMets == '88' || line.metsAtDxLung == null)
    return true
    
return line.metsAtDxLung != '1' || line.eodMets != '00']]></expression>
            <message>Mets at DX-Lung and EOD Mets conflict</message>
            <description><![CDATA[Purpose: This edit verifies that Mets at DX-Lung and EOD Mets are coded consistently.

This edit is skipped if any of the following conditions is true:

1. Year of Date of Diagnosis is less than 2018, blank (unknown), or invalid
2. EOD Mets is blank
3. EOD Mets is coded 88.  
4. Mets at DX-Lung is blank


If Mets at DX-Lung = 1 (yes), then EOD Mets must not = 00 (no metastasis or unknown if metastasis).]]></description>
            <history>
                <event version="SE18-018-02" user="schadega" date="2018-05-30" ref="67789">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IFN3028" name="Mets at DX-Other, EOD Mets (SEER)" tag="N3028" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018'  || line.eodMets == null || line.eodMets == '88' || line.metsAtDxOther == null)
    return true
    
return (line.metsAtDxOther != '1' && line.metsAtDxOther != '2') || line.eodMets != '00']]></expression>
            <message>Mets at DX-Other and EOD Mets conflict</message>
            <description><![CDATA[Purpose: This edit verifies that Mets at DX-Other and EOD Mets are coded consistently.

This edit is skipped if any of the following conditions is true:

1. Year of Date of Diagnosis is less than 2018, blank (unknown), or invalid
2. EOD Mets is blank
3. EOD Mets is coded 88.  
4. Mets at DX-Other is blank


If Mets at DX-Other = 1 (yes), 2 (carcinomatosis) then EOD Mets must not = 00 (no metastasis or unknown if metastasis).]]></description>
            <history>
                <event version="SE18-018-02" user="schadega" date="2018-05-30" ref="67789">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IFN3030" name="FIGO Stage, Behavior (NAACCR)" tag="N3030" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018'  || line.figoStage == null || line.figoStage == '98')
    return true

if (!Functions.matches(line.schemaId, /^(005([01236]0|4[12]|5[123]|28)|095[02]0)$/) || line.behaviorCodeIcdO3 == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

if (line.behaviorCodeIcdO3 == '2' && !Functions.matches(line.schemaId, /^005(30|5[13])$/))
    return line.figoStage == '97'

if (line.behaviorCodeIcdO3 == '3')
    return line.figoStage != '97'

return true]]></expression>
            <message>FIGO Stage and Behavior Code ICD-O-3 conflict.</message>
            <description><![CDATA[The edit verifies that the FIGO Stage SSDI is coded consistently with Behavior
ICD-O-3.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2018, blank (unknown), or invalid
    b. Schema ID not = 00500, 00510, 00520, 00528, 00530, 00541, 00542, 00551, 00552, 00553, 00560, 09520, 09500
    c. FIGO Stage is blank or = 98 (not applicable)
    d. Behavior Code ICD-0-3 is 0, 1, or blank

2. The edit verifies that if Behavior Code ICD-O-3 = "2" and Schema ID is not
    00530, 00551, or 00553 (schemas where 8380/2 or 8441/2 are staged T1a or T1b),
    FIGO Stage = "97" (Carcinoma in situ) or "98" (not collected for this case).

3. The edit verifies that if Behavior Code ICD-O-3 = "3",
    FIGO Stage must not = "97" (Carcinoma in situ).]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-15" ref="67813">Edit created.</event>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-20" ref="67961">Removed unnecessary dependency.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-30" ref="68393">Add schema ID 09520 to skip condition.</event>
                <event version="SE21-021-03" user="beverung" date="2021-02-17" ref="68557">Removed 00530, 00551, 00553 from skip condition.</event>
                <event version="SE21-021-03" user="beverung" date="2021-03-02" ref="68569">Update logic for step 2.</event>
                <event version="SE22-022-01" user="smithm" date="2022-02-15" ref="68831">Add 00528 to skip condition</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-04" ref="69403">Added Schema ID 09500 to skip condition.</event>
            </history>
        </rule>
        <rule id="IFN3031" name="Serum Markers, Testis, Post-Orchiectomy 03-2022, Range (NAACCR)" tag="N3031" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.dateOfDiagnosisYear > '2022' || line.schemaId != '00590' || line.rxSummSurgPrimSite == null)
    return true

if ((line.afpPostOrchiectomyRange == null || line.afpPostOrchiectomyRange == '8') && (line.hcgPostOrchiectomyRange == null || line.hcgPostOrchiectomyRange == '8') && 
    (line.ldhPostOrchiectomyRange == null || line.ldhPostOrchiectomyRange == '8') && line.sCategoryPathological == null)
    return true

String surgPrimSite = line.rxSummSurgPrimSite
if (surgPrimSite == '00' || surgPrimSite == '12' || surgPrimSite == '20' || surgPrimSite == '99')
    return line.afpPostOrchiectomyRange == '9' && line.hcgPostOrchiectomyRange == '9' && line.ldhPostOrchiectomyRange == '9' && line.sCategoryPathological == '9'

return true]]></expression>
            <message>Testis Serum Markers must be coded &quot;no orchiectomy performed&quot; if no orchiectomy performed.</message>
            <description><![CDATA[This edit verifies that the testis tumor marker range SSDIs are coded consistently
with surgery code.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2019 or after 2022, blank (unknown), or invalid.
    b. Schema ID not = 00590
    c. The following SSDIs are blank or not applicable:

       AFP Post-Orchiectomy Range
       hCG Post-Orchiectomy Range
       LDH Post-Orchiectomy Range
       S Category Pathological

    d. RX Summ--Surg Prim Site 03-2022 is blank

2.  If Primary Site Surgery = 00 (no surgery of primary site), 12 (local tumor
    destruction NOS (no specimen sent to pathology), or 20 (local excision of
    testicle),
     Then the data items must be coded as follows (no orchiectomy performed):

       AFP Post-Orchiectomy Range          9
       hCG Post-Orchiectomy Range          9
       LDH Post-Orchiectomy Range          9
       S Category Pathological             9

3. If RX Summ-Surg Prim Site 03-2022 = 99,
    Then the data items must be coded as follows (no orchiectomy performed, or AFP Post-Orchiectomy Range not assessed or unknown if assessed):

       AFP Post-Orchiectomy Range          9
       hCG Post-Orchiectomy Range          9
       LDH Post-Orchiectomy Range          9
       S Category Pathological             9]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-06" ref="68169">Edit created.</event>
                <event version="SE23-023-01" user="cooki" date="2023-01-20" ref="69089">Added logic to skip for 2023+ and updated description.</event>
                <event version="SE23-023-01" user="cooki" date="2023-03-07" ref="69197">Updated name.</event>
                <event version="SE23-023-05" user="shearerw" date="2023-06-29" ref="69292">Remove logic for when S Category Pathological is 8.</event>
                <event version="SE24-024-01" user="cooki" date="2024-02-08" ref="69370">Added condition 3. for code 99.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-06-20" ref="69499">Updated name.</event>
            </history>
        </rule>
        <rule id="IFN3032" name="Brain Molecular Markers, Morphology ICD-O-3 (NAACCR)" tag="N3032" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Histologic_Type_ICD-O-3,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || !['00721', '00722', '09721', '09722', '09724'].contains(line.schemaId) || line.typeOfReportingSource == '7')
    return true

String brainMolecularMarkers = line.brainMolecularMarkers
String histology = line.histologicTypeIcdO3
String behavior = line.behaviorCodeIcdO3
String morph = histology + behavior

String[] morphsPre2024 = ['94003', '94013', '94403', '94503', '94513', '94713', '94783']
String[] morphs2024AndLater = ['93853', '93963', '94211', '94303', '95003']

if (histology == null || behavior == null || brainMolecularMarkers == null || brainMolecularMarkers == '88')
    return true

if (brainMolecularMarkers == '01' || brainMolecularMarkers == '02')
    if (morph != '94003')
        return false

if (brainMolecularMarkers == '03' || brainMolecularMarkers == '04')
    if (morph != '94013')
        return false

if (brainMolecularMarkers == '05')
    if (morph != '94403')
        return false
    
if (brainMolecularMarkers == '06')
    if (morph != '94503')
        return false
    
if (brainMolecularMarkers == '07')
    if (morph != '94513')
        return false
    
if (brainMolecularMarkers == '08')
    if (morph != '94713')
        return false

if (brainMolecularMarkers == '09')
    if (morph != '94783')
        return false

if (brainMolecularMarkers == '85')
    if (morphsPre2024.contains(morph))
        return false

if (brainMolecularMarkers == '86')
    if (behavior != '0' && behavior != '1')
        return false

if (line.dateOfDiagnosisYear < '2024') {
    if (behavior == '0' || behavior == '1')
        if (brainMolecularMarkers != '86')
            return false
}
if (line.dateOfDiagnosisYear >= '2024') {
    if (['10','11','12','13'].contains(brainMolecularMarkers))
        if (morph != '93853')
            return false

    if (['14','15','16','17','18'].contains(brainMolecularMarkers))
        if (morph != '93963')
            return false

    if (brainMolecularMarkers == '19' || brainMolecularMarkers == '20')
        if (morph != '94211')
            return false

    if (brainMolecularMarkers == '21')
        if (morph != '94303')
            return false

    if (brainMolecularMarkers == '22' || brainMolecularMarkers == '23')
        if (morph != '95003')
            return false

    if (brainMolecularMarkers == '85')
        if (morphs2024AndLater.contains(morph))
            return false

    if (brainMolecularMarkers == '86')
        if ((behavior == '0' || behavior == '1') && morph != '94211')
            return true
        else
            return false

    if ((behavior == '0' || behavior == '1') && morph != '94211')
        if (brainMolecularMarkers != '86')
            return false
}

return true]]></expression>
            <message>Brain Molecular Markers and Morphology ICD-O-3 conflict.</message>
            <description><![CDATA[This edit verifies that the brain molecular marker SSDI is coded consistently with Histologic Type ICD-O-3 and Behavior Code ICD-O-3.

1. The edit is skipped for the following conditions:
    a. Diagnosis date is before 2018, blank (unknown), or invalid.
    b. Histologic Type ICD-O-3 or Behavior Code ICD-O-3 is blank.
    c. Schema ID not = 00721, 00722, 09721, 09722, or 09724
    d. Brain Molecular Markers is blank or 88 (not applicable).
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. The edit verifies that if Brain Molecular Markers is coded as shown,
    Histologic Type ICD-O-3 and Behavior Code ICD-O-3 are also coded as shown in the following list.

    01: 9400/3  Astrocytoma, IDH-mutant, grade 2
    02: 9400/3  Diffuse astrocytoma, IDH-wildtype
    03: 9401/3  Astrocytoma, IDH-mutant, grade 3
    04: 9401/3  Anaplastic astrocytoma, IDH-wildtype
    05: 9440/3  Glioblastoma, IDH-wildtype
    06: 9450/3  Oligodendroglioma, IDH-mutant and 1p/19q co-deleted
    07: 9451/3  Oligodendroglioma, IDH-mutant and 1p/19q co-deleted, grade 3
    08: 9471/3  Medulloblastoma, SHH-activated and TP53-wildtype
    09: 9478/3  Embryonal tumor with multilayered rosettes, C19MC-altered)
    85: Not applicable: Histology not 9400/3, 9401/3, 9440/3, 9450/3, 9451/3, 9471/3, 9478/3
    86: Benign or borderline tumor

3. In addition the edit verifies the coding of Brain Molecular Markers with the combination of Histologic Type ICD-O-3/Behavior
Code ICD-O-3 starting with 2024 diagnoses.

    10: 9385/3  Diffuse hemispheric glioma, H3-34 mutant
    11: 9385/3  Diffuse midline glioma, H3 K27-altered
    12: 9385/3  Diffuse pediatric-type high grade glioma, H3-wildtype and IDH-wildtype
    13: 9385/3  Infant-type hemispheric glioma
    14: 9396/3  Posterior fossa group A (PFA) ependymoma
    15: 9396/3  Posterior fossa group B (PFB) ependymoma
    16: 9396/3  Spinal ependymoma, MYCN-amplified
    17: 9396/3  Supratentorial ependymoma, YAP1 fusion-positive
    18: 9396/3  Supratentorial ependymoma, ZFTA fusion-positive
    19: 9421/1  Diffuse astrocytoma, MYB- or MYBL1-altered
    20: 9421/1  Diffuse low-grade glioma, MAPK pathway-altered
    21: 9430/3  Astroblastoma, MN1-altered
    22: 9500/3  CNS neuroblastoma, FOXR2-activated
    23: 9500/3  CNS tumor BCOR internal tandem duplication
    85: Not applicable: Histology not 9385/3, 9396/3, 9421/1, 9430/3, 9500/3
    86: Benign or borderline tumor (excludes 9421/1, codes 19-20)

4. If Brain Molecular Markers is coded 86 (Benign or borderline tumor),
    Behavior Code ICD-O-3 must = 0 (benign) or 1 (borderline).

   If Behavior Code ICD-O-3 = 0 or 1,
        Brain Molecular Markers must = 86 (excluding 9421/1 for 2024+ diagnoses).]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-25" ref="67915">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
                <event version="SE23-023-01" user="cooki" date="2023-01-19" ref="69084">Added additional Schema IDs to the skip conditions.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-08" ref="69145">Update edit name and message. Change skip condition for when behavior or histology are blank.</event>
                <event version="SE24-024-01" user="beverung" date="2024-02-29" ref="69389">Added logic for 2024+ Brain Molecular Markers codes.</event>
            </history>
        </rule>
        <rule id="IFN3033" name="Breslow Tumor Thickness, Melanoma, Behavior (NAACCR)" tag="N3033" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId != '00470')
    return true

if (line.breslowTumorThickness == null || line.breslowTumorThickness == 'XX.8')
    return true

return line.behaviorCodeIcdO3 != '2' || line.breslowTumorThickness == 'XX.9']]></expression>
            <message>Breslow Tumor Thickness and Behavior Code ICD-O-3 conflict.</message>
            <description><![CDATA[This edit verifies that Breslow Tumor Thickness SSDI for Melanoma of Skin is 
coded consistently with Behavior Code ICD-O-3.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2018, blank (unknown), or invalid.
    b. Schema ID is not 00470
    c. Breslow Tumor Thickness is blank or XX.8 (not applicable) 

2. The edit verifies that if Behavior Code ICD-O-3 = 2, 
   Breslow Tumor Thickness = "XX.9" (In situ melanoma).]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-19" ref="67839">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IFN3034" name="Circumferential Resection Margin (CRM), Colon, Surg Prim Site 03-2022 (NAACCR)" tag="N3034" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.dateOfDiagnosisYear > '2022' || line.schemaId != '00200' || line.behaviorCodeIcdO3 == '2')
    return true

if (line.circumferentialResectionMargin == null || line.circumferentialResectionMargin == 'XX.8')
    return true

if ((line.registryId == '0000001565' && line.dateOfDiagnosisYear < '2023')
    || (line.registryId == '0000001566' && line.dateOfDiagnosisYear < '2022'))
    return true

if (Functions.matches(line.primarySite, /^C1(8[02-9]|99)$/) && Functions.matches(line.rxSummSurgPrimSite, /^00|1[0-4]|2[0-9]$/) && line.circumferentialResectionMargin != 'XX.7')
    return false
else if (line.primarySite == 'C209' && Functions.matches(line.rxSummSurgPrimSite, /^00|1[0-4]|2[0-68]$/) && line.circumferentialResectionMargin != 'XX.7')
    return false

if (Functions.matches(line.rxSummSurgPrimSite, /^[3-7]\d|80$/) && line.circumferentialResectionMargin == 'XX.7')
    return false

if (line.rxSummSurgPrimSite == '99' && line.circumferentialResectionMargin != 'XX.9')
    return false

return true]]></expression>
            <message>Circumferential Resection Margin (CRM) conflicts with RX Summ--Surg Prim Site 03-2022.</message>
            <description><![CDATA[This edit verifies that the Circumferential Resection Margin (CRM) SSDI is coded
consistently with RX Summ--Surg Prim Site 03-2022.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2019 or after 2022, blank (unknown), or invalid.
    b. Schema ID is not 00200
    c. Behavior Code = 2
    d. Circumferential Resection Margin (CRM) is blank or XX.8 (not applicable).
    e. Registry ID is 0000001565 (Illinois) and Year of Date of Diagnosis is < 2023
    f. Registry ID is 0000001566 (Texas) and Year of Date of Diagnosis is < 2022

2. If Primary Site = C180, C182-C189, C199,
    If RX Summ--Surg Prim Site 03-2022 = 00 (no surgery of primary site),10-14 (local
    tumor destruction (no specimen sent to pathology)), or 20-29 (local excision),
    then the Circumferential Resection Margin must be coded XX.7 (no resection
    of primary site).

3. If Primary Site = C209,
    If RX Summ--Surg Prim Site 03-2022 = 00 (no surgery of primary site), 10-14 (local
    tumor destruction (no specimen sent to pathology), or 20-26, 28 (local excision),
    then the Circumferential Resection Margin must be coded XX.7 (no resection
    of primary site).

4. If RX Summ--Surg Prim Site 03-2022 = 30-80 (surgery of primary site),
    Circumferential Resection Margin must not = XX.7 (no resection of primary site).

5. If RX Summ--Surg Prim Site 03-2022 = 99 (unknown if surgery performed)
    then Circumferential Resection Margin must be coded XX.9 (Circumferential or radial resection margin not assessed or unknown if assessed.)]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-06" ref="68165">Edit created.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-22" ref="68376">Added skip condition and updated logic for step 2.</event>
                <event version="SE22-022-05" user="kirbyk" date="2022-05-17" ref="68995">Replaced non-ASCII characters in description.</event>
                <event version="SE23-023-01" user="secristc" date="2023-01-25" ref="69090">Added skip condition for DX year &gt; 2022, updated logic for step 4.</event>
                <event version="SE23-023-02" user="cooki" date="2023-05-03" ref="69255">Removed logic from step 4.</event>
                <event version="SE23-023-04" user="shearerw" date="2023-06-14" ref="69288">Add registry skip conditions.</event>
                <event version="SE24-024-01" user="kirbyk" date="2024-02-07" ref="69353">Added condition for Surg Prim Site 03-2022 = 99; removed condition for Surgical Margins; changed name.</event>
            </history>
        </rule>
        <rule id="IFN3035" name="Extranodal Extension Clin/Path, Penis, EOD Regional Nodes (SEER)" tag="N3035" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.schemaId != '00570' || line.eodRegionalNodes == null)
    return true

String clin = line.extranodalExtensionClin
String path = line.extranodalExtensionPath
if ((clin == null || clin == '8') && (path == null || path == '8'))
    return true

if (clin == '7' && path == '7')
    return line.eodRegionalNodes == '000'
else if (['0', '1', '2', '4'].contains(clin) && path == '7')
    return ['100', '200', '300', '800'].contains(line.eodRegionalNodes)
else if (path == '0')
    return line.eodRegionalNodes == '400' || line.eodRegionalNodes == '500'
else if (path == '1')
    return line.eodRegionalNodes == '500'

return true]]></expression>
            <message>Extranodal SSDIs/EOD Regional Nodes conflict for Penis</message>
            <description><![CDATA[This edit verifies that the extranodal extension SSDIs are coded consistently
with EOD Regional Nodes for Penis.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2019, blank (unknown), or invalid.
    b. Schema ID is not 00570
    c. Extranodal Extension Clin (non-Head and Neck) and
       Extranodal Extension Path (non-Head and Neck) are both blank or both = 8
       (not applicable)
    d. EOD Regional Nodes is blank

2. If Extranodal Extension Clin (non-Head and Neck) = 7 (no lymph node
   involvement during diagnostic workup) and Extranodal Extension Path
   (non-Head and Neck) = 7 (no lymph node involvement from surgical resection),
   EOD Regional Nodes must = 000 (no lymph node involvement)

3. If Extranodal Extension Clin (non-Head and Neck) = 0, 1, 2 or 4 (nodes involved
   clinically) and Extranodal Extension Path (non-Head and Neck) = 7 ( no
   nodes involved on surgical resection)
   EOD Regional Nodes must = 100, 200, 300 (clinical nodal involvement) or 800
   (regional nodes NOS)

4. If Extranodal Extension Path (non-Head and Neck), = 0 (nodes involved, no ENE)
   EOD Regional Nodes must = 400 (positive inguinal nodes without nodal
   extension) or 500 (pathological nodes with ENE or pathological pelvic nodes)

5. If Extranodal Extension Path (non-Head and Neck), = 1 (nodes involved, ENE
   present) EOD Regional Nodes must = 500 (pathological nodes with ENE or
   pathological pelvic nodes)]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-12" ref="68171">Edit created.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-28" ref="68385">Changed name and added 4 to Extranodal Extension Clin (non-Head and Neck) values in step 3.</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-27" ref="68947">Update edit name and remove CoC Accredited Flag.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN3037" name="Gleason Patterns/Score, Clin/Path (NAACCR)" tag="N3037" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.schemaId != '00580')
    return true

String scorePath = line.gleasonScorePathological
String scoreClin = line.gleasonScoreClinical
String patternsPath = line.gleasonPatternsPathological
String patternsClin = line.gleasonPatternsClinical
if ((scoreClin == null || scoreClin == 'X8') && (scorePath == null || scorePath == 'X8') && (patternsClin == null || patternsClin == 'X8') && (patternsPath == null || patternsPath == 'X8'))
    return true

if (scoreClin != null && scoreClin != 'X8') {
    if (patternsClin == '11' && scoreClin != '02')
        return false
    else if ((patternsClin == '12' || patternsClin == '21') && scoreClin != '03')
        return false
    else if (['13', '22', '31'].contains(patternsClin) && scoreClin != '04')
        return false
    else if (['14', '23', '32', '41'].contains(patternsClin) && scoreClin != '05')
        return false
    else if (['15', '24', '33', '42', '51'].contains(patternsClin) && scoreClin != '06')
        return false
    else if (['25', '34', '43', '52'].contains(patternsClin) && scoreClin != '07')
        return false
    else if (['35', '44', '53'].contains(patternsClin) && scoreClin != '08')
        return false
    else if ((patternsClin == '45' || patternsClin == '54') && scoreClin != '09')
        return false
    else if (patternsClin == '55' && scoreClin != '10')
        return false
    else if (patternsClin == 'X7' && scoreClin != 'X7')
        return false
}

if (scorePath != null && scorePath != 'X8') {
    if (patternsPath == '11' && scorePath != '02')
        return false
    else if ((patternsPath == '12' || patternsPath == '21') && scorePath != '03')
        return false
    else if (['13', '22', '31'].contains(patternsPath) && scorePath != '04')
        return false
    else if (['14', '23', '32', '41'].contains(patternsPath) && scorePath != '05')
        return false
    else if (['15', '24', '33', '42', '51'].contains(patternsPath) && scorePath != '06')
        return false
    else if (['25', '34', '43', '52'].contains(patternsPath) && scorePath != '07')
        return false
    else if (['35', '44', '53'].contains(patternsPath) && scorePath != '08')
        return false
    else if ((patternsPath == '45' || patternsPath == '54') && scorePath != '09')
        return false
    else if (patternsPath == '55' && scorePath != '10')
        return false
    else if (patternsPath == 'X7' && scorePath != 'X7')
        return false
}

return true]]></expression>
            <message>Gleason Patterns and Gleason Score conflict.</message>
            <description><![CDATA[This edit verifies that the Gleason Patterns Clinical and Pathological and
Gleason Score Clinical and Pathological SSDIs are coded consistently.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or invalid.
   b. Schema ID is not 00580.
   c. Gleason Patterns Clinical, Gleason Score Clinical, Gleason Patterns
      Pathological, and Gleason Score Pathological are all blank or not
      applicable

2. If Gleason Score Clinical is not blank and not X8:
   If Gleason Patterns Clinical = 11, Gleason Score Clinical must = 02
   If Gleason Patterns Clinical = 12 or 21, Gleason Score Clinical must = 03
   If Gleason Patterns Clinical = 13, 22, 31, Gleason Score Clinical must = 04
   If Gleason Patterns Clinical = 14, 23, 32, 41, Gleason Score Clinical must = 05
   If Gleason Patterns Clinical = 15, 24, 33, 42, 51, Gleason Score Clinical must =
      06
   If Gleason Patterns Clinical = 25, 34, 43, 52, Gleason Score Clinical must = 07
   If Gleason Patterns Clinical = 35, 44, 53, Gleason Score Clinical must = 08
   If Gleason Patterns Clinical = 45, 54, Gleason Score Clinical must = 09
   If Gleason Patterns Clinical = 55, Gleason Score Clinical must = 10
   If Gleason Patterns Clinical = X7, Gleason Score Clinical must = X7

3. If Gleason Score Pathological is not blank and not X8:
   If Gleason Patterns Pathological = 11, Gleason Score Pathological must = 02
   If Gleason Patterns Pathological = 12 or 21, Gleason Score Pathological
      must = 03
   If Gleason Patterns Pathological = 13, 22, 31, Gleason Score Pathological
      must = 04
   If Gleason Patterns Pathological = 14, 23, 32, 41, Gleason Score Pathological
      must = 05
   If Gleason Patterns Pathological = 15, 24, 33, 42, 51, Gleason Score Pathological
      must = 06
   If Gleason Patterns Pathological = 25, 34, 43, 52, Gleason Score Pathological
      must = 07
   If Gleason Patterns Pathological = 35, 44, 53, Gleason Score Pathological
      must = 08
   If Gleason Patterns Pathological = 45, 54, Gleason Score Pathological must = 09
   If Gleason Patterns Pathological = 55, Gleason Score Pathological must = 10
   If Gleason Patterns Pathological = X7, Gleason Score Pathological must = X7]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
                <event version="SE22-022-06" user="secristc" date="2022-05-25" ref="69002">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN3042" name="LN Distant, Gynecologic, EOD Mets (SEER)" tag="N3042" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.eodMets == null)
    return true

if (!['00510', '00520', '09520'].contains(line.schemaId))
    return true

String lnStatus = line.lnDistantMediastinalScalene
if (lnStatus == null || lnStatus == '8')
    return true

if (lnStatus == '1' || lnStatus == '2' || lnStatus == '3')
    return line.eodMets == '10' || line.eodMets == '70'

return true]]></expression>
            <message>LN Distant: Mediastinal, Scalene conflicts with EOD Mets.</message>
            <description><![CDATA[This edit verifies that LN Distant: Mediastinal, Scalene SSDI is coded
consistently with EOD Mets for Vagina and Cervix.


1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2019, blank (unknown), or invalid.
    b. Schema ID is not 00510, 00520, 09520.
    c. LN Status: Mediastinal, Scalene is blank or 8 (not applicable)
    d. EOD Mets is blank

2. If LN Distant: Mediastinal Scalene = 1-3 (positive distant nodes)
     EOD Mets must = 10 (distant nodes) or 70 (distant metastases)]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-29" ref="68148">Edit created.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-27" ref="68320">Changed name and added CoC Accredited Flag to skip conditions.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-27" ref="68423">Add 09520 to skip conditions and add note to description.</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-27" ref="68947">Update edit name and remove CoC Accredited Flag.</event>
            </history>
        </rule>
        <rule id="IFN3043" name="Extranodal Extension Clin/Path, Merkel Cell, EOD Regional Nodes (SEER)" tag="N3043" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.schemaId != '00460' || line.eodRegionalNodes == null)
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

String clin = line.extranodalExtensionClin
String path = line.extranodalExtensionPath
if ((clin == null || clin == '8') && (path == null || path == '8'))
    return true

if (clin == '7' && path == '7')
    return ['000', '600', '700'].contains(line.eodRegionalNodes)
else if (['0', '1', '2', '4'].contains(clin) && path == '7')
    return ['100', '200', '650', '800'].contains(line.eodRegionalNodes)
else if (clin == '7' && (path == '0' || path == '1'))
    return ['300', '350', '500', '750'].contains(line.eodRegionalNodes)
else if (['0', '1', '2'].contains(clin) && (path == '0' || path == '1'))
    return line.eodRegionalNodes == '400' || line.eodRegionalNodes == '750'

return true]]></expression>
            <message>Extranodal SSDIs/EOD Regional Nodes conflict for Merkel Cell</message>
            <description><![CDATA[This edit verifies that the extranodal extension SSDIs are coded consistently
with EOD Regional Nodes for Merkel Cell Carcinoma.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or invalid.
   b. Schema ID is not 00460
   c. Extranodal Extension Clin (non-Head and Neck) and
      Extranodal Extension Path (non-Head and Neck) are both blank or both not
      applicable
   d. EOD Regional Nodes is blank
   e. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
   f. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. If Extranodal Extension Clin (non-Head and Neck) = 7 (no lymph node
    involvement during diagnostic workup) and Extranodal Extension Path
    (non-Head and Neck) = 7 (no lymph node involvement from surgical resection),
    EOD Regional Nodes must = 000 (no lymph node involvement), 600 or 700 (in-transit
    metastasis without lymph node metastasis or unknown)


3.  If Extranodal Extension Clin (non-Head and Neck) = 0, 1, 2, or 4 (regional nodes
      involved), and Extranodal Extension Path (non-Head and Neck) = 7 (no
      regional nodes involved),
   EOD Regional Nodes must = 100 (clinical without biopsy), 200 (clinical on
      core biopsy/FNA), 650 (clinical in transit and nodal metastases), or 800
      (regional nodes NOS)

4. If Extranodal Extension Clin (non-Head and Neck) = 7 (no nodes involved)
      and Extranodal Extension Path (non-Head and Neck) = 0 or 1 (nodes involved)
   EOD Regional Nodes must = 300 or 350 (clinically occult, positive
      pathologically), 500 (clinically unknown, positive pathologically), or
      750 (clinically unknown or negative, positive pathologically)

5. If Extranodal Extension Clin (non-Head and Neck) = 0, 1, or 2 (nodes involved)
      and Extranodal Extension Path (non-Head and Neck) = 0 or 1 (nodes involved)
   EOD Regional Nodes must = 400 (clinically and pathologically positive nodes), or
      750 (pathologically positive nodes with in transit metastasis)]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-12" ref="68171">Edit created.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-30" ref="68383">Update name and add 4 to Extranodal Extension Clin (non-Head and Neck) codes in step 3.</event>
                <event version="SE21-021-03" user="beverung" date="2021-02-17" ref="68561">Add codes 600, 700 when SSDIs = 7.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-27" ref="68947">Update edit name and remove CoC Accredited Flag.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN3046" name="LN Head and Neck Levels, EOD Regional Nodes (SEER)" tag="N3046" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || !['00060', '00140'].contains(line.schemaId) || line.eodRegionalNodes == null)
    return true

String ln13 = line.lnHeadAndNeckLevels1To3
String ln45 = line.lnHeadAndNeckLevels4To5
String ln67 = line.lnHeadAndNeckLevels6To7
String lnOther = line.lnHeadAndNeckOther
if ((ln13 == null || ln13 == '8') && (ln45 == null || ln45 == '8') && (ln67 == null || ln67 == '8') && (lnOther == null || lnOther == '8'))
    return true

if (Functions.matches(ln13, /^[1-7]$/) || Functions.matches(ln45, /^[1-3]$/) || Functions.matches(ln67, /^[1-3]$/) || Functions.matches(lnOther, /^[1-7]$/))
    return !['000', '800', '999'].contains(line.eodRegionalNodes)

if (ln13 == '9' && ln45 == '9' && ln67 == '9' && lnOther == '9')
    return ['800', '999'].contains(line.eodRegionalNodes)

if (line.dateOfDiagnosisYear > '2020' && !['000', '800', '999'].contains(line.eodRegionalNodes))
    return ln13 != '0' || ln45 != '0' || ln67 != '0' || lnOther != '0'

return true]]></expression>
            <message>LN Head and Neck codes conflict with EOD Regional Nodes</message>
            <description><![CDATA[This edit verifies that the LN Head and Neck SSDIs are coded consistently with
EOD Regional Nodes for Schema IDs 00060 Cervical Lymph Nodes and and Unknown Primary Tumor of the Head and Neck, 00140 Melanoma Head and Neck

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2019, blank (unknown), or invalid.
    b. Schema ID is not 00060 or 00140
    c. LN Head and Neck Levels I-III, LN Head and Neck levels IV-V, LN Head and
    Neck Levels VI-VII, and LN Head and Neck Other are all blank or not
    applicable.
    d. EOD Regional Nodes is blank

2. If LN Head and Neck Levels I-III = 1-7 (lymph nodes involved) or
    LN Head and Neck Levels IV-V = 1-3 (lymph nodes involved)or
    LN Head and Neck Levels VI-VII = 1-3 (lymph nodes involved) or
    LN Head and Neck Other = 1-7 (lymph nodes involved)
    EOD Regional Nodes must not = 000 (no nodes involved), 800 nodes
    involved NOS) or 999 (unknown if nodes involved)

3. If LN Head and Neck Levels I-III = 9 (unknown if lymph nodes involved) and
    LN Head and Neck Levels IV-V = 9 (unknown if lymph nodes involved) and
    LN Head and Neck Levels VI-VII = 9 (unknown if lymph nodes involved) and
    LN Head and Neck Other = 9 (unknown if lymph nodes involved)
    EOD Regional Nodes must = 800 (nodes involved NOS) or 999 (unknown if nodes
    involved)

4. If Date of Diagnosis 2021 or greater, and EOD Regional Nodes not = 000, 800,
    or 999 and not blank,
    LN Head and Neck Levels I-III and
    LN Head and Neck Levels IV-V and
    LN Head and Neck Levels VI-VII and
    LN Head and Neck Levels Other must not all = 0.

NOTE: 000 not included in 00060, EOD Regional Nodes]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-14" ref="68146">Edit created.</event>
                <event version="SE18-020-02" user="kirbyk" date="2020-03-27" ref="68322">Changed edit name; removed Schema ID 00060 from skip condition.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-03" ref="68425">Changed edit name and updated logic.</event>
            </history>
        </rule>
        <rule id="IFN3047" name="LN Isolated Tumor Cells (ITC), Merkel Cell, EOD Regional Nodes (SEER)" tag="N3047" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.schemaId != '00460' || line.eodRegionalNodes == null)
    return true

if (line.lnIsolatedTumorCells == null || line.lnIsolatedTumorCells == '8')
    return true

if (line.lnIsolatedTumorCells == '1')
    return !['000', '600', '700', '999'].contains(line.eodRegionalNodes)

return true]]></expression>
            <message>LN Isolated Tumor Cells (ITC) conflicts with EOD Regional Nodes.</message>
            <description><![CDATA[This edit verifies that LN Isolated Tumor Cells (ITC) SSDI is coded consistently
with EOD-Regional Nodes for Merkel Cell Carcinoma.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or invalid.
   b. Schema ID is not 00460
   c. LN Isolated Tumor Cells (ITC) is blank or 8 (not applicable).
   d. EOD Regional Nodes is blank

2. If LN Isolated Tumor Cells (ITC) = 1 (lymph nodes positive for ITCs)
   EOD Regional Nodes must not = 000 (no nodes involved), 600 or 700 (in-transit
    metastasis without nodal involvement), or 999 (unknown
   if nodes involved)]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-14" ref="68146">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN3048" name="LN Laterality, Vulva, EOD Regional Nodes (SEER)" tag="N3048" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || (line.schemaId != '00500' && line.schemaId != '09500') || line.eodRegionalNodes == null)
    return true

String lnLaterality = line.lnLaterality
if (lnLaterality == null || lnLaterality == '8')
    return true

if (lnLaterality == '1' || lnLaterality == '2' || lnLaterality == '3')
    return !['000','040','050','999'].contains(line.eodRegionalNodes)

return true]]></expression>
            <message>LN Laterality conflicts with EOD Regional Nodes.</message>
            <description><![CDATA[This edit verifies that LN Laterality SSDI is coded consistently with
EOD Regional Nodes for Vulva.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or invalid.
   b. Schema ID is not 00500 or 09500
   c. LN Laterality is blank or 8 (not applicable)
   d. EOD Regional Nodes is blank

2. If LN Laterality = 1-3 (lymph nodes positive)
    EOD Regional Nodes must not = 000 (no nodes involved), 040 or 050 (isolated tumor cells),
    or 999 (unknown if nodes involved)]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-14" ref="68146">Edit created.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-03-11" ref="69406">Add schema 09500 and eod codes.</event>
            </history>
        </rule>
        <rule id="IFN3049" name="LN Positive Axillary Level I-II, Breast, EOD Regional Nodes (SEER)" tag="N3049" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.schemaId != '00480' || line.eodRegionalNodes == null)
    return true

String lnPositiveAxillaryLevel1To2 = line.lnPositiveAxillaryLevel1To2
if (lnPositiveAxillaryLevel1To2 == null || lnPositiveAxillaryLevel1To2 == 'X8')
    return true

if (Functions.matches(lnPositiveAxillaryLevel1To2, /^0[1-9]|[1-9]\d|X[156]$/))
    return !['000','030','050','070','250','400','999'].contains(line.eodRegionalNodes)

return true]]></expression>
            <message>LN Positive Axillary Level I-II conflicts with EOD Regional Nodes.</message>
            <description><![CDATA[This edit verifies that LN Positive Axillary Level I-II SSDI is coded
consistently with EOD-Regional Nodes for Breast.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or invalid.
   b. Schema ID is not 00480
   c. LN Positive Axillary Level I-II is blank or X8 (not applicable).
   d. EOD Regional Nodes is blank

2. If LN Positive Axillary Level I-II = 01-99, X1, X5, or X6 (lymph nodes
     positive)
   EOD Regional Nodes must not = 000, 030, 050, or 070 (no nodes involved)
     250 or 400 (internal mammary nodes without axillary lymph nodes),
     or 999 (unknown if nodes involved)]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-14" ref="68146">Edit created.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-03-03" ref="69211">Add to list of codes that EOD Regional Nodes must not equal.</event>
            </history>
        </rule>
        <rule id="IFN3050" name="LN Size, Head/Neck, EOD Regional Nodes (SEER)" tag="N3050" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.eodRegionalNodes == null)
    return true

if (!Functions.matches(line.schemaId, /^00(0[689]0|07[1-7]|100|1[12][12]|13[0-3]|1[45]0)$/))
    return true

if (line.lnSize == null || line.lnSize == 'XX.8')
    return true

if (line.lnSize != '0.0' && line.lnSize != 'XX.9')
    return line.eodRegionalNodes != '000' && line.eodRegionalNodes != '999'

return true]]></expression>
            <message>LN Size conflicts with EOD Regional Nodes.</message>
            <description><![CDATA[This edit verifies that LN Size SSDI is coded consistently with EOD-Regional
Nodes, Regional Nodes Positive, and Regional Nodes Examined for head and neck
sites.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or invalid.
   b. Schema ID is not in the following list:

        00060
        00071
        00072
        00073
        00074
        00075
        00076
        00077
        00080
        00090
        00100
        00111
        00112
        00121
        00122
        00130
        00131
        00132
        00133
        00140
        00150

   c. LN Size is blank or XX.8 (not applicable).
   d. EOD Regional Nodes is blank

2. If LN Size not = 0.0 (no nodes involved) or XX.9 (unknown if nodes involved)
     (lymph nodes are positive)
   EOD Regional Nodes must not = 000 (no nodes involved) or 999 (unknown
       if nodes involved)]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-14" ref="68146">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN3052" name="Major Vein Involvement, Kidney, EOD Primary Tumor (SEER)" tag="N3052" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.schemaId != '00600' || line.eodPrimaryTumor == null)
    return true

String majorVeinInvolvement = line.majorVeinInvolvement
if (majorVeinInvolvement == null || majorVeinInvolvement == '8')
    return true

if (majorVeinInvolvement == '1' || majorVeinInvolvement == '3' || majorVeinInvolvement == '4')
    return Functions.matches(line.eodPrimaryTumor, /^[2-6]\d\d|700|999$/)
else if (majorVeinInvolvement == '2')
    return Functions.matches(line.eodPrimaryTumor, /^[3-6]\d\d|700|999$/)

return true]]></expression>
            <message>Major Vein Involvement conflicts with EOD Primary Tumor.</message>
            <description><![CDATA[Purpose: This edit verifies that Major Vein Involvement SSDI is coded
consistently with EOD Primary Tumor.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2019, blank (unknown), or invalid
   b. Schema ID is not 00600
   c. Major Vein Involvement is blank or 8 (not applicable)
   d. EOD Primary Tumor is blank

2. If Major Vein Involvement = 1 (Involvement of renal vein only), 3 (Major
     vein invasion NOS), or 4 (Any combination of codes 1-3)
    then EOD Primary Tumor must = 200-700 (involvement of major blood vessels or
     higher) or 999 (unknown extension)

3. If Major Vein Involvement = 2 (Involvement of Inferior vena cava (Involvement
     of IVC)
    then EOD Primary Tumor must = 300-700 (Tumor extends into vena cava below
   diaphragm or higher) or 999 (unknown extension)]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-13" ref="68147">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN3053" name="Invasion Beyond Capsule, Kidney, EOD Primary Tumor (SEER)" tag="N3053" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.schemaId != '00600' || line.eodPrimaryTumor == null)
    return true

String invasionBeyondCapsule = line.invasionBeyondCapsule
if (invasionBeyondCapsule == null || invasionBeyondCapsule == '8')
    return true

if (Functions.matches(invasionBeyondCapsule, /^[13-5]$/))
    return Functions.matches(line.eodPrimaryTumor, /^[2-6]\d\d|700|999$/)

return true]]></expression>
            <message>Invasion Beyond Capsule conflicts with EOD Primary Tumor.</message>
            <description><![CDATA[Purpose: This edit verifies that Invasion Beyond Capsule SSDI is coded
consistently with EOD Primary Tumor.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2019, blank (unknown), or invalid
   b. Schema ID is not 00600
   c. Invasion Beyond Capsule is blank or 8 (not applicable)
   d. EOD Primary Tumor is blank


2. If Invasion Beyond Capsule = 1,3-5 (invasion beyond capsule),
   then EOD Primary Tumor must = 200-700 (involvement of perinephric tissue or higher) or
    999 (unknown extension)]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-13" ref="68147">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN3055" name="Oncotype Dx Recurrence Score-Invasive, Breast, Behavior (NAACCR)" tag="N3055" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId != '00480' || line.oncotypeDxRecurrenceScoreInvasiv == null)
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.behaviorCodeIcdO3 == null)
    return true

if (line.behaviorCodeIcdO3 == '2')
    return line.oncotypeDxRecurrenceScoreInvasiv == 'XX6'

return line.oncotypeDxRecurrenceScoreInvasiv != 'XX6']]></expression>
            <message>Oncotype Dx Recurrence Score-Invasive conflicts with Behavior Code ICD-O-3</message>
            <description><![CDATA[Purpose: This edit verifies that Oncotype Dx Recurrence Score-Invasive
is coded consistently with Behavior Code ICD-O-3. 
 
1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2018, blank (unknown), or invalid
   b. Schema ID is not 00480
   c. Oncotype Dx Recurrence Score-Invasive is blank
   d. Behavior Code ICD-O-3 = 0, 1, or blank


1. The edit verifies for Schema ID 00480 that if Behavior Code ICD-O-3 = "2": 

      Oncotype Dx Recurrence Score-Invasive = "XX6" (not applicable: in situ 
      case)
    
2. The edit verifies for Schema ID 00480 that if Behavior Code ICD-O-3 = "3": 

      Oncotype Dx Recurrence Score-Invasive must not = "XX6" (not applicable: 
      in situ case).]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-16" ref="67869">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-02-29" ref="69391">Remove skip condition for Oncotype XX8.</event>
            </history>
        </rule>
        <rule id="IFN3058" name="Residual Tumor Volume Post Cytoreduction, Gynecologic, Surg Prim Site 03-2022 (NAACCR)" tag="N3058" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.dateOfDiagnosisYear > '2022' || !Functions.matches(line.schemaId, /^0055[123]$/)
            || line.rxSummSurgPrimSite == null || line.typeOfReportingSource == '7')
    return true

if (line.residualTumVolPostCytoreduction == null || line.residualTumVolPostCytoreduction == '98')
    return true

boolean schemaConditions = (Functions.matches(line.rxSummSurgPrimSite, /^[1-4]\d|5[0-7]$/) && line.schemaId == '00551') || 
                           (Functions.matches(line.rxSummSurgPrimSite, /^[1-3]\d|4[01]$/) && (line.schemaId == '00552' || line.schemaId == '00553'))
if (line.rxSummSurgPrimSite == '00' || schemaConditions)
    return line.residualTumVolPostCytoreduction == '97'

if (line.rxSummSurgPrimSite == '99')
    return line.residualTumVolPostCytoreduction == '99'

return true]]></expression>
            <message>Residual Tumor Volume Post Cytoreduction conflicts with RX Summ--Surg Prim Site</message>
            <description><![CDATA[This edit verifies that the Residual Tumor Volume Post Cytoreduction SSDI 
is coded consistently with RX Summ--Surg Prim Site 03-2022.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019 or after 2022, blank (unknown), or invalid.
   b. Schema ID is not 00551, 00552, or 00553
   c. Residual Tumor Volume Post Cytoreduction is blank or 98 (not applicable).
   d. RX Summ-Surg Prim Site 03-2022 is blank
   e. Type of Reporting Source = 7 (Death Certificate Only)

2. If RX Summ--Surg Prim Site 03-2022 = 00 (no surgery of primary site) or 10-57
for 00551 (ovary), 10-41 for 00552 (primary peritoneum) and 00553 
(fallopian tube)(less than cytoreductive surgery),
   then the data item must be coded 97 (no cytoreductive surgery).

3. If RX Summ-Surg Prim Site 03-2022 = 99 (unknown if surgery performed)
then Residual Tumor Volume Post Cytoreduction must be coded 99 (residual tumor status after cytoreductive surgery not assessed or unknown if assessed)]]></description>
            <history>
                <event version="SE21-021-01" user="kirbyk" date="2021-01-11" ref="68486">Edit created.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-01-20" ref="69091">Name changed and added skip conditions.</event>
                <event version="SE24-024-01" user="cooki" date="2024-02-05" ref="69367">Added condition #3.</event>
            </history>
        </rule>
        <rule id="IFN3060" name="Separate Tumor Nodules, Lung, Behavior (NAACCR)" tag="N3060" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId != '00360')
    return true

if (line.separateTumorNodules == null || line.separateTumorNodules == '8' || line.behaviorCodeIcdO3 == null || Functions.matches(line.behaviorCodeIcdO3, /^([013])$/))
    return true

if (line.dateOfDiagnosisYear < '2023')
    return line.separateTumorNodules == '0' || line.separateTumorNodules == '9'

return line.separateTumorNodules == '0']]></expression>
            <message>Behavior ICD-O-3 conflicts with Separate Tumor Nodules.</message>
            <description><![CDATA[This edit verifies that Separate Tumor Nodules SSDI for lung is coded
consistently with Behavior Code ICD-O-3.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2018, blank (unknown), or invalid.
   b. Schema ID is not 00360
   c. Separate Tumor Nodules is blank or 8 (not applicable)
   d. Behavior Code ICD-O-3 is 0, 1, 3, or blank

2. For Diagnosis years 2018-2022
   Separate Tumor Nodules must = "0" (multiple foci of adenocarcinoma in situ), or
   "9" (Primary tumor is in situ) when Behavior Code ICD-O-3 is 2.

3. For Diagnosis years 2023+
   Separate Tumor Nodules must be 0 (non-invasive neoplasm behavior /2) when Behavior Code ICD-O-3 is 2.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-29" ref="67792">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-03" ref="68462">Changed edit name.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-21" ref="69170">Only allow code 9 for DX year &lt; 2023.</event>
            </history>
        </rule>
        <rule id="IFN3062" name="Visceral and Parietal Pleural Invasion, Lung, EOD Primary Tumor (SEER)" tag="N3062" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.schemaId != '00360' || line.eodPrimaryTumor == null)
    return true

String visceralAndParietalPleuralInvasion = line.visceralParietalPleuralInvasion
if (visceralAndParietalPleuralInvasion == null || visceralAndParietalPleuralInvasion == '8')
    return true

if (Functions.matches(visceralAndParietalPleuralInvasion, /^[46]$/))
    return Functions.matches(line.eodPrimaryTumor, /^4[5-9]\d|[56]\d\d|700|999$/)
else if (visceralAndParietalPleuralInvasion == '5')
    return Functions.matches(line.eodPrimaryTumor, /^[56]\d\d|700|999$/)

return true]]></expression>
            <message>Visceral and Parietal Pleural Invasion conflicts with EOD Primary Tumor.</message>
            <description><![CDATA[Purpose: This edit verifies that Visceral and Parietal Pleural Invasion SSDI is
coded consistently with EOD Primary Tumor for Lung.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2019, blank (unknown), or invalid
   b. Schema ID is not 00360
   c. Visceral and Parietal Pleural Invasion is blank or 8 (not applicable)
   d. EOD Primary Tumor is blank


2. If Visceral and Parietal Pleural Invasion = 4 (invasion of visceral pleura),
or 6 (invasion of pleura NOS)
then EOD Primary Tumor must = 450-700 (visceral pleura or higher), or 999
(unknown extension)

3. If Visceral and Parietal Pleural Invasion = 5 (invasion of parietal pleura)
then EOD Primary Tumor must = 500-700 (parietal pleura or higher) or 999
(unknown extension)]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-13" ref="68147">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-01" user="beverung" date="2021-01-12" ref="68477">Fixed typo and updated codes.</event>
            </history>
        </rule>
        <rule id="IFN3063" name="EOD Prostate Pathologic Extension, Schema ID, Required (SEER)" tag="N3063" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource  == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.registryId == '0000001563' && line.dateOfDiagnosisYear == '2018')
    return true

return line.schemaId != '00580' || line.prostatePathologicalExtension != null]]></expression>
            <message>Prostate Pathological Extension must not be blank for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Registry ID = 0000001563 (Massachusetts) and Year of Diagnosis = 2018
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021
    f. Type of Reporting Source = 7

2. This edit verifies that Prostate Pathological Extension is coded (not blank) 
    for the Schema IDs for which it is required by a standard setter. 

    Required for Schema ID:

    00580: Prostate]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-13" ref="67882">Edit created.</event>
                <event version="SE18-020-05" user="beverung" date="2020-09-09" ref="68520">Added skip condition for MA for DX Year 2018.</event>
                <event version="SE21-021-03" user="beverung" date="2021-02-26" ref="68576">Update edit name.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN3065" name="Number of Positive/Examined Para-Aortic Nodes, Corpus (NAACCR)" tag="N3065" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019')
    return true

if (!['00530', '00541', '00542', '00528'].contains(line.schemaId))
    return true

String positiveNodes = line.numberOfPositiveParaAorticNodes
String examinedNodes = line.numberOfExaminedParaAorticNodes
if (positiveNodes == null || positiveNodes == 'X8' || examinedNodes == null || examinedNodes == 'X8')
    return true

if (examinedNodes == 'X6' && positiveNodes != 'X6' && positiveNodes != '00' && positiveNodes != 'X9')
    return false
    
if (examinedNodes == '00' && positiveNodes != 'X9')
    return false

if (Functions.matches(examinedNodes, /^0[1-9]|[1-9]\d$/) && positiveNodes != 'X2' && positiveNodes != 'X6' && positiveNodes != 'X9' && positiveNodes > examinedNodes)
    return false

if ((examinedNodes == 'X2' || examinedNodes == 'X1') && !Functions.matches(positiveNodes, /^\d\d|X[129]$/))
    return false
    
if (positiveNodes == 'X1' && examinedNodes != 'X1' && examinedNodes != 'X2')
    return false

return true]]></expression>
            <message>Number of Positive Para-Aortic Nodes conflicts with Number of Examined Para-Aortic Nodes.</message>
            <description><![CDATA[This edit verifies that the Number of Positive Para-Aortic Nodes and Number of
Examined Para-Aortic Nodes SSDIs are coded consistently with each other for
Corpus Uteri.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or invalid.
   b. Schema ID is not 00530, 00541, 00542, or 00528
   c. Number of Examined Para-Aortic Nodes is blank or not applicable
   d. Number of Positive Para-Aortic Nodes is blank or not applicable.

2. If Number of Examined Para-Aortic Nodes = X6 (aspiration or core biopsy of
   nodes only),
   then Number of Positive Para-Aortic Nodes must = X6 (positive aspiration or
   core biopsy), 00 (all examined nodes negative), or X9 (cannot be determined
   if positive nodes).

3. If Number of Examined Para-Aortic Nodes = 00 (no nodes examined),
   then Number of Positive Para-Aortic Nodes must = X9 (nodes not assessed).

4. If Number of Examined Pelvic Nodes = 01 to 99,
    Number of Positive Pelvic Nodes must = X2 (positive nodes number unknown),
    X6 (positive aspiration or core biopsy), X9 (cannot be determined if positive nodes),
    or be less than or equal to number of examined nodes.
    (Number of Positive Pelvic Nodes must not = X1 [100 or more nodes positive] ).

5. If Number of Examined Para-Aortic Nodes = X2 (nodes examined, number unknown)
   or X1 (100 or more nodes exmined)
   then Number of Positive Para-Aortic Nodes must = 00, 01-99, X2 (positive nodes
   number unknown), X1 (100 or more nodes positive), or X9 (cannot be determined
   if positive nodes).

6. If Number of Positive Para-Aortic Nodes = X1 (100 or more nodes positive),
   Number of Examined Para-Aortic Nodes must = X1 (100 or more nodes examined) or
   X2 (nodes examined, number unknown).]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
                <event version="SE24-024-06" user="cooki" date="2024-06-28" ref="69481">Updated 4 to v24 logic.</event>
            </history>
        </rule>
        <rule id="IFN3066" name="Number of Positive/Examined Pelvic Nodes, Corpus (NAACCR)" tag="N3066" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019')
    return true

if (!['00530', '00541', '00542', '00528'].contains(line.schemaId))
    return true

String positiveNodes = line.numberOfPositivePelvicNodes
String examinedNodes = line.numberOfExaminedPelvicNodes
if (positiveNodes == null || positiveNodes == 'X8' || examinedNodes == null || examinedNodes == 'X8')
    return true

if (examinedNodes == 'X6' && positiveNodes != 'X6' && positiveNodes != '00' && positiveNodes != 'X9')
    return false

if (examinedNodes == '00' && positiveNodes != 'X9')
    return false

if (Functions.matches(examinedNodes, /^0[1-9]|[1-9]\d$/) && positiveNodes != 'X2' && positiveNodes != 'X9' && positiveNodes != 'X6' && positiveNodes > examinedNodes)
    return false

if ((examinedNodes == 'X2' || examinedNodes == 'X1') && !Functions.matches(positiveNodes, /^\d\d|X[129]$/))
    return false

if (positiveNodes == 'X1' && examinedNodes != 'X1' && examinedNodes != 'X2')
    return false

return true]]></expression>
            <message>Number of Positive Pelvic Node conflicts with Number of Examined Pelvic Nodes</message>
            <description><![CDATA[This edit verifies that the Number of Positive Pelvic Nodes and Number of
Examined Pelvic Nodes SSDIs are coded consistently with each other.


1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or invalid.
   b. Schema ID is not 00530, 00541, 00542, or 00528
   c. Number of Positive Pelvic Nodes is blank or not applicable.
   d. Number of Examined Pelvic Nodes is blank or not applicable.

2. If Number of Examined Pelvic Nodes = X6 (aspiration or core biopsy of
   nodes only),
   then Number of Positive Pelvic Nodes must = X6 (positive aspiration or
   core biopsy), 00 (all examined nodes negative), or X9 (cannot be determined
   if positive nodes).

3. If Number of Examined Pelvic Nodes = 00 (no nodes examined),
   then Number of Positive Pelvic Nodes must = X9 (nodes not assessed).

4. If Number of Examined Pelvic Nodes = 01 to 99,
    Number of Positive Pelvic Nodes must = X2 (positive nodes number unknown),
    X6 (positive aspiration or core biopsy), X9 (cannot bedetermined if positive nodes),
    or be less than or equal to number of examined nodes.
    (Number of Positive Pelvic Nodes must not = X1 [100 or more nodes positive] ).

5. If Number of Examined Pelvic Nodes = X2 (nodes examined, number unknown)
   or X1 (100 or more nodes exmined)
   then Number of Positive Pelvic Nodes must = 00, 01-99, X2 (positive nodes
   number unknown), X1 (100 or more nodes positive), or X9 (cannot be determined
   if positive nodes).

6. If Number of Positive Pelvic Nodes = X1 (100 or more nodes positive),
   Number of Examined Pelvic Nodes must = X1 (100 or more nodes examined) or
   X2 (nodes examined, number unknown).]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
                <event version="SE24-024-06" user="cooki" date="2024-06-25" ref="69482">Updated condition 4 to v24 logic.</event>
            </history>
        </rule>
        <rule id="IFN3067" name="Profound Immune Suppression, Sequence Number--Central (NAACCR)" tag="N3067" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId != '00460')
    return true

if (line.profoundImmuneSuppression == null || line.profoundImmuneSuppression == '8' || line.sequenceNumberCentral == null)
    return true
     
if (line.profoundImmuneSuppression == '3' || line.profoundImmuneSuppression == '4')
    return line.sequenceNumberCentral != '00'
    
return true]]></expression>
            <message>Profound Immune Suppression value not valid for Sequence Number--Central value</message>
            <description><![CDATA[This edit verifies that the Profound Immune Suppression SSDI is coded 
consistently with Sequence Number--Central.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is not 00460
    c. Profound Immune Suppression is blank or 8 (not applicable).
    d. Sequence Number--Central is blank.

2. The edit verifies that if Profound Immune Suppression = 3 (Chronic Lymphocytic 
   Leukemia) or 4 (Non-Hodgkin Lymphoma), 
   Sequence Number--Central is not = 00 (Single Primary).]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-12" ref="67879">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN3068" name="_SYS AJCC ID, Site, Histo, Sex (NAACCR)" tag="N3068" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.sex == null || line.primarySite == null || line.histologicTypeIcdO3 == null)
    return true

String ajccId = line.ajccId
if (ajccId == '55' && Functions.matches(line.primarySite, /^C48[1-8]$/))
    ajccId = '55.B'

if (Functions.matches(line.primarySite, /^C48[1-8]$/)) {
    List histList = (List)Context.IFN3068_Histologies
    if ((['8806', '8930', '8931'].contains(line.histologicTypeIcdO3) || histList.contains(line.histologicTypeIcdO3)) && line.behaviorCodeIcdO3 == '2')
        return ajccId == 'XX'
    if (['8806', '8930', '8931'].contains(line.histologicTypeIcdO3) && ajccId != '45' && Functions.matches(line.sex, /^[13459]$/))
        return false
    if (histList.contains(line.histologicTypeIcdO3) && ajccId != '55.B' && Functions.matches(line.sex, /^[26]$/))
        return false
}

return true]]></expression>
            <message>Primary Site, Histologic Type ICD-O-3, and Sex are incompatible with AJCC ID.</message>
            <description><![CDATA[_SYS in edit name indicates an edit on system-generated data items.  The edit is
intended for use by software vendors in testing the accuracy of algorithms used
to assign AJCC ID, and for use by central registries in verifying the quality of
submitted data.

1. The edit is skipped for the following conditions:
   a. Date of diagnosis before 2018, blank, or invalid.
   b. Sex is blank
   c. Primary Site is blank
   d. Histologic Type ICD-O-3 is blank

2. This edit verifies that AJCC ID has been assigned correctly where Primary
   Site and Histologic Type ICD-O-3 codes are not sufficient to identify the
   appropriate AJCC staging scheme. Sex is required to discriminate between
   histologies assigned to Primary Peritoneal Carcinoma (female, staged), and
   Sarcomas of Unusual Sites and Histologies (male, not staged).

   The edit checks that AJCC ID, Primary Site code,Histologic Type ICD-O-3
   code, and Sex code occur together within the edited record, as shown in the
   following chart. If Behavior = 2 for any combination of sites/histologies
   included in this edit, AJCC ID must be coded as XX.

   If there is an edit failure, the problem may be due to a
   software error. If coding is reviewed and correct, the software vendor should
   be consulted for assistance in resolving the issue.

   Note: The AJCC ID for Primary Peritoneal Carcinoma is 55.  55.B is used for
   edit purposes, to distinguish Primary Peritoneal Carcinoma from Ovarian and
   Fallopian Tube Carcinoma, which are also assigned AJCC ID 55.

    AJCC ID                                      SITE    HISTO        Sex

    45    Sarcoma of Unusual Sites/Histologies   C481-   8806         1,3,4,5,9
                                                 C482,   8930
                                                 C488    8931

    55.B  Primary Peritoneal Carcinoma           C481-   8000, 8010   2,6
                                                 C482,   8020, 8041
                                                 C488    8044, 8070
                                                         8120, 8140
                                                         8240, 8243
                                                         8310, 8313
                                                         8323, 8380
                                                         8410,
                                                         8441-8442
                                                         8452,
                                                         8460-8461
                                                         8470, 8472
                                                         8474, 8480
                                                         8590, 8594
                                                         8620,
                                                         8622-8623
                                                         8631
                                                         8633-8634
                                                         8640, 8670
                                                         8806, 8822
                                                         8930-8931
                                                         8933, 8950
                                                         8960, 8980
                                                         9000, 9050
                                                         9052, 9060
                                                         9070-9071
                                                         9073, 9080
                                                         9085,
                                                         9090-9091
                                                         9100, 9110

AJCC ID     SEX CODES AND DEFINITIONS

45          1: Male
            3: Other (Hermaphrodite)
            4: Transsexual, NOS
            5: Transsexual, natal male
            9: Not stated, unknown

55.B        2: Female
            6: Transsexual, natal female]]></description>
            <history>
                <event version="SE18-018-10" user="kirbyk" date="2018-12-05" ref="68065">Edit created.</event>
                <event version="SE18-018-11" user="kirbyk" date="2019-01-03" ref="68081">Edit fixed to not set new AJCC ID value.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-09" ref="68137">Added more Histology codes to check for AJCC ID 55.B.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-22" ref="68370">Updated skip condition.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68982">Added condition for Behavior Code ICD03 = 2.</event>
            </history>
        </rule>
        <rule id="IFN3069" name="_SYS Schema ID, Site, Histo, Sex (NAACCR)" tag="N3069" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.sex == null || line.primarySite == null || line.histologicTypeIcdO3 == null)
    return true

String hist = line.histologicTypeIcdO3
String sex = line.sex
String schemaId = line.schemaId

if (!Functions.matches(line.primarySite, /^C48[1-8]$/) || hist == null)
    return true

int histInt = Functions.asInt(hist)
if (histInt == 8806 || histInt == 8930 || histInt == 8931) {
    if (Functions.matches(sex, /^[13459]$/) && schemaId != '00450')
        return false
    if (Functions.matches(sex, /^[26]$/) && schemaId != '00552')
        return false
}
if ((8000 <= histInt && 8700 >= histInt) || (8720 <= histInt && histInt <= 8790) || Functions.matches(hist, /$8822|89(33|[568]0)|90([056789]0|52|71|73|85|91)|91[01]0|970[01]^/)) {
    if (Functions.matches(sex, /^[13459]$/) && schemaId != '00440')
        return false
    if (Functions.matches(sex, /^[26]$/) && schemaId != '00552')
        return false
}

return true]]></expression>
            <message>Primary Site, Histologic Type ICD-O-3, Sex are incompatible with Schema ID.</message>
            <description><![CDATA[_SYS in edit name indicates an edit on system-generated data items.  The edit is
intended for use by software vendors in testing the accuracy of algorithms used
to assign Schema ID, and for use by central registries in verifying the quality
of submitted data.

1. The edit is skipped for the following conditions:
   a. Date of diagnosis before 2018, invalid or blank
   b. Sex is blank.
   c. Primary Site is blank
   d. Histologic Type ICD-O-3 is blank

2. This edit verifies that Schema ID has been assigned correctly where Primary
   Site and Histologic Type ICD-O-3 codes are not sufficient to identify the
   appropriate EOD staging scheme. Sex is required to discriminate between
   histologies assigned to Primary Peritoneal Carcinoma (female),
   Retroperitoneum (male), and Soft Tissue Other.

   The edit checks that Schema ID, Primary Site code, Histologic Type ICD-O-3
   code, and Sex code occur together within the edited record, as shown in the
   following chart.  If there is an edit failure, the problem may be due to a
   software error. If coding is reviewed and correct, the software vendor should
   be consulted for assistance in resolving the issue.


    SCHEMA ID                                 SITE    HISTO         Sex

    00440  Retroperitoneum                    C481-   8000-8700     1,3,4,5,9
                                              C482,   8720-8790
                                              C488    8822, 8933
                                                      8950, 8960
                                                      8980, 9000
                                                      9050, 9052
                                                      9060
                                                      9070-9071
                                                      9073, 9080
                                                      9085
                                                      9090-9091
                                                      9100, 9110
                                                      9700-9701

    00450  Soft Tissue Other                  C481-   8806          1,3,4,5,9
                                              C482,   8930
                                              C488    8931

    00552  Primary Peritoneal Carcinoma       C481-   8000-8700     2,6
                                              C482,   8720-8790
                                              C488    8806, 8822
                                                      8930-8931
                                                      8933, 8950
                                                      8960, 8980
                                                      9000, 9050
                                                      9052, 9060
                                                      9070-9071
                                                      9073, 9080
                                                      9085
                                                      9090-9091
                                                      9100, 9110
                                                      9700-9701


SCHEMA ID   SEX CODES AND DEFINITIONS

00450       1: Male
            3: Other (Hermaphrodite)
            4: Transsexual, NOS
            5: Transsexual, natal male
            9: Not stated, unknown

00552       2: Female
            6: Transsexual, natal female]]></description>
            <history>
                <event version="SE18-018-10" user="kirbyk" date="2018-12-04" ref="68067">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-22" ref="68372">Updated skip conditions.</event>
            </history>
        </rule>
        <rule id="IFN3082" name="Grade, Lymphoma Ocular Adnexa, Histologic Type ICD-O-3 (NAACCR)" tag="N3082" java-path="lines.line" category="inter-field" depends="Histologic_Type_ICD-O-3,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId != '00710' || line.histologicTypeIcdO3 == null)
    return true

if (line.gradeClinical == null && line.gradePathological == null)
    return true

boolean gradeClinicalBlankOr9 = line.gradeClinical == null || line.gradeClinical == '9'
boolean gradePathologicalBlankOr9 = line.gradePathological == null || line.gradePathological == '9'

return Functions.matches(line.histologicTypeIcdO3, /^969[0158]$/) || (gradeClinicalBlankOr9 && gradePathologicalBlankOr9)]]></expression>
            <message>Grade Clinical or Grade Pathological value not valid for this Histologic Type</message>
            <description><![CDATA[This edit verifies that Grade Clinical and Grade Pathological are coded consistently with Histologic Type ICD-O-3.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2018, blank (unknown), or invalid.
    b. Schema ID is not 00710.
    c. Grade Clinical and Grade Pathological are both blank.
    d. Histologic Type ICD-O-3 is blank

2. The edit verifies that if Histologic Type ICD-O-3 does not = 9690, 9691, 9695,
    or 9698 (follicular histologies),
    Grade Clinical if not empty and Grade Pathological if not empty must = "9"
    (not a follicular histology).]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-09" ref="67926">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-28" ref="68401">Remove Grade Post Therapy and change step 2 logic.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IFN3085" name="LN Size, Schema ID, Required (NAACCR)" tag="N3085" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return !Functions.matches(line.schemaId, /^00(0([689]0|7[1-7])|1([03-5]0|[1-3][12]|33))$/) || (line.lnSize != null && line.lnSize != 'XX.8')]]></expression>
            <message>LN Size must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that LN Size is not "XX.8" (not applicable) and not blank
   for the Schema IDs for which it is required by a standard setter.

  This data item is required for EOD Derived Stage for Schema ID 00100. 
    
   Required for Schema ID:

    00060:  Cervical Lymph Nodes and Unknown Primary
    00071:  Lip
    00072:  Tongue Anterior
    00073:  Gum
    00074:  Floor of Mouth
    00075:  Palate Hard
    00076:  Buccal Mucosa
    00077:  Mouth Other
    00080:  Major Salivary Glands
    00090:  Nasopharynx
    00100:  Oropharynx HPV-Mediated (p16+)
    00111:  Oropharynx (p16-)
    00112:  Hypopharynx
    00121:  Maxillary Sinus
    00122:  Nasal Cavity and Ethmoid Sinus
    00130:  Larynx Other
    00131:  Larynx Supraglottic
    00132:  Larynx Glottic
    00133:  Larynx Subglottic
    00140:  Melanoma Head and Neck
    00150:  Cutaneous Carcinoma of the Head and Neck.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-18" ref="67831">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-14" ref="67992">Removed extra space from name.</event>
                <event version="SE18-018-05" user="kirbyk" date="2018-08-17" ref="68020">Changed schema name for 00150.</event>
                <event version="SE18-018-10" user="kirbyk" date="2018-12-13" ref="68076">Added DCO skip condition.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3087" name="Grade, Ovary/PPC/FT, Behavior ICD-O-3 (NAACCR)" tag="N3087" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || !Functions.matches(line.schemaId, /^0055[123]$/) || line.behaviorCodeIcdO3 == null)
    return true

if (line.gradeClinical == null && line.gradePathological == null)
    return true 

return !['2', '3'].contains(line.behaviorCodeIcdO3) || (line.gradeClinical != 'B' && line.gradePathological != 'B')]]></expression>
            <message>Grade Clinical or Grade Pathological value not valid for this Behavior Code ICD-O-3</message>
            <description><![CDATA[This edit verifies that Grade Clinical and Grade Pathological are coded consistently with Behavior ICD-O-3
for Ovary, Primary Peritoneal Carcinoma, and Fallopian Tube.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2018, blank (unknown), or invalid.
    b. Schema ID is not 00551, 00552, or 00553.
    c. Grade Clinical and Grade Pathological are both blank.
    d. Behavior ICD-O-3 is blank

2. The edit verifies that if Behavior ICD-O-3 = 2 (in situ) or 3 (invasive),
    both Grade Clinical and Grade Pathological must not = "B" (borderline tumor).]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-09" ref="67926">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-27" ref="68299">Added 9 as valid value for grade.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-27" ref="68402">Remove Grade Post Therapy and update logic for Behavior ICD-O-3 and Grade Clinical/Grade Pathological.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IFN3090" name="Extranodal Extension Head and Neck Clin/Path, EOD Regional Nodes (SEER)" tag="N3090" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.eodRegionalNodes == null)
    return true

if (!Functions.matches(line.schemaId, /^00(0[689]0|07[1-7]|100|1[12][12]|13[0-3]|140)$/))
    return true

String clin = line.extranodalExtensionHeadNeckClin
String path = line.extranodalExtensionHeadNeckPath
if (clin == null || clin == '8' || path == null || path == 'X.8')
    return true

if (clin == '7' && path == 'X.7')
    return line.eodRegionalNodes == '000'
if ((clin == '0' || clin == '7') && path == '0.0' && !['00090','00100','00140'].contains(line.schemaId))
    return ['100', '200', '250', '300', '400', '800'].contains(line.eodRegionalNodes)
if (['1', '2', '4'].contains(clin) && path == 'X.7' && !['00090','00100','00140'].contains(line.schemaId))
    return line.eodRegionalNodes == '450'

return true]]></expression>
            <message>Extranodal Extension Head and Neck Clinical and Extranodal Extension Head and Neck Pathological conflict with EOD Regional Nodes.</message>
            <description><![CDATA[This edit verifies that the extranodal extension SSDIs are coded consistently
with EOD Regional Nodes for head and neck sites.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2019, blank (unknown), or invalid.
    b. Schema ID is not 00060, 00071, 00072, 00073, 00074, 00075, 00076, 00077,
        00080, 00090, 00100, 00111, 00112, 00121, 00122, 00130, 00131, 00132,
        00133, 00140
    c. Either Extranodal Extension Head and Neck Clinical or Extranodal Extension
       Head and Pathological is blank or not applicable
    d. EOD Regional Nodes is blank.

2. If Extranodal Extension Head and Neck Clinical = 7 (cN0) and Extranodal
     Extension Head and Neck Pathological = X.7 (pN0),
      EOD Regional Nodes must = 000.

3.  If Extranodal Extension Head and Neck Clinical = 0 (regional nodes involved,
      ENE not present) or 7 (no nodes involved), and Extranodal Extension Head
      and Neck Pathological = 0.0 (regional nodes involved, ENE not present),
   EOD Regional Nodes must = 100, 200, 250, 300, 400 (clinical or
      pathological nodal involvement, ENE not present or unknown), or 800
      (regional nodal involvement NOS) (excluding
      Schema IDs 00090 Nasopharynx, 00100 Oropharynx p16+, 00140 Melanoma Head
      and Neck).

4. If Extranodal Extension Head and Neck Clinical = 1, 2, or 4 (clinical nodal
      involvement, ENE present), and Extranodal Extension Head and Neck
      Pathological = X.7 (no nodal involvement),
      EOD Regional Nodes must = 450 (clinical nodal involvement, overt ENE)
      (excluding Schema IDs 00090 Nasopharynx, 00100 Oropharynx p16+, 00140 Melanoma
      Head and Neck).]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-14" ref="68146">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-27" ref="68317">Removed 00130 from exclusion list in step 4.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-24" ref="68387">Add code 4.</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-27" ref="68947">Update edit name and remove CoC Accredited Flag.</event>
            </history>
        </rule>
        <rule id="IFN3092" name="High Risk Histologic Features, Skin, Grade (NAACCR)" tag="N3092" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.schemaId != '00150' || line.highRiskHistologicFeatures == null || line.highRiskHistologicFeatures == '8')
    return true

if (line.gradeClinical == null && line.gradePathological == null)
    return true

if (line.highRiskHistologicFeatures == '2')
    return line.gradeClinical == '3' || line.gradePathological == '3'
else if (line.highRiskHistologicFeatures == '4')
    return line.gradeClinical == '4' || line.gradePathological == '4'
    
return true]]></expression>
            <message>High Risk Histologic Features conflicts with Grade Pathological and Grade Clinical.</message>
            <description><![CDATA[This edit verifies that High Risk Histologic Features SSDI is coded consistently
with the grade fields for Cutaneous Carcinoma of Head and Neck.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2019, blank (unknown), or invalid
   b. Schema ID is not 00150
   c. High Risk Histologic Features is blank or coded 8 (not applicable)
   d. Grade Clinical and Grade Pathological are both blank.

2. If High Risk Histologic Features is coded 2 (poor differentiation), Grade
   Clinical or Grade Pathological must be coded 3. The SSDI must be consistent
   with one of these grade fields to pass the edit.

3. If High Risk Histologic Features is coded 4 (undifferentiated), Grade
   Clinical or Grade Pathological must be coded 4. The SSDI must be consistent
   with one of these grade fields to pass the edit.]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-03" ref="68157">Edit created.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-27" ref="68410">Remove Grade Post Therapy from description and logic.</event>
            </history>
        </rule>
        <rule id="IFN3094" name="Grade, Date of Diagnosis (COC)" tag="N3094" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.grade != null
else
    return line.grade == null]]></expression>
            <message>Grade and Date DX conflict</message>
            <description><![CDATA[This edit is skipped if Date of Diagnosis is invalid.

Grade must not be blank before 2018.
Grade must be blank after 2018.]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-11" ref="67930">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN3095" name="PhI, II, III Radiation Treatment Modality, External Beam Planning Tech (COC)" tag="N3095" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018')
    return true
if (line.phase1RadiationTreatmentModality == null && line.phase2RadiationTreatmentModality == null && line.phase3RadiationTreatmentModality == null)
    return true
if (line.phase1RadiationExternalBeamTech == null && line.phase2RadiationExternalBeamTech == null && line.phase3RadiationExternalBeamTech == null)
    return true

if (line.phase1RadiationTreatmentModality == '02' && !Functions.matches(line.phase1RadiationExternalBeamTech, /^0[1-9]|10$/))
    return false
else if (line.phase1RadiationTreatmentModality == '03' && !Functions.matches(line.phase1RadiationExternalBeamTech, /^0[14-6]$/))
    return false
else if (line.phase1RadiationTreatmentModality == '04' && !Functions.matches(line.phase1RadiationExternalBeamTech, /^0[1345]$/))
    return false
else if (Functions.matches(line.phase1RadiationTreatmentModality, /^0[156]$/) && !Functions.matches(line.phase1RadiationExternalBeamTech, /^0[1-9]|10|98$/))
    return false
else if (Functions.matches(line.phase1RadiationTreatmentModality, /^0[7-9]||1[013-6]$/) && line.phase1RadiationExternalBeamTech != '88')
    return false
else if (line.phase1RadiationTreatmentModality == '12' && line.phase1RadiationExternalBeamTech == '88')
    return false

if (line.phase2RadiationTreatmentModality == '02' && !Functions.matches(line.phase2RadiationExternalBeamTech, /^0[1-9]|10$/))
    return false
else if (line.phase2RadiationTreatmentModality == '03' && !Functions.matches(line.phase2RadiationExternalBeamTech, /^0[14-6]$/))
    return false
else if (line.phase2RadiationTreatmentModality == '04' && !Functions.matches(line.phase2RadiationExternalBeamTech, /^0[1345]$/))
    return false
else if (Functions.matches(line.phase2RadiationTreatmentModality, /^0[156]$/) && !Functions.matches(line.phase2RadiationExternalBeamTech, /^0[1-9]|10|98$/))
    return false
else if (Functions.matches(line.phase2RadiationTreatmentModality, /^0[7-9]||1[013-6]$/) && line.phase2RadiationExternalBeamTech != '88')
    return false
else if (line.phase2RadiationTreatmentModality == '12' && line.phase2RadiationExternalBeamTech == '88')
    return false

if (line.phase3RadiationTreatmentModality == '02' && !Functions.matches(line.phase3RadiationExternalBeamTech, /^0[1-9]|10$/))
    return false
else if (line.phase3RadiationTreatmentModality == '03' && !Functions.matches(line.phase3RadiationExternalBeamTech, /^0[14-6]$/))
    return false
else if (line.phase3RadiationTreatmentModality == '04' && !Functions.matches(line.phase3RadiationExternalBeamTech, /^0[1345]$/))
    return false
else if (Functions.matches(line.phase3RadiationTreatmentModality, /^0[156]$/) && !Functions.matches(line.phase3RadiationExternalBeamTech, /^0[1-9]|10|98$/))
    return false
else if (Functions.matches(line.phase3RadiationTreatmentModality, /^0[7-9]||1[013-6]$/) && line.phase3RadiationExternalBeamTech != '88')
    return false
else if (line.phase3RadiationTreatmentModality == '12' && line.phase3RadiationExternalBeamTech == '88')
    return false

return true]]></expression>
            <message>Radiation Modality and External Beam Planning Tech conflict</message>
            <description><![CDATA[This edit check consistency of coding for Radiation Treatment Modality and
External Beam Planning Tech for all 3 phases of radiation.

1. The edit is skipped for the following conditions:
   a. Phase I, II, and III Radiation Treatment Modality data items are all blank.
   b. Phase I, II, and III Radiation External Beam Planning Tech data items are all blank.
   c. Diagnosis date pre-2018, blank (unknown), or invalid.

2. For each phase of radiation, if Radiation Treatment Modality = 01-06 (external beam,
   Radiation External Beam Planning Tech must = 01-10, 98 (specified
   external beam planning techniques or other, NOS)

3. For each phase of radiation, if Radiation Treatment Modality = 07-11 (brachytherapy) or
   13-16 (radioisotopes), Radiation External Beam Planning Tech must = 88 (not applicable)

4. For each phase of radiation, if Radiation Treatment Modality = 02 (photons)
Radiation External Beam Planning Tech must = 01-10

5. For each phase of radiation, if Radiation Treatment Modality = 03 (protons)
Radiation External Beam Planning Tech must = 01, 04-06

6. For each phase of radiation, if Radiation Treatment Modality = 04 (electrons)
Radiation External Beam Planning Tech must = 01, 03-05
    Radiation External Beam Planning Tech codes:
    01: External beam, NOS
    02: Low energy x-ray/photon therapy
    03: 2-D therapy
    04: Conformal or 3-D conformal therapy
    05: Intensity modulated therapy
    06: Stereotactic radiotherapy or radiosurgery, NOS

7. For each phase of radiation, if Radiation Treatment Modality = 12 (electronic brachytherapy) Radiation External Beam Planning Tech must not = 88]]></description>
            <history>
                <event version="SE18-018-10" user="kirbyk" date="2018-11-30" ref="68063">Edit created.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-27" ref="68131">Edit no longer checks Radiation Treatment Modality = 07-12.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="smithm" date="2021-02-25" ref="68572">Add more restrictive logic.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-26" ref="68968">Added 05 as valid Radiation Beam Planning Tech code, added code definition to description</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-15" ref="69157">Changed name. Updated not applicable Radiation External Beam Tech to include brachytherapy.</event>
                <event version="SE23-023-02" user="kirbyk" date="2023-04-11" ref="69214">Re-wrote edit to correctly check Phase 2 and Phase 3; added logic for Radiation Treatment Modality = 12.</event>
            </history>
        </rule>
        <rule id="IFN3902" name="LDH Level, Melanoma, Schema ID, Required (NAACCR)" tag="N3902" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00470' || line.ldhPretreatmentLevel != null]]></expression>
            <message>LDH Level must not be blank for cases diagnosed 2018+ for Melanoma</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

1. This edit verifies that LDH Level is coded (not blank) for the
   Schema IDs for which it is required by a standard setter. 

   This data item is required for EOD Derived Stage Group.

    Required for Schema ID:

    00470: Melanoma of Skin]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-25" ref="67908">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-15" ref="68010">Added DCO skip condition.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-31" ref="68417">Changed edit name and changed variable name from LDH Pretreatment Level to LDH Level.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3903" name="AFP Post-Orchiectomy Lab Value, Schema ID, Required, CoC Flag (SEER)" tag="N3903" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00590' || (line.afpPostOrchiectomyLabValue != null && line.afpPostOrchiectomyLabValue != 'XXXXX.8')]]></expression>
            <message>AFP Post-Orchiectomy Lab Value must not be blank or not applicable for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

AFP Post-Orchiectomy Lab Value is required by SEER only if collected by 
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).


2. This edit verifies that AFP Post-Orchiectomy Lab Value is not "XXXXX.8" and
   not blank for the Schema IDs for which it is required by a standard setter. 
    
   Required for Schema ID:

    00590: Testis]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-02" ref="67844">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3905" name="AFP Pre-Orchiectomy Range, Schema ID, Required, CoC Flag (SEER)" tag="N3905" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.dateOfDiagnosisYear > '2021' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' || line.registryId == '0000001566')
    return true

return line.schemaId != '00590' || (line.afpPreOrchiectomyRange != null && line.afpPreOrchiectomyRange != '8')]]></expression>
            <message>AFP Pre-Orchiectomy Range must not be blank or not applicable for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, after 2021, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) or 0000001566 (Texas)

AFP Pre-Orchiectomy Range is required by SEER only if collected by 
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).

2. This edit verifies that AFP Pre-Orchiectomy Range is not "8" (not 
   applicable)and not blank for the Schema IDs for which it is required by a 
   standard setter. 

    Required for Schema ID:

    00590: Testis]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-18" ref="67885">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL and TX</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-26" ref="68974">Add skip condition for DX Years after 2021</event>
            </history>
        </rule>
        <rule id="IFN3906" name="AFP Pretreatment Interpretation, Schema ID, Required, CoC Flag (SEER)" tag="N3906" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00220' || (line.afpPretreatmentInterpretation != null && line.afpPretreatmentInterpretation != '8')]]></expression>
            <message>AFP Pretreatment Interpretation must not be blank or not applicable for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

AFP Pretreatment Interpretation is required by SEER only if collected by
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).


2. This edit verifies that AFP Pretreatment Interpretation is not "8" (not
   applicable) and not blank for the Schema IDs for which it is required by a
   standard setter.

    Required for Schema ID:

    00220: Liver]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-06" ref="67886">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3907" name="AFP Pretreatment Lab Value, Schema ID, Required, CoC Flag (SEER)" tag="N3907" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00220' || (line.afpPretreatmentLabValue != null && line.afpPretreatmentLabValue != 'XXXX.8')]]></expression>
            <message>AFP Pretreatment Lab Value must not be blank or not applicable for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

AFP Pretreatment Lab Value is required by SEER only if collected by 
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).
 

2. This edit verifies that AFP Pretreatment Lab Value is not "XXXX.8" (not
   applicable) and not blank for the Schema IDs for which it is required by 
   a standard setter. 
    
   Required for Schema ID:

    00220: Liver]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-24" ref="67833">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3908" name="Bilirubin Pretreatment Total Lab Value, Schema ID, Required, CoC Flag (SEER)" tag="N3908" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00220' || (line.bilirubinPretxTotalLabValue != null && line.bilirubinPretxTotalLabValue != 'XXX.8')]]></expression>
            <message>Bilirubin Pretreatment Total Lab Value must not be blank or not applicable for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Bilirubin Pretreatment Total Lab Valuee is required by SEER only if collected by 
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1). 

2. This edit verifies that Bilirubin Pretreatment Total Lab Value is not "XXX.8" 
   (not applicable) and not blank for the Schema IDs for which it is required by 
   a standard setter.   
    
   Required for Schema ID:

    00220: Liver]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-18" ref="67835">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3909" name="Bilirubin Pretreatment Unit of Measure, Schema ID, Required, CoC Flag (SEER)" tag="N3909" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00220' || (line.bilirubinPretxUnitOfMeasure != null && line.bilirubinPretxUnitOfMeasure != '8')]]></expression>
            <message>Bilirubin Pretreatment Unit of Measure must not be blank or not applicable for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Bilirubin Pretreatment Unit of Measure is required by SEER only if collected by 
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).


1. This edit verifies that Bilirubin Pretreatment Unit of Measure is not "8" 
   (not applicable) and not blank for the Schema IDs for which it is required by 
   a standard setter. 

    Required for Schema ID:

    00220: Liver]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-18" ref="67835">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3910" name="Chromosome 3 Status, Schema ID, Required, CoC Flag (SEER)" tag="N3910" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
            return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.schemaId == '00671' || line.schemaId == '00672')
    return line.chromosome3Status != '8' && line.chromosome3Status != null
return true]]></expression>
            <message>Chromosome 3 Status must not be blank or not applicable for Schema ID: 00671, 00672 cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Chromosome 3 Status is required by SEER only if collected by
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).


2. This edit verifies that Chromosome 3 Status is not "8" (not applicable) and
   not blank for the Schema IDs for which it is required by a standard setter.

    Required for Schema ID:

    00671: Melanoma Uvea (Iris)
    00672: Melanoma Uvea (Choroid and Ciliary Body)]]></description>
            <history>
                <event version="SE18-018-04" user="smithm" date="2018-07-27" ref="67851">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3911" name="Chromosome 8q Status, Schema ID, Required, CoC Flag (SEER)" tag="N3911" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.schemaId == '00671' || line.schemaId == '00672')
    return line.chromosome8qStatus != null && line.chromosome8qStatus != '8'
return true]]></expression>
            <message>Chromosome 8q Status must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Chromosome 8q Status is required by SEER only if collected by a CoC-accredited
facility on an analytic case (CoC Accredited Flag = 1).


2. This edit verifies that Chromosome 8q Status is not "8" (not applicable) and
   not blank for the Schema IDs for which it is required by a standard setter.

    Required for Schema ID:

    00671: Melanoma Uvea (Iris)
    00672: Melanoma Uvea (Choroid and Ciliary Body)]]></description>
            <history>
                <event version="SE18-018-04" user="smithm" date="2018-07-31" ref="67852">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3912" name="Creatinine Pretreatment Lab Value, Schema ID, Required, CoC Flag (SEER)" tag="N3912" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00220' || (line.creatininePretreatmentLabValue != null && line.creatininePretreatmentLabValue != 'XX.8')]]></expression>
            <message>Creatinine Pretreatment Lab Value must not be blank or not applicable for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Creatinine Pretreatment Lab Value is required by SEER only if collected 
by a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).

2. This edit verifies that Creatinine Pretreatment Lab Value is not "XX.8" (not
   applicable) and not blank for the Schema IDs for which it is required by a 
   standard setter. 
    
   Required for Schema ID:

    00220: Liver]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-18" ref="67834">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3913" name="Estrogen Receptor Percent Positive or Range, Schema ID, Required, CoC Flag (SEER)" tag="N3913" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00480' || (line.estrogenReceptorPercntPosOrRange != null && line.estrogenReceptorPercntPosOrRange != 'XX8')]]></expression>
            <message>Estrogen Receptor Percent Positive or Range must not be blank or not applicable for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Estrogen Receptor Percent Positive or Range is required by SEER only if 
collected by a CoC-accredited facility on an analytic case (CoC Accredited 
Flag = 1).
 

2. This edit verifies that Estrogen Receptor Percent Positive or Range is not 
   "XX8" (not applicable) and not blank for the Schema IDs for which it is 
   required by a standard setter.  

    Required for Schema ID:

    00480: Breast]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-03" ref="67863">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3915" name="Extranodal Extension Clin (non-Head and Neck), Schema ID, Required, CoC Flag (SEER)" tag="N3915" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.cocAccreditedFlag != '1' || line.schemaId == null)
    return true

if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true

return (line.schemaId != '00460' && line.schemaId != '00570') || (line.extranodalExtensionClin != null && line.extranodalExtensionClin != '8')]]></expression>
            <message>Extranodal Extension Clin (non-Head and Neck) must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis = 2018-2022
    e. Registry ID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Extranodal Extension Clin (non-Head and Neck) is required by SEER only if 
collected by a CoC-accredited facility on an analytic case (CoC Accredited Flag 
= 1).
 
2. This edit verifies that Extranodal Extension Clin (non-Head and Neck) is not
   "8" (not applicable) and not blank for the Schema IDs for which it is required 
   by a standard setter. 
    
   Required for Schema ID:

    00460: Merkel Cell
    00570: Penis]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-25" ref="67917">Edit created.</event>
                <event version="SE21-021-11" user="beverung" date="2021-12-22" ref="68769">Added skip condition for IL and TX for DX Year 2018-2019.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-22" ref="68959">Changed skip condition for IL to DX Years 2018-2022, TX to 2018-2021.</event>
            </history>
        </rule>
        <rule id="IFN3916" name="Extranodal Extension Head and Neck Clinical, Schema ID, Required, CoC Flag (SEER)" tag="N3916" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.cocAccreditedFlag != '1' || line.schemaId == null)
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return !Functions.matches(line.schemaId, /^00(0[689]0|07[1-7]|1[034]0|1[1-3][12]|133)$/) || (line.extranodalExtensionHeadNeckClin != null && line.extranodalExtensionHeadNeckClin != '8')]]></expression>
            <message>Extranodal Extension Head and Neck Clinical must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Extranodal Extension Head and Neck Clinical is required by SEER only if collected by
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).


2. This edit verifies that Extranodal Extension Head and Neck Clinical is not
   "8" (not applicable) and not blank for the Schema IDs for which it is required 
   by a standard setter. 
    
   Required for Schema ID:

    00060:  Cervical Lymph Nodes and Unknown Primary
    00071:  Lip
    00072:  Tongue Anterior
    00073:  Gum
    00074:  Floor of Mouth
    00075:  Palate Hard
    00076:  Buccal Mucosa
    00077:  Mouth Other
    00080:  Major Salivary Glands
    00090:  Nasopharynx
    00100:  Oropharynx HPV-Mediated (p16+)
    00111:  Oropharynx (p16-)
    00112:  Hypopharynx
    00121:  Maxillary Sinus
    00122:  Nasal Cavity and Ethmoid Sinus
    00130:  Larynx Other
    00131:  Larynx Supraglottic
    00132:  Larynx Glottic
    00133:  Larynx Subglottic
    00140:  Melanoma Head and Neck]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-13" ref="67891">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68296">Fix typo in description.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3917" name="Extranodal Extension Path (non-Head and Neck), Schema ID, Required, CoC Flag (SEER)" tag="N3917" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.cocAccreditedFlag != '1' || line.schemaId == null)
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return (line.schemaId != '00460' && line.schemaId != '00570') || (line.extranodalExtensionPath != null && line.extranodalExtensionPath != '8')]]></expression>
            <message>Extranodal Extension Path (non-Head and Neck) must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Extranodal Extension Path (non-Head and Neck) is required by SEER only if 
collected by a CoC-accredited facility on an analytic case (CoC Accredited Flag 
= 1). 

1. This edit verifies that Extranodal Extension Path (non-Head and Neck) is 
   not "8" (not applicable) and not blank for the Schema IDs for which it is 
    required by a standard setter. 
    
   Required for Schema ID:

    00460: Merkel Cell
    00570: Penis]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-25" ref="67917">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3918" name="Extravascular Matrix Patterns, Schema ID, Required, CoC Flag (SEER)" tag="N3918" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.schemaId == '00671' || line.schemaId == '00672')
    return line.extravascularMatrixPatterns != '8' && line.extravascularMatrixPatterns != null
return true]]></expression>
            <message>Extravascular Matrix Patterns must not be blank or not applicable for Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Extravascular Matrix Patterns is required by SEER only if collected by
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).


1. This edit verifies that Extravascular Matrix Patterns is not "8" (not
   applicable) and not blank for the Schema IDs for which it is required by a
   standard setter.

    Required for Schema ID:

    00671: Melanoma Uvea (Iris)
    00672: Melanoma Uvea (Choroid and Ciliary Body)]]></description>
            <history>
                <event version="SE18-018-04" user="smithm" date="2018-08-06" ref="67853">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3920" name="Fibrosis Score, Schema ID, Required, CoC Flag (SEER)" tag="N3920" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.dateOfDiagnosisYear > '2022' || line.cocAccreditedFlag != '1' || line.schemaId == null)
    return true
    
return (line.schemaId != '00220' && line.schemaId != '00230') || (line.fibrosisScore != null && line.fibrosisScore != '8')]]></expression>
            <message>Fibrosis Score must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018 or after 2022, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1.

Fibrosis Score is required by SEER only if collected by
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).


1. This edit verifies that Fibrosis Score is not "8" (not applicable) and not
   blank for the Schema IDs for which it is required by a standard setter.

    Required for Schema ID:

    00220: Liver
    00230: Intrahepatic Bile Ducts]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-12" ref="67887">Edit created.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-15" ref="69152">Don&apos;t run for DX year 2022+.</event>
            </history>
        </rule>
        <rule id="IFN3921" name="Gleason Score Clinical, Schema ID, Required, CoC Flag (SEER)" tag="N3921" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.dateOfDiagnosisYear > '2022' || line.cocAccreditedFlag != '1' || line.schemaId == null)
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00580' || (line.gleasonScoreClinical != null && line.gleasonScoreClinical != 'X8')]]></expression>
            <message>Gleason Score Clinical must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018 or after 2022, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Gleason Score Clinical is required by SEER only if collected by 
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).
 

2. This edit verifies that Gleason Score Clinical is not "X8" (not applicable)
   and not blank for the Schema IDs for which it is required by a standard 
   setter. 

    Required for Schema ID:

    00580: Prostate]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-16" ref="67883">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-15" ref="69152">Don&apos;t run for DX year 2022+.</event>
            </history>
        </rule>
        <rule id="IFN3922" name="Gleason Score Pathological, Schema ID, Required, CoC Flag (SEER)" tag="N3922" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.dateOfDiagnosisYear > '2022' || line.cocAccreditedFlag != '1' || line.schemaId == null)
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00580' || (line.gleasonScorePathological != null && line.gleasonScorePathological != 'X8')]]></expression>
            <message>Gleason Score Pathological must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018 or after 2022, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Gleason Score Pathological is required by SEER only if collected by 
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).


2. This edit verifies that Gleason Score Pathological is not "X8" (not 
   applicable) and not blank for the Schema IDs for which it is required by a 
   standard setter. 

    Required for Schema ID:

    00580: Prostate]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-16" ref="67883">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-15" ref="69152">Don&apos;t run for DX year 2022+.</event>
            </history>
        </rule>
        <rule id="IFN3923" name="Gleason Tertiary Pattern, Schema ID, Required, CoC Flag (SEER)" tag="N3923" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.dateOfDiagnosisYear > '2022' || line.cocAccreditedFlag != '1' || line.schemaId == null)
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00580' || (line.gleasonTertiaryPattern != null && line.gleasonTertiaryPattern != 'X8')]]></expression>
            <message>Gleason Tertiary Pattern must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018 or after 2022, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Gleason Tertiary Pattern is required by SEER only if collected by 
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).
 

2. This edit verifies that Gleason Tertiary Pattern is not "X8" (not applicable)
   and not blank for the Schema IDs for which it is required by a standard setter.  

    Required for Schema ID:

    00580: Prostate]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-16" ref="67883">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-15" ref="69152">Don&apos;t run for DX year 2022+.</event>
            </history>
        </rule>
        <rule id="IFN3924" name="hCG Post-Orchiectomy Lab Value, Schema ID, Required, CoC Flag (SEER)" tag="N3924" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.cocAccreditedFlag != '1' || line.schemaId == null)
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00590' || (line.hcgPostOrchiectomyLabValue != null && line.hcgPostOrchiectomyLabValue != 'XXXXX.8')]]></expression>
            <message>hCG Post-Orchiectomy Lab Value must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

hCG Post-Orchiectomy Lab Value is required by SEER only if collected by 
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).


2. This edit verifies that hCG Post-Orchiectomy Lab Value is not "XXXXX.8" (not
   applicable) and not blank for the Schema IDs for which it is required by a 
   standard setter. 

    Required for Schema ID:

    00590: Testis]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-02" ref="67845">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3925" name="hCG Pre-Orchiectomy Lab Value, Schema ID, Required, CoC Flag (SEER)" tag="N3925" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.schemaId == '00590')
    return line.hcgPreOrchiectomyLabValue != null && line.hcgPreOrchiectomyLabValue != 'XXXXX.8'
    
return true]]></expression>
            <message>hCG Pre-Orchiectomy Lab Value must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

hCG Pre-Orchiectomy Lab Value is required by SEER only if collected by 
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).


1. This edit verifies that hCG Pre-Orchiectomy Lab Value is not "XXXXX.8" (not
   applicable) and not blank for the Schema IDs for which it is required by a 
   standard setter. 

    Required for Schema ID:

    00590: Testis]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-12" ref="67843">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3926" name="International Normalized Ratio Prothrombin Time, Schema ID, Required, CoC Flag (SEER)" tag="N3926" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.schemaId == '00220')
    return line.iNRProthrombinTime != null && line.iNRProthrombinTime != 'X.8'
    
return true]]></expression>
            <message>International Normalized Ratio Prothrombin Time must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

International Normalized Ratio Prothrombin Time is required by SEER
only if collected by a CoC-accredited facility on an analytic case (CoC
Accredited Flag = 1).


2. This edit verifies that International Normalized Ratio Prothrombin Time is
   not "X.8" (not applicable) and not blank for the Schema IDs for which it is
   required by a standard setter.

    Required for Schema ID:

    00220: Liver]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-21" ref="67837">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3927" name="Ki-67, Breast, Schema ID, Required, CoC Flag (SEER)" tag="N3927" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00480' || (line.ki67 != null && line.ki67 != 'XXX.8')]]></expression>
            <message>Ki-67 must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Ki-67 is required by SEER only if collected by a CoC-accredited 
facility on an analytic case (CoC Accredited Flag = 1).
 

2. This edit verifies that Ki-67 is not "XXX.8" (not applicable) and not blank
   for the Schema IDs for which it is required by a standard setter. 

    Required for Schema ID:

    00480: Breast]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-01" ref="67868">Edit created.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-28" ref="68411">Changed edit name.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3928" name="KIT Gene Immunohistochemistry, Schema ID, Required, CoC Flag (SEER)" tag="N3928" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00430' || (line.kitGeneImmunohistochemistry != null && line.kitGeneImmunohistochemistry != '8')]]></expression>
            <message>KIT Gene Immunohistochemistry must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

KIT Gene Immunohistochemistry is required by SEER only if collected by 
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).


2. This edit verifies that KIT Gene Immunohistochemistry is not "8" (not 
   applicable) and not blank for the Schema IDs for which it is required by a 
   standard setter. 
    
    Required for Schema ID:

    00430: GIST]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-25" ref="67877">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3929" name="LDH Upper Limits of Normal, Schema ID, Required, CoC Flag (SEER)" tag="N3929" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.schemaId == '00470')
    return line.ldhUpperLimitsOfNormal != null && line.ldhUpperLimitsOfNormal != 'XX8'
return true]]></expression>
            <message>LDH Upper Limits of Normal must not be blank or not applicable for Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

LDH Upper Limits of Normal is required by SEER only if collected by
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).


1. This edit verifies that LDH Upper Limits of Normal is not "XX8" (not
   applicable) and not blank for the Schema IDs for which it is required by a
   standard setter.

    Required for Schema ID:

    00470: Melanoma of Skin]]></description>
            <history>
                <event version="SE18-018-04" user="smithm" date="2018-08-07" ref="67881">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3930" name="LN Assessment Method Femoral-Inguinal, Schema ID, Required, CoC Flag (SEER)" tag="N3930" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (['00500', '00510', '09500'].contains(line.schemaId))
    return line.lnAssessMethodFemoralInguinal != null && line.lnAssessMethodFemoralInguinal != '8'
    
return true]]></expression>
            <message>LN Assessment Method Femoral-Inguinal must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

LN Assessment Method Femoral-Inguinal is required by SEER only if collected by
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).


2. This edit verifies that LN Assessment Method Femoral-Inguinal is not "8" (not
   applicable) and not blank for the Schema IDs for which it is required by a
   standard setter.

    Required for Schema ID:

    00500: Vulva [8th: 2018-2023]
    09500: Vulva [V9: 2024+]
    00510: Vagina]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-07" ref="67819">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-05" ref="68420">Added code &apos;09520&apos; to schema IDs.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-01" user="secristc" date="2022-02-22" ref="68890">Remove logic for Schema IDs 00520, 09520.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-04" ref="69403">Added logic for Schema ID 09500.</event>
            </history>
        </rule>
        <rule id="IFN3931" name="LN Assessment Method Para-Aortic, Schema ID, Required, CoC Flag (SEER)" tag="N3931" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (['00510', '00520', '09520'].contains(line.schemaId))
    return line.lnAssessMethodParaaortic != null && line.lnAssessMethodParaaortic != '8'
    
return true]]></expression>
            <message>LN Assessment Method Para-aortic must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

LN Assessment Method Para-Aortic is required by SEER only if collected by 
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1). 

1. This edit verifies that LN Assessment Method Para-Aortic is not "8" (not
    applicable) and not blank for the Schema IDs for which it is required by a 
    standard setter.  

    Required for Schema ID:

    00510: Vagina
    00520: Cervix [8th: 2018-2020]
    09520: Cervix [9th: 2021+]]]></description>
            <history>
                <event version="SE18-018-02" user="schadega" date="2018-06-13" ref="67817">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-05" ref="68420">Added code &apos;09520&apos; to schema IDs.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-01" user="secristc" date="2022-02-23" ref="68892">Removed logic for Schema ID 00500.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3932" name="LN Assessment Method Pelvic, Schema ID, Required, CoC Flag (SEER)" tag="N3932" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (['00500', '00510', '00520', '09520', '09500'].contains(line.schemaId))
    return line.lnAssessMethodPelvic != null && line.lnAssessMethodPelvic != '8'
    
return true]]></expression>
            <message>LN Assessment Method Pelvic must not be blank or not applicable for this Schema ID cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

LN Assessment Method Pelvic is required by SEER only if collected by 
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).


2. This edit verifies that LN Assessment Method Pelvic is not "8" (not 
    applicable) and not blank for the Schema IDs for which it is required by a 
    standard setter. 

    Required for Schema ID:

    00500: Vulva [8th: 2018-2023]
    09500: Vulva [V9: 2024+]
    00510: Vagina
    00520: Cervix [8th: 2018-2020]
    09520: Cervix [9th: 2021+]]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-19" ref="67818">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-05" ref="68420">Added code &apos;09520&apos; to schema IDs.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-04" ref="69403">Added logic for Schema ID 09500.</event>
            </history>
        </rule>
        <rule id="IFN3933" name="LN Distant Assessment Method, Schema ID, Required, CoC Flag (SEER)" tag="N3933" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (['00510', '00520', '09520'].contains(line.schemaId))
    return line.lnDistantAssessMethod != null && line.lnDistantAssessMethod != '8'
    
return true]]></expression>
            <message>LN Distant Assessment Method must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

LN Distant Assessment Method is required by SEER only if collected by
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).

1. This edit verifies that LN Distant Assessment Method is not "8" (not
   applicable) and not blank for the Schema IDs for which it is required by a
   standard setter.

    Required for Schema ID:

    00510: Vagina
    00520: Cervix [8th: 2018-2020]
    09520: Cervix [9th: 2021+]]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-07" ref="67820">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-05" ref="68420">Added code &apos;09520&apos; to schema IDs.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3934" name="LN Distant: Mediastinal, Scalene, Schema ID, Required, CoC Flag (SEER)" tag="N3934" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (['00510', '00520', '09520'].contains(line.schemaId))
    return line.lnDistantMediastinalScalene != null && line.lnDistantMediastinalScalene != '8'
    
return true]]></expression>
            <message>LN Distant: Mediastinal, Scalene must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

LN Distant: Mediastinal, Scalene is required by SEER only if collected by
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).


1. This edit verifies that LN Distant: Mediastinal, Scalene is not "8" (not
   applicable) and not blank
   for the Schema IDs for which it is required by a standard setter.


    Required for Schema ID:

    00510: Vagina
    00520: Cervix [8th: 2018-2020]
    09520: Cervix [9th: 2021+]]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-07" ref="67821">Edit created.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-05" ref="68420">Added code &apos;09520&apos; to schema IDs.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3935" name="Microvascular Density, Schema ID, Required, CoC Flag (SEER)" tag="N3935" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.schemaId == '00671' || line.schemaId == '00672')
    return line.microvascularDensity != null && line.microvascularDensity != 'X8'
return true]]></expression>
            <message>Microvascular Density must not be blank or not applicable for Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Microvascular Density is required by SEER only if collected by
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).


2. This edit verifies that Microvascular Density is not "X8" (not applicable)
   and not blank for the Schema IDs for which it is required by a standard
   setter.

    Required for Schema ID:

        00671: Melanoma Uvea (Iris)
        00672: Melanoma Uvea (Choroid and Ciliary Body)]]></description>
            <history>
                <event version="SE18-018-04" user="smithm" date="2018-08-01" ref="67854">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3936" name="Mitotic Count Uveal Melanoma, Schema ID, Required, CoC Flag (SEER)" tag="N3936" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (line.schemaId == '00671' || line.schemaId == '00672')
    return line.mitoticCountUvealMelanoma != null && line.mitoticCountUvealMelanoma != 'XX.8'
    
return true]]></expression>
            <message>Mitotic Count Uveal Melanoma must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Mitotic Count Uveal Melanoma is required by SEER only if collected by
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).


2. This edit verifies that Mitotic Count Uveal Melanoma is not "XX.8" (not
   applicable) and not blank for the Schema IDs for which it is required by a
   standard setter.

    Required for Schema ID:

    00671: Melanoma Uvea (Iris)
    00672: Melanoma Uvea (Choroid and Ciliary Body)]]></description>
            <history>
                <event version="SE18-018-04" user="kirbyk" date="2018-07-31" ref="67848">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3937" name="Number of Examined Para-Aortic Nodes, Schema ID, Required, CoC Flag (SEER)" tag="N3937" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (Functions.matches(line.schemaId, /^005(28|30|4[12])$/))
    return line.numberOfExaminedParaAorticNodes != null && line.numberOfExaminedParaAorticNodes != 'X8'
    
return true]]></expression>
            <message>Number of Examined Para-Aortic Nodes must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Number of Examined Para-Aortic Nodes is required by SEER only if collected by a
CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).


2. This edit verifies that Number of Examined Para-Aortic Nodes is not "X8"
   (not applicable) and not blank for the Schema IDs for which it is required
   by a standard setter.

    Required for Schema ID:

    00528: Cervix Sacoma [2021+]
    00530: Corpus Carcinoma and Carcinosarcoma
    00541: Corpus Sarcoma (Sarcoma)
    00542: Corpus Sarcoma (Adenosarcoma)]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-13" ref="67826">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-14" ref="68836">Added logic for schema 00528</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3938" name="Number of Examined Pelvic Nodes, Schema ID, Required, CoC Flag (SEER)" tag="N3938" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

String schemaId = line.schemaId

if (schemaId == '00530' || schemaId == '00541' || schemaId == '00542' || (line.dateOfDiagnosisYear >= '2021' && schemaId == '00528'))
    return line.numberOfExaminedPelvicNodes != null && line.numberOfExaminedPelvicNodes != 'X8'
    
return true]]></expression>
            <message>Number of Examined Pelvic Nodes must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Number of Examined Pelvic Nodes is required by SEER only if collected by
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).


2. This edit verifies that Number of Examined Pelvic Nodes is not "X8" (not
   applicable) and not blank for the Schema IDs for which it is required by a
   standard setter.

    Required for Schema ID:

    00528: Cervix Sarcoma [2021+]
    00530: Corpus Carcinoma and Carcinosarcoma
    00541: Corpus Sarcoma (Sarcoma)
    00542: Corpus Sarcoma (Adenosarcoma)]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-13" ref="67825">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-01" user="smithm" date="2022-01-19" ref="68837">Add condition when schema is 00528 and year &gt;= 2021</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3939" name="Number of Positive Para-Aortic Nodes, Schema ID, Required, CoC Flag (SEER)" tag="N3939" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

String schemaId = line.schemaId
if (schemaId == '00530' || schemaId == '00541' || schemaId == '00542' || (line.dateOfDiagnosisYear >= '2021' && schemaId == '00528'))
    return line.numberOfPositiveParaAorticNodes != null && line.numberOfPositiveParaAorticNodes != 'X8'
    
return true]]></expression>
            <message>Number of Positive Para-Aortic Nodes must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Number of Positive Para-Aortic Nodes is required by SEER only if collected by
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).

2. This edit verifies that Number of Positive Para-Aortic Nodes is not "X8" (not
   applicable) and not blank for the Schema IDs for which it is required by a
   standard setter.

    Required for Schema ID:

    00528: Cervix Sarcoma [2021+]
    00530: Corpus Carcinoma and Carcinosarcoma
    00541: Corpus Sarcoma (Sarcoma)
    00542: Corpus Sarcoma (Adenosarcoma)]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-20" ref="67823">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-01" user="smithm" date="2022-01-26" ref="68838">Added 00528 (for year &gt;= 2021) to list of schema id requirements.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3940" name="Number of Positive Pelvic Nodes, Schema ID, Required, CoC Flag (SEER)" tag="N3940" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

String schemaId = line.schemaId
if (schemaId == '00530' || schemaId == '00541' || schemaId == '00542' ||
(line.dateOfDiagnosisYear >= '2021' && schemaId == '00528'))
    return line.numberOfPositivePelvicNodes != null && line.numberOfPositivePelvicNodes != 'X8'
    
return true]]></expression>
            <message>Number of Positive Pelvic Nodes must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Number of Positive Pelvic Nodes is required by SEER only if collected by
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).

1. This edit verifies that Number of Positive Pelvic Nodes is not "X8" (not
   applicable) and not blank for the Schema IDs for which it is required by a
   standard setter.

    Required for Schema ID:

    00528: Cervix Sarcoma [2021+]
    00530: Corpus Carcinoma and Carcinosarcoma
    00541: Corpus Sarcoma (Sarcoma)
    00542: Corpus Sarcoma (Adenosarcoma)]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-13" ref="67824">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-01" user="smithm" date="2022-01-27" ref="68839">Added 00528 (for year &gt;= 2021) to list of schema id requirements.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3941" name="Oncotype Dx Recurrence Score-DCIS, Schema ID, Required, CoC Flag (SEER)" tag="N3941" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00480' || (line.oncotypeDxRecurrenceScoreDcis != null && line.oncotypeDxRecurrenceScoreDcis != 'XX8')]]></expression>
            <message>Oncotype Dx Recurrence Score-DCIS must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Oncotype Dx Recurrence Score-DCIS is required by SEER only if collected by 
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).
 

2. This edit verifies that Oncotype Dx Recurrence Score-DCIS is not "XX8" (not
   applicable) and not blank for the Schema IDs for which it is required by a 
   standard setter. 

    Required for Schema ID:

    00480: Breast]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-16" ref="67869">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3942" name="Oncotype Dx Risk Level-DCIS, Schema ID, Required, CoC Flag (SEER)" tag="N3942" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00480' || (line.oncotypeDxRiskLevelDcis != null && line.oncotypeDxRiskLevelDcis != '8')]]></expression>
            <message>Oncotype Dx Risk Level-DCIS must not be blank or not applicable for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Oncotype Dx Risk Level-DCIS is required by SEER only if collected by 
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).

2. This edit verifies that Oncotype Dx Risk Level-DCIS is not "8" (not 
   applicable) and not blank for the Schema IDs for which it is required by a 
   standard setter.  

    Required for Schema ID:

    00480: Breast]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-16" ref="67869">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3943" name="Oncotype Dx Risk Level-Invasive, Schema ID, Required, CoC Flag (SEER)" tag="N3943" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00480' || (line.oncotypeDxRiskLevelInvasive != null && line.oncotypeDxRiskLevelInvasive != '8')]]></expression>
            <message>Oncotype Dx Risk Level-Invasive must not be blank or not applicable for this schema for cases diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Oncotype Dx Risk Level-Invasive is required by SEER only if collected by
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).


2. This edit verifies that Oncotype Dx Risk Level-Invasive is not "8" (not
applicable) and not blank for the Schema IDs for which it is required by a
standard setter.

Required for Schema ID:

00480: Breast]]></description>
            <history>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68720">Edit added.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-30" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3944" name="Percent Necrosis Post Neoadjuvant, Schema ID, Required, CoC Flag (SEER)" tag="N3944" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return !Functions.matches(line.schemaId, /^0038[1-3]$/) || (line.percentNecrosisPostNeoadjuvant != null && line.percentNecrosisPostNeoadjuvant != 'XXX.8')]]></expression>
            <message>Percent Necrosis Post Neoadjuvant must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Percent Necrosis Post Neoadjuvant is required by SEER only if collected by 
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).

2. This edit verifies that Percent Necrosis Post Neoadjuvant is not "XXX.8"
   (not applicable) and not blank for the Schema IDs for which it is required by 
   a standard setter.  

    Required for Schema ID:

    00381: Bone Appendicular
    00382: Bone Spine
    00383: Bone Pelvis]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-19" ref="67838">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3945" name="Progesterone Receptor Percent Positive or Range, Schema ID, Required, CoC Flag (SEER)" tag="N3945" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00480' || (line.progesteroneRecepPrcntPosOrRange != null && line.progesteroneRecepPrcntPosOrRange != 'XX8')]]></expression>
            <message>Progesterone Receptor Percent Positive or Range must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Progesterone Receptor Percent Positive or Range is required by SEER only if
collected by a CoC-accredited facility on an analytic case (CoC Accredited Flag
= 1).

1. This edit verifies that Progesterone Receptor Percent Positive or Range is
   not "XX8" (not applicable) and not blank for the Schema IDs for which it is
   required by a standard setter.

    Required for Schema ID:

    00480: Breast]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-06" ref="67865">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3948" name="Response to Neoadjuvant Therapy, Schema ID, Required, CoC Flag (SEER)" tag="N3948" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00480' || (line.responseToNeoadjuvantTherapy != null && line.responseToNeoadjuvantTherapy != '8')]]></expression>
            <message>Response to Neoadjuvant Therapy must not be blank or not applicable for this Schema ID for cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Response to Neoadjuvant Therapy is required by SEER only if collected by 
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).

2. This edit verifies that Response to Neoadjuvant Therapy is not "8" (not
   applicable) and not blank for the Schema IDs for which it is required by a 
   standard setter. 
    
    Required for Schema ID:

    00480: Breast]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-13" ref="67860">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN3954" name="Ipsilateral Adrenal Gland Involvement, Kidney, EOD Tumor, Mets (SEER)" tag="N3954" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.schemaId != '00600')
    return true

String ipsilateral = line.ipsilateralAdrenalGlandInvolve
if (ipsilateral == null || ipsilateral == '8')
    return true

if (ipsilateral == '1')
    return Functions.matches(line.eodPrimaryTumor, /^6\d\d|700|999$/)
else if (ipsilateral == '2' || ipsilateral == '3')
    return line.eodMets == '70'

return true]]></expression>
            <message>Ipsilateral Adrenal Gland Involvement conflicts with EOD Primary Tumor</message>
            <description><![CDATA[This edit verifies that the Ipsilateral Adrenal Gland Involvement SSDI is coded
consistently with EOD Primary Tumor and EOD Mets.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2019, blank (unknown), or invalid.
    b. Schema ID is not 00600.
    c. Ipsilateral Adrenal Gland Involvement is blank or 8 (not applicable).

3. If Ipsilateral Adrenal Gland Involvement = 1 (contiguous involvement),
   then EOD Primary Tumor must = 600-700 (ipsilateral adrenal gland involvement
   or higher) or 999 (unknown extension)

4. If Ipsilateral Adrenal Gland Involvement = 2 or 3 (discontiguous
   involvement),
   then EOD Mets must = 70 (noncontiguous involvement).]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-09" ref="68160">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IFN3958" name="Separate Tumor Nodules, Lung, EOD Primary Tumor (SEER)" tag="N3958" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.schemaId != '00360' || line.eodPrimaryTumor == null)
    return true

String separateTumorNodules = line.separateTumorNodules
if (separateTumorNodules == null || separateTumorNodules == '8')
    return true

if (separateTumorNodules == '1' || separateTumorNodules == '4')
    return Functions.matches(line.eodPrimaryTumor, /^[56]\d\d|700|999$/)
else if (separateTumorNodules == '2' || separateTumorNodules == '3')
    return line.eodPrimaryTumor == '700'

return true]]></expression>
            <message>Separate Tumor Nodules conflicts with EOD Primary Tumor.</message>
            <description><![CDATA[This edit verifies that Separate Tumor Nodules SSDI is coded consistently with
EOD Primary Tumor for Lung.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2019, blank (unknown), or invalid
   b. Schema ID is not 00360
   c. Separate Tumor Nodules is blank or 8 (not applicable)
   d. EOD Primary Tumor is blank

2. If Separate Tumor Nodules = 1 (separate nodules in ipsilateral lung, same
     lobe) or 4 (separate nodules in ipsilateral lung, unknown lobe),
   EOD Primary Tumor must = 500-700 (separate tumor nodules in same lobe or higher)
     or 999 (unknown extension).

3. If Separate Tumor Nodules = 2 or 3 (separate nodules in ipsilateral lung,
     different lobe),
   EOD Primary Tumor must = 700 (separate tumor nodules in different ipsilateral
     lobe).]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-13" ref="68147">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN3960" name="Tumor Deposits, Colorectal, EOD Regional Nodes (SEER)" tag="N3960" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.eodRegionalNodes == null || line.schemaId != '00200')
    return true

String tumorDeposits = line.tumorDeposits
String eodRegionalNodes = line.eodRegionalNodes
if (tumorDeposits == null || tumorDeposits == 'X8')
    return true

if (tumorDeposits == '00' || tumorDeposits == 'X9')
    return eodRegionalNodes != '200'
else if (Functions.matches(tumorDeposits, /^0[1-9]|[1-9]\d|X[12]$/))
    return eodRegionalNodes == '200' || eodRegionalNodes == '300' || eodRegionalNodes == '800'

return true]]></expression>
            <message>Tumor Deposits conflicts with EOD Regional Nodes.</message>
            <description><![CDATA[This edit verifies that Tumor Deposits SSDI is coded consistently with
EOD Regional Nodes.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2019, blank (unknown), or invalid
   b. Schema ID is not 00200
   c. Tumor Deposits is blank or X8 (not applicable)
   d. EOD Regional Nodes is blank


2. If Tumor Deposits = 00 (no tumor deposits) or X9 (not assessed),
   EOD Regional Nodes must not = 200 (tumor deposits without nodal involvement)

3. If Tumor Deposits = 01-99, X1, or X2 (tumor deposits),
   EOD Regional Nodes must = 200 (tumor deposits), 300, or 800(regional nodes).]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-15" ref="68146">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN3964" name="Regional Nodes Positive, Examined, Primary Site, 2018 (NAACCR)" tag="N3964" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || (line.regionalNodesExamined == null && line.regionalNodesPositive == null) || line.primarySite == null)
    return true

if (line.regionalNodesExamined != '99' || line.regionalNodesPositive != '99') {
    return !(Functions.matches(line.primarySite, /^C(42[0134]|589|7[0127]\d|75[123]|76[1-8]|809)$/)
        || ['00790','00795','00830','99999'].contains(line.schemaId)
        || (line.schemaId == '00822' && line.histologicTypeIcdO3 != '9734'))
}

return true]]></expression>
            <message>Regional Nodes Positive/Examined must = 99 for this Schema ID, Primary Site, and/or histology</message>
            <description><![CDATA[This edit is skipped if any of the following conditions is true:
1. Year of Date of Diagnosis is less than 2018, blank (unknown), or invalid.
2. Regional Nodes Examined and Regional Nodes Positive are both blank
3. Primary Site is blank


1. Regional Nodes Positive and Regional Nodes Examined must both be coded '99' for the following:
    a. Primary Sites:
        C420, C421, C423, C424, C589, C700-C709, C710-C729, C751-C753, C761-C768, C770-C779, C809
    b. Schema ID 00790, 00795
    c. Schema ID 00822 excluding 9734
    d. Schema ID 00830
    e. Schema ID 99999]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-10" ref="67948">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-17" ref="68019">Removed DCO specific logic.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-28" ref="68132">Added more requirements based on Primary Site and Histology ICD-O-3.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-27" ref="68328">Change skip condition to require both Reg Nodes Examined and Reg Nodes Positive to be blank.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-06" ref="68448">Change name and update qualifying Schema IDs and Primary Sites.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-01" user="secristc" date="2022-02-17" ref="68867">Added logic for Primary Site = C422 and Schema ID = 99999.</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-11" ref="68931">Update logic to stop using Schema ID and Histologic Type; change edit name.</event>
                <event version="SE23-023-02" user="shearerw" date="2023-05-08" ref="69166">Add Schema ID logic.</event>
            </history>
        </rule>
        <rule id="IFN3968" name="RX Date Radiation, PhI Radiation Treatment Modality (NAACCR)" tag="N3968" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018')
            return true

if (line.phase1RadiationTreatmentModality == '00' || line.phase1RadiationTreatmentModality == '99')
    return line.rxDateRadiationDay == null && line.rxDateRadiationMonth == null && line.rxDateRadiationYear == null

if (line.rxDateRadiationDay != null || line.rxDateRadiationMonth != null || line.rxDateRadiationYear != null)
    return Functions.matches(line.phase1RadiationTreatmentModality, /^0[1-9]|1[0-6]|98$/)

return true
            ]]></expression>
            <message>Phase I Radiation Treatment Modality conflicts with RX Date Radiation</message>
            <description><![CDATA[This edit is skipped if any Diagnosis date before 2018, blank (unknown), or invalid

1. If Phase I Radiation Treatment Modality = 00 (no radiation) or 99 (unknown if radiation)
RX Date Radiation must = blank.

2. If RX Date Radiation is not blank, (radiation therapy administered), then Phase
I Radation Treatment Modality must equal 01-16,98 (treatment modalities).]]></description>
            <history>
                <event version="SE18-018-02" user="schadega" date="2018-05-29" ref="67793">Edit created.</event>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-20" ref="67961">Removed unnecessary dependency.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-14" ref="67993">Edit name change.</event>
                <event version="SE18-018-05" user="kirbyk" date="2018-08-15" ref="68017">Changed edit to use Radiation Date year field instead of the full date field.</event>
                <event version="SE21-021-09" user="secristc" date="2021-09-14" ref="68750">Added condition to skip edit for DX year before 2018.</event>
                <event version="SE22-022-09" user="secristc" date="2022-08-10" ref="69020">Updated edit logic to use RX Date Radiation</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IFN3969" name="Reason for No Radiation, PhI Radiation Treatment Modality (NAACCR)" tag="N3969" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.phase1RadiationTreatmentModality == null || line.reasonForNoRadiation == null || line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018')
            return true

if (line.reasonForNoRadiation == '0')
    return Functions.matches(line.phase1RadiationTreatmentModality, /^0[1-9]|1[0-6]|98$/)

if (Functions.matches(line.reasonForNoRadiation, /^[125-7]$/))
    return line.phase1RadiationTreatmentModality == '00'

if (line.reasonForNoRadiation == '8')
    return line.phase1RadiationTreatmentModality == '00' || line.phase1RadiationTreatmentModality == '99'

if (line.reasonForNoRadiation == '9')
    return line.phase1RadiationTreatmentModality == '99'

return true]]></expression>
            <message>Phase I Radiation Treatment Modality conflicts with Reason for No Radiation</message>
            <description><![CDATA[1. This edit is skipped for the following conditions:
   a. Reason for No Radiation is blank
   b. Phase I Radiation Treatment Modality is blank
   c. Diagnosis date is pre-2018, blank (unknown), or invalid.

2. If Reason for No Radiation = 0 (radiation performed),
    Phase I Radiation Treatment Modality must = 01-16,98 (radiation performed)

3. If Reason for No Radiation = 1,2,5,6, or 7 (no radiation performed)
   Phase I Radiation Treatment Modality must = 00 (no radiation performed)

4. If Reason for No Radiation = 8(radiation recommended, unknown if performed)
   Phase I Radiation Treatment Modality must = 00 (no radiation performed) or
   99 (unknown if radiation performed)

5. If Reason for No Radiation = 9 (unknown if radiation performed)
   Phase I Radiation Treatment Modality must = 99 (unknown if radiation performed)

NOTE:  Phase I Radiation Modality code 99 means either unknown radiation treatment
modality or unknown if radiation performed]]></description>
            <history>
                <event version="SE18-018-02" user="schadega" date="2018-05-29" ref="67793">Edit created.</event>
                <event version="SE18-018-03" user="schadega" date="2018-07-20" ref="67971">Update logic and description.</event>
                <event version="SE18-018-05" user="kirbyk" date="2018-08-14" ref="67999">Updated valid codes for Reason for No Radiation = 0.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-27" ref="68139">Phase I Radiation Treatment Modality = 00 is now valid for Reason No Radiation = 8.</event>
                <event version="SE21-021-01" user="kirbyk" date="2021-01-08" ref="68447">Updated valid codes for Reason for No Radiation = 0.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-03" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IFN3970" name="Date of Sentinel Lymph Node Biopsy, Date DX (SEER)" tag="N3970" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.dateSentinelLymphNodeBiopsyYear == null

return true]]></expression>
            <message>Date of Sentinel Lymph Node Biopsy, Date DX and Coc Flag conflict</message>
            <description><![CDATA[The edit verifies that the date of sentinel lymph node biopsy is not recorded for
date of diagnoses before 1/1/2018.

The edit is skipped for any of the following conditions:
    a. Date of Diagnosis is blank (unknown) or invalid.
    b. Registry ID = 0000001565 (Illinois) and Year of Diagnosis = 2018-2022
    c. Registry ID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

1. If the year of Date of Diagnosis is before 2018, then Date of Sentinel Lymph
   Node Biopsy must be blank.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-24" ref="67931">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-14" ref="67991">Edit name change.</event>
                <event version="SE18-018-05" user="kirbyk" date="2018-08-15" ref="68017">Changed edit to use date year field instead of full date field.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-11" user="beverung" date="2021-12-17" ref="68760">Added skip condition for IL and TX for DX Years 2018-2019.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-22" ref="68959">Changed skip condition for IL to DX Years 2018-2022, TX to 2018-2021.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-23" ref="69206">Remove references to Date Sentinel Lymph Node Biopsy Flag. Remove Schema ID logic.</event>
            </history>
        </rule>
        <rule id="IFN3971" name="Sentinel Lymph Nodes Pos/Ex, Schema ID, Date DX (SEER)" tag="N3971" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true

if (line.dateOfDiagnosisYear < '2018')
    return line.sentinelLymphNodesExamined == null && line.sentinelLymphNodesPositive == null

if (line.schemaId == '00470' || line.schemaId == '00480')
    return line.sentinelLymphNodesExamined != null && line.sentinelLymphNodesPositive != null
        
return true]]></expression>
            <message>Sentinel Lymph Nodes Examined and Sentinel Lymph Nodes Positive, Date Dx, Schema conflict</message>
            <description><![CDATA[This edit checks that Sentinel Lymph Nodes data items are recorded for diagnoses 
1/1/2018 and later for Melanoma of Skin and Breast cases (Schema IDs 00470 and
00480).

The edit is skipped for any of the following conditions:
    a. Date of Diagnosis is blank (unknown) or invalid.
    b. Registry ID = 0000001565 (Illinois) and Year of Diagnosis = 2018-2022
    c. Registry ID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

1. If the year of Date of Diagnosis is before 2018, then Sentinel Lymph Nodes 
   Examined and Sentinel Lymph Nodes Positive must be blank. 

2. If the year of Date of Diagnosis is 2018 or later Sentinel Lymph Nodes Examined 
   and Sentinel Lymph Nodes Positive must be reported for Melanoma of Skin (Schema 
   ID 00470) and Breast (Schema ID 00480).]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-24" ref="67931">Edit created.</event>
                <event version="SE18-018-05" user="kirbyk" date="2018-08-14" ref="67990">Changed edit error message.</event>
                <event version="SE21-021-11" user="beverung" date="2021-12-22" ref="68766">Added skip condition for IL and TX for DX Year 2018-2019.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-22" ref="68959">Changed skip condition for IL to DX Years 2018-2022, TX to 2018-2021.</event>
            </history>
        </rule>
        <rule id="IFN3972" name="Summary Stage 2018, Date of DX (SEER)" tag="N3972" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[return line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear > '2017' || line.summaryStage2018 == null]]></expression>
            <message>Summary Stage 2018 must be blank for cases diagnosed before 2018</message>
            <description><![CDATA[The purpose of this edit is to verify that directly assigned Summary Stage 2018 
is entered according to standard setter requirements for cases diagnosed 2018 and later. 

This edit is skipped if year of Date of Diagnosis is blank or invalid.

If year of Date of Diagnosis is pre-2018, then Summary Stage 2018 must be blank.]]></description>
            <history>
                <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67794">Edit created.</event>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-20" ref="67961">Removed unnecessary dependency.</event>
            </history>
        </rule>
        <rule id="IFN3975" name="Oncotype Dx Risk Level-Invasive, Breast, Behavior (NAACCR)" tag="N3975" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId != '00480')
return true

if (line.oncotypeDxRiskLevelInvasive == null || line.oncotypeDxRiskLevelInvasive == '8')
    return true

if (line.behaviorCodeIcdO3 == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true 

if (line.behaviorCodeIcdO3 == '2')
    return line.oncotypeDxRiskLevelInvasive == '6'
    
return line.oncotypeDxRiskLevelInvasive != '6']]></expression>
            <message>Oncotype Dx Risk Level-Invasive conflicts with Behavior Code ICD-O-3</message>
            <description><![CDATA[Purpose: This edit verifies that Oncotype DX Risk Level-Invasive is coded 
consistently with Behavior Code ICD-O-3. 
 
1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2018, blank (unknown), or invalid
   b. Schema ID is not 00480
   c. Oncotype DX Risk Level-Invasive is blank or 8 (not applicable)
   d. Behavior Code ICD-O-3 = 0, 1, or blank.


1. The edit verifies for Schema ID 00480 that if Behavior Code ICD-O-3 = "2": 
    
      Oncotype Dx Risk Level-Invasive = "6" (not applicable: in situ case).

2. The edit verifies for Schema ID 00480 that if Behavior Code ICD-O-3 = "3": 

      Oncotype Dx Risk Level-Invasive must not = "6" (not applicable: in situ
      case).]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-16" ref="67869">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IFN3985" name="Lymphovascular Invasion, Penis, EOD Primary Tumor (SEER)" tag="N3985" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.schemaId != '00570' || line.eodPrimaryTumor == null)
    return true

String lymphVascularInvasion = line.lymphVascularInvasion
if (lymphVascularInvasion == null || lymphVascularInvasion == '8')
    return true

if (Functions.matches(lymphVascularInvasion, /^[1-4]$/))
    return Functions.matches(line.eodPrimaryTumor, /^200|[456]\d\d|700|999$/)

return true]]></expression>
            <message>Lymphovascular Invasion/EOD Primary Tumor conflict for Penis</message>
            <description><![CDATA[Purpose: This edit verifies that Lymphovascular Invasion is coded consistently
with EOD Primary Tumor for Penis.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2019, blank (unknown), or invalid
   b. Schema ID is not 00570
   c. Lymphovascular Invasion is blank or 8 (not applicable)
   d. EOD Primary Tumor is blank


2. If Lymphovascular Invasion = 1-4 (invasion present)
   then EOD Primary Tumor must = 200, 400-700 (with lymphovascular invasion or higher)
   or 999 (unknown extension)]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-13" ref="68147">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN3986" name="Lymphovascular Invasion, Testis, EOD Primary Tumor (SEER)" tag="N3986" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.schemaId != '00590' || line.eodPrimaryTumor == null)
    return true

String lymphVascularInvasion = line.lymphVascularInvasion
if (lymphVascularInvasion == null || lymphVascularInvasion == '8')
    return true

if (Functions.matches(lymphVascularInvasion, /^[1-4]$/) && !Functions.matches(line.eodPrimaryTumor, /^[3-6]\d\d|700|999$/))
    return false

if (line.eodPrimaryTumor == '300' && !Functions.matches(line.lymphVascularInvasion, /^[1-4]$/))
    return false

if (Functions.matches(line.eodPrimaryTumor, /^[12]00|150$/) && !['0','9'].contains(line.lymphVascularInvasion))
    return false

return true]]></expression>
            <message>Lymphovascular Invasion/EOD Primary Tumor conflict for Testis</message>
            <description><![CDATA[Purpose: This edit verifies that Lymph-vascular Invasion is coded consistently
with EOD Primary Tumor for Testis.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2019, blank (unknown), or invalid
   b. Schema ID is not 00590
   c. Lymphovascular Invasion is blank or 8 (not applicable)
   d. EOD Primary Tumor is blank


2. If Lymphovascular Invasion = 1-4 (invasion present)
   then EOD Primary Tumor must = 300-700 (with lymphovascular invasion or higher)
   or 999 (unknown extension)

3. If EOD Primary Tumor = 300, Lymphovascular Invasion must = 1-4 (positive)

4. If EOD Primary Tumor = 100, 150, or 200, Lymphovascular Invasion must = 0
   (negative) or 9 (unknown)]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-13" ref="68147">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-09-01" ref="68730">Added conditions 3 and 4 for EOD Primary Tumor.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN3987" name="TNM Edition Number, AJCC ID (COC)" tag="N3987" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.tnmEditionNumber == null || line.ajccId == null || line.typeOfReportingSource == '7')
    return true
    
if (line.ajccId == 'XX')
    return line.tnmEditionNumber == '88'
else
    return line.dateOfDiagnosisYear < '2022' || line.tnmEditionNumber != '88']]></expression>
            <message>TNM Edition Number must = 88 for this AJCC ID.</message>
            <description><![CDATA[This edit verifies the coding of TNM Edition Number by AJCC ID.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2018, blank (unknown), or invalid
   b. TNM Edition Number is blank
   c. AJCC ID is blank
   d. Type of Reporting Source = 7 (death certificate only)

2. The edit checks that TNM Edition Number is coded 88 for AJCC ID XX.

3. The edit checks that TNM Edition Number is not coded 88 if AJCC ID not blank and not XX, for cases diagnosed 2022+.]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-11" ref="67932">Edit created.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-28" ref="68885">Edit checks that TNM Edition Number is not 88 if AJCC ID is not blank and DX Year is 2022+.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-17" ref="69168">Added skip condition for type of reporting source = 7.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IFN3988" name="SEER Site-Specific Fact 1, Date DX (SEER)" tag="N3988" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
    
if (line.dateOfDiagnosisYear < '2018')
    return line.seerSiteSpecificFact1 == null 
    
return line.seerSiteSpecificFact1 == null || Functions.matches(line.seerSiteSpecificFact1, /^(1[01]|2[01]|3[01]|4[01]|5[01]|7[01]|9[79])$/)]]></expression>
            <message>SEER Site-Specific Fact 1 is not valid for Date DX</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid SEER Site-Specific Fact 1 code or blank:

10: HPV negative by p16 test
11: HPV positive by p16 test
20: HPV negative for viral DNA by ISH test
21: HPV positive for viral DNA by ISH test
30: HPV negative for viral DNA by PCR test
31: HPV positive for viral DNA by PCR test
40: HPV negative by ISH E6/E7 RNA test
41: HPV positive by ISH E6/E7 RNA test
50: HPV negative by RT-PCR E6/E7 RNA test
51: HPV positive by RT-PCR E6/E7 RNA test
70: HPV status reported in medical records as negative but test type is unknown
71: HPV status reported in medical records as positive but test type is unknown
97: Test done, results not in chart
99: Not documented in medical record
HPV test not done, not assessed, or unknown if assessed

Another edit, SEER Site-Specific Fact 1, Schema ID, Required (SEER), checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-13" ref="67933">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-03" ref="68460">Updated description for code &apos;9&apos;.</event>
                <event version="SE24-024-02" user="cooki" date="2024-03-21" ref="69418">Expanded field to two digits.</event>
            </history>
        </rule>
        <rule id="IFN3989" name="SEER Site-Specific Fact 1, Schema ID, Required (SEER)" tag="N3989" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true

return !Functions.matches(line.schemaId, /^00(07[1-7]|100|11[12])$/) || line.seerSiteSpecificFact1 != null]]></expression>
            <message>SEER Site-Specific Fact 1 must not be blank for cases with this Schema ID diagnosed 2018 and later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis = 2018-2022
    e. Registry ID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that SEER Site-Specific Fact 1 is coded (not blank) for the
   Schema IDs for which it is required by a standard setter.

   Required for Schema ID:

    00071:  Lip
    00072:  Tongue Anterior
    00073:  Gum
    00074:  Floor of Mouth
    00075:  Palate Hard
    00076:  Buccal Mucosa
    00077:  Mouth Other
    00100:  Oropharynx HPV-Mediated (p16+)
    00111:  Oropharynx (p16-)
    00112:  Hypopharynx]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-13" ref="67933">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-14" ref="67992">Removed extra space from name.</event>
                <event version="SE18-018-10" user="kirbyk" date="2018-12-13" ref="68076">Added DCO skip condition.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-11" user="beverung" date="2021-12-17" ref="68764">Added skip condition for IL and TX for DX Years 2018-2019.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-22" ref="68959">Changed skip condition for IL to DX Years 2018-2022, TX to 2018-2021.</event>
            </history>
        </rule>
        <rule id="IFN3990" name="SSDI for Breast, Blank for Other Schemas (NAACCR)" tag="N3990" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.schemaId == '00480')
    return true

if (line.dateOfDiagnosisYear < '2021' && (line.ki67 != null || line.her2OverallSummary != null))
    return false

boolean isEstrogenBlank = line.estrogenReceptorPercntPosOrRange == null && line.estrogenReceptorSummary == null
boolean isMultigeneBlank = line.multigeneSignatureMethod == null && line.multigeneSignatureResults == null
boolean isOncBlank = line.oncotypeDxRecurrenceScoreDcis == null && line.oncotypeDxRecurrenceScoreInvasiv == null && line.oncotypeDxRiskLevelDcis == null && line.oncotypeDxRiskLevelInvasive == null
boolean isProgBlank = line.progesteroneRecepPrcntPosOrRange == null && line.progesteroneRecepSummary == null
boolean isOthersBlank = line.lnPositiveAxillaryLevel1To2 == null && line.responseToNeoadjuvantTherapy == null

return isEstrogenBlank && isMultigeneBlank && isOncBlank && isProgBlank && isOthersBlank]]></expression>
            <message>Conflict between schema and coded SSDI items for Breast</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for Breast
(Schema ID 00480) are blank (not coded) for all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank or 00480. 

If Schema ID is not 00480 (Breast), the following Site-Specific Data Items must 
be blank:

    Estrogen Receptor Percent Positive or Range
    Estrogen Receptor Summary
    LN Positive Axillary Level I-II
    Multigene Signature Method
    Multigene Signature Results
    Oncotype Dx Recurrence Score-DCIS
    Oncotype Dx Recurrence Score-Invasive
    Oncotype Dx Risk Level-DCIS
    Oncotype Dx Risk Level-Invasive
    Progesterone Receptor Percent Positive or Range
    Progesterone Receptor Summary
    Response to Neoadjuvant Therapy


If Schema ID is not 00480 (Breast), the following SSDI must be blank for diagnosis date 2018-2020.

    HER2 Overall Summary
    Ki-67 ]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-02" ref="67859">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-05" ref="68465">Updated edit for 2021 cases.</event>
                <event version="SE23-023-11" user="beverung" date="2024-01-30" ref="69380">Removed logic for non-required fields.</event>
            </history>
        </rule>
        <rule id="IFN3991" name="SSDI for Prostate, Blank for Other Schemas (NAACCR)" tag="N3991" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.schemaId == '00580')
    return true
    
boolean isGleasonBlank = line.gleasonPatternsClinical == null && line.gleasonPatternsPathological == null && line.gleasonScoreClinical == null && line.gleasonScorePathological == null && line.gleasonTertiaryPattern == null
boolean isnumCoresBlank = line.numberOfCoresExamined == null && line.numberOfCoresPositive == null

return isGleasonBlank && isnumCoresBlank && line.psaLabValue == null]]></expression>
            <message>Conflict between schema and coded SSDI items for Prostate</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for Prostate
(Schema ID 00580) are blank (not coded) for all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank or 00580. 

If Schema ID is not 00580 (Prostate), the following Site-Specific Data Items 
must be blank:

    Gleason Patterns Clinical
    Gleason Patterns Pathological
    Gleason Score Clinical
    Gleason Score Pathological
    Gleason Tertiary Pattern
    Number of Cores Examined
    Number of Cores Positive
    PSA (Prostatic Specific Antigen) Lab Value]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-13" ref="67882">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-019-03" user="kirbyk" date="2019-07-12" ref="68219">Removed Prostate Pathological Extension from the list of checked fields.</event>
            </history>
        </rule>
        <rule id="IFN3992" name="SSDI for Testis, Blank for Other Schemas (NAACCR)" tag="N3992" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.schemaId == '00590')
    return true
    
boolean isAfpBlank = line.afpPostOrchiectomyLabValue == null && line.afpPostOrchiectomyRange == null && line.afpPreOrchiectomyLabValue == null && line.afpPreOrchiectomyRange == null
boolean isHcgBlank = line.hcgPostOrchiectomyLabValue == null && line.hcgPostOrchiectomyRange == null && line.hcgPreOrchiectomyLabValue == null && line.hcgPreOrchiectomyRange == null
boolean isLdhBlank = line.ldhPostOrchiectomyRange == null && line.ldhPreOrchiectomyRange == null
boolean isSCatBlank = line.sCategoryClinical == null && line.sCategoryPathological == null

return isAfpBlank && isHcgBlank && isLdhBlank && isSCatBlank]]></expression>
            <message>Conflict between schema and coded SSDI items for Testis</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for Testis
(Schema ID 00590) are blank (not coded) for all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank or 00590. 

If Schema ID is not 00590 (Testis), the following Site-Specific Data Items must 
be blank:

    AFP Post-Orchiectomy Lab Value
    AFP Post-Orchiectomy Range
    AFP Pre-Orchiectomy Lab Value
    AFP Pre-Orchiectomy Range
    hCG Post-Orchiectomy Lab Value
    hCG Post-Orchiectomy Range
    hCG Pre-Orchiectomy Lab Value
    hCG Pre-Orchiectomy Range
    LDH Post-Orchiectomy Range
    LDH Pre-Orchiectomy Range
    S Category Clinical
    S Category Pathological]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-19" ref="67842">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN3993" name="SSDI for Kidney, Blank for Other Schemas (NAACCR)" tag="N3993" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.schemaId == '00600')
    return true
       
return line.invasionBeyondCapsule == null && line.ipsilateralAdrenalGlandInvolve == null && line.majorVeinInvolvement == null && line.sarcomatoidFeatures == null]]></expression>
            <message>Conflict between schema and coded SSDI items for Kidney</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for Kidney
Parenchyma (Schema ID 00600) are blank (not coded) for all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank or 00600. 

If Schema ID is not 00600 (Kidney Parenchyma), the following Site-Specific Data 
Items must be blank:

    Invasion Beyond Capsule
    Ipsilateral Adrenal Gland Involvement
    Major Vein Involvement
    Sarcomatoid Features]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-24" ref="67909">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IFN3994" name="SSDI for Liver &amp; Biliary, Blank for Other Schemas (NAACCR)" tag="N3994" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null)
    return true
    
if (line.schemaId != '00220'){
    if (line.afpPretreatmentInterpretation != null || line.afpPretreatmentLabValue != null)
        return false

    if (line.bilirubinPretxTotalLabValue != null || line.bilirubinPretxUnitOfMeasure != null)
        return false

    if (line.creatininePretreatmentLabValue != null || line.creatininePretxUnitOfMeasure != null || line.iNRProthrombinTime != null)
        return false
}
    
if (line.schemaId != '00230' && line.schemaId != '00220' && line.fibrosisScore != null)
    return false

return true]]></expression>
            <message>Conflict between schema and coded SSDI items for Liver &amp; Biliary</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for Liver
(Schema ID 00220), Intrahepatic Bile Duct (Schema ID 00230), and Bile Duct
Perihilar (Schema ID 00250) are blank (not coded) for all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank.

If Schema ID is not 00220 (Liver), the following Site-Specific Data Items must 
be blank:

    AFP Pretreatment Interpretation
    AFP Pretreatment Lab Value
    Bilirubin Pretreatment Total Lab Value
    Bilirubin Pretreatment Unit of Measure
    Creatinine Pretreatment Lab Value
    Creatinine Pretreatment Unit of Measure
    International Normalized Ratio Prothrombin Time

If Schema ID is not 00220 (Liver) or 00230 (Intrahepatic Bile Duct), the
following Site-Specific Data Item must be blank:

    Fibrosis Score]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-24" ref="67833">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE23-023-11" user="beverung" date="2024-01-30" ref="69380">Removed logic for Primary Sclerosing Cholangitis and Tumor Growth Pattern.</event>
            </history>
        </rule>
        <rule id="IFN3995" name="SSDI for Head &amp; Neck, Blank for Other Schemas (NAACCR)" tag="N3995" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null)
    return true

boolean isBlankLn = line.lnHeadAndNeckLevels1To3 == null && line.lnHeadAndNeckLevels4To5 == null && line.lnHeadAndNeckLevels6To7 == null && line.lnHeadAndNeckOther == null
boolean isBlankExtranodal = line.extranodalExtensionHeadNeckClin == null && line.extranodalExtensionHeadNeckPath == null

if (line.schemaId != '00060' && line.schemaId != '00140' && !isBlankLn)
    return false

if (!Functions.matches(line.schemaId, /^00(07[1-7]|100|11[12])$/) && line.seerSiteSpecificFact1 != null)
    return false
   
if (!Functions.matches(line.schemaId, /^00(0([689]0|7[1-7])|1([034]0|[1-3][12]|33))$/)) {
    if (!isBlankExtranodal)
        return false
    if (line.schemaId != '00150' && line.lnSize != null)
        return false  
}

return true]]></expression>
            <message>Conflict between schema and coded SSDI items for Head &amp; Neck</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for Head and 
Neck schemas (see list of Schema IDs below) are blank (not coded) for all other 
schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank. 

If Schema ID is not 00060 (Cervical Nodes, Unknown Primary) or 00140 (Melanoma
Head and Neck), the following Site-Specific Data Items must be blank:

    LN Head and Neck Levels I-III
    LN Head and Neck Levels IV-V
    LN Head and Neck Levels VI-VII
    LN Head and Neck Other

If Schema ID is not 00071 (Lip)
                    00072 (Tongue Anterior)
                    00073 (Gum)
                    00074 (Floor of Mouth)
                    00075 (Palate Hard)
                    00076 (Buccal Mucosa)
                    00077 (Mouth Other)
                    00100 (Oropharynx p16+)
                    00111 (Oropoharynx p16-)
                    00112 (Hypopharynx)
the following SSDI item must be blank:

    SEER Site-Specific Fact 1


if Schema ID is not 00060 (Cervical Nodes, Unknown Primary)
                    00071 (Lip)
                    00072 (Tongue Anterior)
                    00073 (Gum)
                    00074 (Floor of Mouth)
                    00075 (Palate Hard)
                    00076 (Buccal Mucosa)
                    00077 (Mouth Other)
                    00080 (Major Salivary Glands)
                    00090 (Nasopharynx)
                    00100 (Oropharynx p16+)
                    00111 (Oropoharynx p16-)
                    00112 (Hypopharynx)
                    00121 (Maxillary Sinus)
                    00122 (Nasal Cavity and Ethmoid Sinus)
                    00130 (Larynx Other)
                    00131 (Larynx Supraglottic)
                    00132 (Larynx Glottic)
                    00133 (Larynx Subglottic)
                    00140 (Melanoma Head and Neck)
the following Site-Specific Data Items musts be blank:

    Extranodal Extension Head and Neck Clinical
    Extranodal Extension Head and Neck Pathological

If Schema ID is not 00060 (Cervical Nodes, Unknown Primary)
                    00071 (Lip)
                    00072 (Tongue Anterior)
                    00073 (Gum)
                    00074 (Floor of Mouth)
                    00075 (Palate Hard)
                    00076 (Buccal Mucosa)
                    00077 (Mouth Other)
                    00080 (Major Salivary Glands)
                    00090 (Nasopharynx)
                    00100 (Oropharynx p16+)
                    00111 (Oropoharynx p16-)
                    00112 (Hypopharynx)
                    00121 (Maxillary Sinus)
                    00122 (Nasal Cavity and Ethmoid Sinus)
                    00130 (Larynx Other)
                    00131 (Larynx Supraglottic)
                    00132 (Larynx Glottic)
                    00133 (Larynx Subglottic)
                    00140 (Melanoma Head and Neck)
                    00150 (Cutaneous Carcinoma of the Head and Neck)
the following Site-Specific Data Item must be blank:

    LN Size]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-18" ref="67831">Edit created.</event>
                <event version="SE18-018-05" user="kirbyk" date="2018-08-17" ref="68020">Changed schema name for 00150.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IFN3996" name="SSDI for Esophagus, Blank for Other Schemas (NAACCR)" tag="N3996" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.schemaId == '00161')
    return true

return line.esophagusAndEgjTumorEpicenter == null]]></expression>
            <message>Conflict between schema and coded SSDI items for Esophagus</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for Esophagus
and GE Junction (Squamous) (Schema ID 00161) are blank (not coded) for all other 
schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank or 00161. 

If Schema ID is not 00161 (Esophagus and GE Junction (Squamous)), the following 
Site-Specific Data Item must be blank:

    Esophagus and EGJ Tumor Epicenter]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-25" ref="67893">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN3997" name="SSDI for Appendix &amp; Colorectal, Blank for Other Schemas (NAACCR)" tag="N3997" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null)
    return true
    
if (line.schemaId != '09190' && line.histologicSubtype != null)
    return false

if (line.schemaId != '00200'){
    
    if (line.kras != null || line.circumferentialResectionMargin != null || line.microsatelliteInstability != null || line.tumorDeposits != null)
        return false
    else if (line.brafMutationalAnalysis != null || line.nrasMutationalAnalysis != null)
        return false
    
    if (line.schemaId != '00190' && line.schemaId != '09190' && (line.ceaPretreatmentInterpretation != null || line.ceaPretreatmentLabValue != null))
        return false    
}

return true]]></expression>
            <message>Conflict between schema and coded SSDI items for Appendix &amp; Colorectal</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for Appendix
Carcinoma (Schema ID 00190) and Colon and Rectum (Schema ID 00200) are blank 
(not coded) for all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank.

If Schema ID is not 09190 (Appendix [V9: 2023+] the following Site-Specific
Data Item must be blank:
    Histologic Subtype

If Schema ID is not 00190 (Appendix [8th: 2018-2020]), 09190 (Appendix [V9: 2023+])
or 00200 (Colon and Rectum), the following Site-Specific Data Items must be blank:

    CEA Pretreatment Interpretation
    CEA Pretreatment Lab Value

If Schema ID is not 00200 (Colon and Rectum), the following Site-Specific 
Data Items must be blank:

    Circumferential Resection Margin (CRM)
    BRAF Mutational Analysis
    KRAS
    Microsatellite Instability (MSI)
    NRAS Mutational Analysis
    Tumor Deposits

NOTE: Perineural Invasion, also collected for Colon and Rectum, is included in another edit.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-18" ref="67832">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-03" ref="68464">Added BRAF Mutational Analysis and NRAS Mutational Analysis to fields that must be blank.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-14" ref="69140">Added Histologic Subtype field that must be blank and logic for Schema ID 09190.</event>
            </history>
        </rule>
        <rule id="IFN3998" name="SSDI for Lung &amp; Pleura, Blank for Other Schemas (NAACCR)" tag="N3998" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null)
    return true

boolean ssdisAreBlank = line.separateTumorNodules == null && line.visceralParietalPleuralInvasion == null && line.alkRearrangement == null && line.egfrMutationalAnalysis == null
if (line.schemaId != '00360' && !ssdisAreBlank)
    return false

if (line.schemaId != '00370' && line.pleuralEffusion != null)
    return false

return true]]></expression>
            <message>Conflict between schema and coded SSDI items for Lung &amp; Pluera</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for Lung
(Schema ID 00360) and Pleural Mesothelioma (Schema ID 00370) are blank (not
coded) for all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank.

If Schema ID is not 00360 (Lung), the following Site-Specific Data Items must be
blank:

    ALK Rearrangement
    EGFR Mutational Analysis
    Separate Tumor Nodules
    Visceral and Parietal Pleural Invasion

If Schema ID is not 00370 (Pleural Mesothelioma), the following Site-Specific
Data Item must be blank:

    Pleural Effusion]]></description>
            <history>
                <event version="SE18-018-04" user="kirbyk" date="2018-08-01" ref="67856">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-05" ref="68466">Added new SSDIs from NAACCR 21.</event>
            </history>
        </rule>
        <rule id="IFN3999" name="SSDI for Bone, Blank for Other Schemas (NAACCR)" tag="N3999" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null)
    return true

if (!Functions.matches(line.schemaId, /^0038[1-3]$/) && line.percentNecrosisPostNeoadjuvant != null)
    return false

return true]]></expression>
            <message>Conflict between schema and coded SSDI items for Bone</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for Bone
(Schema IDs 00381, 00382, and 00383) are blank (not coded) for all other 
schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank. 

If Schema ID is not 00381 (Bone Appendicular Skeleton), 00382 (Bone Spine), or 
00383 (Bone Pelvis), the following Site-Specific Data Item must be blank:

    Percent Necrosis Post Neoadjuvant]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-18" ref="67838">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN4000" name="SSDI for Soft Tissue, Blank for Other Schemas (NAACCR)" tag="N4000" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null)
    return true
    
return Functions.matches(line.schemaId, /^004([014]0|2[12]|5[09])$/) || line.boneInvasion == null]]></expression>
            <message>Conflict between schema and coded SSDI items for Soft Tissue</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for Soft 
Tissues (Schema IDs 00400, 00410, 00421, 00422, 00440, 00450, and 00459) are blank (not coded)
for all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank. 

If Schema ID is not 00400 (Soft Tissues Head and Neck)
                    00410 (Soft Tissues Trunk and Extremities)
                    00421 (Soft Tissues Abdomen and Thorax)
                    00422 (Heart, Mediastinum, Pleura)
                    00440 (Soft Tissues Retroperitoneum)
                    00450 (Soft Tissues Unusual)
                    00459 (Soft Tissues Other)
 the following Site-Specific Data Item must be blank:

    Bone Invasion]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-03" ref="67876">Edit Created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-12" ref="68848">Added schema ID 00459 to edit logic.</event>
            </history>
        </rule>
        <rule id="IFN4001" name="SSDI for GIST, Blank for Other Schemas (NAACCR)" tag="N4001" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.schemaId == '00430')
    return true
    
return line.kitGeneImmunohistochemistry == null]]></expression>
            <message>Conflict between schema and coded SSDI items for GIST</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for GIST
(Schema ID 00430) are blank (not coded) for all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank or 00430. 

If Schema ID is not 00430 (GIST), the following Site-Specific Data Item must be 
blank:

    KIT Gene Immunohistochemistry]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-25" ref="67877">Edit Created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN4002" name="SSDI for Skin, Blank for Other Schemas (NAACCR)" tag="N4002" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null)
    return true
    
if (line.schemaId != '00150' && line.highRiskHistologicFeatures != null)
    return false
    
if (line.schemaId != '00460' && (line.lnIsolatedTumorCells != null || line.profoundImmuneSuppression != null))
    return false
 
boolean isBlankLdh = line.ldhPretreatmentLabValue == null && line.ldhUpperLimitsOfNormal == null
if (line.schemaId != '00470' && (line.breslowTumorThickness != null || line.clinicalMarginWidth != null || line.mitoticRateMelanoma != null || line.ulceration != null || !isBlankLdh))
    return false
    
return true]]></expression>
            <message>Conflict between schema and coded SSDI items for Skin</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for Cutaneous
Carcinoma of the Head and Neck (Schema ID 00150), Merkel Cell (Schema 
ID 00460) and Melanoma of Skin (Schema ID 00470), and are blank (not coded) for 
all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank.

If Schema ID is not 00150 (Cutaneous Carcinoma of the Head and Neck), 
the following Site-Specific Data Item must be blank:

    High Risk Histologic Features

If Schema ID is not 00460 (Merkel Cell), the following Site-Specific Data Items 
must be blank:

    LN Isolated Tumor Cells (ITC)
    Profound Immune Suppression

If Schema ID is not 00470 (Melanoma of Skin), the following Site-Specific Data 
Items must be blank:

    Breslow Tumor Thickness
    Clinical Margins Width
    LDH Lab Value
    LDH Upper Limits of Normal
    Mitotic Rate Melanoma
    Ulceration]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-19" ref="67839">Edit Created.</event>
                <event version="SE18-018-05" user="kirbyk" date="2018-08-17" ref="68020">Changed schema name for 00150.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-06" ref="68467">Change LDH Pretreatment Lab Value to LDH Lab Value.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-02" ref="69151">Check whether Clinical Margins Width is blank.</event>
            </history>
        </rule>
        <rule id="IFN4003" name="SSDI for Vulva, Vagina, Cervix, Blank for Other Schemas (NAACCR)" tag="N4003" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null)
    return true
    
if (!['00500', '09500'].contains(line.schemaId) && line.lnLaterality != null)
    return false

if (!['00500', '09500', '00510'].contains(line.schemaId) && (line.lnAssessMethodFemoralInguinal != null || line.lnStatusFemoralInguinal != null))
    return false
     
if (!['00500', '09500', '00510', '00520', '09520'].contains(line.schemaId) && (line.lnAssessMethodPelvic != null || line.lnStatusPelvic != null))
    return false
    
boolean ssdisAreBlank = (line.lnAssessMethodParaaortic == null && line.lnDistantAssessMethod == null && line.lnDistantMediastinalScalene == null && line.lnStatusParaAortic == null) 
if (!['00510', '00520', '09520'].contains(line.schemaId) && !ssdisAreBlank)
    return false
    
return true]]></expression>
            <message>Conflict between schema and coded SSDI items for Vulva, Vagina, Cervix</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for Vulva
(Schema ID 00500), Vagina (Schema ID 00510), and Cervix (Schema IDs 00520, 09520) are blank (not coded) for all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank.

If Schema ID is not 00500 (Vulva) or 09500 (Vulva), the following Site-Specific Data Item must be blank:

    LN Laterality
    
If Schema ID is not 00500 (Vulva), 09500 (Vulva), or 00510 (Vagina), the following
Site-Specific Data Items must be blank:

    LN Assessment Method Femoral-Inguinal
    LN Status Femoral-Inguinal
    
If Schema ID is not 00500 (Vulva), 09500 (Vulva), 00510 (Vagina), 00520 (Cervix), or 09520
(Cervix), the following Site-Specific Data Items must be blank:

    LN Assessment Method Pelvic
    LN Status Pelvic
    
If Schema ID is not 00510 (Vagina), 00520 (Cervix), or 09520 (Cervix), the following Site-Specific Data Items must be blank:

    LN Assessment Method Para-Aortic
    LN Distant Assessment Method
    LN Distant: Mediastinal, Scalene
    LN Status Para-Aortic

NOTE: FIGO Stage, also collected for these schemas, is included in another edit]]></description>
            <history>
                <event version="SE18-018-02" user="schadega" date="2018-06-04" ref="67814">Edit Created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-06" ref="68468">Added &apos;09520&apos; to Schema IDs for Cervix.</event>
                <event version="SE22-022-01" user="smithm" date="2022-03-04" ref="68894">Updated SSDI requirements for NAACCR 22.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-17" ref="69167">Updated years for p16 when Schema ID is not 09520.</event>
                <event version="SE24-024-03" user="kirbyk" date="2024-03-20" ref="69421">Added conditions for Schema ID = 09500; removed conditions for p16.</event>
            </history>
        </rule>
        <rule id="IFN4004" name="SSDI for Corpus Uteri, Blank for Other Schemas (NAACCR)" tag="N4004" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null)
    return true

if (!['00530', '00541', '00542', '00528'].contains(line.schemaId))
    return line.numberOfPositiveParaAorticNodes == null && line.numberOfExaminedParaAorticNodes == null && line.numberOfPositivePelvicNodes == null &&
           line.numberOfExaminedPelvicNodes == null && line.peritonealCytology == null
    
return true]]></expression>
            <message>Conflict between schema and coded SSDI items for Corpus Uteri</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for Corpus
Carcinoma (Schema ID 00530), Corpus Sarcoma (Schema ID 00541), and Corpus
Adenosarcoma (Schema ID 00542) are blank (not coded) for all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank.

If Schema ID is not 00530 (Corpus Carcinoma), 00541 (Corpus Sarcoma) 00542
(Corpus Adenosarcoma), or 00528 (Cervix Sarcoma [2021) the following Site-Specific Data Items must be blank:

    Number of Positive Para-Aortic Nodes
    Number of Examined Para-Aortic Nodes
    Number of Positive Pelvic Nodes
    Number of Examined Pelvic Nodes
    Peritoneal Cytology


NOTE: FIGO Stage, also collected for these schemas, is included in another edit]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-20" ref="67823">Edit Created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="smithm" date="2022-02-15" ref="68831">Add 00528 to skip condition</event>
            </history>
        </rule>
        <rule id="IFN4005" name="SSDI for Ovary, Fallopian Tube, Primary Peritoneal, Blank for Other Schemas (NAACCR)" tag="N4005" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null)
    return true

if (line.schemaId != '00551' && line.schemaId != '00552' && line.schemaId != '00553')
    return line.ca125PretreatmentInterpretation == null && line.residualTumVolPostCytoreduction == null
    
return true]]></expression>
            <message>Conflict between schema and coded SSDI items for Ovary, Fallopian Tube, Primary Peritoneal</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for Ovary 
(Schema ID 00551, Fallopian Tube (Schema ID 00552), and Primary Peritoneal
Carcinoma (Schema ID 00552) are blank (not coded) for all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank. 

If Schema ID is not 00551 (Ovary), 00552 (Fallopian Tube), or 00553 (Primary
Peritoneal Carcinoma), the following Site-Specific Data Items must be blank:

    CA-125 Pretreatment Interpretation
    Residual Tumor Volume Post Cytoreduction


NOTE: FIGO Stage, also collected for these schemas, is included in another edit]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-13" ref="67827">Edit Created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-14" ref="67994">Remove space from name.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IFN4006" name="SSDI for Placenta, Blank for Other Schemas (NAACCR)" tag="N4006" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.schemaId == '00560')
    return true
    
return line.gestationalTrophoblasticPxIndex == null]]></expression>
            <message>Conflict between schema and coded SSDI items for Placenta</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for Placenta
(Schema ID 00560) are blank (not coded) for all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank or 00560. 

If Schema ID is not 00560 (Placenta), the following Site-Specific Data Item must 
be blank:

    Gestational Trophoblastic Prognostic Scoring Index


NOTE: FIGO Stage, also collected for this schema, is included in another edit]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-11" ref="67896">Edit Created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IFN4007" name="SSDI for Ophthalmic Melanoma, Blank for Other Schemas (NAACCR)" tag="N4007" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null)
    return true
    
if (line.schemaId != '00671' && line.schemaId != '00672') {
    if (line.schemaId != '00660' && line.measuredThickness != null)
        return false
        
    if (line.chromosome3Status != null || line.chromosome8qStatus != null || line.extravascularMatrixPatterns != null)
        return false
        
    if (line.measuredBasalDiameter != null || line.microvascularDensity != null || line.mitoticCountUvealMelanoma != null)
        return false
}
   
return true]]></expression>
            <message>Conflict between schema and coded SSDI items for Ophthalmic Melanoma</message>
            <description><![CDATA[[This edit verifies that Site-Specific Data Items that are defined for 
Conjunctival Melanoma (Schema ID 00660) and Uveal Melanoma (Schema IDs 00671 
and 00672) are blank (not coded) for all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank.

If Schema ID is not 00660 (Conjunctival Melanoma), 00671 (Melanoma of Iris),
and 00672 (Melanoma of Choroid and Ciliary Body), the following Site-Specific 
Data Item must be blank:

    Measured Thickness

If Schema ID is not 00671 (Melanoma of Iris) and 00672 (Melanoma of Choroid and 
Ciliary Body), the following Site-Specific Data Items must be blank:

    Chromosome 3 Status
    Chromosome 8q Status
    Extravascular Matrix Patterns
    Measured Basal Diameter
    Microvascular Density
    Mitotic Count Uveal Melanoma]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-02" ref="67846">Edit Created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN4008" name="SSDI for Retinoblastoma, Blank for Other Schemas (NAACCR)" tag="N4008" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null)
    return true

if (line.schemaId != '00680')
    return line.heritableTrait == null
    
return true]]></expression>
            <message>Conflict between schema and coded SSDI items for Retinoblastoma</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for
Retinoblastoma (Schema ID 00680) are blank (not coded) for all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank or 00680.

If Schema ID is not 00680 (Retinoblastoma), the following Site-Specific Data Item must
be blank:

    Heritable Trait]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-10" ref="67899">Edit Created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN4009" name="SSDI for Lacrimal Gland, Blank for Other Schemas (NAACCR)" tag="N4009" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.schemaId == '00690')
    return true

return line.adenoidCysticBasaloidPattern == null]]></expression>
            <message>Conflict between schema and coded SSDI items for Lacrimal Gland</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for Lacrimal 
Gland (Schema ID 00690) are blank (not coded) for all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank or 00690. 

If Schema ID is not 00690 (Lacrimal Gland), the following Site-Specific Data Item must 
be blank:

    Adenoid Cystic Basaloid Pattern


NOTE: Perineural Invasion, also collected for this schema, is included in another edit]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-16" ref="67855">Edit Created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN4010" name="SSDI for Brain, CNS, Blank for Other Schemas (NAACCR)" tag="N4010" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null)
    return true

if (!['00721','09721','00722','09722','09724'].contains(line.schemaId))
    return line.brainPrimaryTumorLocation == null && line.brainMolecularMarkers == null && line.chromosome1pLossHeterozygosity == null && line.chromosome19qLossHeterozygosity == null && line.methylationOfO6MGMT == null
if (!['00721','09721','00722','09722'].contains(line.schemaId))
    return line.brainPrimaryTumorLocation == null && line.chromosome1pLossHeterozygosity == null && line.chromosome19qLossHeterozygosity == null && line.methylationOfO6MGMT == null
if (line.schemaId != '09721')
    return line.brainPrimaryTumorLocation == null


return true]]></expression>
            <message>Conflict between schema and coded SSDI items for Brain, CNS</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for Brain
(Schema ID 00721) and CNS Other (Schema ID 00722) are blank (not coded) for
all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank.

If Schema ID is not 00721, 09721 (Brain), 00722, 09722 (CNS Other), or 09724 (Medulloblastoma),
the following Site-Specific Data Item must be blank:

Brain Molecular Markers

If Schema ID is not 00721, 09721 (Brain), or 00722, 09722 (CNS Other),
the following Site-Specific Data Item must be blank:


Chromosome 1p: Loss of Heterozygosity (LOH)
Chromosome 19q: Loss of Heterozygosity (LOH)
Methylation of O6-Methylguanine-Methyltransferase

If Schema ID is not 09721,
the following Site-Specific Data Item must be blank:

Brain Primary Tumor Location]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-13" ref="67810">Edit Created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
                <event version="SE23-023-01" user="cooki" date="2023-02-21" ref="69149">Updated logic for new Schema IDs 09721, 09722, and 09724.</event>
                <event version="SE24-024-03" user="cooki" date="2024-03-15" ref="69419">Added Brain Primary Tumor Location condition.</event>
            </history>
        </rule>
        <rule id="IFN4011" name="SSDI for Lymphoma, Blank for Other Schemas (NAACCR)" tag="N4011" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null)
    return true
    
if (line.schemaId != '00790' && line.schemaId != '00795' && (line.bSymptoms != null || line.hivStatus != null || line.nccnInternationalPrognosticIndex != null))
    return false
if (line.schemaId != '00795' && (line.adenopathy != null || line.anemia != null || line.derivedRaiStage != null || line.lymphocytosis != null || line.organomegaly != null || line.thrombocytopenia != null))
    return false
    
return true]]></expression>
            <message>Conflict between schema and coded SSDI items for Lymphoma</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for Lymphoma
(Schema ID 00790) and Lymphoma CLL/SLL (Schema ID 00795) are blank (not coded)
for all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank.

If Schema ID is not 00790 (Lymphoma) and 00795 (Lymphoma, CLL/SLL), the
following Site-Specific Data Items must be blank:

    B Symptoms
    HIV Status
    NCCN International Prognostic Index (IPI)

If Schema ID is not 00795 (Lymphoma,CLL/SLL), the following Site-Specific Data
Items must be blank:

    Adenopathy
    Anemia
    Derived Rai Stage
    Lymphocytosis
    Organomegaly
    Thrombocytopenia]]></description>
            <history>
                <event version="SE18-018-04" user="kirbyk" date="2018-08-01" ref="67828">Edit Created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-21" ref="68863">Added logic for Derived Rai Stage.</event>
            </history>
        </rule>
        <rule id="IFN4012" name="SSDI for Plasma Cell Myeloma, Blank for Other Schemas (NAACCR)" tag="N4012" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.schemaId == '00821')
    return true
    
return line.highRiskCytogenetics == null && line.serumAlbuminPretreatmentLevel == null && line.serumBeta2MicroglobulinPretxLvl == null]]></expression>
            <message>Conflict between schema and coded SSDI items for Plasma Cell Myeloma</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for Plasma 
Cell Myeloma (Schema ID 00821) are blank (not coded) for all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank or 00821.

If Schema ID is not 00821 (Plasma Cell Myeloma), the following Site-Specific 
Data Items must be blank:

    High Risk Cytogenetics
    Serum Albumin Pretreatment Level
    Serum Beta-2 Microglobulin Pretreatment Level


NOTE: LDH Pretreatment level, also collected for this schema, is included in
another edit.]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-17" ref="67906">Edit Created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IFN4013" name="SSDI for HemeRetic, Blank for Other Schemas (NAACCR)" tag="N4013" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.schemaId == '00830')
    return true
    
return line.jak2 == null]]></expression>
            <message>Conflict between schema and coded SSDI items for HemeRetic</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for HemeRetic
(Schema ID 00830) are blank (not coded) for all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank or 00830. 

If Schema ID is not 00830 (HemeRetic), the following Site-Specific Data Item must 
be blank:

    JAK2]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-01" ref="67829">Edit Created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN4014" name="SSDI Perineural Invasion, Blank for Other Schemas (NAACCR)" tag="N4014" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null)
    return true
    
String id = line.schemaId    
return id == '00150' || id == '00200' || id == '00640' || id == '00690' || line.perineuralInvasion == null]]></expression>
            <message>Conflict between schema and coded SSDI items for Perineural Extension</message>
            <description><![CDATA[This edit verifies that the Site-Specific Data Item Perineural Invasion is blank
for schemas for which it is not collected. This SSDI is collected for 
Cutaneous Carcinoma of the Head and Neck (Schema ID 00150), Colon and Rectum (Schema ID
00200), Skin of Eyelid (Schema ID 00640), and Lacrimal Gland (Schema ID 00690).

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank.

If Schema ID is not 00150 (Cutaneous Carcinoma of the Head and Neck), 00200 (Colon and
Rectum), 00640 (Skin of Eyelid), and 00690 (Lacrimal Gland), the following Site-
Specific Data Item must be blank:

    Perineural Invasion]]></description>
            <history>
                <event version="SE18-018-04" user="schadega" date="2018-08-02" ref="67874">Edit Created.</event>
                <event version="SE18-018-05" user="kirbyk" date="2018-08-17" ref="68020">Changed schema name for 00150.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN4015" name="SSDI Extranodal Extension non-H&amp;N, Blank for Other Schemas (NAACCR)" tag="N4015" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null)
    return true
    
return (line.schemaId == '00460' || line.schemaId == '00570') || (line.extranodalExtensionPath == null && line.extranodalExtensionClin == null)]]></expression>
            <message>Conflict between schema and coded SSDI items for Extranodal Extension non-H&amp;N</message>
            <description><![CDATA[This edit verifies that the Site-Specific Data Items Extranodal Extension Clin
(non-Head and Neck) and Extranodal Extension Path (non-Head and Neck) are blank
for schemas for which they are not collected. These SSDIs are collected for 
Merkel Cell (Schema ID 00460) and Penis (Schema ID 00570). 

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank.

If Schema ID is not 00460 (Merkel Cell) and 00570 (Penis), the following Site-
Specific Data Items must be blank:

    Extranodal Extension Clin (non-Head and Neck)
    Extranodal Extension Path (non-Head and Neck)]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-25" ref="67917">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN4016" name="SSDI LDH Level, Blank for Other Schemas (NAACCR)" tag="N4016" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null)
    return true
    
return line.schemaId == '00470' || line.schemaId == '00821' || line.ldhPretreatmentLevel == null]]></expression>
            <message>Conflict between schema and coded SSDI items for LDH Level</message>
            <description><![CDATA[This edit verifies that the Site-Specific Data Item LDH Level is
blank for schemas for which it is not collected. This SSDI is collected for 
Melanoma of Skin (Schema ID 00470)and Plasma Cell Myeloma (Schema ID 00821). 

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank.

If Schema ID is not 00470 (Melanoma of Skin) and 00821 (Plasma Cell Myeloma), the 
following Site-Specific Data Item must be blank:

    LDH Level]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-25" ref="67908">Edit Created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-06" ref="68469">Changed LDH Pretreatment Level to LDH Level</event>
            </history>
        </rule>
        <rule id="IFN4017" name="SSDI FIGO Stage, Blank for Other Schemas (NAACCR)" tag="N4017" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null)
    return true

String[] schemaIds = ['00500','09500','00510','00520','09520','00530','00541','00542','00551','00552','00553','00560','00528']
if (!schemaIds.contains(line.schemaId))
    return line.figoStage == null
    
return true]]></expression>
            <message>Conflict between schema and coded SSDI items for FIGO Stage</message>
            <description><![CDATA[This edit verifies that the Site-Specific Data Item FIGO Stage is blank for
schemas for which it is not collected. This SSDI is collected for gynecologic
schemas: Vulva (Schema ID 00500), Vagina (Schema ID 00510), Cervix (Schema IDs
00520, 09520), Corpus (Schema IDs 00530, 00541, 00542), Ovary (Schema ID 00551),
Fallopian Tube (Schema ID 00552), Primary Peritoneal Carcinoma (Schema ID 00553),
Placenta (Schema ID 00560).

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank.

If Schema ID is not 00500 or 09500 (Vulva), 00510 (Vagina), 00520 or 09520 (Cervix), 00530
(Corpus Carcinoma), 00541 (Corpus Sarcoma), 00542 (Corpus Adenosarcoma),
00551 (Ovary), 00552 (Fallopian Tube), 00553 (Primary Peritoneal Carcinoma), or
00560 (Placenta), 00528 (Cervix Sarcoma [2021]) the following Specific Data Item must be blank:

    FIGO Stage]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-15" ref="67813">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-04" ref="68463">Added &apos;09520&apos; as a Cervix Schema ID.</event>
                <event version="SE22-022-01" user="smithm" date="2022-02-15" ref="68831">Add 00528 to skip condition</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-04" ref="69403">Added logic for Schema ID 09500.</event>
            </history>
        </rule>
        <rule id="IFN4018" name="SSDI for Mycosis Fungoides, Blank for Other Schemas (NAACCR)" tag="N4018" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.schemaId == '00811')
    return true
    
return line.peripheralBloodInvolvement == null]]></expression>
            <message>Conflict between schema and coded SSDI items for Mycosis Fungoides</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for Mycosis
Fungoides (Schema ID 00811) are blank (not coded) for all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank or 00811. 

If Schema ID is not 00811 (Mycosis Fungoides), the following Site-Specific Data 
Item must be blank:

    Peripheral Blood Involvement]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-10" ref="67905">Edit created.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-14" ref="67994">Remove space from name.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN4200" name="PhI Radiation External Beam Planning Tech, Date DX, CoC Flag (SEER)" tag="N4200" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.cocAccreditedFlag != '1' || line.typeOfReportingSource == '7')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true

if (line.phase1RadiationTreatmentModality == '00' || line.phase1RadiationTreatmentModality == '99')
    return true

return line.phase1RadiationExternalBeamTech != null]]></expression>
            <message>Phase I Radiation External Beam Planning Tech not a valid value.</message>
            <description><![CDATA[This edit checks that radiation items defined for 2018 are reported by standard
setter requirements for diagnoses 1/1/2018 and later.

1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. CoC Accredited Flag not = 1
    c. Phase I Radiation Treatment Modality is 00 or 99
    d. If Type of Reporting Source = 7 (death certificate only)
    e. Registry ID = 0000001565 (Illinois) and Year of Diagnosis = 2018-2022
    f. Registry ID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

PhI Radiation External Beam Planning Tech is required by SEER only if collected by
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).

2. If the year of Date of Diagnosis is 2018 or later, Phase I Radiation External
   Beam Planning Technique may not be blank.]]></description>
            <history>
                <event version="SE18-018-10" user="kirbyk" date="2018-12-05" ref="68055">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-30" ref="68327">Added skip condition for Type of Reporting Source = 7.</event>
                <event version="SE21-021-11" user="beverung" date="2021-12-22" ref="68768">Added skip condition for TX for DX Year 2018-2019.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-22" ref="68959">Changed skip condition for IL to DX Years 2018-2022, TX to 2018-2021.</event>
            </history>
        </rule>
        <rule id="IFN4201" name="PhI, II, III Radiation External Beam Planning Tech (SEER)" tag="N4201" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018')
    return true
if (line.phase1RadiationExternalBeamTech == null && line.phase2RadiationExternalBeamTech == null && line.phase3RadiationExternalBeamTech == null)
    return true

if (line.phase2RadiationExternalBeamTech != null && line.phase1RadiationExternalBeamTech == null)
    return false
if (line.phase1RadiationExternalBeamTech == '00' && line.phase2RadiationExternalBeamTech != '00' && line.phase2RadiationExternalBeamTech != null)
    return false
if (line.phase3RadiationExternalBeamTech != null && line.phase2RadiationExternalBeamTech == null)
    return false
if (line.phase2RadiationExternalBeamTech == '00' && line.phase3RadiationExternalBeamTech != '00' && line.phase3RadiationExternalBeamTech != null)
    return false

return true]]></expression>
            <message>Phases of Radiation External Beam Planning Tech conflict.</message>
            <description><![CDATA[This edit checks that Phase I Radiation External Beam Planning Tech, Phase II
Radiation External Beam Planning Tech, and Phase III Radiation External Beam
Planning Tech are coded consistently with each other.

1.  The edit is skipped for any of the following conditions:
    a. Phase I Radiation External Beam Planning Tech, Phase II Radiation External
        Beam Planning Tech, and Phase III Radiation External Beam Planning Tech
       are all blank.
    b. Diagnosis date pre-2018, blank (unknown), or invalid.

2.  If Phase II Radiation External Beam Planning Tech is not blank, then Phase I
    Radiation External Beam Planning Tech cannot be blank.

3.  If Phase I Radiation External Beam Planning Tech = 00 (no radiation given),
    Phase II Radiation External Beam Planning Tech must = 00 or blank

4.  If Phase III Radiation External Beam Planning Tech is not blank, Phase II
    Radiation External Beam Planning Tech cannot be blank.

5.  If Phase II Radiation External Beam Planning Tech = 00 (no radiation given),
    Phase III Radiation External Beam Planning Tech must = 00 or blank]]></description>
            <history>
                <event version="SE18-018-10" user="kirbyk" date="2018-11-30" ref="68063">Edit created.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-28" ref="68145">Edit is now skipped when CoC Accredited Flag is not 1.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-27" ref="68947">Update edit name and remove CoC Accredited Flag.</event>
            </history>
        </rule>
        <rule id="IFN4205" name="_SYS AJCC ID, Site, Histo, Age (NAACCR)" tag="N4205" java-path="lines.line" category="inter-field" depends="Age_at_Diagnosis,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.ageAtDiagnosis == null || line.primarySite == null || line.histologicTypeIcdO3 == null)
    return true

if (line.primarySite == 'C421' && Functions.matches(line.histologicTypeIcdO3, /^981[1-8]|983[5-7]$/)) {
    Integer ageInt = Functions.asInt(line.ageAtDiagnosis)
    if (line.ajccId == '83.2')
        return ageInt == 999 || (0 <= ageInt && ageInt <= 19)
    else if (line.ajccId == '83.3')
        return (20 <= ageInt && ageInt <= 120)
}

return true]]></expression>
            <message>Primary Site, Histologic Type ICD-O-3, and Age at Diagnosis are incompatible with AJCC ID.</message>
            <description><![CDATA[_SYS in edit name indicates an edit on system-generated data items.  The edit is
intended for use by software vendors in testing the accuracy of algorithms used
to assign AJCC ID, and for use by central registries in verifyingthe quality of
submitted data.

1. The edit is skipped for the following conditions:
   a. Date of diagnosis before 2018, blank, or invalid.
   b. Age at Diagnosis is blank
   c. Primary Site is blank
   d. Histologic Type ICD-O-3 is blank

2. This edit verifies that AJCC ID has been assigned correctly where Primary
   Site and Histologic Type ICD-O-3 codes are not sufficient to identify the
   appropriate AJCC staging scheme. Age at Diagnosis is required to discriminate
   between histologies assigned to Acute Lymphoblastic Leukemia in Children and
   Acute Lymphocytic Leukemia in Adults.

   The edit checks that AJCC ID, Primary Site code,Histologic Type ICD-O-3
   code, and Age at Diagnosis code occur together within the edited record, as
   shown in the following chart.  If there is an edit failure, the problem may be
   due to a software error. If coding is reviewed and correct, the software vendor
   should be consulted for assistance in resolving the issue.


    AJCC ID                                           SITE    HISTO      AGE AT DX

    83.2   Acute Lymphoblastic Leukemia in Children   C421    9811-9818  000-019,999
                                                              9835-9837

    83.3   Acute Lymphocytic Leukemia in Adults       C421    9811-9818  020-120
                                                              9835-9837]]></description>
            <history>
                <event version="SE18-018-10" user="kirbyk" date="2018-12-05" ref="68065">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-22" ref="68369">Update skip conditions.</event>
            </history>
        </rule>
        <rule id="IFN4210" name="Date Regional Lymph Node Dissection, RX Date Surgery (NAACCR)" tag="N4210" java-path="lines.line" category="inter-field" depends="DateRegionalLymphNodeDissectionEdit,RXDateSurgeryEdit,Year_of_Diagnosis">
            <expression><![CDATA[if (line.rxDateSurgeryYear == null || line.dateRegionalLNDissectionYear == null || line.dateOfDiagnosisYear < '2019')
    return true

if (line.rxDateSurgeryYear > line.dateRegionalLNDissectionYear)
    return false

if (line.rxDateSurgeryYear < line.dateRegionalLNDissectionYear || line.rxDateSurgeryMonth == null || line.dateRegionalLNDissectionMonth == null)
    return true

if (line.rxDateSurgeryMonth > line.dateRegionalLNDissectionMonth)
    return false

if (line.rxDateSurgeryMonth < line.dateRegionalLNDissectionMonth || line.rxDateSurgeryDay == null || line.dateRegionalLNDissectionDay == null)
    return true

return line.rxDateSurgeryDay <= line.dateRegionalLNDissectionDay]]></expression>
            <message>Date Regional Lymph Node Dissection must be &amp;gt; or = RX Date Surgery</message>
            <description><![CDATA[This edit is skipped for any of the following:
    a. Date Regional Lymph Node Dissection is blank (unknown) or invalid
    b. RX Date Surgery is blank (unknown) or invalid.
    c. Date of Diagnosis before 2019

Date Regional Lymph Node Dissection must be greater than or equal to RX Date
Surgery. If both years are known, but either month is blank, then only the
years are compared. If either day is blank, then only the years and months are
compared.]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN4214" name="Gleason Score Clinical, Grade Clinical (NAACCR)" tag="N4214" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId != '00580' || line.gradeClinical == null)
    return true

String gleason = line.gleasonScoreClinical
if (gleason == null || gleason == 'X8' || gleason == 'X9')
    return true 

if (Functions.matches(gleason, /^0[1-6]$/))
    return line.gradeClinical == '1'
else if (gleason == '07')
    return line.gradeClinical == '2' || line.gradeClinical == '3' || line.gradeClinical == 'E'
else if (gleason == '08')
    return line.gradeClinical == '4'
else if (gleason == '09' || gleason == '10')
    return line.gradeClinical == '5'

return true]]></expression>
            <message>Gleason Score Clinical and Grade Clinical.</message>
            <description><![CDATA[This edit verifies that Grade Clinical is coded consistently with Gleason Score Clinical SSDI.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2018, blank (unknown), or invalid.
   b. Schema ID is not 00580
   c. Gleason Score Clinical is blank, X8, or X9.
   d. Grade Clinical is blank.

2. If Gleason Score Clinical = 1, 2, 3, 4, 5, or 6,
   Then Grade Clinical must = 1

3. If Gleason Score Clinical = 7
   Then Grade Clinical must = 2 or 3 or E

4. If Gleason Score Clinical = 8
   Then Grade Clinical must = 4

5. If Gleason Score Clinical = 9 or 10
   Then Grade Clinical must = 5]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN4900" name="Summary Stage 2018, Schema ID (NAACCR)" tag="N4900" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.summaryStage2018 == null)
    return true

List validCode = (List)((Map)Context.IFN_SS2018_Table).get(line.schemaId)
if (validCode == null)
    return Functions.matches(line.summaryStage2018, /^[0-479]$/)

return validCode.contains(line.summaryStage2018)]]></expression>
            <message>Summary Stage 2018 not valid for this Schema ID.</message>
            <description><![CDATA[1. This edit is skipped for any of the following conditions:
    a. Diagnosis date is pre-2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. Summary Stage 2018 is blank

2. This edit checks that Summary Stage 2018 is correct by Schema ID.  The data item may be blank because it was not required before 2018.

The allowable values for Summary Stage 2018 are 0, 1, 2, 3, 4, 7, and 9 for all Schema IDs except for those listed below.  The sites and histologies for each schema are listed in the edit _SYS Schema ID, Primary Site, Histology, Behavior (NAACCR).


00060    Cervical Lymph Nodes and Unknown Primary
Summary Stage 2018:
            3, 7, 9

00381       Bone Appendicular
00382       Bone Spine
00383       Bone Pelvis
Summary Stage 2018:
            1, 2, 3, 4, 7, 9


00400       Soft Tissues Head and Neck
Summary Stage 2018:
            1, 2, 3, 4, 7, 9


00410       Soft Tissue Trunk and Extremities
Summary Stage 2018:
            1, 2, 3, 4, 7, 9


00421       Soft Tissue Abdomen and Thorax
00422       Heart, Mediastinum, Pleura
Summary Stage 2018:
            1, 2, 3, 4, 7, 9


00440       Retroperitoneum
Summary Stage 2018:
            1, 2, 3, 4, 7, 9


00450       Soft Tissue Rare
Summary Stage 2018:
            1, 2, 3, 4, 7, 9


00458       Kaposi Sarcoma
Summary Stage 2018:
            1, 2, 3, 4, 7, 9


00459       Soft Tissue Other
Summary Stage 2018:
            1, 2, 3, 4, 7, 9


00541       Corpus Sarcoma
00542       Corpus Adenosarcoma
Summary Stage 2018:
            1, 2, 3, 4, 7, 9


00680       Retinoblastoma
Summary Stage 2018:
            1, 2, 3, 4, 7, 9


00700       Orbital Sarcoma
Summary Stage 2018:
            1, 2, 3, 4, 7, 9


00710       Lymphoma Ocular Adnexa
Summary Stage 2018:
            1, 2, 3, 4, 7, 9


00721       Brain and Spinal Cord [8th: 2018-2022]
00722       CNS Other [8th: 2018-2022]
Summary Stage 2018:
            1, 2, 7, 8, 9


09721        Brain and Spinal Cord Other [V9: 2023+]
09722        CNS Other [V9: 2023+]
Summary Stage 2018:
            1, 2, 7, 8, 9


00723       Intracranial Gland [8th: 2018-2022]
Summary Stage 2018:
            0, 1, 2, 7, 8, 9


09723       Intracranial Gland [V9: 2023+]
Summary Stage 2018:
            0, 1, 2, 7, 8, 9


09724       Brain and Spinal Cord Medulloblastoma [9V9: 2023+]
Summary Stage 2018:
            1, 2, 7, 8, 9


00790       Lymphoma
00795       Lymphoma-CLL/SLL
Summary Stage 2018:
            1, 2, 7, 9


00811       Mycosis Fungoides
00812       Primary Cutaneous Lymphomas (excluding MF and SS)
Summary Stage 2018:
            1, 2, 3, 4, 7, 9


00821 Plasma Cell Myeloma
Summary Stage 2018:
            7, 9


00822 Plasma Cell Disorder
Summary Stage 2018:
            1, 3, 7, 9


00830       HemeRetic
Summary Stage 2018:
            1, 7, 9


99999       Ill-Defined Other
Summary Stage 2018:
            9]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-18" ref="67954">Edit created.</event>
                <event version="SE18-018-04" user="kirbyk" date="2018-08-08" ref="67985">Updated names for schemas 00821 and 00822 in description.</event>
                <event version="SE18-018-05" user="schadega" date="2018-08-17" ref="68021">Updated name for schema 00830 in description.</event>
                <event version="SE18-020-02" user="kirbyk" date="2020-03-27" ref="68332">Removed codes 1 and 3 for Derived Summary Stage 2018.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-14" ref="68845">Added logic for schema ID 00459, updated description for 00450</event>
                <event version="SE22-022-01" user="smithm" date="2022-02-28" ref="68830">Added logic for Schema IDs 00528 and 09520</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-07" ref="69137">Add Schema IDs 09721-09724 to SS2018 Table. Add code 0 to schema id 00370 (set to default values).</event>
                <event version="SE23-023-02" user="shearerw" date="2023-05-04" ref="69262">Remove code 0 for Schema ID 00370 for 2018-2022.</event>
                <event version="SE24-024-01" user="kirbyk" date="2024-02-06" ref="69349">Removed date requirement for code 0 for Schema ID 00370.</event>
            </history>
        </rule>
        <rule id="IFN4903" name="TNM Items, DX Post 2017 (NAACCR)" tag="N4903" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
    
boolean clinAllBlank = line.tnmClinT == null && line.tnmClinN == null && line.tnmClinM == null && line.tnmClinStageGroup == null && line.tnmClinDescriptor == null

boolean pathAllBlank = line.tnmPathT == null && line.tnmPathN == null && line.tnmPathM == null && line.tnmPathStageGroup == null && line.tnmPathDescriptor == null

return line.dateOfDiagnosisYear < '2018' || (clinAllBlank && pathAllBlank)]]></expression>
            <message>Conflict between year of diagnosis and TNM items</message>
            <description><![CDATA[If year of Date of Diagnosis is blank or invalid, this edit is skipped.

If year of Date of Diagnosis is greater than 2017, then the following TNM data items 
must be blank:

    TNM Clin T
    TNM Clin N
    TNM Clin M
    TNM Clin Stage Group
    TNM Clin Descriptor
    TNM Path T
    TNM Path N
    TNM Path M
    TNM Path Stage Group
    TNM Path Descriptor]]></description>
            <history>
                <event version="SE18-018-03" user="schadega" date="2018-07-10" ref="67934">Edit created.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-08" ref="68123">Removed TNM Clin Staged By and TNM Path Staged By fields.</event>
            </history>
        </rule>
        <rule id="IFN4904" name="Derived EOD 2018, Date of DX (SEER)" tag="N4904" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear > '2017')
    return true

return line.derivedEod2018T == null && line.derivedEod2018N == null && line.derivedEod2018M == null && line.derivedEod2018StageGroup == null]]></expression>
            <message>Derived EOD T, N, M, Stage Group fields must be blank for cases diagnosed before 2018.</message>
            <description><![CDATA[The purpose of this edit is to verify that Derived EOD 2018 T, N, M, and Stage
Group required by SEER are blank for cases diagnosed before 2018.

This edit is skipped if year of Date of Diagnosis is blank or invalid.

If year of Date of Diagnosis is pre-2018, then Derived EOD 2018 T, Derived
EOD 2018 N, Derived EOD 2018 M, and Derived EOD 2018 Stage Group must be blank.]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-12" ref="67935">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN4906" name="Summary Stage 2000, Date of Diagnosis (SEER)" tag="N4906" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016')
    return true

if (line.dateOfDiagnosisYear == '2016' || line.dateOfDiagnosisYear == '2017')
    return line.seerSummaryStage2000 != null || line.derivedSs2000 != null
else if (line.dateOfDiagnosisYear >= '2018')
    return line.seerSummaryStage2000 == null
    
return true]]></expression>
            <message>Summary Stage 2000 and Date DX conflict</message>
            <description><![CDATA[This edit is skipped if Date of Diagnosis is blank or invalid.

If year of Date of Diagnosis is 2016-2017, either SEER Summary Stage 2000 or
Derived SS2000 must not be blank.

If year of Date of Diagnosis is 2018+, SEER Summary Stage 2000 must be blank.]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-10" ref="67936">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
            </history>
        </rule>
        <rule id="IFN4910" name="Derived Summary Stage 2018, Schema ID (SEER)" tag="N4910" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.derivedSummaryStage2018 == null)
    return true

List validCode = (List)((Map)Context.IFN_SS2018_Table).get(line.schemaId)
if (validCode == null)
    return Functions.matches(line.derivedSummaryStage2018, /^[0-479]$/)

return validCode.contains(line.derivedSummaryStage2018)]]></expression>
            <message>Derived Summary Stage 2018 not valid for this Schema ID.</message>
            <description><![CDATA[1. This edit is skipped for any of the following conditions:
    a. Diagnosis date is pre-2018, blank (unknown), or invalid
    b. Schema ID is blank
    c. Derived Summary Stage 2018 is blank

2. This edit checks that Derived Summary Stage 2018 is correct by Schema ID.  The
data item may be blank because it was not required before 2018.

The allowable values for Derived Summary Stage 2018 are 0, 1, 2, 3, 4, 7, and 9
for all Schema IDs except for those listed below.


00060    Cervical Lymph Nodes and Unknown Primary
Derived Summary Stage 2018:
            3, 7, 9


00381       Bone Appendicular
00382       Bone Spine
00383       Bone Pelvis
Derived Summary Stage 2018:
            1, 2, 3, 4, 7, 9


00400       Soft Tissues Head and Neck
Derived Summary Stage 2018:
            1, 2, 3, 4, 7, 9


00410       Soft Tissue Trunk and Extremities
Derived Summary Stage 2018:
            1, 2, 3, 4, 7, 9


00421       Soft Tissue Abdomen and Thorax
00422       Heart, Mediastinum, Pleura
Derived Summary Stage 2018:
            1, 2, 3, 4, 7, 9


00440       Retroperitoneum
Derived Summary Stage 2018:
            1, 2, 3, 4, 7, 9


00450       Soft Tissue Rare
Derived Summary Stage 2018:
            1, 2, 3, 4, 7, 9


00458       Kaposi Sarcoma
Derived Summary Stage 2018:
            1, 2, 3, 4, 7, 9

00459 Soft Tissue Other
Derived Summary Stage 2018:
1, 2, 3, 4, 7, 9

00528 Cervix Sarcoma
Deerived Summary Stage 2018:
1, 2, 3, 4, 7, 9


00541       Corpus Sarcoma
00542       Corpus Adenosarcoma
Derived Summary Stage 2018:
            1, 2, 3, 4, 7, 9


00680       Retinoblastoma
Derived Summary Stage 2018:
            1, 2, 3, 4, 7, 9


00700       Orbital Sarcoma
Derived Summary Stage 2018:
            1, 2, 3, 4, 7, 9


00710       Lymphoma Ocular Adnexa
Derived Summary Stage 2018:
            1, 2, 3, 4, 7, 9


00721       Brain and Spinal Cord [8th: 2018-2022]
00722       CNS Other [8th: 2018-2022]
Derived Summary Stage 2018:
            1, 2, 7, 8, 9

09721       Brain and Spinal Cord Other [V9: 2023+]
09722       CNS Other [V9: 2023+]
Derived Summary Stage 2018:
            1, 2, 7, 8, 9

00723       Intracranial Gland [8th: 2018-2022]
Derived Summary Stage 2018:
            0, 1, 2, 7, 8, 9

09723       Intracranial Gland [V9: 2023+]
Derived Summary Stage 2018:
            0 , 1, 2, 7, 8, 9

09724       Brain and Spinal Cord Medulloblastoma [V9: 2023+]
Derived Summary Stage 2018:
            1, 2, 7, 8, 9

00790       Lymphoma
00795       Lymphoma-CLL/SLL
Derived Summary Stage 2018:
            1, 2, 7, 9


00811       Mycosis Fungoides
00812       Primary Cutaneous Lymphomas (excluding MF and SS)
Derived Summary Stage 2018:
            1, 2, 3, 4, 7, 9


00821 Plasma Cell Myeloma
Derived Summary Stage 2018:
            7, 9


00822 Plasma Cell Disorder
Derived Summary Stage 2018:
            1, 3, 7, 9


00830       HemeRetic
Derived Summary Stage 2018:
            1, 7, 9


99999       Ill-Defined Other
Derived Summary Stage 2018:
            9]]></description>
            <history>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-18" ref="67954">Edit created.</event>
                <event version="SE18-018-04" user="kirbyk" date="2018-08-08" ref="67985">Updated names for schemas 00821 and 00822 in description.</event>
                <event version="SE18-020-02" user="kirbyk" date="2020-03-27" ref="68332">Removed codes 1 and 3 for Derived Summary Stage 2018.</event>
                <event version="SE22-022-01" user="smithm" date="2022-02-28" ref="68830">Added logic for Schema IDs 00528, 09520, and 00459</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-03" ref="69127">Update SS2018 table to include Schema IDs 09721-09724. Update names for schemas 00721-00723.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-07" ref="69137">Update description and SS2018 table for Schema ID 09724. Add code 0 to schema id 00370 (set to default values).</event>
                <event version="SE23-023-02" user="shearerw" date="2023-05-02" ref="69256">Remove code 0 for Schema ID 00370 for 2018-2022.</event>
                <event version="SE23-023-07" user="shearerw" date="2023-09-08" ref="69308">Remove logic for Schema ID 00370.</event>
            </history>
        </rule>
        <rule id="IFN4911" name="Histologic Type ICDO3, Primary Site, Date of Diagnosis (NAACCR)" tag="N4911" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.histologicTypeIcdO3 == null)
    return true

String histology = line.histologicTypeIcdO3
String site = line.primarySite

if (line.behaviorCodeIcdO3 == '2' && (histology == '8230' || histology == '8032'))
    return true

if (histology == '8510' && site == 'C739')
    return false

if (histology == '8550' && Functions.matches(site, /^C34\d$/))
    return false

Integer siteInt = -1
if (site != null && Functions.matches(site, /^C\d\d\d$/))
    siteInt = Functions.asInt(site.substring(1,4))
if (line.dateOfDiagnosisYear >= '2019') {
    if (Functions.matches(histology, /^825[3467]$/) && !Functions.matches(site, /^C34\d$/))
        return false

    if (line.dateOfDiagnosisYear <= '2020' && histology == '9150' && (line.gradeClinical == '4' || line.gradePathological == '4'))
        return true

    List invalidHistologies = (List)((Map)Context.IFN4911_Table).get(siteInt)
    if (invalidHistologies != null && invalidHistologies.contains(histology))
        return false
}

if (line.dateOfDiagnosisYear >= '2024') {
    List invalidHistologies = (List)((Map)Context.IFN4911_2024_Table).get(siteInt)
    if (invalidHistologies != null && invalidHistologies.contains(histology))
        return false
}

return true]]></expression>
            <message>Histologic Type ICD-O-3 code is not valid for this Primary Site and Diagnosis Year</message>
            <description><![CDATA[This edit enforces histology coding restrictions by primary site for 2018+ cases.

1. This edit is skipped if any of the following conditions are true:
    a. Date of diagnosis less than 2018, blank (unknown), or invalid
    b. Histologic Type ICD-O-3 is blank
    c. Histologic Type ICD-O-3 = 8230, Behavior code = 2
    d. Histologic Type ICD-O-3 = 8032, Behavior code = 2


2. For diagnosis date = 2018+:
    a. If Primary Site = C739, 8510 is invalid
    b. If Primary Site = C340-C349, 8550 is invalid.

3. For diagnosis date 2019+:
    a. 8253, 8254, 8256, and 8257 are valid for C340-C349 only.
    b. 9150 is valid for Hemangiopericytoma Grade 4 (2019-2020 only)

4. For diagnosis date 2019+, for the Primary Sites listed,
    the Histologic Type ICD-O-3 codes in the USE column (title in the Histology column) should be used in preference to the codes in the DO NOT USE column, based on Solid Tumor Rules.

    Site               USE         DO NOT           Histology
                                    USE

    C079-C089           8562        8983        Epithelial-myoepithelial carcinoma
    C090-C109           8525        8201        Polymorphous carcinoma
    C111                8525        8201        Polymorphous carcinoma
    C180-C209           8140        8144        Adenocarcinoma
    C180-C209           8140        8210        Adenocarcinoma
    C180-C209           8140        8261        Adenocarcinoma
    C180-C209           8140        8501        Adenocarcinoma
    C180-C209           8244        8245        Mixed adenoneuroendocrine carcinoma
    C180-C209           8265        8507        Micropapillary adenocarcinoma
    C300,C310-C319      8072        8120        Non-keratinizing SCC
    C300,C310-C319      8140        8263        Tubulopapillary adenoca low grade
    C300,C310-C319      8144        8480        Colloid Type Adenocarcinoma
    C300,C310-C319      8802        8830        Pleomorphic cell sarcoma
    C300,C310-C319      9081        9080        Teratocarcinosarcoma
    C300,C310-C319      9364        9260        Primitive neuroectodermal tumor
    C300,C310-C319      9364        9500        Primitive neuroectodermal tumor
    C300,C310-C319      9364        9503        Primitive neuroectodermal tumor
    C340-C349           8083        8123        Basaloid carcinoma
    C340-C349           8265        8507        Micropapillary adenocarcinoma
    C340-C349           8551        8550        Acinar adenocarcinoma
    C340-C349           8562        8983        Epithelial-myoepithelial carcinoma
    C470-C479           8802        8830        Undifferentiated pleomorphic sarc
    C470-C479           8815        9150        Solitary fibrous tumor
    C500-C509           8503        8260        Papillary carcinoma
    C500-C509           8510        8345        Medullary Carcinoma
    C619                8140        8550        Adenocarcinoma
    C649                8312        8318        Renal cell
    C649                8510        8318        Renal medullary
    C649                9364        9260        PNET/Ewing
    C700-C729           8802        8830        Undifferentiated pleomorphic sarc
    C700-C729           8815        9150        Solitary fibrous tumor
    C751-C753           8802        8830        Undifferentiated pleomorphic sarc
    C751-C753           8815        9150        Solitary fibrous tumor
    C739                8260        8050        Papillary carcinoma
    C739                8345        8510        Medullary Carcinoma
    C739                8346        8510        Medullary Carcinoma


5. For diagnosis date 2024 forward, for the Primary Sites listed,
    the Histologic Type ICD-O-3 codes in the USE column (title in the Histology column) should be used in preference to the codes in the DO NOT USE column, based on Solid Tumor Rules.

    Site                USE         DO NOT      Histology

    C340-C349           8260        8050        Papillary adenocarcinoma
    C340-C349           8255        8323        Adenocarcinoma with mixed subtypes
    C500-C509           8041        8240        Small cell carcinoma
    C500-C509           8255        8323        Adenocarcinoma with mixed subtypes
    C500-C509           8500        8230        Carcinoma NST
    C500-C509           8575        8032        Metaplastic carcinoma NOS
    C510-C589           8323        8255        Mixed cell Adenocarcinoma
    C529                8980        8950        Carcinosarcoma
    C540-C541           8980        8950        Carcinosarcoma
    C543-C549           8980        8950        Carcinosarcoma
    C569                8980        8950        Carcinosarcoma
    C570                8980        8950        Carcinosarcoma
    C619                8147        8200        Basal cell adenocarcinoma
    C659-C689           8140        8255        Adenocarcinoma
    C659-C689           8140        8323        Adenocarcinoma
    C700-C729           9364        9260        Peripheral primitive neuroectodermal
    C751-C753           9364        9260        Peripheral primitive neuroectodermal]]></description>
            <history>
                <event version="SE18-018-03" user="smithm" date="2018-07-19" ref="67955">Edit created.</event>
                <event version="SE18-018-04" user="kirbyk" date="2018-08-06" ref="67981">Fixed condition for Primary Site = C340-C349.</event>
                <event version="SE18-018-13" user="kirbyk" date="2019-02-25" ref="68116">Removed &apos;8480&apos; as an invalid histology for C340-349.</event>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-27" ref="68124">Changed edit name; updated logic for 2019 cases.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-01" ref="68184">Changed message; updated histologies for 2019+ cases with Primary Site C340-C349.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-01" user="beverung" date="2020-03-11" ref="68288">Updated IFN4911_Table; removed rule for 2019+ cases with Histology 8263.</event>
                <event version="SE18-020-03" user="beverung" date="2020-04-21" ref="68340">Updated IFN4911_Table.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-06" ref="68496">Removed Medullary Carcinoma from list of Histologies.</event>
                <event version="SE21-021-03" user="beverung" date="2021-02-26" ref="68576">Update edit name.</event>
                <event version="SE22-022-01" user="smithm" date="2022-02-28" ref="68813">Updated histologies for Primary Sites C500-C509.</event>
                <event version="SE22-022-04" user="beverung" date="2022-05-03" ref="68977">Remove logic for Squamous Cell Carcinoma.</event>
                <event version="SE23-023-02" user="cooki" date="2023-04-11" ref="69219">Changed table value for C619 to match description.</event>
                <event version="SE24-024-09" user="kirbyk" date="2024-08-21" ref="69478">Updated histologies for 2024.</event>
            </history>
        </rule>
        <rule id="IFN4914" name="Grade Path, Grade Post Therapy (NAACCR)" tag="N4914" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018')
    return true

if (Functions.matches(line.schemaId, /^00(79[05]|8[12][12]|830)$/))
    return true

return line.gradePostTherapy == null || line.gradePathological == '9']]></expression>
            <message>Grade Pathological must = 9 if Grade Post Therapy Path (yp) is not blank</message>
            <description><![CDATA[This edit checks on coding of Grade Pathological and Grade Post Therapy Path (yp)

1. This edit is skipped for the following conditions:
    a. Date of diagnosis = pre-2018, blank (unknown) or invalid.
    b. Schema ID = 00790, 00795, 00811, 00812, 00821, 00822, 00830 (fields not applicable for these schemas)

2. Grade Pathological must = 9 if Grade Post Therapy Path (yp) is not blank]]></description>
            <history>
                <event version="SE18-019-03" user="kirbyk" date="2019-08-08" ref="68234">Edit created.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-30" ref="68399">Update skip conditions and rename variable.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="IFN4928" name="PhI, II, III Radiation Treatment Modality (SEER)" tag="N4928" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018')
    return true

if (line.phase1RadiationTreatmentModality == null && line.phase2RadiationTreatmentModality == null && line.phase3RadiationTreatmentModality == null)
    return true

if (line.phase2RadiationTreatmentModality != null && line.phase1RadiationTreatmentModality == null)
    return false

if (line.phase1RadiationTreatmentModality == '00' && line.phase2RadiationTreatmentModality != null && line.phase2RadiationTreatmentModality != '00')
    return false

if (line.phase3RadiationTreatmentModality != null && line.phase2RadiationTreatmentModality == null)
    return false

if (line.phase2RadiationTreatmentModality == '00' && line.phase3RadiationTreatmentModality != null && line.phase3RadiationTreatmentModality != '00')
    return false

return true]]></expression>
            <message>PhI, II, III Radiation Treatment Modality conflict.</message>
            <description><![CDATA[This edit checks that Phase I Radiation Treatment Modality, Phase II Radiation
Treatment Modality, and Phase III Radiation Treatment Modality are coded
consistently with each other.

1.  The edit is skipped for any of the following conditions:
    a. Phase I Radiation Treatment Modality, Phase II Radiation Treatment
       Modality, and Phase III Radiation Treatment Modality are all blank.
    b. Diagnosis date pre-2018, blank (unknown), or invalid.

2.  If Phase II Radiation Treatment Modality is not blank, then Phase I Radiation
    Treatment Modality cannot be blank.

3.  If Phase I Radiation Treatment Modality = 00 (no radiation given), Phase II
    Radiation Treatment Modality must = 00 or blank

4.  If Phase III Radiation Treatment Modality is not blank, Phase II Radiation
    Treatment Modality cannot be blank.

5.  If Phase II Radiation Treatment Modality = 00 (no radiation given), Phase III
    Radiation Treatment Modality must = 00 or blank]]></description>
            <history>
                <event version="SE18-018-05" user="kirbyk" date="2018-08-15" ref="68012">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN4929" name="Surgery 03-2022, Phase I Rad, Surg/Rad Seq (SEER)" tag="N4929" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.dateOfDiagnosisYear > '2022' || line.rxSummSurgPrimSite == null || line.rxSummScopeRegLnSur == null || line.rxSummSurgOthRegDis == null)
    return true

boolean primSiteIndicatesPerformed = Functions.matches(line.rxSummSurgPrimSite, /^[1-8]\d|90$/)
boolean scopeIndicatesPerformed = Functions.matches(line.rxSummScopeRegLnSur, /^[3-7]$/) ||
    (line.rxSummScopeRegLnSur == '2' && line.dateOfDiagnosisYear >= '2021') ||
    (line.rxSummScopeRegLnSur == '2' && line.dateOfDiagnosisYear >= '2018' && Functions.matches(line.regionalNodesExamined, /^0[1-9]|[1-8]\d|9[0-8]$/))
boolean othIndicatesPerformed = Functions.matches(line.rxSummSurgOthRegDis, /^[1-5]$/)

boolean surgeryPerformed = primSiteIndicatesPerformed || scopeIndicatesPerformed || othIndicatesPerformed

if (surgeryPerformed && Functions.matches(line.phase1RadiationTreatmentModality, /^0[1-9]|1[0-6]|98$/))
    return Functions.matches(line.rxSummSurgRadSeq, /^[2-79]$/)

boolean surgeryNotPerformed = (line.rxSummSurgPrimSite == '00' || line.rxSummSurgPrimSite == '98' || line.rxSummSurgPrimSite == '99') && (line.rxSummScopeRegLnSur == '0' || (line.rxSummScopeRegLnSur == '1' && line.dateOfDiagnosisYear >= '2021')) && line.rxSummSurgOthRegDis == '0'
if (surgeryNotPerformed || line.phase1RadiationTreatmentModality == '00' || line.phase1RadiationTreatmentModality == '99')
    return line.rxSummSurgRadSeq == '0'

return true]]></expression>
            <message>Conflict among surgery, radiation, and surgery radiation sequence items.</message>
            <description><![CDATA[1. This edit is skipped for the following conditions:
    a. Any of the three surgery code fields (RX Summ--Surg Prim Site 03-2022, RX Summ--
      Scope Reg LN Sur, RX Summ--Surg Oth Reg/Dis) is blank.
    b. Diagnosis date < 2018 or > 2022.

If surgery was performed and if radiation was given (Phase I Radiation Treatment
Modality = 01-16,98), then RX Summ--Surg/Rad Seq must specify sequence (codes
2-7, 9). Surgery is considered "performed" if ANY of the following three
conditions are true:

  1.  RX Summ--Surg Prim Site 03-2022 = 10-90
  2.  RX Summ--Scope Reg LN Sur:
           2 (if Regional Nodes Examined = 01-98, 2018-2020)
           2 (2021+)
           3-7
  3.  RX Summ--Surg Oth Reg/Dis = 1-5

If surgery was not performed or no radiation was given (Phase I Radiation
Treatment Modality = 00 or 99),then RX Summ--Surg/Rad Seq must specify no (0). Surgery
is considered "not performed" if ALL of the following three conditions are true:

  1.  RX Summ--Surg Prim Site 03-2022 = 00, 98 or 99
  2.  RX Summ--Scope Reg LN Sur:

        For cases diagnosed 2018 or later:
            0 (for all cases)
        For cases diagnosed 2021 or later:
            0-1 for all cases
  3.  RX Summ--Surg Oth Reg = 0]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2010-04-26" ref="68154">Edit created.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-03" ref="68471">Added code &apos;98&apos; for Phase I Radiation Treatment Modality, surgery was performed.</event>
                <event version="SE21-021-03" user="beverung" date="2021-02-24" ref="68563">Remove pre-2012 logic and add 2021+ logic.</event>
                <event version="SE21-021-09" user="beverung" date="2021-09-09" ref="68748">Fixed logic for RX Summ--Surg/Rad Seq check when surgery was not performed or no radiation was given.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-26" ref="68971">Added 99 to valid no surg/no rad values for Phase 1 Radiation Treatment Modality</event>
                <event version="SE23-023-01" user="cooki" date="2023-01-20" ref="69092">Updated edit name, DX Year skip condition, and RX Summ--Surg Prim Site 03-2022 values.</event>
            </history>
        </rule>
        <rule id="IFN4931" name="SSDI, DCO (NAACCR)" tag="N4931" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource != '7')
    return true

if (line.adenoidCysticBasaloidPattern != null && line.adenoidCysticBasaloidPattern != 'XXX.9')
    return false
if (line.adenopathy != null && line.adenopathy != '9')
    return false
if (line.afpPostOrchiectomyLabValue != null && line.afpPostOrchiectomyLabValue != 'XXXXX.9')
    return false
if (line.afpPostOrchiectomyRange != null && line.afpPostOrchiectomyRange != '9')
    return false
if (line.afpPreOrchiectomyLabValue != null && line.afpPreOrchiectomyLabValue != 'XXXXX.9')
    return false
if (line.afpPreOrchiectomyRange != null && line.afpPreOrchiectomyRange != '9')
    return false
if (line.afpPretreatmentInterpretation != null && line.afpPretreatmentInterpretation != '9')
    return false
if (line.afpPretreatmentLabValue != null && line.afpPretreatmentLabValue != 'XXXX.9')
    return false
if (line.alkRearrangement != null && line.alkRearrangement != '9')
    return false
if (line.anemia != null && line.anemia != '9')
    return false
if (line.bSymptoms != null && line.bSymptoms != '9')
    return false
if (line.bilirubinPretxTotalLabValue != null && line.bilirubinPretxTotalLabValue != 'XXX.9')
    return false
if (line.bilirubinPretxUnitOfMeasure != null && line.bilirubinPretxUnitOfMeasure != '9')
    return false
if (line.boneInvasion != null && line.boneInvasion != '9')
    return false
if (line.brafMutationalAnalysis != null && line.brafMutationalAnalysis != '9')
    return false
if (line.brainMolecularMarkers != null && line.brainMolecularMarkers != '99')
    return false
if (line.breslowTumorThickness != null && line.breslowTumorThickness != 'XX.9')
    return false
if (line.ca199PretxLabValue != null && line.ca199PretxLabValue != 'XXXX.9')
    return false
if (line.ca125PretreatmentInterpretation != null && line.ca125PretreatmentInterpretation != '9')
    return false
if (line.ceaPretreatmentInterpretation != null && line.ceaPretreatmentInterpretation != '9')
    return false
if (line.chromosome19qLossHeterozygosity != null && line.chromosome19qLossHeterozygosity != '9')
    return false
if (line.chromosome1pLossHeterozygosity != null && line.chromosome1pLossHeterozygosity != '9')
    return false
if (line.chromosome3Status != null && line.chromosome3Status != '9')
    return false
if (line.chromosome8qStatus != null && line.chromosome8qStatus != '9')
    return false
if (line.circumferentialResectionMargin != null && line.circumferentialResectionMargin != '9')
    return false
if (line.clinicalMarginWidth != null && line.clinicalMarginWidth != 'XX.9')
    return false
if (line.creatininePretreatmentLabValue != null && line.creatininePretreatmentLabValue != 'XX.9')
    return false
if (line.creatininePretxUnitOfMeasure != null && line.creatininePretxUnitOfMeasure != '9')
    return false
if (line.derivedRaiStage != null && line.derivedRaiStage != '9')
    return false
if (line.egfrMutationalAnalysis != null && line.egfrMutationalAnalysis != '9')
    return false
if (line.esophagusAndEgjTumorEpicenter != null && line.esophagusAndEgjTumorEpicenter != '9')
    return false
if (line.estrogenReceptorPercntPosOrRange != null && line.estrogenReceptorPercntPosOrRange != 'XX9')
    return false
if (line.estrogenReceptorSummary != null && line.estrogenReceptorSummary != '9')
    return false
if (line.extranodalExtensionClin != null && line.extranodalExtensionClin != '9')
    return false
if (line.extranodalExtensionHeadNeckClin != null && line.extranodalExtensionHeadNeckClin != '9')
    return false
if (line.extranodalExtensionHeadNeckPath != null && line.extranodalExtensionHeadNeckPath != 'X.9')
    return false
if (line.extranodalExtensionPath != null && line.extranodalExtensionPath != '9')
    return false
if (line.extravascularMatrixPatterns != null && line.extravascularMatrixPatterns != '9')
    return false
if (line.fibrosisScore != null && line.fibrosisScore != '9')
    return false
if (line.figoStage != null && line.figoStage != '99')
    return false
if (line.gestationalTrophoblasticPxIndex != null && line.gestationalTrophoblasticPxIndex != 'X9')
    return false
if (line.gleasonPatternsClinical != null && line.gleasonPatternsClinical != 'X9')
    return false
if (line.gleasonPatternsPathological != null && line.gleasonPatternsPathological != 'X9')
    return false
if (line.gleasonScoreClinical != null && line.gleasonScoreClinical != 'X9')
    return false
if (line.gleasonScorePathological != null && line.gleasonScorePathological != 'X9')
    return false
if (line.gleasonTertiaryPattern != null && line.gleasonTertiaryPattern != 'X9')
    return false
if (line.hcgPostOrchiectomyLabValue != null && line.hcgPostOrchiectomyLabValue != 'XXXXX.9')
    return false
if (line.hcgPostOrchiectomyRange != null && line.hcgPostOrchiectomyRange != '9')
    return false
if (line.hcgPreOrchiectomyLabValue != null && line.hcgPreOrchiectomyLabValue != 'XXXXX.9')
    return false
if (line.hcgPreOrchiectomyRange != null && line.hcgPreOrchiectomyRange != '9')
    return false
if (line.her2OverallSummary != null && line.her2OverallSummary != '9')
    return false
if (line.heritableTrait != null && line.heritableTrait != '9')
    return false
if (line.highRiskCytogenetics != null && line.highRiskCytogenetics != '9')
    return false
if (line.highRiskHistologicFeatures != null && line.highRiskHistologicFeatures != '9')
    return false
if (line.histologicSubtype != null && line.histologicSubtype != '0')
    return false
if (line.hivStatus != null && line.hivStatus != '9')
    return false
if (line.iNRProthrombinTime != null && line.iNRProthrombinTime != 'X.9')
    return false
if (line.invasionBeyondCapsule != null && line.invasionBeyondCapsule != '9')
    return false
if (line.ipsilateralAdrenalGlandInvolve != null && line.ipsilateralAdrenalGlandInvolve != '9')
    return false
if (line.jak2 != null && line.jak2 != '9')
    return false
if (line.ki67 != null && line.ki67 != 'XXX.9')
    return false
if (line.kitGeneImmunohistochemistry != null && line.kitGeneImmunohistochemistry != '9')
    return false
if (line.kras != null && line.kras != '9')
    return false
if (line.ldhPostOrchiectomyRange != null && line.ldhPostOrchiectomyRange != '9')
    return false
if (line.ldhPreOrchiectomyRange != null && line.ldhPreOrchiectomyRange != '9')
    return false
if (line.ldhPretreatmentLabValue != null && line.ldhPretreatmentLabValue != 'XXXXX.9')
    return false
if (line.ldhPretreatmentLevel != null && line.ldhPretreatmentLevel != '9')
    return false
if (line.ldhUpperLimitsOfNormal != null && line.ldhUpperLimitsOfNormal != 'XX9')
    return false
if (line.lnAssessMethodFemoralInguinal != null && line.lnAssessMethodFemoralInguinal != '9')
    return false
if (line.lnAssessMethodParaaortic != null && line.lnAssessMethodParaaortic != '9')
    return false
if (line.lnAssessMethodPelvic != null && line.lnAssessMethodPelvic != '9')
    return false
if (line.lnDistantAssessMethod != null && line.lnDistantAssessMethod != '9')
    return false
if (line.lnDistantMediastinalScalene != null && line.lnDistantMediastinalScalene != '9')
    return false
if (line.lnHeadAndNeckLevels1To3 != null && line.lnHeadAndNeckLevels1To3 != '9')
    return false
if (line.lnHeadAndNeckLevels4To5 != null && line.lnHeadAndNeckLevels4To5 != '9')
    return false
if (line.lnHeadAndNeckLevels6To7 != null && line.lnHeadAndNeckLevels6To7 != '9')
    return false
if (line.lnHeadAndNeckOther != null && line.lnHeadAndNeckOther != '9')
    return false
if (line.lnIsolatedTumorCells != null && line.lnIsolatedTumorCells != '9')
    return false
if (line.lnLaterality != null && line.lnLaterality != '9')
    return false
if (line.lnPositiveAxillaryLevel1To2 != null && line.lnPositiveAxillaryLevel1To2 != '9')
    return false
if (line.lnSize != null && line.lnSize != 'XX.9')
    return false
if (line.lnStatusFemoralInguinal != null && line.lnStatusFemoralInguinal != '9')
    return false
if (line.lnStatusParaAortic != null && line.lnStatusParaAortic != '9')
    return false
if (line.lnStatusPelvic != null && line.lnStatusPelvic != '9')
    return false
if (line.lymphocytosis != null && line.lymphocytosis != '9')
    return false
if (line.majorVeinInvolvement != null && line.majorVeinInvolvement != '9')
    return false
if (line.measuredBasalDiameter != null && line.measuredBasalDiameter != 'XX.9')
    return false
if (line.measuredThickness != null && line.measuredThickness != 'XX.9')
    return false
if (line.methylationOfO6MGMT != null && line.methylationOfO6MGMT != '9')
    return false
if (line.microsatelliteInstability != null && line.microsatelliteInstability != '9')
    return false
if (line.microvascularDensity != null && line.microvascularDensity != 'X9')
    return false
if (line.mitoticCountUvealMelanoma != null && line.mitoticCountUvealMelanoma != 'XX.9')
    return false
if (line.mitoticRateMelanoma != null && line.mitoticRateMelanoma != 'X9')
    return false
if (line.multigeneSignatureMethod != null && line.multigeneSignatureMethod != '9')
    return false
if (line.multigeneSignatureResults != null && line.multigeneSignatureResults != 'X9')
    return false
if (line.nccnInternationalPrognosticIndex != null && line.nccnInternationalPrognosticIndex != 'X9')
    return false
if (line.nrasMutationalAnalysis != null && line.nrasMutationalAnalysis != '9')
    return false
if (line.numberOfCoresExamined != null && line.numberOfCoresExamined != 'X9')
    return false
if (line.numberOfCoresPositive != null && line.numberOfCoresPositive != 'X9')
    return false
if (line.numberOfExaminedParaAorticNodes != null && line.numberOfExaminedParaAorticNodes != 'X9')
    return false
if (line.numberOfExaminedPelvicNodes != null && line.numberOfExaminedPelvicNodes != 'X9')
    return false
if (line.numberOfPositiveParaAorticNodes != null && line.numberOfPositiveParaAorticNodes != 'X9')
    return false
if (line.numberOfPositivePelvicNodes != null && line.numberOfPositivePelvicNodes != 'X9')
    return false
if (line.oncotypeDxRecurrenceScoreDcis != null && line.oncotypeDxRecurrenceScoreDcis != 'XX9')
    return false
if (line.oncotypeDxRecurrenceScoreInvasiv != null && line.oncotypeDxRecurrenceScoreInvasiv != 'XX9')
    return false
if (line.oncotypeDxRiskLevelDcis != null && line.oncotypeDxRiskLevelDcis != '9')
    return false
if (line.oncotypeDxRiskLevelInvasive != null && line.oncotypeDxRiskLevelInvasive != '9')
    return false
if (line.organomegaly != null && line.organomegaly != '9')
    return false
if (line.p16 != null && line.p16 != '9')
    return false
if (line.percentNecrosisPostNeoadjuvant != null && line.percentNecrosisPostNeoadjuvant != 'XXX.9')
    return false
if (line.perineuralInvasion != null && line.perineuralInvasion != '9')
    return false
if (line.peripheralBloodInvolvement != null && line.peripheralBloodInvolvement != '9')
    return false
if (line.peritonealCytology != null && line.peritonealCytology != '9')
    return false
if (line.pleuralEffusion != null && line.pleuralEffusion != '9')
    return false
if (line.profoundImmuneSuppression != null && line.profoundImmuneSuppression != '9')
    return false
if (line.progesteroneRecepPrcntPosOrRange != null && line.progesteroneRecepPrcntPosOrRange != 'XX9')
    return false
if (line.progesteroneRecepSummary != null && line.progesteroneRecepSummary != '9')
    return false
if (line.psaLabValue != null && line.psaLabValue != 'XXX.9')
    return false
if (line.residualTumVolPostCytoreduction != null && line.residualTumVolPostCytoreduction != '99')
    return false
if (line.responseToNeoadjuvantTherapy != null && line.responseToNeoadjuvantTherapy != '9')
    return false
if (line.sCategoryClinical != null && line.sCategoryClinical != '9')
    return false
if (line.sCategoryPathological != null && line.sCategoryPathological != '9')
    return false
if (line.sarcomatoidFeatures != null && line.sarcomatoidFeatures != 'XX9')
    return false
if (line.seerSiteSpecificFact1 != null && line.seerSiteSpecificFact1 != '99')
    return false
if (line.separateTumorNodules != null && line.separateTumorNodules != '9')
    return false
if (line.serumAlbuminPretreatmentLevel != null && line.serumAlbuminPretreatmentLevel != '9')
    return false
if (line.serumBeta2MicroglobulinPretxLvl != null && line.serumBeta2MicroglobulinPretxLvl != '9')
    return false
if (line.thrombocytopenia != null && line.thrombocytopenia != '9')
    return false
if (line.tumorDeposits != null && line.tumorDeposits != 'X9')
    return false
if (line.ulceration != null && line.ulceration != '9')
    return false
if (line.visceralParietalPleuralInvasion != null && line.visceralParietalPleuralInvasion != '9')
    return false
if (line.brainPrimaryTumorLocation != null && line.brainPrimaryTumorLocation != '9')
    return false

return true]]></expression>
            <message>SSDI fields conflict for DCO</message>
            <description><![CDATA[This edit verifies that the Site-Specific Data Items are blank for Death
Certificate Only cases (Type of Reporting Source = 7).

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank.
    c.Type of Reporting Source is not 7

Each SSDI must be blank or coded not applicable or unknown.]]></description>
            <history>
                <event version="SE18-018-05" user="kirbyk" date="2018-08-16" ref="68014">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68026">Changed error message.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-29" ref="67027">Moved fields from a context list to the expression.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-05" ref="68470">Added new SSDI fields from NAACCR 21.</event>
                <event version="SE21-021-03" user="beverung" date="2021-03-04" ref="68575">Allow not applicable or unknown.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-07" ref="69135">Disallow not applicable. Add seven new SSDI fields.</event>
                <event version="SE23-023-11" user="beverung" date="2024-01-30" ref="69380">Removed logic for non-required fields.</event>
                <event version="SE24-024-01" user="beverung" date="2024-02-13" ref="69383">Remove logic for LN Status Femoral-Inguinal, Para-aortic, Pelvic.</event>
                <event version="SE24-024-03" user="cooki" date="2024-03-21" ref="69423">Added logic for Brain Primary Tumor Location.</event>
                <event version="SE24-024-04" user="beverung" date="2024-04-12" ref="69451">Update SEER Site Specific Factor 1 logic to check for 99 instead of 9.</event>
            </history>
        </rule>
        <rule id="IFN4933" name="Creatinine Pretreatment Unit of Measure, Schema ID, Required, CoC Flag (SEER)" tag="N4933" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return line.schemaId != '00220' || (line.creatininePretxUnitOfMeasure != null && line.creatininePretxUnitOfMeasure != '8')]]></expression>
            <message>Creatinine Pretreatment Unit of Measure must not be blank or not applicable for this Schema ID for cases diagnosed 2018 or later.</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. CoC Accredited Flag not = 1
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

Creatinine Pretreatment Unit of Measure is required by SEER only if collected 
by a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).

2. This edit verifies that Creatinine Pretreatment Unit of Measure is not "8" 
   (not applicable) and not blank for the Schema IDs for which it is required 
   by a standard setter.

    Required for Schema ID:

    00220: Liver]]></description>
            <history>
                <event version="SE18-018-04" user="kirbyk" date="2018-08-06" ref="67983">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68721">Add skip conditions for IL and TX for DX Years 2018-2020.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68956">Change skip condition for IL to DX Years 2018-2022, and TX to 2018-2021</event>
            </history>
        </rule>
        <rule id="IFN5000" name="Behavior Code ICDO3, Summary Stage 2018, Schema ID (NAACCR)" tag="N5000" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.schemaId == '99999' || line.behaviorCodeIcdO3 == null || line.summaryStage2018 == null)
    return true

if (line.typeOfReportingSource == '7')
    return true

String behavior = line.behaviorCodeIcdO3
if (Functions.matches(line.schemaId, /^0072[123]|0972[1234]$/)) {
    if ((behavior == '0' || behavior == '1') && line.summaryStage2018 != '8')
        return false
    if (line.summaryStage2018 == '8' && behavior != '0' && behavior != '1')
        return false
}

if (behavior == '2' && line.summaryStage2018 != '0')
    return false

return behavior != '3' || (line.summaryStage2018 != '0' && line.summaryStage2018 != '8')]]></expression>
            <message>Summary Stage 2018 conflicts with Behavior Code ICD-O-3.</message>
            <description><![CDATA[This edit checks that Summary Stage 2018 is coded consistently with Behavior Code ICD-O-3, codes 2 and 3, for all cases.

1. This edit is skipped for any of the following conditions:
    a. Diagnosis date is pre-2018, blank (unknown), or invalid
    b. Schema ID is blank or 99999
    c. Summary Stage 2018 is blank
    d. Behavior Code ICD-O-3 is blank
    e. Type of Reporting Source = 7 (death certificate only) 

2. If Schema ID = 00721, 09721, 00722, 09722, 00723, 09723, or 09724 and Behavior Code ICD-O-3 = 0 or 1,
   then Summary Stage 2018 must = 8.

3. If Schema ID = 00721, 09721, 00722, 09722, 00723, 09723, or 09724, if Summary Stage 2018 = 8,
   then Behavior Code ICD-O-3 must = 0 or 1.

4. If Behavior Code ICD-O-3 = 2, then Summary Stage 2018 must = 0.

5. If Behavior Code ICD-O-3 = 3, then Summary Stage 2018 must not = 0 or 8.]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-02" ref="68149">Edit created.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-10" ref="68220">Added condition for Behavior = 3</event>
                <event version="SE18-019-05" user="kirbyk" date="2019-10-10" ref="68258">Edit is now skipped for Type of Reporting Source = 7 and for DX year &lt; 2018.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-27" ref="68315">Changed edit name.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-22" ref="68375">Removed logic for Schema ID not = 00721, 00722, 00723.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68727">Updated to not allow Summary Stage 2018 = 8 when Behavior = 3.</event>
                <event version="SE23-023-01" user="cooki" date="2023-02-06" ref="69124">Updated logic for Schema IDs 09721, 09722, 09723, and 09724.</event>
                <event version="SE24-024-04" user="beverung" date="2024-05-02" ref="69462">Add skip condition for Schema ID = 99999.</event>
            </history>
        </rule>
        <rule id="IFN5016" name="RX Summ--Surg Prim Site 03-2022, Primary Site, 2018 (SEER)" tag="N5016" java-path="lines.line" category="inter-field" depends="Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.dateOfDiagnosisYear > '2022' || line.primarySite == null || line.rxSummSurgPrimSite == null)
    return true
boolean primarySiteCondition = Functions.matches(line.primarySite, /^C42[0134]|C76[0-8]|C809$/)
boolean histologyCondition = Functions.matches(line.histologicTypeIcdO3, /^9(7(27|32|4[129]|6[1-9]|[789]\d)|8(0\d|2[06]|3[1-4]|[4-9]\d)|9([0-8]\d|9[0-3]))$/)
if (!primarySiteCondition && histologyCondition && line.dateOfDiagnosisYear <= '2021')
    return true

if (line.typeOfReportingSource == '7' && line.rxSummSurgPrimSite == '99')
    return true

if (primarySiteCondition)
    return line.rxSummSurgPrimSite == '98'

Integer siteInt = Functions.asInt(line.primarySite.substring(1, 4))
Map<Integer, Integer> schemaIdMap = (Map<Integer, Integer>)Context.IFN5016_Primary_Site_GroupCode_Table
Integer groupCode = schemaIdMap.get(siteInt)
if (groupCode != null) {
    if (groupCode == 30 && line.rxSummSurgPrimSite == '41' && !line.primarySite.startsWith('C69'))
        return false

    Map<Integer, List<String>> groupCodeMap = line.dateOfDiagnosisYear > '2021' ?
        (Map<Integer, List<String>>)Context.IFN5016_GroupCode_Table_22 :
        (Map<Integer, List<String>>)Context.IFN5016_GroupCode_Table_18

    if (groupCodeMap.containsKey(groupCode))
        return groupCodeMap.get(groupCode).contains(line.rxSummSurgPrimSite)
}

return false]]></expression>
            <message>Conflict among RX Summ--Surg Prim Site 03-2022, Primary Site, and Schema ID.</message>
            <description><![CDATA[This edit verifies that RX Summ--Surg Prim Site 03-2022 is coded appropriately by
Primary Site.

1. This edit is skipped for any of the following:
    a. Diagnosis date before 2018 or after 2022, blank (unknown), or invalid.
    b. Primary Site is blank
    c. RX Summ--Surg Prim Site 03-2022 is blank
    d. Histology = 9727, 9732, 9741-9742, 9749, 9761-9809, 9820, 9826, 9831-9834,
        9840-9993, diagnosis date = 2018-2021, and primary site not = C420, C421, C423,
        C424, C760-C768, C809.

1. This edit checks valid surgery codes by Primary Site code. The 
valid RX Summ--Surg Prim Site 03-2022 codes are specified in the SEER Program Coding
Manual for 2021.

2. If Type of Reporting Source = 7 (Death Certificate Only), RX Summ--Surg Prim Site 03-2022
    may = 99 for any site.

3. If Primary Site group is All Other Sites (group 30 in the table used for this 
edit) and RX Summ--Surg Prim Site 03-2022 = 41 (enucleation for eye surgery only), then
Primary Site must = C690-C699 (multiple possible Schema IDs).

4.    Surgery codes for Primary Site C420, C421, C423, C424, C760-C768, C809,
   must = 98.  

5. Surgery codes for all other Primary Site codes must = codes as 
   specified in the SEER Program Coding Manual.]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-02" ref="68154">Edit created.</event>
                <event version="SE18-019-03" user="kirbyk" date="2019-08-05" ref="68212">Updated valid codes for schema IDs 00821, 00822, 00830.</event>
                <event version="SE18-019-07" user="beverung" date="2019-10-25" ref="68265">Updated valid codes for schema IDs 00760 and 00770.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-27" ref="68313">Added C637-C639 to table for schema 00421 code 30.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-05" ref="68453">Updated DX year condition; added histology conditions.</event>
                <event version="SE21-021-03" user="smithm" date="2021-03-05" ref="68584">Add logic for 2021+ cases.</event>
                <event version="SE21-021-04" user="kirbyk" date="2021-04-16" ref="68646">Updated edit tables for 2021+ cases.</event>
                <event version="SE21-021-04" user="kirbyk" date="2021-05-12" ref="68656">Updated valid values for 2019-2020 cases.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-01" user="beverung" date="2022-03-10" ref="68917">Update logic for 2022.</event>
                <event version="SE22-022-02" user="kirbyk" date="2022-03-18" ref="68918">Added Primary Sites C740-C749 to the edit table for code 30.</event>
                <event version="SE22-022-05" user="beverung" date="2022-05-19" ref="68994">Added skip condition for Primary Site, Histology, and DX Year.</event>
                <event version="SE23-023-01" user="secristc" date="2023-01-24" ref="69093">Add new skip condition for DX year &gt; 2022.</event>
                <event version="SE23-023-02" user="cooki" date="2023-05-03" ref="69267">Updated description for step 1.</event>
            </history>
        </rule>
        <rule id="IFN5017" name="Mets at DX-BBDLLO, Schema ID, Primary Site, 2018 (NAACCR)" tag="N5017" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.primarySite == null || line.typeOfReportingSource == '7')
            return true
if (['0', '1', '2'].contains(line.behaviorCodeIcdO3))
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true
if (line.dateOfDiagnosisYear >= '2018' && line.dateOfDiagnosisYear <= '2021' && ['00790', '00795', '00830', '99999'].contains(line.schemaId) &&
    line.metsAtDxBone == '8' && line.metsAtDxBrain == '8' && line.metsAtDxDistantLn == '8' && line.metsAtDxLiver == '8' && line.metsAtDxLung == '8' && line.metsAtDxOther == '8')
    return true

if (line.schemaId == '00822' || ['C420', 'C421', 'C423', 'C424'].contains(line.primarySite))
    return line.metsAtDxBone == '8' && line.metsAtDxBrain == '8' && line.metsAtDxDistantLn == '8' && line.metsAtDxLiver == '8' && line.metsAtDxLung == '8' && line.metsAtDxOther == '8'
else if (Functions.matches(line.primarySite, /^C77\d$/))
    return line.metsAtDxDistantLn == '8' && line.metsAtDxBone != '8' && line.metsAtDxBrain != '8' && line.metsAtDxLiver != '8' && line.metsAtDxLung != '8' && line.metsAtDxOther != '8'
else
    return line.metsAtDxBone != '8' && line.metsAtDxBrain != '8' && line.metsAtDxDistantLn != '8' && line.metsAtDxLiver != '8' && line.metsAtDxLung != '8' && line.metsAtDxOther != '8'
]]></expression>
            <message>Mets at DX fields are invalid for Schema ID or Primary Site</message>
            <description><![CDATA[The purpose of this edit is to verify that the Mets at DX-Bone, Brain, Distant
LN, Liver, Lung, and Other fields are coded to 8 (not applicable) for the
appropriate Schema IDs.

1. This edit is skipped under the following conditions:

    a. Year of Date of Diagnosis is less than 2018, blank (unknown), or invalid
    b. Type of Reporting Source = 7 (Death Certificate Only)
    c. Schema ID is blank
    d. Primary Site is blank
    e. Mets at DX fields are all blank
    f. Behavior Code ICD-O-3 = 0, 1, or 2
    g. Diagnosis date = 2018-2021, Schema ID = 00790, 00795, 00830, 99999, and all
        Mets at DX fields = 8.

2. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN, Mets at DX-Liver,
    Mets at DX-Lung, and Mets at DX-Other must = 8 if Schema ID = 00822 or
    Primary Site = C420, C421, C423, or C424.

3. If Schema ID not = 00822, if Primary Site = C770-C779, Mets at DX-Distant LN must = 8.  All other
    Mets at DX fields must not = 8.

4.  For all other Primary sites, Mets at DX fields must not = 8.]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-09" ref="68160">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-03" ref="68431">Changed name; removed 00821, 00830 from schema ID logic.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-19" ref="68510">Updated logic for 2021.</event>
                <event version="SE21-021-03" user="beverung" date="2021-02-17" ref="68565">Add 00821, 00830 to schema IDs for steps 2 and 3.</event>
                <event version="SE21-021-03" user="secristm" date="2021-03-09" ref="68592">Add logic for C770-779, Behavior ICDO3</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-01" user="beverung" date="2022-02-07" ref="68865">Update logic for 2022.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-17" ref="69164">Remove skip condition for when Histologic Type is 9671.</event>
            </history>
        </rule>
        <rule id="IFN5018" name="RX Summ--Surgical Margins, Surg Prim Site 03-2022, Primary Site, 2018 (NAACCR)" tag="N5018" java-path="lines.line" category="inter-field">
            <expression><![CDATA[ if(line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.dateOfDiagnosisYear > '2022' || line.primarySite == null)
    return true
if (line.rxSummSurgicalMargins == null || line.rxSummSurgPrimSite == null || line.typeOfReportingSource == '7')
    return true

if (line.rxSummSurgPrimSite == '98' && line.rxSummSurgicalMargins != '9')
    return false

if (Functions.matches(line.primarySite, /^C(42[0134]|76[0-8]|77\d|809)$/)) {
    if (line.rxSummSurgicalMargins != '9')
        return false
}
else {
    if (line.rxSummSurgPrimSite == '00' && line.rxSummSurgicalMargins != '8')
        return false
    if (line.rxSummSurgicalMargins == '8' && line.rxSummSurgPrimSite != '00')
        return false
}

return true ]]></expression>
            <message>Conflict among RX Summ--Surgical Margins, RX Summ--Surg Prim Site 03-2022 and Site</message>
            <description><![CDATA[This edit verifies that RX Summ--Surgical Margins is coded appropriately by
Primary Site code.

1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis before 2018 or after 2022, blank (unknown), or invalid.
    b. Primary Site is blank
    c. RX Summ--Surgical Margins is blank.
    d. RX Summ--Surg Prim Site 03-2022 is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)


2. If RX Summ--Surg Prim Site 03-2022 = 98, RX Summ--Surgical Margins must = 9

3. If Primary Site = C420, C421, C423, C424, C760-C768, C770-C779, or C809
    RX Summ--Surgical Margins must = 9

4. For any other primary site,
    if RX Summ--Surg Prim Site 03-2022  = 00, then RX Summ--Surgical Margins must = 8
    if RX Summ--Surgical Margins = 8, then RX Summ--Surg Prim Site 03-2022 must = 00]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-03-18" ref="68599">Edit created.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-06" user="beverung" date="2022-05-26" ref="68997">Update edit to for 2022.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-01-25" ref="69094">Update edit name and add skip condition for DX year after 2022.</event>
            </history>
        </rule>
        <rule id="IFN5019" name="RX Summ--Scope Reg LN Sur, Primary Site, 2018 (NAACCR)" tag="N5019" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.rxSummScopeRegLnSur == null || line.primarySite == null)
    return true

if (Functions.matches(line.primarySite, /^C(42[0134]|589|7[0127]\d|75[1-3]|76[1-8]|809)$/))
    return line.rxSummScopeRegLnSur == '9'

return true]]></expression>
            <message>RX Summ--Scope Reg LN Sur must = 9 for this Schema ID or site/histology.</message>
            <description><![CDATA[This edit verifies that RX Summ--Scope Reg LN Sur is coded appropriately by Primary Site code.

1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis before 2018, blank (unknown), or invalid.
    b. Primary Site is blank
    c. RX Summ--Scope Reg LN Sur is blank.

RX Summ--Scope Reg LN Sur must = 9 for the following:
    Primary Sites: C420, C421, C423, C424, C589, C700-C709,C710-C729, C751-C753,
       C761-C768, C770-C779, C809]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-01" ref="68153">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-27" ref="68304">Removed 00821, 00830, and 00822 (excluding 9734) from the list.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-06" ref="68452">Added skip condition for Primary Site &apos;C422&apos; and updated logic for step 2.</event>
                <event version="SE21-021-03" user="beverung" date="2021-02-26" ref="68576">Update edit name.</event>
                <event version="SE21-021-03" user="beverung" date="2021-03-05" ref="68593">Update with 2021+ logic.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-02" user="beverung" date="2022-03-22" ref="68868">Update edit logic to stop using Schema ID.</event>
                <event version="SE22-022-05" user="beverung" date="2022-05-05" ref="68991">Update edit name.</event>
                <event version="SE22-022-05" user="kirbyk" date="2022-05-17" ref="68995">Replaced non-ASCII characters in description.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-03-03" ref="69209">Add Schema ID 99999 to list of conditions where scope must be 9.</event>
                <event version="SE24-024-01" user="kirbyk" date="2024-02-06" ref="69343">Removed Schema ID 99999 from list of conditions where scope must be 9.</event>
            </history>
        </rule>
        <rule id="IFN5020" name="Autopsy Only, RX 03-2022, Primary Site, 2018 (NPCR)" tag="N5020" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.dateOfDiagnosisYear > '2022' || line.schemaId == null || line.typeOfReportingSource != '6')
    return true

boolean primarySitesFor2A = Functions.matches(line.primarySite, /^C(42[0134]|589|7([0127]\d|5[123]|6[1-8])|809)$/)

if (line.rxSummSurgPrimSite != '00' && line.rxSummSurgPrimSite != '98')
    return false

if (primarySitesFor2A) {
    if (line.rxSummScopeRegLnSur != '9')
        return false
}
else if (line.primarySite == 'C760') {
    if (line.rxSummScopeRegLnSur != '0' && line.rxSummScopeRegLnSur != '9')
        return false
}
else {
    if (line.rxSummScopeRegLnSur != '0')
         return false
}

if (line.rxSummSurgOthRegDis != '0')
    return false

if (line.reasonForNoSurgery != '1' && line.reasonForNoSurgery != '9')
    return false

if (line.rxSummBrm != '00')
    return false

if (line.rxSummChemo != '00')
    return false

if (line.rxSummHormone != '00')
    return false

if (line.rxSummOther != '0')
    return false

if (line.rxSummTransplntEndocr != '00')
    return false

if (line.phase1RadiationTreatmentModality != '00')
    return false

if (line.rxSummSurgRadSeq != '0')
    return false

if (line.rxSummSystemicSurSeq != '0')
    return false

return true]]></expression>
            <message>Conflict between Autopsy Only &amp; RX data items</message>
            <description><![CDATA[This edit verifies that surgery fields are coded appropriately by Schema ID
and/or Primary Site code for autopsy only cases.

This edit is skipped for any of the following:
    a. Year of Date of Diagnosis is less than 2018 or greater than 2022, blank(unknown), or invalid.
    b. Schema ID is blank

If Type of Reporting Source is 6 (autopsy only):

1.  RX Summ--Surg Prim Site 03-2022 must = 00 or 98
2.  RX Summ--Scope Reg LN Sur

    A. For the following primary sites, RX Summ--Scope Reg LN Sur must = 9:
       C420, C421, C423, C424, C589, C700-C709,
        C710-C729, C751-C753, C761-C768, C770-C779, C809
    B. For the following primary site, RX Summ--Scope Reg LN Sur must = 0 or 9:
       C760
    C. For all other sites/histologies
        - RX Summ--Scope Reg LN Sur must = 0

3.  RX Summ--Surg Oth Reg/Dis must = 0
4.  Reason for No Surgery must = 1 or 9
5.  RX Summ--BRM must = 00
6.  RX Summ--Chemo must = 00
7.  RX Summ--Hormone must = 00
8.  RX Summ--Other must = 0
9.  RX Summ--Transplnt/Endocr = 00
10. Phase I Radiation Treatment Modality must = 00
11. RX Summ--Surg/Rad Seq must = 0
12. RX Summ--Systemic/Sur Seq must = 0]]></description>
            <history>
                <event version="SE18-020-02" user="beverung" date="2020-03-25" ref="68295">Edit created.</event>
                <event version="SE21-021-04" user="smithm" date="2021-04-16" ref="68641">Add 2021 logic</event>
                <event version="SE21-021-04" user="kirbyk" date="2021-05-12" ref="68667">Re-writing condition 2 to make sure that later conditions are not skipped.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-01" user="secristc" date="2022-02-22" ref="68864">Removed some logic for RX Summ--Scope Reg LN Sur.</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-27" ref="68948">Change edit name and update edit logic for 2022.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-15" ref="69095">Changed name, skip conditions, and added valid site/schema ID.</event>
                <event version="SE24-024-04" user="beverung" date="2024-05-02" ref="69461">Updated RX Summ--Scope Reg LN Sur logic for Primary Site C760.</event>
            </history>
        </rule>
        <rule id="IFN5021" name="Surgery 03-2022, RX Date Surgery, Primary Site (NAACCR)" tag="N5021" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.dateOfDiagnosisYear > '2022' || line.schemaId == null)
    return true
if (line.rxSummSurgPrimSite == null || line.rxSummScopeRegLnSur == null || line.rxSummSurgOthRegDis == null)
    return true

boolean rxDateIsBlank = line.rxDateSurgeryYear == null && line.rxDateSurgeryMonth == null && line.rxDateSurgeryDay == null
boolean siteCondition = Functions.matches(line.primarySite, /^C(42[0134]|589|7[0127]\d|75[1-3]|76[0-8]|809)$/)

//condition 1
boolean rxSummSurgPrimSiteCondition = line.rxSummSurgPrimSite == '00' || line.rxSummSurgPrimSite == '98'
boolean rxSummScopeRegLnSurCondition = (line.rxSummScopeRegLnSur == '9' && (siteCondition || line.schemaId == '99999')) ||
    (line.rxSummScopeRegLnSur == '1' && line.dateOfDiagnosisYear >= '2021') || line.rxSummScopeRegLnSur == '0'
boolean rxSummSurgOthRegDisCondition = line.rxSummSurgOthRegDis == '0'

if (rxSummSurgPrimSiteCondition && rxSummScopeRegLnSurCondition && rxSummSurgOthRegDisCondition)
    return rxDateIsBlank

//condition 2
rxSummSurgPrimSiteCondition = Functions.matches(line.rxSummSurgPrimSite, /^[1-8]\d|90$/)
boolean rxSummScopeRegLnSurIs2Condition = line.rxSummScopeRegLnSur == '2' && (line.dateOfDiagnosisYear >= '2021' ||
    (line.dateOfDiagnosisYear >= '2018' && Functions.matches(line.regionalNodesExamined, /^0[1-9]|[1-8]\d|9[0-8]$/)))
rxSummScopeRegLnSurCondition = Functions.matches(line.rxSummScopeRegLnSur, /^[3-7]$/) || rxSummScopeRegLnSurIs2Condition || (line.rxSummScopeRegLnSur == '1' && line.dateOfDiagnosisYear < '2021')

rxSummSurgOthRegDisCondition = Functions.matches(line.rxSummSurgOthRegDis, /^[1-5]$/)

if (!rxDateIsBlank)
    return rxSummSurgPrimSiteCondition || rxSummScopeRegLnSurCondition || rxSummSurgOthRegDisCondition

return true]]></expression>
            <message>Conflict between treatment and treatment date</message>
            <description><![CDATA[This edit verifies that surgery fields, by Schema ID and/or Primary Site, are
coded consistently with surgery date fields.

This edit is skipped if any of the following conditions is true:
1. Date of Diagnosis is blank and less than 2018 or greater than 2022.
2. Schema ID is blank
3. RX Summ--Surg Prim Site 03-2022 is blank
4. RX Summ--Scope Reg LN Sur is blank
5. RX Summ--Surg Oth Reg/Dis is blank.


This edit compares the three surgery code fields (RX Summ--Surg Prim Site 03-2022, RX Summ--
Scope Reg
LN Sur, RX Summ--Surg Oth Reg/Dis) against the date of first surgical procedure (RX Date
Surgery).  If all of the three fields show that no surgery was performed, then the date must be
blank.
If RX date is coded, then one of the surgery fields must indicate that surgery was performed.


The edit works as follows:

1.  If surgery was not performed, then RX Date Surgery must be blank. Surgery is considered
    "not performed" if all of the following three conditions are true:

  1.    RX Summ--Surg Prim Site 03-2022 = 00 (none) or 98 (not applicable)
  2.    RX Summ--Scope Reg LN Sur = not applicable for the following:

         Primary Site code = C420, C421, C423, C424, C589, C700-C709,
            C710-C729, C751-C753, C761-C768, C770-C779, C809
         Schema ID 99999, C760

        RX Summ--Scope Reg LN Sur = 1 (for diagnosis date 2021+)

        RX Summ--Scope Reg LN Sur = 0 (none) for all other cases

  3.    RX Summ--Surg Oth Reg/Dis = 0 (none)

2.  If RX Date Surgery is not blank, a surgery field must indicate surgery performed.
    Surgery is considered "performed" if any of the following three conditions are true:
  1.    RX Summ--Surg Prim Site 03-2022 = 10-90
  2.    RX Summ--Scope Reg LN Sur = 2 (only if Regional Nodes Examined = 01-98 for diagnosis date 2018-2020)
        RX Summ--Scope Reg LN Sur = 2 (for diagnosis date 2021+)
                                    3-7
  3.    RX Summ--Surg Oth Reg/Dis = 1-5

NOTE: RX Summ--Scope Reg LN Sur = surgery not performed for diagnosis date 2021+.
For prior years, RX Summ--Scope Reg LN Sur = 1 accepted as surgery if only code indicating
surgery performed.]]></description>
            <history>
                <event version="SE21-021-09" user="beverung" date="2021-09-13" ref="68749">Edit created.</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-12" ref="68940">Changed edit name and updated logic for 2022.</event>
                <event version="SE23-023-01" user="secristc" date="2023-01-26" ref="69083">Changed edit name and updated logic.</event>
                <event version="SE23-023-01" user="cooki" date="2023-03-30" ref="69227">Added missing logic for Scope Reg LN Sur = 1.</event>
            </history>
        </rule>
        <rule id="IFN5022" name="Date Initial RX SEER, Ca Dir RX 2018-2022 (SEER)" tag="N5022" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.dateOfDiagnosisYear > '2022')
    return true

boolean siteCondition = Functions.matches(line.primarySite, /^C(42[0134]|589|7[0127]\d|75[1-3]|76[0-8]|809)$/) || line.schemaId == '99999'

boolean rxSummScopeRegLnSurYesCondition = false
if (Functions.matches(line.rxSummScopeRegLnSur, /^[3-7]$/))
    rxSummScopeRegLnSurYesCondition = true
else if (line.rxSummScopeRegLnSur == '1' && line.dateOfDiagnosisYear < '2021')
    rxSummScopeRegLnSurYesCondition = true
else if (line.rxSummScopeRegLnSur == '2' && line.dateOfDiagnosisYear >= '2018' && line.dateOfDiagnosisYear <= '2020' && Functions.matches(line.regionalNodesExamined, /^0[1-9]|[1-8]\d|9[0-8]$/))
    rxSummScopeRegLnSurYesCondition = true
else if (line.rxSummScopeRegLnSur == '2' && line.dateOfDiagnosisYear >= '2021')
    rxSummScopeRegLnSurYesCondition = true

boolean rxSummScopeNoCondition = false

if (line.rxSummScopeRegLnSur == '9' && siteCondition)
    rxSummScopeNoCondition = true
else if (line.rxSummScopeRegLnSur == '0')
    rxSummScopeNoCondition = true
else if (line.rxSummScopeRegLnSur == '1' && line.dateOfDiagnosisYear >= '2021')
    rxSummScopeNoCondition = true

if ((line.rxSummSurgPrimSite == '00' || line.rxSummSurgPrimSite == '98') &&
    rxSummScopeNoCondition &&
    line.rxSummSurgOthRegDis == '0' &&
    (line.phase1RadiationTreatmentModality == '00' || line.phase1RadiationTreatmentModality == '99') &&
    line.rxSummSurgRadSeq == '0' &&
    Functions.matches(line.rxSummBrm, /^00|8[25-8]$/) &&
    Functions.matches(line.rxSummChemo, /^00|8[25-8]$/) &&
    Functions.matches(line.rxSummHormone, /^00|8[25-8]$/) &&
    Functions.matches(line.rxSummTransplntEndocr, /^00|8[25-8]$/) &&
    Functions.matches(line.rxSummOther, /^[078]$/))
        return line.dateInitialRxSeerYear == null

if (line.dateInitialRxSeerYear != null)
    return Functions.matches(line.rxSummSurgPrimSite, /^[1-8]\d|90$/) ||
    rxSummScopeRegLnSurYesCondition ||
    Functions.matches(line.rxSummSurgOthRegDis, /^[1-5]$/) ||
    Functions.matches(line.phase1RadiationTreatmentModality, /^0[1-9]|1[0-6]|98$/) ||
    Functions.matches(line.rxSummSurgRadSeq, /^[2-9]$/) ||
    line.rxSummBrm == '01' ||
    Functions.matches(line.rxSummChemo, /^0[1-3]$/) ||
    line.rxSummHormone == '01' ||
    Functions.matches(line.rxSummTransplntEndocr, /^1[0-2]|[234]0$/) ||
    Functions.matches(line.rxSummOther, /^[1236]$/)

return true]]></expression>
            <message>Date of Initial RX-SEER, Cancer-Directed Therapy 2018-2022 conflict.</message>
            <description><![CDATA[This edit verifies that Date Initial RX SEER is coded consistently with treatment data items.

This edit is skipped if one of the following is true:
   1.  Year of diagnosis is blank or invalid
   2.  Year of diagnosis is less than 2018 or greater than 2022

The following table specifies the values for each treatment field for known to have not been
performed (NO) and for known to have been performed (YES).

If all treatment fields specify NO, then Date Initial RX SEER must specify no therapy performed (Date Initial RX SEER is blank).

If Date Initial RX SEER is a known date (not blank), then ALL treatment fields cannot specify NO.

======================================================================
RX Summ--Surg Primary Site 03-2022

  NO:      00, 98
  YES:     10-90

======================================================================
RX Summ--Surg Scope Reg LN Sur for the following primary sites:
  NO:
           9    Primary Site code = C420, C421, C423, C424, C589,
                C700-C709, C710-C729, C751-C753, C761-C768, C770-C779, C809,
                SchemaId 99999, C760
           0 for all other primary sites
           1 for all other primary sites for diagnosis 2021+
  YES:     1 for all other primary sites for diagnosis prior to 2021
           2 (for all other primary sites if Regional Nodes Examined = 01-98 for diagnosis 2018-2020)
           2 (for all other primary sites for diagnosis 2021+)
           3-7 (for all other primary sites)

======================================================================
RX Summ--Surg Oth Reg/Dis

  NO:      0
  YES:     1-5

======================================================================
Phase I Radiation Treatment Modality

  NO:      00, 99
  YES:     01-16, 98

======================================================================
RX Summ--Surg/Rad Seq

  NO:        0
  YES:       2-9

======================================================================
RX Summ--BRM

  NO:      00,82,85-88
  YES:     01

======================================================================
RX Summ--Chemo

  NO:      00,82,85-88
  YES:     01-03

======================================================================
RX Summ--Hormone

  NO:      00,82,85-88
  YES:     01

======================================================================
RX Summ--Transplant/Endocr

  NO:      00,82,85-88
  YES:     10-12,20,30,40

======================================================================
RX Summ--Other

  NO:      0,7,8
  YES:     1,2,3,6]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-01" ref="68159">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-29" ref="68377">Phase I Radiation Treatment Modality code 98 added to codes meaning radiation performed. RX Summ--Scope Reg LN Sur code 1 changed from YES to NO for treatment fields.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-18" ref="68504">Edit now applies to cases diagnosed 2018+; updated NO conditions for RX Summ--Surg Scope Reg LN Sur.</event>
                <event version="SE18-020-07" user="beverung" date="2020-09-22" ref="68526">Edit now checks Reason for No Radiation instead of Phase I Radiation Traatment Modality.</event>
                <event version="SE18-020-08" user="kirbyk" date="2020-10-13" ref="68531">Fixed YES/NO values for Reason for No Radiation.</event>
                <event version="SE21-021-03" user="beverung" date="2021-03-02" ref="68559">Update logic/description with 2021 changes.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-14" ref="68775">Remove site restriction on RX Summ--Surg Scope Reg LN Sur lymphoma condition and add ill-defined condition.</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-27" ref="68949">Change edit name and update edit logic for 2022.</event>
                <event version="SE23-023-01" user="secristc" date="2023-01-27" ref="69096">Change edit name and update edit logic for 2023.</event>
                <event version="SE23-023-02" user="cooki" date="2023-05-12" ref="69264">Added pre-2021 logic for RX Summ--Surg Scope Reg LN Sur.</event>
                <event version="SE24-024-01" user="beverung" date="2024-02-02" ref="69331">Updated description.</event>
            </history>
        </rule>
        <rule id="IFN5025" name="RX Summ--Treatm Stat, Treatment 03-2022 (NAACCR)" tag="N5025" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.dateOfDiagnosisYear > '2022' || line.rxSummTreatmentStatus == null)
    return true

if (Functions.matches(line.rxSummSurgPrimSite, /^[1-8]\d|90$/) || Functions.matches(line.rxSummSurgOthRegDis, /^[1-5]$/) || line.rxSummBrm == '01' || 
        Functions.matches(line.rxSummChemo, /^0[1-3]$/) || line.rxSummHormone == '01' || Functions.matches(line.rxSummTransplntEndocr, /^[1-3]\d|40$/) || Functions.matches(line.rxSummOther, /^[1236]$/) || line.reasonForNoRadiation == '0') {
    return line.rxSummTreatmentStatus == '1'
}

if (line.rxSummTreatmentStatus == '1') {
    // at least one field must be 'treatment given'
    return Functions.matches(line.rxSummSurgPrimSite, /^[1-8]\d|90$/) || 
           (line.dateOfDiagnosisYear < '2021' ? Functions.matches(line.rxSummScopeRegLnSur, /^[1-7]$/) : Functions.matches(line.rxSummScopeRegLnSur, /^[2-7]$/)) ||
           Functions.matches(line.rxSummSurgOthRegDis, /^[1-5]$/) || 
           line.rxSummBrm == '01' || 
           Functions.matches(line.rxSummChemo, /^0[1-3]$/) || 
           line.rxSummHormone == '01' || 
           Functions.matches(line.rxSummTransplntEndocr, /^[1-3]\d|40$/) || 
           Functions.matches(line.rxSummOther, /^[1236]$/) || 
           line.reasonForNoRadiation == '0'
}
else if (line.rxSummTreatmentStatus == '0' || line.rxSummTreatmentStatus == '2') {
    // all fields must be 'no treatment'
    return ((line.rxSummSurgPrimSite == '00' || line.rxSummSurgPrimSite == '98') &&
            (line.dateOfDiagnosisYear < '2021' || Functions.matches(line.rxSummScopeRegLnSur, /^0|[1-7]|9$/)) &&
            line.rxSummSurgOthRegDis == '0' && 
            Functions.matches(line.rxSummBrm, /^00|8[0-8]$/) && 
            Functions.matches(line.rxSummChemo, /^00|8[0-8]$/) && 
            Functions.matches(line.rxSummHormone, /^00|8[0-8]$/) && 
            Functions.matches(line.rxSummTransplntEndocr, /^00|8[0-8]$/) && 
            Functions.matches(line.rxSummOther, /^[078]$/) &&
            (Functions.matches(line.reasonForNoRadiation, /^[125-9]$/) || line.phase1RadiationTreatmentModality == '00'))
}
else if (line.rxSummTreatmentStatus == '9') {
    // at least one field must be 'unknown' (9s)
    if (line.rxSummSurgPrimSite == '99' ||
            line.rxSummSurgOthRegDis == '9' || line.rxSummBrm == '99' || line.rxSummChemo == '99' || line.rxSummHormone == '99' || 
            line.rxSummTransplntEndocr == '99' || line.rxSummOther == '9' || line.phase1RadiationTreatmentModality == '99') {
        // all fields must be 'no treatment' or 'unknown'
        return ((line.rxSummSurgPrimSite == '00' || line.rxSummSurgPrimSite == '98' || line.rxSummSurgPrimSite == '99') &&
            Functions.matches(line.rxSummScopeRegLnSur, /^0|[1-7]|9$/) &&
            (line.rxSummSurgOthRegDis == '0' || line.rxSummSurgOthRegDis == '9') &&
            Functions.matches(line.rxSummBrm, /^00|8[0-8]|99$/) && 
            Functions.matches(line.rxSummChemo, /^00|8[0-8]|99$/) && 
            Functions.matches(line.rxSummHormone, /^00|8[0-8]|99$/) && 
            Functions.matches(line.rxSummTransplntEndocr, /^00|8[0-8]|99$/) && 
            Functions.matches(line.rxSummOther, /^[0789]$/) &&
            (Functions.matches(line.reasonForNoRadiation, /^[89]$/) || line.phase1RadiationTreatmentModality == '00' || line.phase1RadiationTreatmentModality == '99'))
    }
    else
        return false
}

return true]]></expression>
            <message>Conflict between RX Summ--Treatment Status and treatment codes.</message>
            <description><![CDATA[The purpose of this edit is to verify that RX Summ--Treatment Status and
treatment fields are coded consistently.

This edit is skipped under the following conditions:
    a. RX Summ--Treatment Status is blank
    b. Date of Diagnosis is before 2019 or after 2022, blank (unknown), or invalid.

1.  If any of the treatment fields indicate treatment given, then RX Summ--
Treatment Status must equal 1 (treatment given). Treatment is considered "given"
if any of the following is true:
  RX Summ--Surg Prim Site 03-2022 = 10-90
  RX Summ--Surg Oth Reg/Dis = 1-5
  RX Summ--BRM = 01
  RX Summ--Chemo = 01-03
  RX Summ--Hormone = 01
  RX Summ--Transplnt/Endocr = 10-40
  RX Summ--Other = 1, 2, 3, 6
  Reason for No Radiation = 0

2. If Treatment Status = 1 (treatment given), at least one of the following fields
must equal treatment given. Treatment is considered "given" if any of the following 
is true:
  RX Summ--Surg Prim Site 03-2022 = 10-90
  RX Summ--Scope Reg LN Sur = 1-7 through 2020 only, 2-7 2021+
  RX Summ--Surg Oth Reg/Dis = 1-5
  RX Summ--BRM = 01
  RX Summ--Chemo = 01-03
  RX Summ--Hormone = 01
  RX Summ--Transplnt/Endocr = 10-40
  RX Summ--Other = 1, 2, 3, 6
  Reason for No Radiation = 0

3.  If RX Summ--Treatment Status = 0 (no treatment) or 2 (active surveillance),
then the treatment fields must all indicate "no treatment".
Treatment is considered "not given" if all of the following conditions are true:
  RX Summ--Surg Prim Site 03-2022 = 00, 98
  RX Summ--Scope Reg LN Sur = 0, 1-7, 9 for 2021+ diagnosis
  RX Summ--Surg Oth Reg/Dis = 0
  RX Summ--BRM = 00, 80-88
  RX Summ--Chemo = 00, 80-88
  RX Summ--Hormone = 00, 80-88
  RX Summ--Transplnt/Endocr = 00, 80-88
  RX Summ--Other = 0, 7-8
  Reason for No Radiation = 1-2, 5-9 or Phase I Radiation Treatment Modality = 00

4.  If RX Summ--Treatment Status = 9 (unknown if any treatment), then at least 
one of the following treatment fields must indicate "unknown if treatment" (codes 9 and
99 below) and the remaining should indicate either "unknown if treatment" or "no
treatment".  RX Summ--Scope Reg LN Sur may be coded any value 0, 1-7, or 9.
  RX Summ--Surg Prim Site 03-2022 = 00, 98, 99
  RX Summ--Surg Oth Reg/Dis = 0, 9
  RX Summ--BRM = 00, 80-88, 99
  RX Summ--Chemo = 00, 80-88, 99
  RX Summ--Hormone = 00, 80-88, 99
  RX Summ--Transplnt/Endocr = 00, 80-88, 99
  RX Summ--Other = 0, 7-8, 9
  Reason for No Radiation = 8 or 9 or Phase I Radiation Treatment Modality = 00, 99]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-02" ref="68159">Edit created.</event>
                <event version="SE18-019-03" user="kirbyk" date="2019-07-30" ref="68213">Removed some checks for RX Summ--Scope Reg LN Sur, added logic for RX Summ--Treatment Status = 1.</event>
                <event version="SE21-021-03" user="secristm" date="2021-03-04" ref="68594">Added logic for RX Summ--Scope Reg LN Sur for 2021+ diagnoses.</event>
                <event version="SE23-023-01" user="secristc" date="2023-03-02" ref="69097">Added logic for Reason No Radiation, updated edit name.</event>
            </history>
        </rule>
        <rule id="IFN5027" name="Grade Clin, Grade Path 03-2022 (NAACCR)" tag="N5027" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.dateOfDiagnosisYear > '2022')
    return true

if (line.gradePathological == null || line.gradePathological == '9' || line.gradeClinical == null || line.gradeClinical == '8' || line.gradeClinical == '9')
    return true

if (Functions.matches(line.schemaId, /^0072[123]$/))
    return true

if (Functions.matches(line.rxSummSurgPrimSite, /^[3-8]\d|90$/) && line.gradePostTherapy == null && Functions.matches(line.gradeClinical, /^\d$/) && Functions.matches(line.gradePathological, /^\d$/))
    return line.gradePathological != '8' && line.gradeClinical <= line.gradePathological

return true]]></expression>
            <message>Grade Pathological must not be less than Grade Clinical and not = 8 if Grade Clinical = 1-5, Grade Post Therapy (yp) is blank, and RX Summ--Surg Prim Site 03-2022 = 30-90.</message>
            <description><![CDATA[This edit checks that Grade Clinical is used to code Grade Pathological if the
grade on clinical pathology is higher than the grade on surgical pathology.

From the Grade Manual:
"Record the highest grade documented from any microscopic specimen of the primary
site whether from the clinical workup or the surgical resection."

1. This edit is skipped under the following conditions:
    a. Date of diagnosis = pre-2019 or after 2022, blank (unknown) or invalid.
    b. Grade Pathological is blank or 9.
    c. Grade Clinical = 8, 9, or blank.
    d. Schema ID = 00721, 00722, 00723

2. If surgery is performed (RX Summ--Surg prim Site 03-2022 = 30-90),
   if Grade Clinical and Grade Pathological are numeric and Grade Post Therapy (yp) =
    blank, Grade Pathological must not be less than Grade Clinical and must not
   = 8.]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-03" ref="68157">Edit created.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-31" ref="68298">Add skip condition for schemaIds 00721, 00722, 00723 and remove Grade Pathological must not = 9 from step 2.</event>
                <event version="SE18-020-04" user="beverung" date="2020-06-30" ref="68363">Updated error message to remove Grade Pathological must not = 9.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-30" ref="68398">Update skip condition and change Grade Post Therapy to Grade Post Therapy (yp).</event>
                <event version="SE22-022-05" user="kirbyk" date="2022-05-17" ref="68995">Replaced non-ASCII characters in message.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-01-25" ref="69099">Name change and add skip condition for DX year after 2022.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-22" ref="69198">Add skip condition for blank Grade Clinical.</event>
            </history>
        </rule>
        <rule id="IFN5031" name="EOD Regional Nodes, Breast, Reg Nodes Positive, Scope Nodes (SEER)" tag="N5031" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.eodRegionalNodes == null || line.schemaId != '00480' || line.typeOfReportingSource == '7')
    return true

String eodRegNodes = line.eodRegionalNodes
if (['030', '050', '070'].contains(eodRegNodes)) {
    if (line.regionalNodesPositive != null && line.regionalNodesPositive != '00' && line.regionalNodesPositive != '99')
        return false
}

if (['200', '250', '300'].contains(eodRegNodes)) {
    if (['00', '98', '99'].contains(line.regionalNodesPositive))
        return false
}

if (['030', '050', '070', '200', '250', '300'].contains(eodRegNodes) && line.rxSummScopeRegLnSur != null) {
    if (line.typeOfReportingSource == '6')
        return line.rxSummScopeRegLnSur == '0'
    else {
        Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
        Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
        Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
        Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
        Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
        Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

        if (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5))
            return Functions.matches(line.rxSummScopeRegLnSur, /^[0-7]$/)
        else
            return Functions.matches(line.rxSummScopeRegLnSur, /^[1-7]$/)
    }
}

return true]]></expression>
            <message>Regional Nodes Positive and Regional Nodes Examined conflict with EOD Regional Nodes.</message>
            <description><![CDATA[This edit verifies that EOD Regional Nodes codes for pathological assessment are coded consistently with RX Summ--Scope Reg LN Surg and Regional Nodes Positive for Schema ID 00480, Breast.

1. This edit is skipped if any of the following conditions are true:
    a. Year of Date of Diagnosis is less than 2019, blank (unknown), or invalid
    b. Schema ID is not 00480
    c. EOD Regional Nodes is blank
    d. Type of Reporting Source = 7 (Death Certificate Only)

2. If EOD Regional Nodes = 030, 050, or 070 (pathological assessment of nodes with ITCs only or negative nodes)
    a. Regional Nodes Positive if not blank must = 00 (no nodes positive) or 99 (unknown or no information)

3. If EOD Regional Nodes = 200 (pathologic assessment only, positive axillary nodes), 250, or 300 (pathologic assessment only, internal mammary nodes positive on sentinel node biopsy without and with axillary nodes)
    a. Regional Nodes Positive must not = 00 (no nodes positive), 98 (no nodes examined) or 99 (unknown or no information)

4. If EOD Regional Nodes = 030, 050, 070, 200, 250. or 300 and RX Summ--Scope Reg LN Sur is not blank
    If Type of Reporting Source = 6 (autopsy only) then RX Summ--Scope Reg LN Sur must =0
    Else if vital Status = 0 and Date of Last Contact within 5 months of Date of Diagnosis then RX Summ--Scope Reg LN Sur must = 0-7
    Else RX Summ--Scope Reg LN Sur must = 1-7]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-29" ref="68143">Edit created.</event>
                <event version="SE18-019-06" user="beverung" date="2019-10-14" ref="68262">Edit no longer checks EOD Regional Nodes based on Regional Nodes Examined/Positive.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-27" ref="68316">Changed name.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-27" ref="68378">Update name and logic.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68781">Update conditions for RX Summ-Scope Reg LN Sur.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-05" user="kirbyk" date="2022-05-17" ref="68995">Replaced non-ASCII characters in description.</event>
                <event version="SE23-023-03" user="shearerw" date="2023-05-24" ref="69216">Fix logic for DOLC within 5 months of DX date to allow difference in year.</event>
            </history>
        </rule>
        <rule id="IFN5032" name="ER Summary, Breast, ER Percent (NAACCR)" tag="N5032" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.estrogenReceptorSummary == null)
    return true

if (line.estrogenReceptorPercntPosOrRange == null || line.estrogenReceptorPercntPosOrRange == 'XX8')
    return true

if (Functions.matches(line.estrogenReceptorPercntPosOrRange, /^0(0[1-9]|[1-9]\d)|100|R([1-9]\d)$/))
    return line.estrogenReceptorSummary != '0'

return true]]></expression>
            <message>Estrogen Receptor Summary and Estrogen Receptor Percent Positive or Range conflict for 2019+</message>
            <description><![CDATA[This edit verifies consistency of coding of Estrogen Receptor Summary
with Estrogen Receptor Percent Positive or Range.

1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis is pre 2019, blank (unknown), or invalid.
    b. Estrogen Receptor Summary is blank.
    c. Estrogen Receptor Percent Positive or Range is blank or not applicable

2. If Estrogen Receptor Percent Positive or Range = 001-100, R10-R99,
   then Estrogen Receptor Summary must not = 0 (negative).]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN5033" name="PR Summary, Breast, PR Percent (NAACCR)" tag="N5033" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.progesteroneRecepSummary == null)
    return true

if (line.progesteroneRecepPrcntPosOrRange == null || line.progesteroneRecepPrcntPosOrRange == 'XX8')
    return true

if (Functions.matches(line.progesteroneRecepPrcntPosOrRange, /^0(0[1-9]|[1-9]\d)|100|R([1-9]\d)$/))
    return line.progesteroneRecepSummary != '0'

return true]]></expression>
            <message>Progesterone Receptor Summary and Progesterone Receptor Percent Positive or Range conflict for 2018+</message>
            <description><![CDATA[This edit verifies consistency of coding of Progesterone Receptor Summary
with Progesterone Receptor Percent Positive or Range.

1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis is pre 2019, blank (unknown), or invalid.
    b. Progesterone Receptor Summary is blank.
    c. Progesterone Receptor Percent Positive or Range is blank or not applicable

2. If Progesterone Receptor Percent Positive or Range = 001-100, R10-R99,
   then Progesterone Receptor Summary must not = 0 (negative).]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN5041" name="Brain Molecular Markers, Summary Stage 2018 (NAACCR)" tag="N5041" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.summaryStage2018 == null || line.typeOfReportingSource  == '7')
    return true
    
if (!['00721','00722','09721','09722','09724'].contains(line.schemaId) || line.brainMolecularMarkers == null || line.brainMolecularMarkers == '88')
    return true

if (line.brainMolecularMarkers == '86')
    return line.summaryStage2018 == '8'

if (line.summaryStage2018 == '8')
    return line.brainMolecularMarkers == '86' || line.brainMolecularMarkers == '99'

return true]]></expression>
            <message>Brain Molecular Markers conflicts with Summary Stage 2018.</message>
            <description><![CDATA[This edit verifies that the Brain Molecular Markers SSDI is coded consistently
with Summary Stage 2018.


1. The edit is skipped for the following conditions:
    a. Diagnosis date is before 2019, blank (unknown), or invalid.
    b. Schema ID not = 00721, 00722, 09721, 09722, or 09724.
    c. Brain Molecular Markers is blank or 88 (not applicable).
    d. Summary Stage 2018 is blank
    e. Type of Reporting Source = 7

2. The edit verifies that if Brain Molecular Markers is coded 86 (Benign or
   borderline tumor),Summary Stage 2018 = 8.

3. If Summary Stage 2018 = 8, Brain Molecular Markers must = 86 (Benign or
   borderline) or 99 (no microscopic confirmation).]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-28" ref="68142">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
                <event version="SE23-023-01" user="cooki" date="2023-02-16" ref="69147">Added skip condition for Schema IDs 09721, 09722, and 09724.</event>
            </history>
        </rule>
        <rule id="IFN5042" name="Breslow Tumor Thickness, Melanoma, Summary Stage 2018 (NAACCR)" tag="N5042" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.summaryStage2018 == null || line.typeOfReportingSource  == '7')
    return true
    
if (line.schemaId != '00470' || line.breslowTumorThickness == null || line.breslowTumorThickness == 'XX.8')
    return true

if (line.summaryStage2018 == '0')
    return line.breslowTumorThickness == 'XX.9'

return true]]></expression>
            <message>Breslow Tumor Thickness conflicts with Summary Stage 2018.</message>
            <description><![CDATA[This edit verifies that the Breslow Tumor Thickness SSDI is coded consistently
Summary Stage 2018.

1. The edit is skipped for the following conditions:
   a. Diagnosis date is before 2019, blank (unknown), or invalid.
    b. Schema ID not = 00470
    c. Breslow Tumor Thickness is blank or XX.8 (not applicable).
    d. Summary Stage 2018 is blank
    e. Type of Reporting Source = 7

2. The edit verifies that if Summary Stage 2018 = 0, Breslow Tumor Thickness must
   = XX.9 (In situ melanoma).]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-29" ref="68144">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN5043" name="Tumor Deposits, Colorectal, Summary Stage 2018 (NAACCR)" tag="N5043" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.summaryStage2018 == null || line.typeOfReportingSource  == '7')
    return true
    
if (line.schemaId != '00200' || line.tumorDeposits == null || line.tumorDeposits == 'X8')
    return true

if (Functions.matches(line.tumorDeposits, /^0[1-9]|[2-9]\d|X[12]$/))
    return !Functions.matches(line.summaryStage2018, /^[012]$/)

return true]]></expression>
            <message>Tumor Deposits conflicts with Summary Stage 2018.</message>
            <description><![CDATA[This edit verifies that the Tumor Deposits SSDI is coded consistently
with Summary Stage 2018.

1. The edit is skipped for the following conditions:
   a. Diagnosis date is before 2019, blank (unknown), or invalid.
    b. Schema ID not = 00200.
    c. Tumor Deposits is blank or X8 (not applicable).
    d. Summary Stage 2018 is blank
    e. Type of Reporting Source = 7

2. The edit verifies that if Tumor Deposits is coded 01-99, X1, or X2 (tumor
   deposits identified), Summary Stage 2018 must not =  0, 1, or 2 (in situ, local,
   or regional by direct extension only).]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-03" ref="68149">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN5044" name="Extranodal Extension Head and Neck Path, Summary Stage 2018 (NAACCR)" tag="N5044" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.summaryStage2018 == null || line.typeOfReportingSource  == '7')
    return true
    
if (!Functions.matches(line.schemaId, /^00(0[689]0|07[1-7]|100|1[12][12]|13[0-3]|140)$/) || line.extranodalExtensionHeadNeckPath == null || line.extranodalExtensionHeadNeckPath == 'X.8')
    return true

if (Functions.matches(line.extranodalExtensionHeadNeckPath, /^\d\.\d|X\.[1234]$/))
    return !Functions.matches(line.summaryStage2018, /^[012]$/)

return true]]></expression>
            <message>Extranodal Extension Head and Neck Pathological conflicts with Summary Stage 2018.</message>
            <description><![CDATA[This edit verifies that the Extranodal Extension Head and Neck Pathological is
is coded consistently with Summary Stage 2018 for head and neck sites.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2019, blank (unknown), or invalid.
    b. Schema ID is not 00060, 00071, 00072, 00073, 00074, 00075, 00076, 00077,
        00080, 00090, 00100, 00111, 00112, 00121, 00122, 00130, 00131, 00132,
        00133, 00140
    c. Extranodal Extension Head and Neck Pathological is blank or not applicable
    d. Summary Stage 2018 is blank.
    e. Type of Reporting Source = 7

2.  If Extranodal Extension Head and Neck Pathological = 0.0-9.9,X.1, X.2, X.3, or X.4 (Pathological nodal involvement)
      Summary Stage 2018 must not = 0, 1, or 2 (in situ, local, or regional by
      extension only)]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-03" ref="68149">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN5045" name="Extranodal Extension Head and Neck Path, EOD Regional Nodes (SEER)" tag="N5045" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.eodRegionalNodes == null)
    return true

String path = line.extranodalExtensionHeadNeckPath
if (!Functions.matches(line.schemaId, /^00(0[68]0|07[1-7]|1[12][12]|13[0-3])$/) || path == null || path == 'X.8')
    return true

if (path == '0.0')
    return Functions.matches(line.eodRegionalNodes, /^[12348]00|[24]50$/)
if (Functions.matches(path, /^0\.[1-9]|[1-9]\.\d|X\.[1234]$/))
    return Functions.matches(line.eodRegionalNodes, /^150|[567]00$/)

return true]]></expression>
            <message>Extranodal Extension Head and Neck Pathological conflicts with EOD Regional Nodes.</message>
            <description><![CDATA[This edit verifies that Extranodal Extension Head and Neck Pathological SSDI is coded
consistently with EOD Regional Nodes for head and neck sites.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2019, blank (unknown), or invalid.
    b. Schema ID is not 00060, 00071, 00072, 00073, 00074, 00075, 00076, 00077,
      00080, 00111, 00112, 00121, 00122, 00130, 00131, 00132,
        00133
    c. Extranodal Extension Head and Neck Pathological is blank or not applicable
    d. EOD Regional Nodes is blank.


2.  If Extranodal Extension Head and Neck Pathological = 0.0 (regional nodes
      involved, ENE not present),
   EOD Regional Nodes must = 100, 200, 250, 300, 400 (clinical or
      pathological nodal involvement, ENE not present or unknown), 450
      (clinically overt ENE), or 800 (regional nodes NOS).

3. If Extranodal Extension Head and Neck Pathological = 0.1-9.9, X.1, X.2, X.3,
      or X.4 (pathological nodal involvement, ENE present)
   EOD Regional Nodes must = 150, 500, 600, or 700 (pathological nodal
      involvement, ENE present).]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-15" ref="68146">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="IFN5046" name="Extranodal Extension Clin/Path, Merkel Cell, Summary Stage 2018 (NAACCR)" tag="N5046" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[
if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.schemaId != '00460' || line.summaryStage2018 == null || line.typeOfReportingSource == '7')
    return true
if ((line.extranodalExtensionClin == null || line.extranodalExtensionClin == '8') && (line.extranodalExtensionPath == null || line.extranodalExtensionPath == '8'))
    return true

if (['0','1','2','4'].contains(line.extranodalExtensionClin) && ['0','1'].contains(line.extranodalExtensionPath) && ['0','1','2'].contains(line.summaryStage2018))
    return false
return true
]]></expression>
            <message>Extranodal SSDIs/Summary Stage 2018 conflict for Merkel Cell</message>
            <description><![CDATA[This edit verifies that the extranodal extension SSDIs are coded consistently 
with Summary Stage 2018 for Merkel Cell Carcinoma.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2019, blank (unknown), or invalid.
    b. Schema ID is not 00460
    c. Extranodal Extension Clin (non-Head and Neck) and
       Extranodal Extension Path (non-Head and Neck) are both blank or both not
       applicable
    d. Summary Stage 2018 is blank
    e. Type of Reporting Source = 7 (death certificate only)    

Extranodal Extension Clin (non-Head and Neck) and Extranodal Extension Path
(non-Head and Neck) are required by SEER only if collected by a CoC-accredited 
facility on an analytic case (CoC Accredited Flag = 1).

2.    If Extranodal Extension Clin (non-Head and Neck) = 0, 1, 2, or 4 (regional nodes
      involved), and Extranodal Extension Path (non-Head and Neck) = 0 or 1 
      (regional nodes involved),
   Summary Stage 2018 must not = 0, 1 or 2 (in situ, local, or regional by direct
      extension only)]]></description>
            <history>
                <event version="SE22-022-05" user="beverung" date="2022-05-04" ref="68966">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN5047" name="Extranodal Extension Clin/Path, Penis, Summary Stage 2018 (NAACCR)" tag="N5047" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[
if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.schemaId != '00570' || line.summaryStage2018 == null || line.typeOfReportingSource == '7')
    return true
if ((line.extranodalExtensionClin == null || line.extranodalExtensionClin == '8') && (line.extranodalExtensionPath == null || line.extranodalExtensionPath == '8'))
    return true

if (line.extranodalExtensionClin == '7' && line.extranodalExtensionPath == '7' && ['3','4'].contains(line.summaryStage2018))
    return false
if (['0','1','2','4'].contains(line.extranodalExtensionClin) && ['0','1'].contains(line.extranodalExtensionPath) && ['0','1','2'].contains(line.summaryStage2018))
    return false
return true
]]></expression>
            <message>Extranodal SSDIs/Summary Stage 2018 conflict for Penis</message>
            <description><![CDATA[This edit verifies that the extranodal extension SSDIs are coded consistently
with Summary Stage 2018 for Penis.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2019, blank (unknown), or invalid.
    b. Schema ID is not 00570
    c. Extranodal Extension Clin (non-Head and Neck) and
       Extranodal Extension Path (non-Head and Neck) are both blank or both = 8
       (not applicable)
    d. Summary Stage 2018 is blank
    e. Type of Reporting Source = 7 (death certificate only)

2. If Extranodal Extension Clin (non-Head and Neck) = 7 (no lymph node
     involvement during diagnostic workup) and Extranodal Extension Path
     (non-Head and Neck) = 7 (no lymph node involvement from surgical resection),
   Summary Stage 2018 must not  = 3 or 4 (lymph node involvement)

3. If Extranodal Extension Clin (non-Head and Neck) = 0, 1, 2, or 4 (nodes involved
     clinically) and Extranodal Extension Path (non-Head and Neck) = 0 or 1
     (nodes involved pathologically)
   Summary Stage 2018 must not = 0, 1 or 2 (in situ, local, or regional by
     direct extension only)]]></description>
            <history>
                <event version="SE22-022-05" user="beverung" date="2022-05-04" ref="68966">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN5048" name="FIGO Stage, Summary Stage 2018 (NAACCR)" tag="N5048" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.summaryStage2018 == null || line.typeOfReportingSource  == '7')
    return true
    
if (!Functions.matches(line.schemaId, /^(005([01236]0|5[123]|28)|095[02]0)$/) || line.figoStage == null || line.figoStage == '98')
    return true

if (line.summaryStage2018 == '0' && !['00530', '00551', '00553'].contains(line.schemaId) && line.figoStage != '97')
    return false

if (line.figoStage == '97' && line.summaryStage2018 != '0')
    return false

return true]]></expression>
            <message>FIGO Stage conflicts with Summary Stage 2018.</message>
            <description><![CDATA[The edit verifies that the FIGO Stage SSDI is coded consistently with Summary
Stage 2018

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2019, blank, or invalid
    b. Schema ID not = 00500, 00510, 00520, 00530, 00551, 00552,
       00553, 00560, 09520, 00528, 09500
    c. FIGO Stage is blank or = 98 (not applicable)
    d. Summary Stage 2018 blank
    e. Type of Reporting Source = 7

2. The edit verifies that if FIGO Stage = 97 (Carcinoma in situ),
    Summary Stage 2018 must = 0 (Carcinoma in situ).

3. If Summary Stage 2018 = 0 and Schema ID is not 00530, 00551, or
    00553 (schemas where 8380/2 or 8441/2 are staged T1a or T1b),
    FIGO Stage must = 97]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-03" ref="68149">Edit created.</event>
                <event version="SE21-021-03" user="secristm" date="2020-03-01" ref="68590">Add schema ID check to FIGO Stage verification.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-30" ref="68393">Add schema ID 09520 to skip condition.</event>
                <event version="SE22-022-01" user="smithm" date="2022-02-15" ref="68831">Add 00528 to skip condition</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-04" ref="69403">Added Schema ID 09500 to skip condition.</event>
            </history>
        </rule>
        <rule id="IFN5050" name="Invasion Beyond Capsule, Kidney, Summary Stage 2018 (NAACCR)" tag="N5050" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.summaryStage2018 == null || line.typeOfReportingSource  == '7')
    return true
    
if (line.schemaId != '00600' || line.invasionBeyondCapsule == null || line.invasionBeyondCapsule == '8')
    return true

return !Functions.matches(line.invasionBeyondCapsule, /^[13-5]$/) || !Functions.matches(line.summaryStage2018, /^[013]$/)]]></expression>
            <message>Invasion Beyond Capsule conflicts with Summary Stage 2018.</message>
            <description><![CDATA[Purpose: This edit verifies that Invasion Beyond Capsule SSDI is coded
consistently with Summary Stage 2018.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2019, blank (unknown), or invalid
   b. Schema ID is not 00600
   c. Invasion Beyond Capsule is blank or 8 (not applicable)
   d. Summary Stage 2018 is blank
   e. Type of Reporting Source = 7

2. If Invasion Beyond Capsule = 1,3-5 (invasion beyond capsule),
   then Summary Stage 2018 must not = 0, 1, or 3 (in situ, local, or regional
   by nodal involvement only).]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-03" ref="68149">Edit created.</event>
                <event version="SE18-019-07" user="beverung" date="2019-11-18" ref="68270">Update error message to say Summary Stage 2018 instead of Schema ID.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN5051" name="Ipsilateral Adrenal Gland Involvement, Kidney, Summary Stage 2018 (NAACCR)" tag="N5051" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.summaryStage2018 == null || line.typeOfReportingSource  == '7')
    return true
    
if (line.schemaId != '00600' || line.ipsilateralAdrenalGlandInvolve == null || line.ipsilateralAdrenalGlandInvolve == '8')
    return true

if (line.ipsilateralAdrenalGlandInvolve == '1')
    return !Functions.matches(line.summaryStage2018, /^[013]$/)
else if (line.ipsilateralAdrenalGlandInvolve == '2' || line.ipsilateralAdrenalGlandInvolve == '3')
    return line.summaryStage2018 == '7'

return true]]></expression>
            <message>Ipsilateral Adrenal Gland Involvement conflicts with Summary Stage 2018.</message>
            <description><![CDATA[This edit verifies that the Ipsilateral Adrenal Gland Involvement SSDI is coded
consistently with Summary Stage 2018.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2019, blank (unknown), or invalid.
    b. Schema ID is not 00600.
    c. Ipsilateral Adrenal Gland Involvement is blank or 8 (not applicable).
    d. Summary Stage 2018 is blank
    e. Type of Reporting Source = 7

1. If Ipsilateral Adrenal Gland Involvement = 1 (contiguous involvement),
   then Summary Stage 2018 must not = 0, 1, or 3 (in situ, local, or regional by
   nodal involvement only)

3. If Ipsilateral Adrenal Gland Involvement = 2 or 3 (discontiguous
   involvement),
   then Summary Stage 2018 must = 7.]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-03" ref="68149">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN5052" name="LN Distant, Gynecologic, Summary Stage 2018 (NAACCR)" tag="N5052" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.summaryStage2018 == null || line.typeOfReportingSource == '7')
    return true
if (!['00510','00520','09520'].contains(line.schemaId) || line.lnDistantMediastinalScalene == null || line.lnDistantMediastinalScalene == '8')
    return true

return !['1','2','3'].contains(line.lnDistantMediastinalScalene) || line.summaryStage2018 == '7'
]]></expression>
            <message>LN Distant: Mediastinal, Scalene conflicts with Summary Stage 2018</message>
            <description><![CDATA[This edit verifies that LN Distant: Mediastinal, Scalene SSDI, codes 1-3,
is coded consistently with Summary Stage 2018 for Vagina and Cervix.


1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2019, blank (unknown), or invalid.
    b. Schema ID is not 00510, 00520, 09520
    c. LN Distant: Mediastinal, Scalene is blank or 8 (not applicable)
    d. Summary Stage 2018 is blank
    e. Type of Reporting Source = 7 (death certificate only)

2. If LN Distant: Mediastinal Scalene = 1-3 (positive distant nodes)
     Summary Stage 2018 must = 7]]></description>
            <history>
                <event version="SE22-022-05" user="beverung" date="2022-05-04" ref="68966">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN5053" name="LN Head and Neck Levels, Melanoma Head/Neck, Summary Stage 2018 (NAACCR)" tag="N5053" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.summaryStage2018 == null || line.schemaId != '00140' || line.typeOfReportingSource  == '7')
    return true

String ln13 = line.lnHeadAndNeckLevels1To3
String ln45 = line.lnHeadAndNeckLevels4To5
String ln67 = line.lnHeadAndNeckLevels6To7
String lnOther = line.lnHeadAndNeckOther
if ((ln13 == null || ln13 == '8') && (ln45 == null || ln45 == '8') && (ln67 == null || ln67 == '8') && (lnOther == null || lnOther == '8'))
    return true

if (Functions.matches(ln13, /^[1-7]$/) || Functions.matches(ln45, /^[1-3]$/) || Functions.matches(ln67, /^[1-3]$/) || Functions.matches(lnOther, /^[1-7]$/))
    if (Functions.matches(line.summaryStage2018, /^[012]$/))
        return false

return true]]></expression>
            <message>LN Head and Neck codes conflict with Summary Stage 2018.</message>
            <description><![CDATA[This edit verifies that the LN Head and Neck SSDIs are coded consistently with
Summary Stage 2018 for Schema ID 00140, Melanoma Head and Neck

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or invalid.
   b. Schema ID is not 00140
   c. LN Head and Neck Levels I-III, LN Head and Neck levels IV-V, LN Head and
      Neck Levels VI-VII, and LN Head and Neck Other are all blank or not
      applicable.
   d. Summary Stage 2018 is blank
   e. Type of Reporting Source = 7

2. If LN Head and Neck Levels I-III = 1-7 (lymph nodes involved) or
     LN Head and Neck Levels IV-V = 1-3 (lymph nodes involved)or
     LN Head and Neck Levels VI-VII = 1-3 (lymph nodes involved) or
     LN Head and Neck Other = 1-7 (lymph nodes involved)
   Summary Stage 2018 must not = 0, 1, or 2 (in situ, local, regional by
     extension only)]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-03" ref="68149">Edit created.</event>
                <event version="SE18-020-01" user="beverung" date="2020-02-24" ref="68287">Fixed logic for step 3 in description.</event>
                <event version="SE18-020-02" user="kirbyk" date="2020-03-27" ref="68323">Changed edit name; removed Schema ID 00060 from skip condition; removed unknown from step 3.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-27" ref="68426">Remove step 3 from description and logic.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN5054" name="LN Isolated Tumor Cells (ITC), Merkel Cell, Summary Stage 2018 (NAACCR)" tag="N5054" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.summaryStage2018 == null || line.schemaId != '00460' || line.typeOfReportingSource  == '7')
    return true

if (line.lnIsolatedTumorCells == null || line.lnIsolatedTumorCells == '8')
    return true

if (line.lnIsolatedTumorCells == '1')
    return !Functions.matches(line.summaryStage2018, /^[012]$/)

return true]]></expression>
            <message>LN Isolated Tumor Cells (ITC) conflicts with Summary Stage 2018.</message>
            <description><![CDATA[This edit verifies that LN Isolated Tumor Cells (ITC) SSDI is coded consistently
with Summary Stage 2018 for Merkel Cell Carcinoma.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or invalid.
   b. Schema ID is not 00460
   c. LN Isolated Tumor Cells (ITC) is blank or 8 (not applicable).
   d. Summary Stage 2018 is blank
   e. Type of Reporting Source = 7

2. If LN Isolated Tumor Cells (ITC) = 1 (lymph nodes positive for ITCs)
   Summary Stage 2018 must not = 0, 1, or 2 ((in situ, local, or regional by
   direct extension only)]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-03" ref="68149">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN5055" name="LN Positive Axillary Level I-II, Breast, Summary Stage 2018 (NAACCR)" tag="N5055" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.summaryStage2018 == null || line.schemaId != '00480' || line.typeOfReportingSource  == '7')
    return true

if (line.lnPositiveAxillaryLevel1To2 == null || line.lnPositiveAxillaryLevel1To2 == 'X8')
    return true

if (Functions.matches(line.lnPositiveAxillaryLevel1To2, /^0[1-9]|[1-9]\d|X[156]$/))
    return !Functions.matches(line.summaryStage2018, /^[012]$/)

return true]]></expression>
            <message>LN Positive Axillary Level I-II conflicts with Summary Stage 2018.</message>
            <description><![CDATA[This edit verifies that LN Positive Axillary Level I-II SSDI is coded
consistently with Summary Stage 2018 for Breast.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or invalid.
   b. Schema ID is not 00480
   c. LN Positive Axillary Level I-II is blank or X8 (not applicable).
   d. Summary Stage 2018 is blank
   e. Type of Reporting Source = 7

2. If LN Positive Axillary Level I-II = 01-99, X1, X5, or X6 (lymph nodes
     positive)
   Summary Stage 2018 must not = 0, 1, or 2 (in situ, local, or regional by
     direct extension only)]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-04" ref="68149">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN5056" name="LN Laterality, Vulva, Summary Stage 2018 (NAACCR)" tag="N5056" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.summaryStage2018 == null || (line.schemaId != '00500' && line.schemaId != '09500')
            || line.typeOfReportingSource  == '7')
    return true

if (line.lnLaterality == null || line.lnLaterality == '8')
    return true

if (Functions.matches(line.lnLaterality, /^[123]$/))
    return !Functions.matches(line.summaryStage2018, /^[012]$/)

return true]]></expression>
            <message>LN Laterality conflicts with Summary Stage 2018.</message>
            <description><![CDATA[This edit checks consistency between LN Laterality and Summary Stage 2018 for Vulva.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or invalid.
   b. Schema ID is not 00500 or 09500
   c. LN Laterality is blank or 8 (not applicable)
   d. Summary Stage 2018 is blank
   e. Type of Reporting Source = 7 (death certificate only)

2. If LN Laterality = 1-3 (lymph nodes positive)
   Summary Stage 2018 must not = 0, 1, or 2 (in situ, local, or regional by
   direct extension only)]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-04" ref="68149">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-02-28" ref="69338">Update description and add schema 09500 to skip condition.</event>
            </history>
        </rule>
        <rule id="IFN5057" name="LN Size, Head/Neck, Summary Stage 2018 (NAACCR)" tag="N5057" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.summaryStage2018 == null || 
     !Functions.matches(line.schemaId, /^00(0[689]0|07[1-7]|100|1[12][12]|13[0-3]|1[45]0)$/) || line.typeOfReportingSource  == '7')
    return true

if (line.lnSize == null || line.lnSize == 'XX.8')
    return true

if (line.lnSize != '0.0' && line.lnSize != 'XX.9')
    return !Functions.matches(line.summaryStage2018, /^[012]$/)

return true]]></expression>
            <message>LN Size conflicts with Summary Stage 2018.</message>
            <description><![CDATA[This edit verifies that LN Size SSDI is coded consistently with Summary Stage 2018 for head and neck sites.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or invalid.
   b. Schema ID is not in the following list:

        00060
        00071
        00072
        00073
        00074
        00075
        00076
        00077
        00080
        00090
        00100
        00111
        00112
        00121
        00122
        00130
        00131
        00132
        00133
        00140
        00150

   c. LN Size is blank or XX.8 (not applicable).
   d. Summary Stage 2018 is blank
   e. Type of Reporting Source = 7

2. If LN Size not = 0.0 (no nodes involved) or, XX.9 (unknown if nodes involved)
     (lymph nodes are positive)
   Summary Stage 2018 must not = 0, 1, or 2 (in situ, local, or regional by
   direct extension only)]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-04" ref="68149">Edit created.</event>
                <event version="SE18-020-02" user="kirbyk" date="2020-03-27" ref="68324">Updated description.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-27" ref="68427">Updated description.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN5059" name="Lymphovascular Invasion, Penis, Summary Stage 2018 (NAACCR)" tag="N5059" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.summaryStage2018 == null || line.schemaId != '00570' || line.typeOfReportingSource  == '7')
    return true

if (line.lymphVascularInvasion == null || line.lymphVascularInvasion == '8')
    return true

return !Functions.matches(line.lymphVascularInvasion, /^[1-4]$/) || line.summaryStage2018 != '0']]></expression>
            <message>Lymphovascular Invasion/Summary Stage 2018 conflict for Penis</message>
            <description><![CDATA[Purpose: This edit verifies that Lymphovascular Invasion is coded consistently
with Summary Stage 2018 for Penis.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2019, blank (unknown), or invalid
   b. Schema ID is not 00570
   c. Lymphovascular Invasion is blank or 8 (not applicable)
   d. Summary Stage 2018 is blank
   e. Type of Reporting Source = 7

2. If Lymphovascular Invasion = 1-4 (invasion present)
   then Summary Stage 2018 must not = 0 (in situ)]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-12" ref="68150">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN5060" name="Lymphovascular Invasion, Testis, Summary Stage 2018 (NAACCR)" tag="N5060" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.summaryStage2018 == null || line.schemaId != '00590' || line.typeOfReportingSource  == '7')
    return true

if (line.lymphVascularInvasion == null || line.lymphVascularInvasion == '8')
    return true

return !Functions.matches(line.lymphVascularInvasion, /^[1-4]$/) || line.summaryStage2018 != '0']]></expression>
            <message>Lymphovascular Invasion/Summary Stage 2018 conflict for Testis</message>
            <description><![CDATA[Purpose: This edit verifies that Lymphovascular Invasion is coded consistently
with Summary Stage 2018 for Testis.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2019, blank (unknown), or invalid
   b. Schema ID is not 00590
   c. Lymphovascular Invasion is blank or 8 (not applicable)
   d. Summary Stage 2018 is blank
   e. Type of Reporting Source = 7

2. If Lymphovascular Invasion = 1-4 (invasion present)
then Summary Stage 2018 must not = 0 (in situ).]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-12" ref="68150">Edit created.</event>
                <event version="SE21-021-04" user="beverung" date="2021-04-21" ref="68645">Update logic to allow local and regional when Lymphovascular Invasion is 1-4.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6061" name="Major Vein Involvement, Kidney, Summary Stage 2018 (NAACCR)" tag="N6061" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.summaryStage2018 == null || line.schemaId != '00600' || line.typeOfReportingSource  == '7')
    return true

if (line.majorVeinInvolvement == null || line.majorVeinInvolvement == '8')
    return true

return !Functions.matches(line.majorVeinInvolvement, /^[1-4]$/) || !Functions.matches(line.summaryStage2018, /^[013]$/)]]></expression>
            <message>Major Vein Involvement conflicts with Summary Stage 2018.</message>
            <description><![CDATA[Purpose: This edit verifies that Major Vein Involvement SSDI is coded
consistently with Summary Stage 2018 for Kidney Parenchyma.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2019, blank (unknown), or invalid
   b. Schema ID is not 00600
   c. Major Vein Involvement is blank or 8 (not applicable)
   d. Summary Stage 2018 is blank
   e. Type of Reporting Source = 7

2. If Major Vein Involvement = 1 (Involvement of renal vein only), 2 (involvement
   of Inferior vena cava), 3 (Major vein invasion NOS), or 4 (Any combination of
   codes 1-3)
    then Summary Stage 2018 must not = 0, 1, or 3 (in situ, local, or regional by
    nodal involvement only)]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-12" ref="68150">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN6062" name="Separate Tumor Nodules, Lung, Summary Stage 2018 (NAACCR)" tag="N6062" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.summaryStage2018 == null || line.schemaId != '00360' || line.typeOfReportingSource  == '7')
    return true

String separateTumorNodules = line.separateTumorNodules
if (separateTumorNodules == null || separateTumorNodules == '8')
    return true

if (separateTumorNodules == '1' || separateTumorNodules == '4')
    return !Functions.matches(line.summaryStage2018, /^[013]$/)
else if (separateTumorNodules == '2' || separateTumorNodules == '3')
    return line.summaryStage2018 == '7'

return true]]></expression>
            <message>Separate Tumor Nodules conflicts with Summary Stage 2018.</message>
            <description><![CDATA[This edit verifies that Separate Tumor Nodules SSDI is coded consistently with
Summary Stage 2018 for Lung.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2019, blank (unknown), or invalid
   b. Schema ID is not 00360
   c. Separate Tumor Nodules is blank or 8 (not applicable)
   d. Summary Stage 2018 is blank
   e. Type of Reporting Source = 7

2. If Separate Tumor Nodules = 1 (separate nodules in ipsilateral lung, same
     lobe) or 4 (separate nodules in ipsilateral lung, unknown lobe),
   Summary Stage 2018 must not = 0, 1, or 3 (in situ, local, regional by nodal
     involvement only)

3. If Separate Tumor Nodules = 2 or 3 (separate nodules in ipsilateral lung,
     different lobe),
   Summary Stage 2018 must = 7 (metastasis)]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-12" ref="68150">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN6063" name="Visceral and Parietal Pleural Invasion, Lung, Summary Stage 2018 (NAACCR)" tag="N6063" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.summaryStage2018 == null || line.schemaId != '00360' || line.typeOfReportingSource  == '7')
    return true

if (line.visceralParietalPleuralInvasion == null || line.visceralParietalPleuralInvasion == '8')
    return true

return !Functions.matches(line.visceralParietalPleuralInvasion, /^[456]$/) || !Functions.matches(line.summaryStage2018, /^[013]$/)]]></expression>
            <message>Visceral and Parietal Pleural Invasion conflicts with Summary Stage 2018.</message>
            <description><![CDATA[Purpose: This edit verifies that Visceral and Parietal Pleural Invasion SSDI is
coded consistently with Summary Stage 2018 for Lung.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2019, blank (unknown), or invalid
   b. Schema ID is not 00360
   c. Visceral and Parietal Pleural Invasion is blank or 8 (not applicable)
   d. Summary Stage 2018 is blank
   e. Type of Reporting Source = 7

2. If Visceral and Parietal Pleural Invasion = 4 (invasion of visceral pleura),
    5 (invasion of parietal pleura) or 6 (invasion of pleura NOS) then Summary Stage 2018
    must = not = 0, 1, or 3 (in situ, local, regional by nodal involvement only)]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-12" ref="68150">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-01" user="beverung" date="2021-01-12" ref="68478">Fixed typo and updated Visceral and Parietal Pleural Invasion codes.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN6073" name="Peritoneal Cytology, Gynecologic, Summary Stage 2018 (NAACCR)" tag="N6073" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.summaryStage2018 == null || !['00530', '00541', '00542', '00528'].contains(line.schemaId))
    return true

if (line.peritonealCytology == null || line.peritonealCytology == '8' || line.typeOfReportingSource  == '7')
    return true

return line.peritonealCytology != '2' || !Functions.matches(line.summaryStage2018, /^[013]$/)]]></expression>
            <message>Peritoneal Cytology conflicts with Summary Stage 2018.</message>
            <description><![CDATA[This edit verifies that Peritoneal Cytology SSDI is coded consistently with
Summary Stage 2018 for Corpus Carcinoma, Corpus Sarcoma, and Corpus Adenosarcoma.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2019, blank (unknown), or invalid
   b. Schema ID is not 00530, 00541, 00542, 00528
   c. Peritoneal Cytology is blank or 8 (not applicable)
   d. Summary Stage 2018 is blank
   e. Type of Reporting Source = 7

2. If Peritoneal Cytology  = 2 (peritoneal cytology positive for malignancy),
   Summary Stage 2018 must not = 0, 1, or 3 (in situ, local, regional by nodal
     involvement only)]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-12" ref="68150">Edit created.</event>
                <event version="SE22-022-01" user="smithm" date="2022-02-15" ref="68831">Add 00528 to skip condition</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN6074" name="Pleural Effusion, Pleura, Summary Stage 2018 (NAACCR)" tag="N6074" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.summaryStage2018 == null || line.schemaId != '00370' || line.typeOfReportingSource  == '7')
    return true

if (line.pleuralEffusion == null || line.pleuralEffusion == '8')
    return true

return line.pleuralEffusion != '2' || line.summaryStage2018 == '7']]></expression>
            <message>Pleural Effusion conflicts with Summary Stage 2018.</message>
            <description><![CDATA[This edit verifies that Pleural Effusion SSDI is coded consistently with
Summary Stage 2018 for Pleura.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2019, blank (unknown), or invalid
   b. Schema ID is not 00370
   c. Pleural Effusion is blank or 8 (not applicable)
   d. Summary Stage 2018 is blank
   e. Type of Reporting Source = 7

2. If Pleural Effusion  = 2 (Pleural effusion positive for malignancy),
   Summary Stage 2018 must = 7 (distant)]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-12" ref="68150">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN6075" name="EOD Regional Nodes, Thyroid, Reg Nodes Positive, Scope Nodes (SEER)" tag="N6075" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.eodRegionalNodes == null || line.regionalNodesPositive == null || line.typeOfReportingSource == '7')
    return true

if (line.schemaId != '00730' && line.schemaId != '00740')
    return true

String positive = line.regionalNodesPositive
if (line.eodRegionalNodes == '000') {
    if (positive != '00')
        return false
    if (line.rxSummScopeRegLnSur != null) {
        if (line.typeOfReportingSource == '6')
            return line.rxSummScopeRegLnSur == '0'
        else {
            Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
            Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
            Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
            Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
            Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
            Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

            if (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5))
                return Functions.matches(line.rxSummScopeRegLnSur, /^[0-7]$/)
            else
                return Functions.matches(line.rxSummScopeRegLnSur, /^[1-7]$/)
        }
    }
}
else if (line.eodRegionalNodes == '050')
    return positive == '98' || positive == '99'

return true]]></expression>
            <message>EOD Regional Nodes conflicts with RX Summ--Scope Reg LN Sur.</message>
            <description><![CDATA[This edit verifies that EOD Regional Nodes is coded consistently with
Regional Nodes Positive and RX Summ--Scope Reg LN Sur for Thyroid.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2019, blank (unknown), or invalid
   b. Schema ID is not 00730, 00740
   c. EOD Regional Nodes is blank
   d. Regional Nodes Positive is blank
   e. Type of Reporting Source = 7 (Death Certificate Only)

2. If EOD Regional Nodes = 050 (no regional node involvement radiologically or
   clinically confirmed), Regional Nodes Positive must = 98 (no nodes
   examined) or 99 (no information about positive nodes).

3. If EOD Regional Nodes = 000 (cytologically or histologically confirmed benign)
   Regional Nodes Positive must = 00 (all nodes examined negative)

4. If EOD Regional Nodes = 000 and RX Summ--Scope Reg LN Sur is not blank
    if Type of Reporting Source = 6 (autopsy only)
        RX Summ--Scope Reg LN Sur must = 0
    else if vital Status = 0 and Date of Last Contact within 5 months of Date of Diagnosis
        RX Summ--Scope Reg LN Sur must = 0-7
    else RX Summ--Scope Reg LN Sur must = 1-7.]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-15" ref="68146">Edit created.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-13" ref="68789">Added skip conditions for regional nodes positive and DCO records.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE23-023-03" user="shearerw" date="2023-05-26" ref="69216">Remove Regional Nodes Examined logic. Add logic for RX Summ--Scope Reg LN Sur.</event>
            </history>
        </rule>
        <rule id="IFN6076" name="EOD Mets, Type of Reporting Source (SEER)" tag="N6076" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.eodMets == null || line.typeOfReportingSource == null)
    return true

return line.eodMets != '99' || line.typeOfReportingSource == '7']]></expression>
            <message>If EOD Mets = 99, Type of Reporting Source must = 7, Death Certificate Only.</message>
            <description><![CDATA[This edit verifies that EOD Mets is coded 99 (unknown) only for Death Certificate
Only cases (Type of Reporting Source = 7).

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2019, blank (unknown), or invalid
   b. EOD Mets is blank
   c. Type of Reporting Source is blank

2. If EOD Mets = 99, Type of Reporting Source must = 7 (Death Certificate Only).]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-29" ref="68148">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6077" name="SSDIs, Benign Brain and CNS (NAACCR)" tag="N6077" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || !['00721','00722','09721','09722'].contains(line.schemaId) || line.behaviorCodeIcdO3 == null)
    return true

String behav = line.behaviorCodeIcdO3
String chrom1p = line.chromosome1pLossHeterozygosity
String chrom19q = line.chromosome19qLossHeterozygosity
String methylation = line.methylationOfO6MGMT
if (chrom1p == '6' && behav != '0' && behav != '1')
    return false
if (chrom19q == '6' && behav != '0' && behav != '1')
    return false
if (methylation == '6' && behav != '0' && behav != '1')
    return false
if (behav == '0' || behav == '1') {
    if (chrom1p != '6' && chrom1p != '8' && chrom1p != null)
        return false
    if (chrom19q != '6' && chrom19q!= '8' && chrom19q != null)
        return false
    if (methylation != '6' && methylation!= '8' && methylation != null)
        return false
}

return true]]></expression>
            <message>Chromosome 1p: Loss of Heterozygosity (LOH) conflicts with Behavior Code ICD-O-3</message>
            <description><![CDATA[This edit verifies that SSDIs for Brain and CNS are coded consistently
with Behavior ICD-O-3 codes 0 and 1 (benign and borderline).

1. The edit is skipped for the following conditions:
    a. Diagnosis date is less than 2019, blank (unknown), or invalid.
    b. Behavior Code ICD-O-3 is blank.
    c. Schema ID not = 00721, 00722, 09721, 09722

3. If Chromosome 1p: Loss of Heterozygosity (LOH) is coded 6 (Benign or
      borderline tumor),
      Behavior Code ICD-O-3 must = 0 (benign) or 1 (borderline).

4. If Chromosome 19q: Loss of Heterozygosity (LOH) is coded 6 (Benign or
      borderline tumor),
      Behavior Code ICD-O-3 must = 0 (benign) or 1 (borderline).

5. If Methylation of O6-Methylguanine-Methyltransferase is coded 6 (Benign or
      borderline tumor),
       Behavior Code ICD-O-3 must = 0 (benign) or 1 (borderline).

6. If Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline),
       Chromosome 1p: Loss of Heterozygosity (LOH) must be coded 6 (benign or
      borderline) or 8 (not applicable), or blank

7. If Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline),
       Chromosome 19q: Loss of Heterozygosity (LOH) must be coded 6 (benign or
      borderline) or 8 (not applicable), or blank

8. If Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline),
       Methylation of O6-Methylguanine-Methyltransferase must be coded 6 (benign or
      borderline) or 8 (not applicable), or blank]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-09" ref="68160">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE23-023-01" user="cooki" date="2023-02-21" ref="69150">Added skip conditions for Schema IDs 09721 and 09722.</event>
            </history>
        </rule>
        <rule id="IFN6078" name="Gleason Patterns Pathological, EOD Prostate Pathologic Extension (SEER)" tag="N6078" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.schemaId != '00580' || line.gleasonPatternsPathological == null || line.prostatePathologicalExtension == null)
    return true

if (line.gleasonPatternsPathological == 'X7') {
    if (line.dateOfDiagnosisYear < '2022')
        return ['900', '950'].contains(line.prostatePathologicalExtension)
    else
        return line.prostatePathologicalExtension == '900'
}
if (line.prostatePathologicalExtension == '900')
    return line.gleasonPatternsPathological == 'X7'
else if (line.prostatePathologicalExtension == '950') {
    if (line.dateOfDiagnosisYear < '2022')
        return line.gleasonPatternsPathological == 'X7' || line.gleasonPatternsPathological == 'X9'
    else
        return line.gleasonPatternsPathological == 'X9'
}

return true]]></expression>
            <message>Gleason Patterns Pathological conflicts with EOD Prostate Pathologic Extension.</message>
            <description><![CDATA[This edit verifies that Gleason Patterns Pathological is coded consistently with
EOD Prostate Pathologic Extension.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or invalid.
   b. Schema ID is not 00580
   c. EOD Prostate Pathologic Extension is blank.
   d. Gleason Patterns Pathological is blank

2. If Gleason Patterns Pathological = X7 (no prostatectomy/autopsy performed)
    then EOD Prostate Pathologic Extension must = 900 (no prostatectomy or autopsy performed) or 950 (Prostatectomy performed, but not first course of treatment for example performed after disease progression)
    For 2022+, if Gleason Patterns Pathological = X7, EOD Prostate Pathologic Extension must = 900

3. If EOD Prostate Pathologic Extension = 900 (no prostatectomy or autopsy performed)
    then Gleason Patterns Pathological must = X7 (no prostatectomy/autopsy performed)

4. If EOD Prostate Pathologic Extension = 950 (Prostatectomy performed, but not first course of treatment for example performed after disease progression)
    then Gleason Patterns Pathological must = X7 (no prostatectomy/autopsy performed) or X9 (Not documented in medical record, Gleason Score Pathological not assessed or unknown if assessed
    For 2022+, if EOD Prostate Pathologic Extension = 950, Gleason Patterns Pathological must = X9.)]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-05" ref="68155">Edit created.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-30" ref="68397">Update name and change Prostate Pathologic Extension to EOD Prostate Pathologic Extension.</event>
                <event version="SE21-021-03" user="beverung" date="2021-02-17" ref="68566">Add 950 as valid code for X7, and X9 as valid code for 950</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-28" ref="68812">Added logic for 2022+ for Gleason Patterns Pathological code X7 and EOD Prostate Pahtologic Extension code 950</event>
            </history>
        </rule>
        <rule id="IFN6079" name="EOD Regional Nodes, Regional Nodes Positive (SEER)" tag="N6079" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.eodRegionalNodes == null || line.regionalNodesPositive == null)
    return true

if (line.schemaId == null || line.typeOfReportingSource == '7')
    return true

if (line.schemaId == '00811')
    return line.eodRegionalNodes != '000' || ['00', '98', '99'].contains(line.regionalNodesPositive)
else
    return !Functions.matches(line.eodRegionalNodes, /^0[0357]0$/) || ['00', '98', '99'].contains(line.regionalNodesPositive)]]></expression>
            <message>Regional Nodes Positive conflicts with EOD Regional Nodes.</message>
            <description><![CDATA[This edit verifies that EOD Regional Nodes is coded consistently with Regional Nodes Positive.

1. This edit is skipped if any of the following conditions are true:
    a. Year of Date of Diagnosis is less than 2019, blank (unknown), or invalid
    b. EOD Regional Nodes is blank
    c. Regional Nodes Positive is blank
    d. Schema ID is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. If Schema ID = 00811 (Mycosis Fungoides):
    If EOD Regional Nodes = 000, then Regional Nodes Positive must = 00, 98, or 99

3. For all other Schemas:
    If EOD Regional Nodes = 000, 030, 050, or 070, then Regional Nodes Positive must = 00, 98, or 99]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-15" ref="68146">Edit created.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-27" ref="68379">Add special logic for schema Id = 00811 and update logic for EOD Regional Nodes/EOD Regional Nodes Positive.</event>
            </history>
        </rule>
        <rule id="IFN6081" name="Invasion Beyond Capsule, Kidney, Surgery 03-2022 (SEER)" tag="N6081" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[
        Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
        Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
        Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
        Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
        Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
        Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

    if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.dateOfDiagnosisYear > '2022' || line.rxSummSurgPrimSite == null || line.schemaId != '00600' || line.typeOfReportingSource == '6' || line.typeOfReportingSource == '7' ||
    (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5)))
    return true

String invasionBeyondCapsule = line.invasionBeyondCapsule
if (invasionBeyondCapsule == null || invasionBeyondCapsule == '8')
    return true

if (Functions.matches(line.rxSummSurgPrimSite, /^00|1[0-5]|2[0-7]|99$/))
    return invasionBeyondCapsule == '9'

return true]]></expression>
            <message>Invasion Beyond Capsule conflicts with RX Summ--Surg Prim Site 03-2022.</message>
            <description><![CDATA[Purpose: This edit verifies that Invasion Beyond Capsule SSDI is coded
consistently with RX Summ--Surg Prim Site for Kidney Parenchyma.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2019 or after 2022, blank (unknown), or invalid
   b. Schema ID is not 00600
   c. Invasion Beyond Capsule is blank or 8 (not applicable)
   d. RX Summ--Surg Prim Site 03-2022 is blank
   e. Type of Reporting Source = 6 (Autopsy Only) or 7 (Death Certificate Only)
   f. Vital Status = 0 and Date of Last Contact within 5 months of Date of Diagnosis

2. If RX Summ-Surg Prim Site 03-2022 = 00 (no surgery) or 10-15 (tumor destruction
     without pathology specimen)or 20-27 (local excision),
   Invasion Beyond Capsule must = 9 (no surgical resection of primary site)

3. If RX Summ-Surg Prim Site 03-2022 = 99 (unknown if surgery performed),
    Invasion Beyond Capsule must = 9 (Invasion beyond capsule not assessed or unknown if assessed)]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-15" ref="68154">Edit created.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-28" ref="68792">Add new skip conditions.</event>
                <event version="SE23-023-01" user="secristc" date="2023-01-24" ref="69100">Add new skip condition for DX year &gt; 2022.</event>
                <event version="SE23-023-03" user="shearerw" date="2023-05-24" ref="69216">Fix logic for DOLC within 5 months of DX date to allow difference in year.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-02-05" ref="69355">Add check for RX Summ-Surg Site with value 99.</event>
            </history>
        </rule>
        <rule id="IFN6082" name="Ipsilateral Adrenal Gland Involvement, Kidney, Surgery 03-2022 (SEER)" tag="N6082" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.dateOfDiagnosisYear > '2022' || line.rxSummSurgPrimSite == null || line.schemaId != '00600' ||
            line.typeOfReportingSource == '6' || line.typeOfReportingSource == '7')
    return true

Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

if (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5))
    return true

String ipsilateralAdrenalGlandInvolvement = line.ipsilateralAdrenalGlandInvolve
if (ipsilateralAdrenalGlandInvolvement == null || ipsilateralAdrenalGlandInvolvement == '8')
    return true

if (Functions.matches(line.rxSummSurgPrimSite, /^00|1[0-5]|2[0-7]$/) && (line.rxSummSurgOthRegDis == '0' || line.rxSummSurgOthRegDis == '3'))
    return ipsilateralAdrenalGlandInvolvement == '9'

if (line.rxSummSurgPrimSite == '99' && ['0','3','9'].contains(line.rxSummSurgOthRegDis))
    return ipsilateralAdrenalGlandInvolvement == '9'

return true]]></expression>
            <message>Ipsilateral Adrenal Gland Involvement conflicts with RX Summ--Surg Prim Site 03-2022 and RX Summ--Surg Oth Reg/Dis.</message>
            <description><![CDATA[This edit verifies that the Ipsilateral Adrenal Gland Involvement SSDI is coded
consistently with RX Summ--Surg Prim Site 03-2022.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2019 or after 2022, blank (unknown), or invalid.
    b. Schema ID is not 00600.
    c. Ipsilateral Adrenal Gland Involvement is blank or 8 (not applicable).
    d. RX Summ--Surg Prim Site 03-2022 is blank
    e. Type of Reporting Source = 6 (Autopsy Only) or 7 (Death Certificate Only)
    f. Vital Status = 0 and Date of Last Contact within 5 months of Date of Diagnosis

2.  If RX Summ--Surg Prim Site 03-2022 = 00 (no surgery of primary site) or 10-15
    (local tumor destruction (no specimen sent to pathology), or 20-27 (local
    excision) and RX Summ--Surg Oth Reg/Dis = 0 or 3 (no surgery of other
    site, surgery of distant lymph nodes)
     Then the data item must be coded 9 (no surgical resection of primary site).

3. If RX Summ-Surg Prim Site Prim Site 03-2022 = 99 (unknown if surgery performed)
   and RX Summ-Surg Oth Reg/Dis = 0 or 3 (no surgery of other site, surgery of distant lymph nodes)
   or 9 (unknown if surgery of other site)
    then the data item must be coded 9 (no surgical resection of primary site).]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-15" ref="68154">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-01" user="secristc" date="2022-02-14" ref="68793">Add new skip conditions for Type of Reporting Source, Vital Status, and Date of Last Contact.</event>
                <event version="SE23-023-01" user="cooki" date="2023-01-25" ref="69101">Added 2022+ skip condition, updated name, and added 03-2022 to Surg Prim Site.</event>
                <event version="SE23-023-03" user="shearerw" date="2023-05-24" ref="69216">Fix logic for DOLC within 5 months of DX date to allow difference in year.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-02-05" ref="69357">Add check for RX Summ-Surg Prim Site 03-2022 when value is 99.</event>
            </history>
        </rule>
        <rule id="IFN6083" name="Major Vein Involvement, Kidney, Surgery 03-2022 (SEER)" tag="N6083" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.dateOfDiagnosisYear > '2022' ||line.rxSummSurgPrimSite == null || line.schemaId != '00600' ||
            line.typeOfReportingSource == '6' || line.typeOfReportingSource == '7')
    return true

Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

if (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5))
    return true

String majorVeinInvolvement = line.majorVeinInvolvement
if (majorVeinInvolvement == null || majorVeinInvolvement == '8')
    return true

if (Functions.matches(line.rxSummSurgPrimSite, /^00|1[0-5]|2[0-7]|99$/))
    return majorVeinInvolvement == '9'

return true]]></expression>
            <message>Major Vein Involvement conflicts with RX Summ--Surg Prim Site 03-2022.</message>
            <description><![CDATA[Purpose: This edit verifies that Major Vein Involvement SSDI is coded
consistently with RX Summ--Surg Prim Site 03-2022 for Kidney Parenchyma.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2019 or greater than 2022, blank (unknown), or invalid
   b. Schema ID is not 00600
   c. Major Vein Involvement is blank or 8 (not applicable)
   d. RX Summ--Surg Prim Site 03-2022 is blank
   e. Type of Reporting Source = 6 (Autopsy Only) or 7 (Death Certificate Only)
   f. Vital Status = 0 and Date of Last Contact within 5 months of Date of Diagnosis

2. If RX Summ-Surg Prim Site 03-2022 = 00 (no surgery), 10-15 (tumor destruction
     without pathology specimen), or 20-27 (local excision)
   Major Vein Involvement must = 9 (no surgical resection of primary site)

3. If RX Summ-Surg Prim Site 03-2022 = 99 (unknown if surgery performed)
    Major Vein Involvement must = 9 (vein involvement not assessed or unknown if assessed)]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-15" ref="68154">Edit created.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-01" user="secristc" date="2022-02-14" ref="68795">Add skip conditions for Type of Reporting Source, Vital Status, and Date of Last Contact.</event>
                <event version="SE23-023-01" user="cooki" date="2023-01-25" ref="69102">Added skip condition for 2022+ and 03-2022 label to Surg Prim Site, updated edit name.</event>
                <event version="SE24-024-01" user="shearerw" date="2023-02-08" ref="69363">Add logic for code 99 for RX Summ-Surg Prim Site 03-2022.</event>
                <event version="SE23-023-03" user="shearerw" date="2023-05-24" ref="69216">Fix logic for DOLC within 5 months of DX date to allow difference in year.</event>
            </history>
        </rule>
        <rule id="IFN6084" name="Tumor Deposits, Colorectal, Surgery 03-2022 (SEER)" tag="N6084" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.dateOfDiagnosisYear > '2022' || line.rxSummSurgPrimSite == null
            || line.schemaId != '00200' || ['6','7'].contains(line.typeOfReportingSource))
    return true

Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

if (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5))
    return true

String tumorDeposits = line.tumorDeposits
if (tumorDeposits == null || tumorDeposits == 'X8')
    return true

if (Functions.matches(line.rxSummSurgPrimSite, /^00|1[0-4]|2\d$/) || line.rxSummSurgPrimSite == '99')
    return tumorDeposits == 'X9'

return true]]></expression>
            <message>Tumor Deposits conflicts with RX Summ--Surg Prim Site 03-2022.</message>
            <description><![CDATA[This edit verifies that Tumor Deposits SSDI is coded consistently with
RX Summ--Surg Prim Site 03-2022.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2019 or greater than 2022, blank (unknown), or invalid
   b. Schema ID is not 00200
   c. Tumor Deposits is blank or X8 (not applicable)
   d. RX Summ--Surg Prim Site 03-2022 is blank
   e. Type of Reporting Source = 6 (Autopsy Only) or 7 (Death Certificate Only)
   f. Vital Status = 0 and Date of Last Contact within 5 months of Date of Diagnosis

2. If RX Summ-Surg Prim Site 03-2022 = 00 (no surgery), 10-14 (tumor destruction
     without pathology specimen), or 20-29 (local excision)
   Tumor Deposits must = X9 (no surgical resection of primary site)

3. If RX Summ-Surg Prim Site 03-2022 = 99 (unknown if surgery performed)
    Tumor Deposits must = X9 (Tumor Deposits not asssessed or unknown if assessed)
]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-15" ref="68154">Edit created.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-01" user="beverung" date="2022-02-18" ref="68798">Add skip conditions for Type of Reporting Source and Date of Last Contact/Vital Status.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-01-25" ref="69103">Update edit name and add skip condition for DX year after 2022.</event>
                <event version="SE23-023-03" user="shearerw" date="2023-05-24" ref="69216">Fix logic for DOLC within 5 months of DX date to allow difference in year.</event>
                <event version="SE24-024-01" user="cooki" date="2024-02-06" ref="69373">Added condition #3 for code 99.</event>
            </history>
        </rule>
        <rule id="IFN6085" name="Percent Necrosis Post Neoadjuvant, Bone, DX Confirm (NAACCR)" tag="N6085" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.diagnosticConfirmation == null)
    return true

String percentNecrosis = line.percentNecrosisPostNeoadjuvant
if ((line.schemaId != '00381' && line.schemaId != '00382' && line.schemaId != '00383') || percentNecrosis == null || percentNecrosis == 'XXX.8')
    return true

if (line.diagnosticConfirmation != '1')
    return percentNecrosis == 'XXX.9'

return true]]></expression>
            <message>Percent Necrosis Post Neoadjuvant conflicts with Diagnostic Confirmation.</message>
            <description><![CDATA[This edit verifies that the Percent Necrosis Post Neoadjuvant SSDI is coded
consistently with Diagnostic Confirmation.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2019, blank (unknown), or invalid.
    b. Schema ID is not 00381, 00382, 00383
    c. Percent Necrosis Post Neoadjuvant is blank or XXX.8 (not applicable).
    d. Diagnostic Confirmation is blank.

2. If Diagnostic Confirmation not = 1 (histologic confirmation),
   then Percent Necrosis Post Neoadjuvant must be coded XXX.9 (no histologic
   examination of primary site).]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6087" name="LN Distant, Gynecologic, Mets at DX-Distant LN (NAACCR)" tag="N6087" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.metsAtDxDistantLn == null)
    return true

String lnDistant = line.lnDistantMediastinalScalene
if (!['00510', '00520', '09520'].contains(line.schemaId) || lnDistant == null || lnDistant == '8')
    return true

if (lnDistant == '1' || lnDistant == '2' || lnDistant == '3')
    return line.metsAtDxDistantLn == '1'

return true]]></expression>
            <message>LN Distant: Mediastinal, Scalene conflicts with Mets at Dx-Distant LN.</message>
            <description><![CDATA[This edit verifies that LN Distant: Mediastinal, Scalene SSDI is coded
consistently with Mets at DX-Distant LN for Vagina and Cervix.


1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2019, blank (unknown), or invalid.
    b. Schema ID is not 00510, 00520, 09520
    c. LN Distant: Mediastinal, Scalene is blank or 8 (not applicable)
    d. Mets at D-Distant LN is blank

2. If LN Distant: Mediastinal, Scalene = 1-3 (positive distant nodes)
       Mets at DX-Distant LN must = 1 (positive distant nodes)]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6088" name="LN Isolated Tumor Cells (ITC), Merkel Cell, Reg Nodes Positive (NAACCR)" tag="N6088" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.schemaId != '00460' || line.lnIsolatedTumorCells == null || line.lnIsolatedTumorCells == '8')
    return true

if (line.regionalNodesPositive == null)
    return true

if (line.typeOfReportingSource == '7')
    return true

if (line.lnIsolatedTumorCells == '1' && (line.regionalNodesPositive == '00' || line.regionalNodesPositive == '98' || line.regionalNodesPositive == '99'))
    return false

if (line.lnIsolatedTumorCells == '0' && line.regionalNodesPositive == '98')
    return false

return true]]></expression>
            <message>LN Isolated Tumor Cells (ITC) conflicts with Regional Nodes Positive.</message>
            <description><![CDATA[This edit verifies that LN Isolated Tumor Cells (ITC) SSDI is coded consistently
with  Regional Nodes Positive and Regional Nodes Examined for Merkel Cell
Carcinoma.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or invalid.
   b. Schema ID is not 00460
   c. LN Isolated Tumor Cells (ITC) is blank or 8 (not applicable).
   d. Regional Nodes Positive is blank
   e. Type of Reporting Source = 7 (Death Certificate Only)

2. If LN Isolated Tumor Cells (ITC) = 1 (lymph nodes positive for ITCs)
   Regional Nodes Positive must not = 00 (no nodes involved), 98 (no nodes
     examined), or 99 (unknown if nodes involved)

3. If LN Isolated Tumor Cells (ITC) = 0 (lymph nodes negative for ITCs)
    Regional Nodes Positive must not = 98 (no nodes examined)]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-29" ref="68158">Edit created.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-01" user="secristc" date="2022-02-11" ref="68815">Updated logic for LN ITC = 1, changed skip conditions.</event>
            </history>
        </rule>
        <rule id="IFN6089" name="LN Positive Axillary Level I-II, Breast, Reg Nodes Positive (NAACCR)" tag="N6089" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.schemaId != '00480' || line.lnPositiveAxillaryLevel1To2 == null ||
            line.lnPositiveAxillaryLevel1To2 == 'X8' || line.typeOfReportingSource == '7' || line.regionalNodesPositive == null)
    return true

if (Functions.matches(line.lnPositiveAxillaryLevel1To2, /^0[1-9]|[2-9]\d|X[156]$/) && (line.regionalNodesPositive == '00' || line.regionalNodesPositive == '98' || line.regionalNodesPositive == '99'))
    return false

if (Functions.matches(line.lnPositiveAxillaryLevel1To2, /^0[1-9]|[2-9]\d$/) && (line.lnPositiveAxillaryLevel1To2 > line.regionalNodesPositive))
    return false

if (line.regionalNodesPositive == '95' && line.lnPositiveAxillaryLevel1To2 != '00' && line.lnPositiveAxillaryLevel1To2 != 'X9' && line.lnPositiveAxillaryLevel1To2 != 'X6')
    return false

if (line.regionalNodesPositive == '98' && line.lnPositiveAxillaryLevel1To2 != 'X9')
    return false

return true]]></expression>
            <message>LN Positive Axillary Level I-II conflicts with Regional Nodes Positive.</message>
            <description><![CDATA[This edit verifies that LN Positive Axillary Level I-II SSDI is coded
consistently with Regional Nodes Positive for Breast.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2019, blank (unknown), or invalid.
    b. Schema ID is not 00480
    c. LN Positive Axillary Level I-II is blank or X8 (not applicable).
    d. Regional Nodes Positive is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. If LN Positive Axillary Level I-II = 01-99, X1, X5, or X6 (lymph nodes
     positive)
   Regional Nodes Positive must not = 00 (no nodes involved), 98 (no nodes
     examined) or 99 (unknown if nodes involved)

3. If LN Positive Axillary Level I-II = 01-99,
    Number of LN Positive Axillary Level I-II must be less than or equal to
    number of Regional Nodes Positive

4. If Regional Nodes Positive = 95,
    LN Positive Axillary Level I-II must = 00 (axillary nodes negative),
    X6 (Positive aspiration of lymph node(s), or X9 (axillary nodes not assessed)

5. If Regional Nodes Positive = 98 (no nodes examined)
    LN Positive Axillary Level I-II must = X9 (not documented, not assessed or unknown if assessed)
]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-29" ref="68158">Edit created.</event>
                <event version="SE18-020-01" user="beverung" date="2020-03-09" ref="68289">Update condition 3 to use X9 instead of 99.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-01" user="secristc" date="2022-02-17" ref="68875">Removed logic relating to Regional Nodes Examined, added skip condition for Type of Reporting Source = 7.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-23" ref="69192">Added logic for LN Positive Axillary Level and Regional Nodes Positive</event>
                <event version="SE23-023-03" user="cooki" date="2023-05-24" ref="69259">Updated description to v23B.</event>
                <event version="SE24-024-06" user="cooki" date="2024-07-03" ref="69496">Added condition 5.</event>
            </history>
        </rule>
        <rule id="IFN6091" name="Extranodal Extension Head and Neck Clin/Path, Summary Stage 2018 (NAACCR)" tag="N6091" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[
if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.summaryStage2018 == null || line.typeOfReportingSource == '7')
    return true
if (!Functions.matches(line.schemaId, /^00(0[689]0|07[1-7]|1[04]0|1[12][12]|13[0-3])$/))
    return true
if ((line.extranodalExtensionHeadNeckClin == null || line.extranodalExtensionHeadNeckClin == '8') && (line.extranodalExtensionHeadNeckPath == null || line.extranodalExtensionHeadNeckPath == 'X.8'))
    return true

if (line.extranodalExtensionHeadNeckClin == '7' && line.extranodalExtensionHeadNeckPath == 'X.7' && ['3','4'].contains(line.summaryStage2018))
    return false
if (['0','1','2','4'].contains(line.extranodalExtensionHeadNeckClin) && Functions.matches(line.extranodalExtensionHeadNeckPath, /^\d\.\d|X\.[1-4]$/) && ['0','1','2'].contains(line.summaryStage2018))
    return false
return true
]]></expression>
            <message>Extranodal Extension Head and Neck Clinical and Extranodal Extension Head and Neck Pathological conflict with Summary Stage 2018</message>
            <description><![CDATA[This edit verifies that the extranodal extension SSDIs are coded consistently
with Summary Stage 2018 for head and neck sites.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2019, blank (unknown), or invalid.
    b. Schema ID is not 00060, 00071, 00072, 00073, 00074, 00075, 00076, 00077,
       00080, 00090, 00100, 00111, 00112, 00121, 00122, 00130, 00131, 00132,
       00133, 00140
    c. Extranodal Extension Head and Neck Clinical and Extranodal Extension
       Head and Pathological are both blank or not applicable
    d. Summary Stage 2018 is blank.
    e. Type of Reporting Source = 7 (death certificate only)

2.    If Extranodal Extension Head and Neck Clinical = 7 (cN0) and Extranodal
      Extension Head and Neck Pathological = X.7 (pN0),
       Summary Stage 2018 must not = 3 or 4 (regional nodes involved).

3. If Extranodal Extension Head and Neck Clinical = 0, 1, 2, or 4 (clinical nodal
      involvement), and Extranodal Extension Head and Neck
      Pathological = 0.0-9.9, X.1-X.4 (nodal involvement),
      Summary Stage 2018 must not = 0, 1, or 2 (in situ, local, or regional by
      extension only)]]></description>
            <history>
                <event version="SE22-022-05" user="beverung" date="2022-05-04" ref="68966">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6092" name="FIGO Stage, Gynecologic, EOD Primary Tumor (SEER)" tag="N6092" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.figoStage == null || line.eodPrimaryTumor == null)
    return true

if (!Functions.matches(line.schemaId, /^(00(5[01236]0|55[123]|528)|095[02]0)$/))
    return true

if (line.figoStage == '97' && line.eodPrimaryTumor != '000')
    return false

if (line.eodPrimaryTumor == '000' && line.figoStage != '97')
    return false

return true]]></expression>
            <message>FIGO Stage conflicts with EOD Primary Tumor</message>
            <description><![CDATA[The edit verifies that the FIGO Stage SSDI is coded consistently with EOD Primary
Tumor.


1. The edit is skipped for the following condition:
        a. Date of diagnosis before 2019, blank (unknown), or invalid.
        b. FIGO Stage is blank.
        c. Schema ID is not 00500, 00510, 00520, 00528, 00530, 00551, 00552, 00553, 00560, 09520, 09500
        d. EOD Primary Tumor is blank

2. The edit verifies that if FIGO Stage = 97 (Carcinoma in situ),
    EOD Primary Tumor must = 000 (Carcinoma in situ).

3. If EOD Primary Tumor = 000, FIGO Stage must = 97.]]></description>
            <history>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-13" ref="68147">Edit created.</event>
                <event version="SE18-019-03" user="beverung" date="2019-08-01" ref="68242">Updated error message. No behavior change.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-30" ref="68393">Add schema ID 09520 to skip condition.</event>
                <event version="SE22-022-01" user="smithm" date="2022-02-15" ref="68831">Add 00528 to skip condition</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-04" ref="69403">Added Schema ID 09500 to skip condition.</event>
            </history>
        </rule>
        <rule id="IFN6093" name="Grade Post Therapy, Gleason Patterns Pathological (NAACCR)" tag="N6093" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.schemaId != '00580' || line.gradePostTherapy == null)
    return true

if (line.gleasonPatternsPathological == null || line.gleasonPatternsPathological == 'X8')
    return true 

return line.gradePostTherapy == '9' || line.gleasonPatternsPathological == 'X9']]></expression>
            <message>Gleason Patterns Pathological conflicts with Grade Post Therapy.</message>
            <description><![CDATA[This edit verifies that Gleason Patterns Pathological,
is coded consistently with Grade Post Therapy.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or invalid.
   b. Schema ID is not 00580
   c. Gleason Patterns Pathological is blank or not applicable.
   d. Grade Post Therapy is blank.

2. If Grade Post Therapy is not 9,
   Then Gleason Patterns Pathological must = X9]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-05" ref="68155">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6099" name="LN Distant Assessment Method, Surgery Other Site (SEER)" tag="N6099" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.rxSummSurgOthRegDis == null ||
            line.typeOfReportingSource == '6' || line.typeOfReportingSource  == '7')
    return true

Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

if (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5))
    return true

if (line.lnDistantAssessMethod == null || line.lnDistantAssessMethod == '8' || !['00510', '00520', '09520'].contains(line.schemaId))
    return true

if (line.lnDistantAssessMethod == '2' && line.rxSummSurgOthRegDis != '3' && line.rxSummSurgOthRegDis != '5')
    return false

return true]]></expression>
            <message>LN Distant Assessment Method conflicts with RX Summ--Surg Oth Reg/Dis.</message>
            <description><![CDATA[This edit verifies that LN Distant Assessment Method SSDI is coded consistently
with RX Summ-Surg Oth Reg/Dis.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or invalid.
   b. Schema ID is not 00510, 00520, 09520.
   c. LN Distant Assessment Method is blank or 8 (not applicable).
   d. RX Summ--Surg Oth Reg/Dis is blank.
   e. Type of Reporting Source = 6 (Autopsy only) or 7 (Death Certificate Only)
   f. Vital Status = 0 and Date of Last Contact within 5 months of Date of Diagnosis

2. If LN Distant Assessment Method = 2 (lymphadenectomy)
    RX Summ--Surg Oth Reg/Dis must = 3 (resection of distant lymph nodes) or
   5 (any combination of codes 2, 3, or 4)]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
                <event version="SE23-023-03" user="shearerw" date="2023-05-26" ref="69279">Change edit from IFN3041 to IFN6099. Add skip condition.</event>
            </history>
        </rule>
        <rule id="IFN6104" name="Summary Stage 2018, Regional Nodes Positive (NAACCR)" tag="N6104" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.summaryStage2018 == null ||
            line.regionalNodesPositive == null || line.typeOfReportingSource  == '7')
    return true

return !Functions.matches(line.regionalNodesPositive, /^0[1-9]|[1-8]\d|9[0-7]$/) || !Functions.matches(line.summaryStage2018, /^[0129]$/)]]></expression>
            <message>Summary Stage 2018 conflicts with Regional Nodes Positive</message>
            <description><![CDATA[This edit checks that Summary Stage 2018 is coded consistently with Regional Nodes Positive.

1. This edit is skipped for any of the following conditions:
    a. Diagnosis date is pre-2018, blank (unknown), or invalid
    b. Summary Stage 2018 is blank
    c. Regional Nodes Positive is blank
    d. Type of Reporting Source = 7

2. If Regional Nodes Positive = 01-97, Summary Stage 2018 must not = 0, 1, 2, 9]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-12" ref="68150">Edit created.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-12" ref="68222">Updated description. Behavior unchanged.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-27" ref="68310">Updated error message.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-14" ref="69158">Update DX date skip condition. Remove blank Schema ID skip condition. Add 9 to invalid SS2018.</event>
            </history>
        </rule>
        <rule id="IFN6105" name="Grade Post Therapy, Gleason Score Pathological, Tertiary Pattern (NAACCR)" tag="N6105" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.schemaId != '00580' || line.gradePostTherapy == null)
    return true

if ((line.gleasonPatternsPathological == null || line.gleasonPatternsPathological == 'X8') && (line.gleasonTertiaryPattern == null || line.gleasonTertiaryPattern == 'X8'))
    return true 

if (line.gradePostTherapy != '9') {
    if (line.gleasonPatternsPathological != null && line.gleasonPatternsPathological != 'X8' && line.gleasonPatternsPathological != 'X9')
        return false
    if (line.gleasonTertiaryPattern != null && line.gleasonTertiaryPattern != 'X8' && line.gleasonTertiaryPattern != 'X9')
        return false
}

return true]]></expression>
            <message>Grade Post Therapy Path (yp) conflicts with Gleason Score Pathological</message>
            <description><![CDATA[This edit verifies that Gleason Score Pathological and Tertiary Pattern
are coded consistently with Grade Post Therapy Path (yp).

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or invalid.
   b. Schema ID is not 00580
   c. Gleason Score Pathological and Gleason Tertiary Pattern are both blank or
      not applicable.
   d. Grade Post Therapy Path (yp) is blank.

2. If Grade Post Therapy Path (yp) is not 9,
   Then Gleason Score Pathological if not blank or X8 must = X9, and Gleason
   Tertiary Pattern if not blank or X8 must = X9.]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6107" name="Extranodal Extension Head and Neck Path, Head/Neck, Reg Nodes Positive (NAACCR)" tag="N6107" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.extranodalExtensionHeadNeckPath == null)
    return true

if ( !Functions.matches(line.schemaId, /^00(0[689]0|07[1-7]|100|1[12][12]|13[0-3]|140)$/))
    return true

if (line.regionalNodesPositive == null || line.typeOfReportingSource == '7')
    return true

if (Functions.matches(line.extranodalExtensionHeadNeckPath, /^\d\.\d|X\.[1-4]$/) && (line.regionalNodesPositive == '00' || line.regionalNodesPositive == '98'))
    return false

if (line.regionalNodesPositive == '00' && line.extranodalExtensionHeadNeckPath != 'X.7' && line.extranodalExtensionHeadNeckPath != 'X.9')
    return false
    
if (line.regionalNodesPositive == '98' && line.extranodalExtensionHeadNeckPath != 'X.9')
    return false

return true]]></expression>
            <message>Extranodal Extension Head and Neck Pathological conflicts with Regional Nodes Positive.</message>
            <description><![CDATA[This edit verifies consistent coding between Extranodal Extension Head and Neck
Pathological and Regional Nodes Positive.

1. The edit is skipped for any of the following conditions:
   a. Date of Diagnosis is pre-2019, blank (unknown), or invalid.
   b. Schema ID is not 00060, 00071, 00072, 00073, 00074, 00075, 00076, 00077,
      00080, 00090, 00100, 00111, 00112, 00121, 00122, 00130, 00131, 00132,
        00133, 00140
   c. Extranodal Extension Head and Neck Pathological is blank
   d. Regional Nodes Positive is blank
   e. Type of Reporting Source = 7 (Death Certificate Only)

2. If Extranodal Extension Head and Neck Pathological = 0.0, 0.1-9.9, X.1-X.4
   (positive nodal involvement), Regional Nodes Positive must not = 00 or 98.

3. If Regional Nodes Positive = 00, Extranodal Extension Head and Neck
   Pathological must = X.7 (surgically resected regional lymph nodes negative
   for cancer) or X.9 (no surgical resection of lymph nodes) .

4. If Regional Nodes Positive = 98, Extranodal  Extension Head and Neck Pathological
   must = X.9 (no surgical resection of regional lymph nodes)]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-29" ref="68158">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-27" ref="68318">Removed schema 00140 from skip conditions.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-24" ref="68390">Add schemaId 00140 to description and logic.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-01" user="secristc" date="2022-02-18" ref="68874">Removed logic for Regional Nodes Examined, added skip condition.</event>
            </history>
        </rule>
        <rule id="IFN6108" name="Extranodal Extension Path (non-Head and Neck), Reg Nodes Positive (NAACCR)" tag="N6108" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019')
    return true
    
if (line.extranodalExtensionPath == null || line.extranodalExtensionPath == '8')
    return true

if ((line.schemaId != '00460' && line.schemaId != '00570') || line.regionalNodesPositive == null)
    return true

String extPath = line.extranodalExtensionPath
String positiveNodes = line.regionalNodesPositive
if ((extPath == '0' || extPath == '1') && (positiveNodes == '00' || positiveNodes == '98'))
    return false
    
if (positiveNodes == '00' && extPath != '7' && extPath != '9')
    return false

if (positiveNodes == '98' && extPath != '9')
    return false

return true]]></expression>
            <message>Regional Nodes Positive and Regional Nodes Examined conflict with Extranodal Extension Path (non-Head and Neck)</message>
            <description><![CDATA[This edit verifies consistent coding between Extranodal Extension Path (non-Head
and Neck) and Regional Nodes Positive, Regional Nodes Examined.

1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis is pre-2019, blank (unknown), or invalid.
    b. Schema ID is not 00460, 00570
    c. Extranodal Extension Path (non-Head and Neck) is blank or 8
    d. Regional Nodes Positive is blank

Extranodal Extension Path (non-Head and Neck) is required by SEER only if collected by a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).

2. If Extranodal Extension Path (non-Head and Neck) = 0 or 1
   (positive nodal involvement), Regional Nodes Positive must not = 00 or 98.

3. If Regional Nodes Positive = 00, Extranodal Extension Path (non-Head and Neck)
   must = 7 (surgically resected regional lymph nodes negative for cancer) or
   9 (no surgical resection of lymph nodes).

4. If Regional Nodes Positive = 98, Extranodal Extension Path (non-Head and Neck)
    must = 9 (no surgical resection of regional lymph nodes)]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6110" name="Number of Examined Para-Aortic/Pelvic Nodes, Corpus, Reg Nodes Examined (NAACCR)" tag="N6110" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.regionalNodesExamined == null)
    return true

if (!['00530', '00541', '00542', '00528'].contains(line.schemaId))
    return true

String pelvicNodes = line.numberOfExaminedPelvicNodes
String paraAorticNodes = line.numberOfExaminedParaAorticNodes
if ((pelvicNodes == null || pelvicNodes == 'X8') && (paraAorticNodes == null || paraAorticNodes == 'X8'))
    return true

if (line.regionalNodesExamined == '00')
    if ((pelvicNodes != '00' && pelvicNodes != 'X9') || (paraAorticNodes != '00' && paraAorticNodes != 'X9'))
        return false

if (line.regionalNodesExamined == '95')
    if ((pelvicNodes != '00' && pelvicNodes != 'X6' && pelvicNodes != 'X9') || (paraAorticNodes != '00' && paraAorticNodes != 'X6' && paraAorticNodes != 'X9'))
        return false

if ((Functions.matches(pelvicNodes, /^0[1-9]|[1-9]\d|X[126]$/) || Functions.matches(paraAorticNodes, /^0[1-9]|[1-9]\d|X[126]$/)) && line.regionalNodesExamined == '00')
    return false

return true]]></expression>
            <message>Regional Nodes Examined conflicts with Number of Examined Para-Aortic Nodes and Number of Examined Pelvic Nodes</message>
            <description><![CDATA[This edit verifies that Number of Examined Para-Aortic Nodes and Number of
Examined Pelvic Nodes SSDIs are coded consistently with Regional Nodes Examined
for Corpus Uteri.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or invalid.
   b. Schema ID is not 00530, 00541, 00542, 00528
   c. Number of Examined Para-Aortic Nodes and Number of Examined Pelvic
      Nodes are both blank or not applicable.
   d. Regional Nodes Examined is blank

2. If Regional Nodes Examined = 00,
   then Number of Examined Para-Aortic Nodes must = 00 or X9 and Number of
   Examined Pelvic Nodes must = 00 or X9 (no nodes examined or unknown if
   nodes examined)

3. If Regional Nodes Examined = 95 (aspiration or core biopsy of nodes only)
    then Number of Examined Para-Aortic Nodes must = 00, X6 (aspiration or
   core biopsy only), or X9 and Number of Examined Pelvic Nodes must = 00,
   X6 (aspiration or core biopsy only), or X9

4. If Number of Examined Para-Aortic Nodes = 01-99, X1, X2, X6 or Number of
   Examined Pelvic Nodes = 01-99, X1, X2, X6 (examined nodes),
   then Regional Nodes Examined must not = 00 (no nodes examined)]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6111" name="Number of Positive Para-Aortic/Pelvic Nodes, Corpus, Reg Nodes Positive (NAACCR)" tag="N6111" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.regionalNodesPositive == null)
    return true

if (!['00530', '00541', '00542', '00528'].contains(line.schemaId))
    return true

String pelvicNodes = line.numberOfPositivePelvicNodes
String paraAorticNodes = line.numberOfPositiveParaAorticNodes
if ((pelvicNodes == null || pelvicNodes == 'X8') && (paraAorticNodes == null || paraAorticNodes == 'X8'))
    return true

if (line.regionalNodesPositive == '00')
    if ((pelvicNodes != '00' && pelvicNodes != 'X9') || (paraAorticNodes != '00' && paraAorticNodes != 'X9'))
        return false

if (line.regionalNodesPositive == '95')
    if ((pelvicNodes != '00' && pelvicNodes != 'X6' && pelvicNodes != 'X9') || (paraAorticNodes != '00' && paraAorticNodes != 'X6' && paraAorticNodes != 'X9'))
        return false

if ((Functions.matches(pelvicNodes, /^0[1-9]|[1-9]\d|X[126]$/) || Functions.matches(paraAorticNodes, /^0[1-9]|[1-9]\d|X[126]$/)) && line.regionalNodesPositive == '00')
    return false

return true]]></expression>
            <message>Regional Nodes Positive conflicts with Number of Positive Para-Aortic Nodes and Number of Positive Pelvic Nodes</message>
            <description><![CDATA[This edit verifies that Number of Positive Para-Aortic Nodes and Number of
Positive Pelvic Nodes SSDIs are coded consistently with Regional Nodes Positive
for Corpus Uteri.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or invalid.
   b. Schema ID is not 00530, 00541, 00542, 00528
   c. Number of Positive Para-Aortic Nodes and Number of Positive Pelvic
      Nodes are both blank or not applicable.
   d. Regional Nodes Positive is blank

2. If Regional Nodes Positive = 00,
   then Number of Positive Para-Aortic Nodes must = 00 or X9 and Number of
   Positive Pelvic Nodes must = 00 or X9 (no nodes positive or unknown if
   nodes positive)

3. If Regional Nodes Positive = 95,
   then Number of Positive Para-Aortic Nodes must = 00, X6 (positive aspiration
   or core biopsy), or X9 and Number of Positive Pelvic Nodes must = 00, X6, or
   X9

4. If Number of Positive Para-aortic Nodes = 01-99, X1, X2, X6 or Number of
   Positive Pelvic Nodes = 01-99, X1, X2, X6 (positive nodes),
   then Regional Nodes Positive must not = 00 (no nodes positive)]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6114" name="Number of Cores Positive/Examined, Prostate (NAACCR)" tag="N6114" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.schemaId != '00580')
    return true

if ((line.numberOfCoresPositive == null || line.numberOfCoresPositive == 'X8') && (line.numberOfCoresExamined == null || line.numberOfCoresExamined == 'X8'))
    return true

if (line.numberOfCoresPositive == 'X7' || line.numberOfCoresExamined == 'X7')
    return line.numberOfCoresPositive == 'X7' && line.numberOfCoresExamined == 'X7'

if (Functions.matches(line.numberOfCoresExamined, /^0[1-9]|[1-9]\d$/)) { 
    if (line.numberOfCoresPositive == 'X6')
        return true
    else if (Functions.matches(line.numberOfCoresPositive, /^\d\d$/) && line.numberOfCoresExamined >= line.numberOfCoresPositive)
        return true
    return false
}
if (Functions.matches(line.numberOfCoresExamined, /^X[16]$/) && !Functions.matches(line.numberOfCoresPositive, /^\d\d|X[16]$/))
    return false

if (Functions.matches(line.numberOfCoresPositive, /^\d\d|X[16]$/) && line.numberOfCoresExamined == 'X9')
    return false

return true]]></expression>
            <message>Number of Cores Positive conflicts with Number of Cores Examined.</message>
            <description><![CDATA[This edit verifies that the Number of Cores Positive and Number of Cores
Examined SSDIs are coded consistently with each other.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or invalid.
   b. Schema ID is not 00580
   c. Number of Cores Positive and Number of Cores Examined are both blank or
      not applicable.

2. If Number of Cores Positive = X7 (no needle core biopsy performed),
   then Number of Cores Examined must = X7 (no needle core biopsy performed).

3. If Number of Cores Examined = X7 (no needle core biopsy performed),
   then Number of Cores Positive must = X7 (no needle core biopsy performed).

4. If Number of Cores Examined = 01-99
    then Number of Cores Positive must = 00-99 and less than or equal to number of cores examined, or X6 (Biopsy cores positive number unknown).

5. If Number of Cores Examined = X1 (100 or more cores examined) or X6 (Biopsy cores examined, number unknown),
    then Number of Cores Positive must = 00-99 (number of positive cores), X1 (100 or more cores positive), or X6 (biopsy cores positive, number unknown).

6. If Number of Cores Positive = 00, 01-99, X1 or X6,
    then Number of Cores Examined must not equal X9.]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-03-29" ref="68158">Edit created.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-05" ref="68434">Added conditions for when Number of Cores Examined is not = X7.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-24" ref="69201">Added conditions for when Number of Cores Examined is = X9.</event>
                <event version="SE24-024-01" user="kirbyk" date="2024-02-06" ref="69340">X9 removed as allowable value for Number of Cores Positive when Number of Cores Examined specified.</event>
            </history>
        </rule>
        <rule id="IFN6123" name="Serum Markers, Testis, Post-Orchiectomy 03-2022, Lab Value (NAACCR)" tag="N6123" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.dateOfDiagnosisYear >  '2022' || line.rxSummSurgPrimSite == null
            || line.schemaId != '00590')
    return true

if ((line.afpPostOrchiectomyLabValue == null || line.afpPostOrchiectomyLabValue == 'XXXXX.8') && (line.hcgPostOrchiectomyLabValue == null || line.hcgPostOrchiectomyLabValue == 'XXXXX.8'))
    return true

String primSite = line.rxSummSurgPrimSite
if (primSite == '00' || primSite == '12' || primSite == '20' || primSite == '99')
    return line.afpPostOrchiectomyLabValue == 'XXXXX.9' && line.hcgPostOrchiectomyLabValue == 'XXXXX.9'

return true]]></expression>
            <message>Testis Serum Markers and Surgery 03-2022 conflicts</message>
            <description><![CDATA[This edit verifies that the testis tumor marker lab value SSDIs are coded consistently
with surgery code.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2019 or greater than 2022, blank (unknown), or invalid.
    b. Schema ID not = 00590
    c. The following SSDIs are blank or not applicable:

       AFP Post-Orchiectomy Lab Value
       hCG Post-Orchiectomy Lab Value

    d. RX Summ--Surg Prim Site 03-2022 is blank

2.  If Primary Site Surgery 03-2022 = 00 (no surgery of primary site), 12 (local tumor
    destruction NOS (no specimen sent to pathology), or 20 (local excision of
    testicle),
     Then the data items must be coded as follows (no orchiectomy performed):

       AFP Post-Orchiectomy Lab Value          XXXXX.9
       hCG Post-Orchiectomy Lab Value          XXXXX.9

3. If RX Summ-Surg Prim Site 03-2022 = 99 ,
    Then the data items must be coded as follows (no orchiectomy performed, or AFP Post-Orchiectomy Lab Value not assessed or unknown if assessed):

       AFP Post-Orchiectomy Lab Value          XXXXX.9
       hCG Post-Orchiectomy Lab Value          XXXXX.9]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-01-25" ref="69104">Change name and add skip condition.</event>
                <event version="SE24-024-01" user="cooki" date="2024-02-08" ref="69369">Added condition 3. for code 99.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-06-20" ref="69499">Updated name.</event>
            </history>
        </rule>
        <rule id="IFN6128" name="EOD Prostate Pathologic Extension, Blank for Other Schemas (SEER)" tag="N6128" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.schemaId == '00580')
    return true

return line.prostatePathologicalExtension == null]]></expression>
            <message>Prostate Pathological Extension must be blank if Schema ID is not 00580</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for Prostate
(Schema ID 00580) are blank (not coded) for all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank or 00580.

If Schema ID is not 00580 (Prostate), Prostate Pathological Extension must be blank.]]></description>
            <history>
                <event version="SE18-020-02" user="beverung" date="2020-03-31" ref="68303">Edit created.</event>
                <event version="SE21-021-03" user="beverung" date="2021-02-26" ref="68576">Update edit name.</event>
            </history>
        </rule>
        <rule id="IFN6129" name="Tumor Size 998, Schema ID (SEER)" tag="N6129" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.dateOfDiagnosisYear > '2023' || line.typeOfReportingSource == '7')
    return true

if (line.tumorSizeSummary == '998' || line.tumorSizeClinical == '998' || line.tumorSizePathologic == '998')
    return ((List)Context.IFN_6129_SchemaId_List).contains(line.schemaId)

return true]]></expression>
            <message>Tumor Size conflicts with Schema ID</message>
            <description><![CDATA[This edit verifies that Tumor Size is coded consistently with Schema ID.

1. This edit is skipped if Diagnosis date < 2019, > 2023, empty (unknown), or in error, or if Type of Reporting Source is 7

2. If Tumor Size Summary, Tumor Size Clinical, or Tumor Size Pathologic is coded
    998, Schema ID must =

    00161 - Esophagus (including GE junction) Squamous
    00169 - Esophagus (including GE junction) (excluding Squamous)
    00170 - Stomach
    00200 - Colon and Rectum
    00290 - NET Stomach
    00330 - NET Colon and Rectum
    00360 - Lung
    00370 - Pleural Mesothelioma
    00400 - Soft Tissue Head and Neck
    00410 - Soft Tissue Trunk and Extremities
    00421 - Soft Tissue Abdomen and Thoracic
    00430 - GIST
    00450 - Soft Tissue Rare
    00459 - Soft Tissue Other
    00470 - Melanoma Skin
    00480 - Breast]]></description>
            <history>
                <event version="SE18-019-07" user="beverung" date="2019-10-18" ref="68263">Edit created.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-27" ref="68329">Added 00480 (Breast) to list of Schema IDs.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-01" user="smithm" date="2022-02-28" ref="68824">Added 00459 to list of Schema IDs. Update skip condition</event>
                <event version="SE24-024-01" user="cooki" date="2024-03-08" ref="69397">Added 2024 skip condition.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IFN6130" name="Tumor Size 999, Schema ID, Primary Site (SEER)" tag="N6130" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.dateOfDiagnosisYear > '2023' || line.schemaId == null)
    return true

if (line.primarySite == null || line.primarySite == 'C422')
    return true

if (((List)Context.IFN_6130_SchemaId_List).contains(line.schemaId) || Functions.matches(line.primarySite, /^C(42[0134]|77\d|809)$/))
    return ((line.tumorSizeSummary == '999' || line.tumorSizeSummary == null)
    && (line.tumorSizeClinical == '999' || line.tumorSizeClinical == null)
    && (line.tumorSizePathologic == '999' || line.tumorSizePathologic == null))

return true]]></expression>
            <message>Tumor Size conflicts with Schema Id and Behavior Code ICD-O-3.</message>
            <description><![CDATA[1. This edit is skipped for any of the following:
    a. if Diagnosis date < 2018, > 2023, empty (unknown), or in error.
    b. Schema ID is blank
    c. Primary Site is blank or C422

2. Tumor Size Summary, Tumor Size Clinical, and Tumor Size Pathologic must be
    999 or blank if Schema ID =

    00458 - Kaposi Sarcoma
    00671 - Melanoma Iris
    00672 - Melanoma Choroid and Ciliary Body
    00790 - Lymphoma
    00795 - Lymphoma-CLL/SLL
    00821 - Plasma Cell Myeloma
    00822 - Plasma Cell Disorders
    00830 - HemeRetic
    Any with Primary Site code = C420, C421, C423, C424, C770-C779, C809]]></description>
            <history>
                <event version="SE18-019-07" user="beverung" date="2019-10-18" ref="68263">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-02" user="beverung" date="2020-03-30" ref="68330">Removed histology skip conditions.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-04" ref="68475">Added skip conditions; added conditions for Primary Site.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE23-023-02" user="cooki" date="2023-04-25" ref="69248">Updated skip condition to pre-2018.</event>
                <event version="SE24-024-01" user="cooki" date="2024-03-08" ref="69397">Added 2024 skip condition.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="IFN6132" name="EOD Primary Tumor, Primary Site NOS (SEER)" tag="N6132" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.eodPrimaryTumor == null)
    return true
if (line.typeOfReportingSource == '7' || ['00790','00795','00470'].contains(line.schemaId))
    return true
if (line.primarySite == null || Functions.matches(line.primarySite, /^C(14[0-8]|2(1\d|2[01])|3(0[01]|8[0-8])|4(2[0-4]|8[0-8])|76[0-8])$/))
    return true

return line.eodPrimaryTumor != '800' || line.primarySite.endsWith('9')]]></expression>
            <message>Primary Site is not valid for EOD Primary Tumor</message>
            <description><![CDATA[This edit checks consistency of coding between EOD Primary Tumor code 800
and Primary Site NOS codes.

1. This edit is skipped if any of the following conditions is true:
    a. Diagnosis date is invalid, blank (unknown), or before 2021.
    b. EOD Primary Tumor is blank.
    c. Primary Site is blank or Primary Site group does not include NOS code
       (C140-C148,C210-C221,C300-C301,C380-C388, C420-C424,C480-C488,C760-C768)
    d. Schema ID = 00790 (Lymphoma) or 00795 (Lymphoma CLL/SLL)
    e. Type of Reporting Source = 7 (Death Certificate Only)
    f. Schema ID = 00470 (regressed melanoma may be coded to specific site)

2. If EOD Primary Tumor = 800 (no evidence of primary tumor), then the final digit
   of Primary Site must = 9]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-25" ref="68606">Edit created.</event>
                <event version="SE24-024-01" user="beverung" date="2024-02-08" ref="69334">Added skip condition for Schema ID = 00470.</event>
            </history>
        </rule>
        <rule id="IFN6134" name="Tumor Size, EOD Regional Nodes, Mets (SEER)" tag="N6134" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.dateOfDiagnosisYear > '2023' || line.typeOfReportingSource == '7')
    return true
if (line.schemaId == null || ['00458','00671','00672','00790','00795','00821','00822','00830'].contains(line.schemaId))
    return true
if (line.eodRegionalNodes == null && line.eodMets == null)
    return true
if (line.tumorSizeClinical == null && line.tumorSizePathologic == null && line.tumorSizeSummary == null)
    return true

if ((line.tumorSizeClinical == '000' && line.tumorSizePathologic == '000') || (line.tumorSizeSummary == '000')) {
    if (line.schemaId == '00480') {
        if (['000', '030', '050', '070'].contains(line.eodRegionalNodes) && ['00', '05'].contains(line.eodMets))
            return false
    }
    else if (['00500', '09500', '00510', '00520', '00528', '09520', '00530', '00541', '00542', '00551', '00552', '00553'].contains(line.schemaId)) {
        if (['000', '040', '050'].contains(line.eodRegionalNodes) && line.eodMets == '00')
            return false
    }
    else {
        if (line.eodRegionalNodes == '000' && line.eodMets == '00')
            return false
    }
}

return true]]></expression>
            <message>Tumor Size, EOD Regional Nodes, EOD Mets conflict</message>
            <description><![CDATA[This edit checks consistency of coding between Tumor Size codes of 000 and EOD
Regional Nodes and EOD Mets data items.  If all Tumor Size codes indicate 000
(no primary tumor), tumor must be identified in either regional nodes or
metastases.

1. This edit is skipped if any of the following conditions is true:
    a. Diagnosis date is invalid, blank (unknown), before 2021 or after 2023
    b. Schema ID is blank or = 00458, 00671, 00672, 00790, 00795, 00821, 00822,
       00830 (Schema IDs where Tumor Size must = 999)
    c. EOD Regional Nodes and EOD Mets are both blank.
    d. Tumor Size Clinical, Tumor Size Pathologic, and Tumor Size Summary are
       all blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. If both Tumor Size Clinical and Tumor Size Pathologic = 000 (no evidence of primary tumor), both EOD Regional Nodes and EOD Mets must not indicate no involvement
    a. If Schema ID = 00480 (Breast), 
        EOD Regional Nodes must not = 000, 030, 050, or 070 or EOD Mets must not = 00 or 05
    b. If Schema ID = 00500, 09500. 00510, 00520, 00528, 09520, 00530, 00541,00542, 00551, 00552, or 00553, 
        EOD Regional Nodes must not = 000 or 040 or 050 or EOD Mets must not = 00
    c. For all other Schema IDs, 
       EOD Regional Nodes must not = 000 or EOD Mets must not = 00


3. If Tumor Size Summary = 000 (no evidence of primary tumor), 
    a. If Schema ID = 00480 (Breast), 
        EOD Regional Nodes must not = 000, 030, 050, or 070 or EOD Mets must not = 00 or 05
    b. If Schema ID = 00500, 09500. 00510, 00520, 00528, 09520, 00530, 00541,00542, 00551, 00552, or 00553, 
        EOD Regional Nodes must not = 000 or 040 or 050 or EOD Mets must not = 00
    c. For all other Schema IDs, 
       EOD Regional Nodes must not = 000 or EOD Mets must not = 00]]></description>
            <history>
                <event version="SE23-023-04" user="cooki" date="2023-06-02" ref="69273">Edit created.</event>
                <event version="SE24-024-03" user="beverung" date="2024-04-08" ref="69429">Added skip condition for 2024+ cases; add schema-specific logic.</event>
            </history>
        </rule>
        <rule id="IFN6135" name="Tumor Size, EOD Primary Tumor, Schema ID (SEER)" tag="N6135" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.dateOfDiagnosisYear > '2023'
            || (line.tumorSizeClinical == null && line.tumorSizePathologic == null) || line.typeOfReportingSource == '7' || line.eodPrimaryTumor == null)
    return true
if (line.schemaId == null || ['00458','00671','00672','00790','00795','00821','00822','00830'].contains(line.schemaId))
    return true

if (((List)Context.IFN_6135_SchemaId_List).contains(line.schemaId))
    return (line.tumorSizeClinical != '000' || line.tumorSizePathologic != '000') && line.tumorSizeSummary != '000'
else if (line.schemaId == '00060')
    return (line.tumorSizeClinical == '000' || line.tumorSizePathologic == '000') && (line.tumorSizeSummary == null || line.tumorSizeSummary == '000')
else if (line.schemaId == '00360') {
    if ((line.tumorSizeClinical == '000' && line.tumorSizePathologic == '000') || line.tumorSizeSummary == '000')
        if (line.eodPrimaryTumor != '800' && line.eodPrimaryTumor != '980')
            return false
    if (line.eodPrimaryTumor == '800' || line.eodPrimaryTumor == '980')
        return (line.tumorSizeClinical == '000' || line.tumorSizeClinical == '999' || line.tumorSizePathologic == '000' || line.tumorSizePathologic == '999')
            && (line.tumorSizeSummary == null || line.tumorSizeSummary == '000' || line.tumorSizeSummary == '999')
}
else if (line.schemaId == '00580') {
    if (line.tumorSizeClinical == '000' && line.eodPrimaryTumor != '800')
        return false
    if (line.eodPrimaryTumor == '800' && line.tumorSizeClinical != '000' && line.tumorSizeClinical != '999')
        return false
    if (line.tumorSizePathologic == '000' && line.prostatePathologicalExtension != null && line.prostatePathologicalExtension != '800')
        return false
    if (line.prostatePathologicalExtension == '800' && line.tumorSizePathologic != '000' && line.tumorSizePathologic != '999')
        return false
    if (line.tumorSizeClinical == '000' && line.tumorSizePathologic == '000' && line.tumorSizeSummary != null && line.tumorSizeSummary != '000')
        return false
    if (line.tumorSizeClinical != '000' && line.tumorSizeClinical != '999' && line.tumorSizePathologic != '000' && line.tumorSizePathologic != '999')
        return line.tumorSizeSummary != '000' && line.tumorSizeSummary != '999'
}
else {
    if ((line.tumorSizeClinical == '000' && line.tumorSizePathologic == '000') || line.tumorSizeSummary == '000') {
        if (line.schemaId != '99999' && line.eodPrimaryTumor != '800')
            return false
    }
    if (line.eodPrimaryTumor == '800')
        return (line.tumorSizeClinical == '000' || line.tumorSizeClinical == '999' || line.tumorSizePathologic == '000' || line.tumorSizePathologic == '999')
            && (line.tumorSizeSummary == null || line.tumorSizeSummary == '000' || line.tumorSizeSummary == '999')
}


return true]]></expression>
            <message>Tumor Size Clinical, Tumor Size Pathologic, and Tumor Size Summary inconsistent with EOD Primary Tumor</message>
            <description><![CDATA[This edit checks consistency of coding between Tumor Size codes (000) and
EOD Primary Tumor code (800) indicating no evidence of primary tumor.  For the
listed head and neck schemas, there is no EOD Primary Tumor code of 800, as
cases with no evidence of primary tumor are assigned to Schema ID 00060,
Cervical Lymph Nodes, Occult Head and Neck. For 000360, Lung, EOD Primary
Tumor is coded 980 for an occult primary tumor.  For 00580, Prostate, EOD
Primary Tumor and EOD Prostate Pathologic Extension codes are checked,
as presence of primary tumor could be coded in either data item.

1. This edit is skipped if any of the following conditions is true:
    a. Diagnosis date is invalid, blank (unknown), before 2021 or after 2023.
    b. Schema ID is blank or = 00458, 00671, 00672, 00790, 00795, 00821,
        00822, 00830 (Schema IDs where Tumor Size must = 999)
    c. Tumor Size Clinical and Tumor Size Pathologic are both blank
    d. Type of Reporting Source is 7 (Death Certificate Only)
    e. EOD Primary Tumor is blank

2. For the Schema IDs in the list below,
    a. Tumor Size Clinical and Tumor Size Pathologic must not both = 000
    b. Tumor Size Summary must not = 000.

    00071       Lip
    00072       Tongue Anterior
    00073       Gum
    00074       Floor of Mouth
    00075       Palate Hard
    00076       Buccal Mucosa
    00077       Mouth Other
    00111       Oropharynx p16-
    00112       Hypopharynx
    00118       Pharynx Other
    00119       Middle Ear
    00121       Maxillary Sinus
    00122       Nasal Cavity and Ethmoid Sinus
    00128       Sinus Other
    00131       Larynx Supraglottic
    00132       Larynx Glottic
    00133       Larynx Subglottic
    00140       Melanoma Head and Neck
    00150       Cutaneous Carcinoma Head and Neck

3. If Schema ID = 00060, Cervical Nodes, Unknown Primary
    a. Tumor Size Clinical or Tumor Size Pathologic must = 000
    b. Tumor Size Summary if not blank must = 000

4. If Schema ID = 00360, Lung
    a. If Tumor Size Clinical = 000 and Tumor Size Pathologic= 000, EOD
       Primary Tumor must = 800 or 980
    b. If Tumor Size Summary = 000, EOD Primary Tumor must =
       800 or 980
    c. If EOD Primary Tumor = 800 or 980:
        i. Tumor Size Clinical or Tumor Size Pathologic must = 000 or 999
        ii. Tumor Size Summary must = 000, 999, or blank

5. If Schema ID = 00580, Prostate,
    a. If Tumor Size Clinical = 000, EOD Primary Tumor must = 800
    b. If EOD Primary Tumor = 800, Tumor Size Clinical must = 000 or 999
    c. If Tumor Size Pathologic = 000, EOD Prostate Pathological Extension if not
        blank must = 800
    d. If EOD Prostate Pathological Extension = 800, Tumor Size Pathologic must = 000 or 999
    e. If Tumor Size Clinical = 000 and Tumor Size Pathologic = 000, Tumor
        Size Summary must = 000 or blank
    f. If Tumor Size Clinical not = 000 or 999 and Tumor Size
        Pathologic not = 000 or 999, Tumor Size Summary if not blank must not = 000 or 999

6. For all other Schema IDs:
    a. If Tumor Size Clinical = 000 and Tumor Size Pathologic = 000 and Schema ID not 99999, EOD
        Primary Tumor must = 800
    b. If Tumor Size Summary = 000 and Schema ID not 99999, EOD Primary Tumor must = 800
    c. If EOD Primary Tumor = 800:
        i. Tumor Size Clinical or Tumor Size Pathologic must = 000 or 999
        ii. Tumor Size Summary must = 000, 999, or blank]]></description>
            <history>
                <event version="SE23-023-04" user="shearerw" date="2023-06-14" ref="69269">Edit Created.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-03-12" ref="69428">Skip edit for diagnosis years after 2023.</event>
            </history>
        </rule>
        <rule id="IFN6140" name="Behavior Code ICDO3, EOD Tumor/Nodes/Mets, Schema ID (SEER)" tag="N6140" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.behaviorCodeIcdO3 == null || ['0','1'].contains(line.behaviorCodeIcdO3))
    return true
if (line.eodPrimaryTumor == null && line.eodRegionalNodes == null && line.eodMets == null)
    return true
    
boolean schemaIdInList5To10 =
((List)Context.EOD_SchemaId_List_5).contains(line.schemaId) ||
((List)Context.EOD_SchemaId_List_6).contains(line.schemaId) ||
((List)Context.EOD_SchemaId_List_7).contains(line.schemaId) ||
((List)Context.EOD_SchemaId_List_8).contains(line.schemaId) ||
((List)Context.EOD_SchemaId_List_9).contains(line.schemaId) ||
((List)Context.EOD_SchemaId_List_10).contains(line.schemaId)
if (schemaIdInList5To10 && line.behaviorCodeIcdO3 == '2')
    return false

Map eodValuesMap = (Map)((Map)((Map)Context.IFN_6140_Table).get(line.behaviorCodeIcdO3))?.get(line.schemaId)
Map eodPrimaryTumorValues = (Map)eodValuesMap?.get('eodPrimaryTumor')
Map eodRegionalNodesValues = (Map)eodValuesMap?.get('eodRegionalNodes')
Map eodMetsValues = (Map)eodValuesMap?.get('eodMets')

boolean eodPrimaryTumorCondition = line.behaviorCodeIcdO3 == '2'
boolean eodRegionalNodesCondition = line.behaviorCodeIcdO3 == '2'
boolean eodMetsCondition = line.behaviorCodeIcdO3 == '2'

if (eodPrimaryTumorValues != null) {
    List eqValues = (List)eodPrimaryTumorValues.get('eq')
    List neValues = (List)eodPrimaryTumorValues.get('ne')
    eodPrimaryTumorCondition = (eqValues == null || (line.eodPrimaryTumor != null && eqValues.contains(line.eodPrimaryTumor))) &&
        (neValues == null || (line.eodPrimaryTumor == null || !neValues.contains(line.eodPrimaryTumor)))
}
if (eodRegionalNodesValues != null) {
    List eqValues = (List)eodRegionalNodesValues.get('eq')
    List neValues = (List)eodRegionalNodesValues.get('ne')
    eodRegionalNodesCondition = (eqValues == null || (line.eodRegionalNodes != null && eqValues.contains(line.eodRegionalNodes))) &&
        (neValues == null || (line.eodRegionalNodes == null || !neValues.contains(line.eodRegionalNodes)))
}
if (eodMetsValues != null) {
    List eqValues = (List)eodMetsValues.get('eq')
    List neValues = (List)eodMetsValues.get('ne')
    eodMetsCondition = (eqValues == null || (line.eodMets != null && eqValues.contains(line.eodMets))) &&
        (neValues == null || (line.eodMets == null || !neValues.contains(line.eodMets)))
}

if (eodMetsValues == null && eodRegionalNodesValues == null && eodPrimaryTumorValues == null)
    return true

if (line.behaviorCodeIcdO3 == '2' && (!(eodPrimaryTumorCondition && eodRegionalNodesCondition && eodMetsCondition)))
    return false

if (line.behaviorCodeIcdO3 == '3' && (!(eodPrimaryTumorCondition || eodRegionalNodesCondition || eodMetsCondition)))
    return false

return true]]></expression>
            <message>Behavior Code ICD-O-3 conflicts with EOD Primary Tumor, EOD Regional Nodes, and EOD Mets</message>
            <description><![CDATA[This edit checks consistency of coding between Behavior Code ICD-O-3, codes
2 and 3, and EOD Primary Tumor, EOD Regional Nodes, and EOD Mets by Schema ID,
for all Schema IDs excluding 00580, Prostate.

1. This edit is skipped if any of the following conditions is true:
    a. Diagnosis date is invalid, blank (unknown), or before 2021.
    b. Schema ID is blank
    c. Behavior Code ICD-O-3 is blank or = 0 or 1
    d. EOD Primary Tumor, EOD Regional Nodes, and EOD Mets are all blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. If Behavior Code ICD-O-3 = 2 (in situ)
    a. If Schema ID = 00480 (Breast), EOD Primary Tumor must = 000, 050, 070
       and EOD Regional Nodes must = 000, 030, 050, 070, and EOD Mets must = 00
        or 05
    b. If Schema ID = 00553 (Fallopian Tube), EOD Primary Tumor must = 000, 050,
        070, or 080 and EOD Regional Nodes must = 000 or 050 and EOD Mets must = 00
    c. If Schema ID = 00530 (Corpus Carcinoma) or 00551 (Ovary), EOD Primary
         Tumor must = 000 or 050 and EOD Regional Nodes must = 000 or 050 and EOD Mets must = 00
    d. If Schema ID = 00723 (Intracranial Gland), or 09723 (Intracranial Gland V9: 2023+),
        EOD Primary Tumor must = 000 and EOD mets must = 00
    e. If Schema ID is in list 1, EOD Primary Tumor must = 000 or 050 and
        EOD Regional Nodes must = 000, and EOD Mets must = 00
    f. If Schema ID is in list 2, EOD Primary Tumor must = 000 and
        EOD Regional Nodes must = 000, and EOD Mets must = 00
    g. If Schema ID is in list 3, EOD Primary Tumor must = 000 and
       EOD Regional Nodes must = 000, 040, or 050 and EOD Mets must = 00
    h. If Schema ID is in list 4, EOD Primary Tumor must = 000 and
        EOD Regional Nodes must = 000 or 050 or 070 and EOD Mets must = 00

3. If Schema ID is in list 5, 6, 7, 8, 9, or 10, Behavior Code ICD-O-3 must not = 2

4. If Behavior Code ICD-O-3 = 3 (invasive)
    a. If Schema ID = 00480 (Breast), EOD Primary Tumor must not = 000 or
       EOD Regional Nodes must not = 000, 030, 050, or 070 or EOD Mets must not
       = 00 or 05
    b. If Schema ID = 00553 (Fallopian Tube), EOD Primary Tumor must not = 000,
        050, 070, or 080 or EOD Regional Nodes must not = 000 or 050 or EOD Mets
      must not = 00
    c. If Schema ID = 00530 (Corpus Carcinoma) or 00551 (Ovary), EOD Primary
        Tumor must not = 000 or 050 or EOD Regional Nodes must not = 000 or 050 or
        EOD Mets must not = 00
    d. If Schema ID = 00723 (Intracranial Gland), or 09723 (Intracranial Gland V9: 2023+),
        EOD Primary Tumor must not = 000 or 050 or EOD Mets must not = 00
    e. If Schema ID is in list 1, EOD Primary Tumor must not = 000 or 050 or
        EOD Regional Nodes must not = 000 or EOD Mets must not = 00
    f. If Schema ID is in list 2, EOD Primary Tumor must not = 000 or
        EOD Regional Nodes must not = 000 or EOD Mets must not = 00
    g. If Schema ID is in list 3, EOD Primary Tumor must not = 000 or EOD
        Regional Nodes must not = 000, 040 or 050 or EOD Mets must not = 00
    h. If Schema ID is in list 4, EOD Primary Tumor must not = 000 or EOD
        Regional Nodes must not = 000 or 050 or 070  or EOD Mets must not = 00
    i. If Schema ID is in list 8, EOD Primary Tumor must not = 050 or EOD
       Mets must not = 00

        LIST 1: EOD Primary Tumor with in situ codes 000, 050, regional nodes
               code 000
        00190     Appendix [8th: 2018-2022]
        00570     Penis
        00610     Kidney Renal Pelvis
        00620     Bladder
        00631     Urethra
        00633     Urethra Prostatic
        00750     Parathyroid
        09190     Appendix [V9: 2023+]

        LIST 2: EOD Primary Tumor with in situ code 000, regional nodes code 000
        00071     Lip
        00072     Tongue Anterior
        00073     Gum
        00074        Floor of Mouth
        00075     Palate Hard
        00076     Buccal Mucosa
        00077     Mouth Other
        00080        Major Salivary Gland
        00090     Nasopharynx
        00100        Oropharynx HPV-Mediated (p16+)
        00111        Oropharynx p16-
        00112        Hypopharynx
        00118     Pharynx Other
        00119        Middle Ear
        00121        Maxillary Sinus
        00122        Nasal Cavity and Ethmoid Sinus
        00128        Sinus Other
        00130        Larynx Other
        00131     Larynx Supraglottic
        00132     Larynx Glottic
        00133     Larynx Subglottic
        00140     Melanoma Head and Neck
        00150        Cutaneous Carcinoma Head and Neck
        00161        Esophagus Squamous
        00169        Esophagus
        00170        Stomach
        00180        Small Intestine
        00200        Colon and Rectum
        00210        Anus [8th: 2018-2022]
        00220        Liver
        00230        Bile Ducts Intrahepatic
        00241        Gallbladder
        00242        Cystic Duct
        00250        Bile Ducts Perihilar
        00260        Bile Duct Distal
        00270        Ampulla of Vater
        00278        Biliary Other
        00280        Pancreas
        00288        Digestive Other
        00290        NET Stomach [8th: 2018-2023]
        09290        NET Stomach [V9: 2024+]
        00301        NET Duodenum [8th: 2018-2023]
        09301        NET Duodenum [V9: 2024+]
        00302        NET Ampulla of Vater [8th: 2018-2023]
        09302        NET Ampulla of Vater [V9: 2024+]
        00310        NET Jejunum and Ileum [8th: 2018-2023]
        09310        NET Jejunum and Ileum [V9: 2024+]
        00320        NET Appendix [8th: 2018-2023]
        09320        NET Appendix [V9: 2024+]
        00330        NET Colon and Rectum [8th: 2018-2023]
        09330        NET Colon and Rectum [V9:2024+]
        00340        NET Pancreas [8th: 2018-2023]
        09340        NET Pancreas [V9: 2024+]
        00350        Thymus
        00358        Trachea
        00360        Lung
        00370        Pleural Mesothelioma
        00378        Respiratory Other
        00430        GIST
        00460        Merkel Cell Skin
        00470        Melanoma Skin
        00478        Skin Other
        00558        Adnexa Uterine Other
        00559        Genital Female Other
        00560        Placenta
        00590        Testis
        00598        Genital Male Other
        00600        Kidney Parenchyma
        00638        Urinary Other
        00640        Skin Eyelid
        00650        Conjunctiva
        00660        Melanoma Conjunctiva
        00671        Melanoma Iris
        00672        Melanoma Choroid and Ciliary Body
        00690        Lacrimal Gland
        00698        Lacrimal Sac
        00700        Orbital Sarcoma
        00718        Eye Other
        00760        Adrenal Gland
        00770        NET Adrenal
        00778        Endocrine Other
        09210        Anus [V9: 2023+]

    LIST 3: EOD Primary Tumor with in situ code 000, regional nodes codes
            000, 050
        00500        Vulva [8th: 2018-2023]
        09500        Vulva [V9: 2024+] [regional nodes codes 000 and 040]
        00510        Vagina
        00520        Cervix [8th: 2018-2020]
        09520        Cervix [9th: 2021+]
        00552        Primary Peritoneal Carcinoma

    LIST 4: EOD Primary Tumor with in situ code 000, regional nodes codes
            000, 050, 070
        00730        Thyroid
        00740        Thyroid Medullary

    LIST 5: EOD Primary Tumor with no in situ code, regional nodes code 000
        00381        Bone Appendicular Skeleton
        00382        Bone Spine
        00383        Bone Pelvis
        00400        Soft Tissue Head and Neck
        00410        Soft Tissue Trunk and Extremities
        00421        Soft Tissue Abdomen and Thorax
        00422        Heart, Mediastinum, Pleura
        00440        Retroperitoneum
        00450        Soft Tissue Rare
        00459        Soft Tissue Other
        00680        Retinoblastoma
        00710        Lymphoma Ocular Adnexa
        00811        Mycosis Fungoides
        00812        Primary Cutaneous Lymphoma

    LIST 6: EOD Primary Tumor with no in situ code, regional nodes codes
            000, 050
        00528        Cervix Sarcoma [2021+]
        00541        Corpus Sarcoma
        00542        Corpus Adenosarcoma

    LIST 7: EOD Primary Tumor with no in situ code, EOD Regional Nodes
            coded, EOD Mets = 88
        00458        Kaposi Sarcoma
        00822     Plasma Cell Disorder (EOD Regional Nodes code 987 = NA)

    LIST 8: EOD Primary Tumor with no in situ code, EOD Regional Nodes =
            888, EOD Mets coded
        00721        Brain [8th: 2018-2022]
        00722        CNS Other [8th: 2018-2022]
        09721        Brain (V9: 2023+]
        09722        CNS Other [V9: 2023+]
        09724        Medulloblastoma [V9: 2023+]

    LIST 9:  EOD Primary Tumor with no in situ code, EOD Regional Nodes
           with no code 000, EOD Mets

        00060        Cervical Nodes, Unknown Primary

    LIST 10: EOD Primary Tumor with no in situ code, EOD Regional Nodes =
            888, EOD Mets = 88

        00790        Lymphoma
        00795        Lymphoma (CLL/SLL)
        00821        Plasma Cell Myeloma
        00830        HemeRetic
        99999     Ill-Defined]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-23" ref="68600">Edit created.</event>
                <event version="SE21-021-06" user="kirbyk" date="2021-06-02" ref="68675">Fixing edit for schema IDs that are not in any of the edit lists.</event>
                <event version="SE22-022-01" user="beverung" date="2022-02-07" ref="68810">Update/add description and logic for Schema IDs 00528, 00530, 00060, 00450 and 00459.</event>
                <event version="SE23-023-01" user="cooki" date="2023-02-10" ref="69123">Updated lists for Schema IDs 00190, 00210, 00721, 00722, 09190, 09210, 09721, 09722, and 09724.</event>
                <event version="SE23-023-03" user="cooki" date="2023-05-24" ref="69252">Moved Schema ID 00370 from List 5 to List 2.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-02-20" ref="69387">Add schema IDs to list 2, 3, and steps 2d and 4d and add EOD Regional Nodes 040 to steps 2g and 4g.</event>
            </history>
        </rule>
        <rule id="IFN6141" name="Summary Stage 2018, EOD Tumor/Nodes/Mets, Schema ID (SEER)" tag="N6141" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.summaryStage2018 == null)
    return true
if (line.schemaId == null || line.typeOfReportingSource == '7' || ['0', '1'].contains(line.behaviorCodeIcdO3) || line.behaviorCodeIcdO3 == null)
    return true
if (line.eodPrimaryTumor == null && line.eodRegionalNodes == null && line.eodMets == null)
    return true

boolean passing = true

Map eodValuesMap = (Map)((Map)((Map)Context.Summary_Stage_EOD_Table).get(line.summaryStage2018))?.get(line.schemaId)
Map eodPrimaryTumorValues = (Map)eodValuesMap?.get('eodPrimaryTumor')
Map eodRegionalNodesValues = (Map)eodValuesMap?.get('eodRegionalNodes')
Map eodMetsValues = (Map)eodValuesMap?.get('eodMets')

if (eodPrimaryTumorValues != null) {
    List eqValues = (List)eodPrimaryTumorValues.get('eq')
    passing &= (eqValues == null || (line.eodPrimaryTumor != null && eqValues.contains(line.eodPrimaryTumor)))
    List neValues = (List)eodPrimaryTumorValues.get('ne')
    passing &= (neValues == null || (line.eodPrimaryTumor == null || !neValues.contains(line.eodPrimaryTumor)))
}
if (eodRegionalNodesValues != null) {
    List eqValues = (List)eodRegionalNodesValues.get('eq')
    passing &= (eqValues == null || (line.eodRegionalNodes != null && eqValues.contains(line.eodRegionalNodes)))
    List neValues = (List)eodRegionalNodesValues.get('ne')
    passing &= (neValues == null || (line.eodRegionalNodes == null || !neValues.contains(line.eodRegionalNodes)))
}
if (eodMetsValues != null) {
    List eqValues = (List)eodMetsValues.get('eq')
    passing &= (eqValues == null || (line.eodMets != null && eqValues.contains(line.eodMets)))
    List neValues = (List)eodMetsValues.get('ne')
    passing &= (neValues == null || (line.eodMets == null || !neValues.contains(line.eodMets)))
}

boolean schemaIdInList5To10 =
((List)Context.EOD_SchemaId_List_5).contains(line.schemaId) ||
((List)Context.EOD_SchemaId_List_6).contains(line.schemaId) ||
((List)Context.EOD_SchemaId_List_7).contains(line.schemaId) ||
((List)Context.EOD_SchemaId_List_8).contains(line.schemaId) ||
((List)Context.EOD_SchemaId_List_9).contains(line.schemaId) ||
((List)Context.EOD_SchemaId_List_10).contains(line.schemaId)

passing &= (!schemaIdInList5To10 || line.summaryStage2018 != '0')

passing &= (line.schemaId != '00060' || !['1', '2', '4'].contains(line.summaryStage2018))

passing &= (!['00721','00722','00723','09721','09722','09723','09724','00790','00795'].contains(line.schemaId) || !['3', '4'].contains(line.summaryStage2018))

boolean eodMetsCondition = (line.eodMets >= '10' && line.eodMets <= '70') || (line.schemaId == '00370' && line.eodMets == '05') || (line.schemaId == '00458' && line.eodRegionalNodes == '700')
passing &= (!eodMetsCondition || line.summaryStage2018 == '7')

if (line.schemaId == '00790' || line.schemaId == '00795') {
    if (line.summaryStage2018 == '1')
        passing &= ['100', '200'].contains(line.eodPrimaryTumor)
    else if (line.summaryStage2018 == '2')
        passing &= ['300', '400', '500'].contains(line.eodPrimaryTumor)
    else if (line.summaryStage2018 == '7')
        passing &= ['575', '600', '700', '750', '800'].contains(line.eodPrimaryTumor)
}

return passing]]></expression>
            <message>Summary Stage 2018 conflicts with EOD Primary Tumor, EOD Regional Nodes, and EOD Mets</message>
            <description><![CDATA[This edit checks consistency of coding between Summary Stage 2018 for
in situ and invasive cases and EOD Primary Tumor, EOD Regional Nodes, and EOD
Mets by Schema ID for all Schema IDs excluding 00580, Prostate.

1. This edit is skipped if any of the following conditions is true:
    a. Diagnosis date is invalid, blank (unknown), or before 2019.
    b. Schema ID is blank
    c. Summary Stage 2018 is blank
    d. Behavior Code ICD-O-3 is blank or = 0 or 1
    e. EOD Primary Tumor, EOD Regional Nodes, and EOD Mets are all blank
    f. Type of Reporting Source = 7 (Death Certificate Only)

2. If Summary Stage 2018 = 0 (in situ)
    a. If Schema ID = 00480, EOD Primary Tumor must = 000, 050, or 070 and
        EOD Regional Nodes must = 000, 030, 050, or 070 and EOD Mets must =
        00 or 05
    b. If Schema ID = 00553 (Fallopian Tube), EOD
        Primary Tumor must = 000, 050, 070, or 080 and EOD Regional Nodes must = 000 or 050
        and EOD Mets must = 00
    c. If Schema ID = 00530 (Corpus Carcinoma) or 00551 (Ovary), EOD Primary
        Tumor must = 000 or 050 and EOD Regional Nodes must = 000 or 050 and EOD Mets must = 00
    d. If Schema ID = 00723 (Intracranial Gland 8th: 2018-2022), or 09723 (Intracranial
        Gland V9: 2023+) EOD Primary Tumor must = 000 and EOD Mets must = 00
    e. If Schema ID is in list 1, EOD Primary Tumor must = 000 or 050,
        EOD Regional Nodes must = 000, and EOD Mets must = 00
    f. If Schema ID is in list 2, EOD Primary Tumor must = 000,
        EOD Regional Nodes must = 000, and EOD Mets must = 00
    g. If Schema ID is in list 3, EOD Primary Tumor must = 000 and
        EOD Regional Nodes must = 000, 040, or 050 and EOD Mets must = 00
    h. If Schema ID is in list 4, EOD Primary Tumor must = 000 and
        EOD Regional Nodes must = 000 or 050 or 070 and EOD Mets must = 00

3. If Schema ID is in list 5, 6, 7, 8, 9, or 10, Summary Stage 2018 must
    not = 0

4. If Summary Stage = 1 (localized) or 2 (regional by direct extension)
    a. If Schema ID = 00480, EOD Primary Tumor must not = 000, 800, or 999 and
        EOD Regional Nodes must = 000, 030, 050, 070, or 999 and EOD Mets must =
        00 or 05
    b. If Schema ID = 00553 (Fallopian Tube), EOD
        Primary Tumor must not = 000, 050, 070, 080, 800, or 999 and EOD Regional
        Nodes must = 000, 050, or 999 and EOD Mets must = 00
    c. If Schema ID = 00530 (Corpus Carcinoma) or 00551, (Ovary), EOD Primary
        Tumor must not = 000, 050, 800, or 999 and EOD Regional Nodes must = 000, 050,
        or 999 and EOD Mets must = 00
    d. If Schema ID = 00723 (Intracranial Gland ), 8th: 2018-2022) or 09723 (Intracranial
        Gland V9: 2023+), EOD Primary Tumor must not = 000, 050, 800, or 999 and EOD Mets must = 00
    e. If Schema ID is in list 1, EOD Primary Tumor must not = 000, 050, 800, or
        999 and EOD Regional Nodes must = 000 or 999, and EOD Mets must = 00
    f. If Schema ID is in list 2, EOD Primary Tumor must not = 000, 800, or 999
        and EOD Regional Nodes must = 000 or 999, and EOD Mets must = 00
    g. If Schema ID is in list 3, EOD Primary Tumor must not = 000, 800, or 999
        and EOD Regional Nodes must = 000, 040, 050, or 999 and EOD Mets must = 00
    h. If Schema ID is in list 4, EOD Primary Tumor must not = 000, 800, or 999
        and EOD Regional Nodes must = 000 or 050, 070, or 999  and EOD Mets must
        = 00
    i. If Schema ID is in list 5, EOD Primary Tumor must not = 800 or 999 and
        EOD Regional Nodes must = 000 or 999 and EOD Mets must = 00
    j. If Schema ID is in list 6, EOD Primary Tumor must not = 800 or 999 and
        EOD Regional Nodes must = 000, 050, or 999 and EOD Mets must = 00
    k. If Schema ID is in list 7, EOD Primary Tumor must not = 800 or 999 and
        EOD Regional Nodes must = 000, 987, or 999
    l. If Schema ID is in list 8, EOD Primary Tumor must not = 050, 800, or 999
        and EOD Mets must = 00

5. If Summary Stage = 3 (regional to lymph nodes)
    a. If Schema ID = 00480, EOD Regional Nodes must not = 000, 030, 050, 070, or
        999 and EOD Mets must = 00 or 05
    b. If Schema ID is in list 1, 2, 5, or 9, EOD Regional Nodes must not = 000 or
        999, and EOD Mets must = 00
    c. If Schema ID is in list 3 or 6 or Schema ID = 00530, 00551, or 00553, EOD
        Regional Nodes must not = 000, 040, 050, or 999, and EOD Mets must = 00
    d. If Schema ID is in list 4, EOD Regional Nodes must not = 000, 050, 070, or
        999 and EOD Mets must = 00
    e. If Schema ID is in list 7, EOD Regional Nodes must not = 000, 700, 987, or 999


6. If Summary Stage = 4 (regional by direct extension and lymph nodes)
    a. If Schema ID = 00480, EOD Primary Tumor must not = 000, 800, or 999 and
        EOD Regional Nodes must not = 000, 030, 050, 070, or 999 and EOD Mets must
        = 00 or 05
    b. If Schema ID = 00553, EOD Primary Tumor must not = 000, 050, 070,
        080, 800, or 999 and EOD Regional Nodes must not = 000, 050, or 999, and
        EOD Mets must = 00
    c. If Schema ID = 00530 or 00551, EOD Primary Tumor must not = 000, 050, 800, or
        999 and EOD Regional Nodes must not = 000, 050, or 999 and EOD Mets must = 00
    d. If Schema ID is in list 1, EOD Primary Tumor must not = 000, 050, 800, or
        999 and EOD Regional Nodes must not = 000 or 999, and EOD Mets must = 00
    e. If Schema ID is in list 2, EOD Primary Tumor must not = 000, 800, or 999
        and EOD Regional Nodes must not = 000 or 999, and EOD Mets must = 00
    f. If Schema ID is in list 3, EOD Primary Tumor must not = 000, 800, or 999
        and EOD Regional Nodes must not = 000, 040, 050, or 999 and EOD Mets must = 00
    g. If Schema ID is in list 4, EOD Primary Tumor must not = 000, 800, or 999
        and EOD Regional Nodes must not = 000, 050, 070, or 999, and EOD Mets must
         = 00
    h. If Schema ID is in list 5, EOD Primary Tumor must not = 800 or 999 and EOD
        Regional Nodes must not = 000 or 999 and EOD Mets must = 00
    i. If Schema ID is in list 6, EOD Primary Tumor must not = 800 or 999 and
        EOD Regional Nodes must not = 000, 050, or 999 and EOD Mets must = 00
    j. If Schema ID = 00458, EOD Primary Site must not = 800 or 999 and EOD
        Regional Nodes must not = 000, 700, or 999

7. If Schema ID - 00060, Summary Stage must not = 1, 2, or 4.

8. If Schema ID = 00721, 00722, 00723, 09721, 09722, 09723, 09724, 00790, or 00795, Summary Stage must not = 3 or 4.

9. If EOD Mets = 10-70, or if Schema ID = 00370 and EOD Mets = 05, or if Schema ID = 00458 and EOD Regional Nodes = 700,
    Summary Stage 2018 must = 7.

10. If Schema ID = 00790 or 00795
    If Summary Stage 2018 = 1, EOD Primary Tumor must = 100 or 200.
    If Summary Stage 2018 = 2, EOD Primary Tumor must = 300, 400, or 500.
    If Summary Stage 2018 = 7, EOD Primary Tumor must = 575, 600, 700, 750, or 800.


        LIST 1: EOD Primary Tumor with in situ codes 000, 050, regional nodes code
                000
        00190     Appendix [8th: 2018-2022]
        09190     Appendix [V9: 2023+]
        00570     Penis
        00610     Kidney Renal Pelvis
        00620     Bladder
        00631     Urethra
        00633     Urethra Prostatic
        00750     Parathyroid

        LIST 2: EOD Primary Tumor with situ code 000, regional nodes code 000
        00071     Lip
        00072     Tongue Anterior
        00073     Gum
        00074        Floor of Mouth
        00075     Palate Hard
        00076     Buccal Mucosa
        00077     Mouth Other
        00080        Major Salivary Gland
        00090     Nasopharynx
        00100        Oropharynx HPV-Mediated (p16+)
        00111        Oropharynx p16-
        00112        Hypopharynx
        00118     Pharynx Other
        00119        Middle Ear
        00121        Maxillary Sinus
        00122        Nasal Cavity and Ethmoid Sinus
        00128        Sinus Other
        00130        Larynx Other
        00131     Larynx Supraglottic
        00132     Larynx Glottic
        00133     Larynx Subglottic
        00140     Melanoma Head and Neck
        00150        Cutaneous Carcinoma Head and Neck
        00161        Esophagus Squamous
        00169        Esophagus
        00170        Stomach
        00180        Small Intestine
        00200        Colon and Rectum
        00210        Anus [8th: 2018-2022]
        09210        Anus [V9: 2023+]
        00220        Liver
        00230        Bile Ducts Intrahepatic
        00241        Gallbladder
        00242        Cystic Duct
        00250        Bile Ducts Perihilar
        00260        Bile Duct Distal
        00270        Ampulla of Vater
        00278        Biliary Other
        00280        Pancreas
        00288        Digestive Other
        00290        NET Stomach [8th: 2018-2023]
        09290        NET Stomach [V9: 2024+]
        00301        NET Duodenum [8th: 2018-2023]
        09301        NET Duodenum [V9: 2024+]
        00302        NET Ampulla of Vater [8th: 2018-2023]
        09302        NET Ampulla of Vater [V9: 2024+]
        00310        NET Jejunum and Ileum [8th: 2018-2023]
        09310        NET Jejunum and Ileum [V9: 2024+]
        00320        NET Appendix [8th: 2018-2023]
        09320        NET Appendix [V9: 2024+]
        00330        NET Colon and Rectum [8th: 2018-2023]
        09330        NET Colon and Rectum [V9: 2024+]
        00340        NET Pancreas [8th: 2018-2023]
        09340        NET Pancreas [V9: 2024+]
        00350        Thymus
        00358        Trachea
        00360        Lung
        00370        Pleural Mesothelioma
        00378        Respiratory Other
        00430        GIST
        00460        Merkel Cell Skin
        00470        Melanoma Skin
        00478        Skin Other
        00558        Adnexa Uterine Other
        00559        Genital Female Other
        00560        Placenta
        00590        Testis
        00598        Genital Male Other
        00600        Kidney Parenchyma
        00638        Urinary Other
        00640        Skin Eyelid
        00650        Conjunctiva
        00660        Melanoma Conjunctiva
        00671        Melanoma Iris
        00672        Melanoma Choroid and Ciliary Body
        00690        Lacrimal Gland
        00698        Lacrimal Sac
        00700        Orbital Sarcoma
        00718        Eye Other
        00760        Adrenal Gland
        00770        NET Adrenal
        00778        Endocrine Other

    LIST 3: EOD Primary Tumor with in situ code 000, regional nodes codes 000, 050
        00500        Vulva[8th: 2018-2023]
        09500        Vulva [V9: 2024+] [regional nodes codes 000 and 040]
        00510        Vagina
        00520        Cervix [8th: 2018-2020]
        09520        Cervix [9th: 2021+]
        00552        Primary Peritoneal Carcinoma

    LIST 4: EOD Primary Tumor with in situ code 000, regional nodes codes 000, 050,070
        00730        Thyroid
        00740        Thyroid Medullary

    LIST 5: EOD Primary Tumor with no in situ code
        00381        Bone Appendicular Skeleton
        00382        Bone Spine
        00383        Bone Pelvis
        00400        Soft Tissue Head and Neck
        00410        Soft Tissue Trunk and Extremities
        00421        Soft Tissue Abdomen and Thorax
        00422        Heart, Mediastinum, Pleura
        00440        Retroperitoneum
        00450        Soft Tissue Rare
        00459        Soft Tissue Other
        00680        Retinoblastoma
        00710        Lymphoma Ocular Adnexa
        00811        Mycosis Fungoides
        00812        Primary Cutaneous Lymphoma

    LIST 6: EOD Primary Tumor with no in situ code, regional nodes codes 000, 050
        00528        Cervix Sarcoma
        00541        Corpus Sarcoma
        00542        Corpus Adenosarcoma

    LIST 7: EOD Primary Tumor with no in situ code, EOD Regional Nodes coded,
              EOD Mets = 88
        00458        Kaposi Sarcoma
        00822     Plasma Cell Disorder (EOD Regional Nodes code 987 = NA)

    LIST 8: EOD Primary Tumor with no in situ code, EOD Regional Nodes = 888,
             EOD Mets coded
        00721        Brain [8th: 2018-2022]
        09721        Brain [V9: 2023+]
        00722        CNS Other [8th: 2018-2022]
        09722        CNS Other [V9: 2023+]
        09724        Medulloblastoma [V9: 2023+]

    LIST 9:  EOD Primary Tumor with no in situ code, EOD Regional Nodes
           with no code 000, EOD Mets

        00060        Cervical Nodes, Unknown Primary

    LIST 10: EOD Primary Tumor with no in situ code, EOD Regional Nodes = 888,
              EOD Mets = 88
        00790        Lymphoma
        00795        Lymphoma (CLL/SLL)
        00821        Plasma Cell Myeloma
        00830        HemeRetic
        99999     Ill-Defined]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-16" ref="68583">Edit created.</event>
                <event version="SE21-021-04" user="kirbyk" date="2021-05-14" ref="68669">Fixing lists of valid values.</event>
                <event version="SE22-022-01" user="beverung" date="2022-02-07" ref="68810">Update/add description and logic for Schema IDs 00528, 00530, 00060, 00450 and 00459.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-06" ref="69136">Update/add description and logic for Schema IDs 09190, 09210, 09721, 09722 and 09724.</event>
                <event version="SE23-023-02" user="cooki" date="2023-04-12" ref="69220">Update/add description and logic for sections 2d, 4d, and 10.</event>
                <event version="SE23-023-04" user="cooki" date="2023-05-30" ref="69261">Updated lists for Schema ID 00370.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-03-18" ref="69424">Added EOD regional node 040 to condition 5 and new schemas to lists 2 and 3.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-07-12" ref="69488">Added logic for EOD regional node values 040 and 700 for multiple Summary Stage values.</event>
            </history>
        </rule>
        <rule id="IFN6145" name="Behavior Code ICDO3, Derived SS 2018, Schema ID (SEER)" tag="N6145" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if (line.behaviorCodeIcdO3 == null || line.derivedSummaryStage2018 == null)
    return true

if (Functions.matches(line.schemaId, /^0072[123]|0972[1-4]$/)) {
    if (['0','1'].contains(line.behaviorCodeIcdO3) && line.derivedSummaryStage2018 != '8')
        return false
    if (line.derivedSummaryStage2018 == '8' && !['0','1'].contains(line.behaviorCodeIcdO3))
        return false
}

if (line.behaviorCodeIcdO3 == '2')
    return line.derivedSummaryStage2018 == '0'
else if (line.behaviorCodeIcdO3 == '3')
    return line.derivedSummaryStage2018 != '0' && line.derivedSummaryStage2018 != '8'
return true]]></expression>
            <message>Derived Summary Stage 2018 conflicts with Behavior Code ICD-O-3</message>
            <description><![CDATA[This edit checks that Derived Summary Stage 2018 is consistent with
Behavior Code ICD-O-3, codes 0, 1, 2, and 3, for all cases.

1. This edit is skipped for any of the following conditions:
    a. Diagnosis date is pre-2021, blank (unknown), or invalid
    b. Schema ID is blank
    c. Derived Summary Stage 2018 is blank
    d. Behavior Code ICD-O-3 is blank
    e. Type of Reporting Source = 7 (death certificate only)

2. If Schema ID = 00721, 09721, 00722, 09722, 00723, 09723, or 09724 and
   Behavior Code ICD-O-3 = 0 or 1, then Derived Summary Stage 2018 must = 8.

3. If Schema ID = 00721, 09721, 00722, 09722, 00723, 09723, or 09724
   if Derived Summary Stage 2018 = 8, then Behavior Code ICD-O-3 must = 0 or 1.

4. If Behavior Code ICD-O-3 = 2, then Derived Summary Stage 2018 must = 0.

5. If Behavior Code ICD-O-3 = 3, then Derived Summary Stage 2018 must not = 0 or 8.]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-23" ref="68600">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68726">Updated to not allow Derived Summary Stage 2018 = 8 when Behavior = 3.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-01-30" ref="69121">Update Schema IDs for SS2018 code 8.</event>
            </history>
        </rule>
        <rule id="IFN6148" name="Mets at DX-Distant LN, EOD Mets, Schema ID (SEER)" tag="N6148" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7' ||
            line.schemaId == null || line.metsAtDxDistantLn == null || line.eodMets == null)
                return true

boolean schema50028andYear2021Plus = line.dateOfDiagnosisYear >= '2021' && line.schemaId == '00528'
if (line.metsAtDxDistantLn == '1' && (Functions.matches(line.metsAtDxBone, /^0|9$/) || line.metsAtDxBone == null) && (Functions.matches(line.metsAtDxBrain, /^0|9$/) || line.metsAtDxBrain == null) &&
    (Functions.matches(line.metsAtDxLiver, /^0|9$/) || line.metsAtDxLiver == null) && (Functions.matches(line.metsAtDxLung, /^0|9$/) || line.metsAtDxLung == null) &&
    (Functions.matches(line.metsAtDxOther, /^0|9$/) || line.metsAtDxOther == null) && (((List)Context.IFN_6148_SchemaId_List).contains(line.schemaId) || schema50028andYear2021Plus))
        return line.eodMets == '10'

if ((((List)Context.IFN_6148_SchemaId_List).contains(line.schemaId) || schema50028andYear2021Plus) && line.eodMets == '10')
    return line.metsAtDxDistantLn == '1'

if (line.schemaId == '00230' && (line.eodMets == '50' || line.eodMets == '10'))
    return line.metsAtDxDistantLn == '1'

if (line.schemaId == '00280' && (line.eodMets == '20' || line.eodMets == '10'))
    return line.metsAtDxDistantLn == '1'

return true]]></expression>
            <message>Mets at Dx-Distant LN and EOD Mets conflict for this schema</message>
            <description><![CDATA[Purpose: This edit verifies that Mets at DX-Distant LN code 1, with no other
positive Mets at DX data item, and EOD Mets are coded consistently by Schema ID.

1. This edit is skipped if any of the following conditions is true:

    a. Year of Date of Diagnosis is less than 2021, blank (unknown), or invalid
    b. Schema ID is blank
    c. EOD Mets is blank
    d. Mets at DX-Distant LN is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

NOTE:  Mets at DX-Distant LN coded in EOD Regional Nodes for 00458, 00710,
        00811.
       EOD Mets coded 88 for 00458, 00821, 00822, 00830, 99999

2. If Mets at DX-Distant LN = 1 (yes) (and Mets at DX-Bone = 0 or 9,
   Mets at DX-Brain = 0 or 9, Mets at DX-Liver = 0 or 9, Mets at DX-Lung = 0
   or 9, and Mets at DX-Other = 0 or 9 or the field is empty)
   then EOD Mets must be coded as shown in the list below:

    00060    Cervical Nodes            10
    00071    Lip                       10
    00072    Tongue Anterior           10
    00073    Gum                       10
    00074    Floor of Mouth            10
    00075    Palate Hard               10
    00076    Buccal Mucosa             10
    00077    Mouth Other               10
    00080    Major Salivary Gland      10
    00090    Nasopharynx               10
    00100    Oropharynx p16+           10
    00111    Oropharynx p16-           10
    00112    Hypopharynx               10
    00118    Pharynx Other             10
    00119    Middle Ear                10
    00121    Maxillary Sinus           10
    00122    Nasal Cavity              10
    00128    Sinus Other               10
    00130    Larynx Other              10
    00131    Larynx Supraglottic       10
    00132    Larynx Glottic            10
    00133    Larynx Subglottic         10
    00140    Melanoma H&N              10
    00150    Cutaneous Carcinoma       10
    00160    Esophagus Squamous        10
    00169    Esophagus                 10
    00170    Stomach                   10
    00180    Small Intestine           10
    00210    Anus [8th: 2018-2020]     10
    09210    Anus [V9: 2023+]          10
    00220    Liver                     10
    00241    Gallbladder               10
    00242    Cystic Duct               10
    00250    Bile Ducts Perihilar      10
    00260    Bile Ducts Distal         10
    00270    Ampulla of Vater          10
    00278    Biliary Other             10
    00288    Digestive Other           10
    00358    Trachea                   10
    00370    Pleural Mesothelioma      10
    00378    Respiratory Other         10
    00400    Soft Tissue H&N           10
    00410    Soft Tissue Trunk         10
    00421    Soft Tissue Abdomen       10
    00422    Heart,Mediastinum         10
    00430    GIST                      10
    00440    Retroperitoneum           10
    00450    Soft Tissue Rare          10
    00459    Soft Tissue Other         10
    00478    Skin Other                10
    00480    Breast                    10
    00500    Vulva [8th: 2018-2023]    10
    09500    Vulva [V9: 2024+]         10
    00510    Vagina                    10
    00520    Cervix [8th: 2018-2020]   10
    00528    Cervix Sarcoma [2021+]    10
    09520    Cervix [9th: 2021+]       10
    00530    Corpus Carcinoma          10
    00541    Corpus Sarcoma            10
    00542    Corpus Adenosarcoma       10
    00558    Adnexa Uterine Other      10
    00559    Genital Female Other      10
    00570    Penis                     10
    00598    Genital Male Other        10
    00600    Kidney Parenchyma         10
    00610    Kidney Renal Pelvis       10
    00631    Urethra                   10
    00633    Urethra Prostatic         10
    00638    Urinary Other             10
    00640    Skin of Eyelid            10
    00650    Conjunctiva               10
    00660    Melanoma Conjunctiva      10
    00690    Lacrimal Gland            10
    00698    Lacrimal Sac              10
    00700    Orbital Sarcoma           10
    00718    Eye Other                 10
    00721    Brain [8th: 2018-2022]    10
    09721    Brain [V9: 2023+]         10
    00722    CNS Other [8th: 2018-2022]10
    09722    CNS Other [V9: 2023+]     10
    00723    Intracranial Gland [8th: 2018-2022]        10
    09723    Intracranial Gland [V9: 2023+]             10
    00730    Thyroid                   10
    00740    Thyroid Medullary         10
    00750    Parathyroid               10
    00760    Adrenal                   10
    00778    Endocrine Other           10
    00812    Primary Cutaneous Lymphoma10


3. If EOD Mets = 10 for the schemas above,
    Mets at DX-Distant LN must = 1

4. If Schema ID = 00230 and EOD Mets = 50, 10
    Mets at DX-Distant LN must = 1

5. If Schema ID = 00280 and EOD Mets = 20, 10
    Mets at DX-Distant LN must = 1]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-03-16" ref="68634">Edit created.</event>
                <event version="SE21-021-04" user="kirbyk" date="2021-05-10" ref="68652">Added more requirements for EOD Mets = 10.</event>
                <event version="SE22-022-01" user="smithm" date="2022-01-27" ref="68835">Add 00528 (2021+), 00459 to list of schema ids</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-06" ref="69131">Add 09210, 09721, 09722, 09723 to list of schema ids.</event>
                <event version="SE24-024-01" user="cooki" date="2024-03-14" ref="69409">Added 09500 to list of schema ids.</event>
            </history>
        </rule>
        <rule id="IFN6149" name="Mets at DX-BBLLO, EOD Mets, Schema ID (SEER)" tag="N6149" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.typeOfReportingSource == '7'
            || line.eodMets == null || line.eodMets == '88')
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null )
    return true

if (line.metsAtDxBone == '1' || line.metsAtDxBrain == '1' || line.metsAtDxLiver == '1' || line.metsAtDxLung == '1' || line.metsAtDxOther == '1' || line.metsAtDxOther == '2')
    if (((List)Context.IFN_6149_SchemaId_List).contains(line.schemaId))
        return line.eodMets == '70'

if (line.eodMets == '70' && ((List)Context.IFN_6149_SchemaId_List).contains(line.schemaId))
    if (line.metsAtDxBone == '0' && line.metsAtDxBrain == '0' && line.metsAtDxLiver == '0'
        && line.metsAtDxLung == '0' && line.metsAtDxOther == '0')
        return false


return true]]></expression>
            <message>If Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Liver, Mets at DX-Lung, or Mets at DX-Other = 1, EOD Mets must = 70</message>
            <description><![CDATA[Purpose: This edit verifies that a code 1 in any of Mets at DX-Bone,
Mets at DX-Brain, Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other data
items is coded consistently with EOD Mets code of 70 for all Schema IDs where
this pattern is defined.

1. This edit is skipped if any of the following conditions is true:

    a. Year of Date of Diagnosis is less than 2021, blank (unknown), or invalid
    b. Schema ID is blank
    c. EOD Mets is blank or = 88
    d. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Liver, Mets at DX-Lung, and
       Mets at DX-Other are all blank
    e. Type of Reporting Source is 7 (Death Certificate Only)



2. If Mets at DX-Bone = 1, or Mets at DX-Brain = 1, or Mets at DX-Liver = 1 or
   Mets at DX-Lung = 1 or Mets at DX-Other = 1 or 2,
   then EOD Mets must be coded 70 for Schema IDs in the list below:

3. If EOD Mets = 70,
    Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Liver, Mets at DX-Lung, and
    Mets at DX-Other must not all equal 0 for the Schema IDs in the list below.

   00060   Cervical Nodes
        00071       Lip
        00072   Tongue Anterior
        00073   Gum
        00074   Floor of Mouth
        00075   Palate Hard
        00076   Buccal Mucosa
        00077   Mouth Other
        00080   Major Salivary Gland
        00090   Nasopharynx
        00100   Oropharynx HPV-Mediated (p16+)
        00111   Oropharynx p16-
        00112   Hypopharynx
        00118   Pharynx Other
        00119   Middle Ear
        00121   Maxillary Sinus
        00122   Nasal Cavity and Ethmoid Sinus
        00128   Sinus Other
        00130   Larynx Other
        00131   Larynx Supraglottic
        00132   Larynx Glottic
        00133   Larynx Subglottic
        00140   Melanoma Head and Neck
        00150   Cutaneous Carcinoma Head and Neck
        00161   Esophagus Squamous
        00169   Esophagus
        00170   Stomach
        00180   Small Intestine
        00210   Anus [8th: 2018-2020]
        09210   Anus [V9: 2023+]
        00220   Liver
        00241   Gallbladder
        00242   Cystic Duct
        00250   Bile Ducts Perihilar
        00260   Bile Ducts Distal
        00270   Ampulla of Vater
        00278   Biliary Other
        00288   Digestive Other
        00358   Trachea
        00370   Pleural Mesothelioma
        00378   Respiratory Other
        00400   Soft Tissue Head and Neck
        00410   Soft Tissue Trunk and Extremities
        00421   Soft Tissue Abdomen and Thoracic
        00422   Heart, Mediastinum and Pleura
        00430   GIST
        00440   Retroperitoneum
        00450   Soft Tissue Rare
        00459   Soft Tissue Other
        00478   Skin Other
        00480   Breast
        00500   Vulva [8th:2018-2023]
        09500   Vulva [9th: 2024+]
        00510   Vagina
        00520   Cervix [8th: 2018-2020]
        00528   Cervix Sarcoma [2021+]
        09520       Cervix [9th: 2021+]
        00530       Corpus Carcinoma
        00541       Corpus Sarcoma
        00542       Corpus Adenosarcoma
        00558       Adnexa Uterine Other
        00559       Genital Female Other
        00570       Penis
        00598       Genital Male Other
        00600       Kidney Parenchyma
        00610       Kidney Renal Pelvis
        00631       Urethra
        00633       Urethra Prostatic
        00638       Urinary Other
        00640       Skin Eyelid
        00650       Conjunctiva
        00660       Melanoma Conjunctiva
        00690       Lacrimal Gland
        00698       Lacrimal Sac
        00700       Orbital Sarcoma
        00718       Eye Other
        00721       Brain [8th: 2018-2022]
        09721       Brain [V9: 2023+]
        00722       CNS Other [8th: 2018-2022]
        09722       CNS Other [V9: 2023+]
        00723       Intracranial Gland [8th: 2018-2022]
        09723       Intracranial Gland [V9: 2023+]
        00730       Thyroid
        00740       Thyroid Medullary
        00750       Parathyroid
        00760       Adrenal Gland
        00778       Endocrine Other
        00812   Primary Cutaneous Lymphoma]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-04-07" ref="68633">Edit created.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-13" ref="68834">Added schema IDs 00459 and 00528 to list.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-06" ref="69131">Add 09210, 09721, 09722, 09723 to list of schema ids.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-02-14" ref="69365">Add logic for EOD Mets 70. Add 09500 to schema list.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-06-25" ref="69480">Update logic for EOD Mets 70 to allow all fields to be set to 9.</event>
            </history>
        </rule>
        <rule id="IFN6150" name="Esophagus and EGJ Tumor Epicenter, Esophagus, EOD Primary Tumor (SEER)" tag="N6150" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021')
    return true
if (line.typeOfReportingSource == '7' || line.schemaId == null || line.schemaId != '00161' || line.esophagusAndEgjTumorEpicenter == null)
    return true

return line.eodPrimaryTumor != '800' || line.esophagusAndEgjTumorEpicenter == '9']]></expression>
            <message>EOD Primary Tumor and Esophagus and EGJ Tumor Epicenter conflict for Esophagus Squamous</message>
            <description><![CDATA[This edit verifies that the Esophagus and EGJ Tumor Epicenter SSDI is coded
consistently with EOD Primary Tumor code 800 for Schema ID 00161, Esophagus Squamous.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00161
    c. Esophagus and EGJ Tumor Epicenter is blank
    d. Type of Reporting Source is 7 (Death Certificate Only)



2. If EOD Primary Tumor = 800 (No evidence of primary tumor),
    then Esophagus and EGJ Tumor Epicenter must = 9 (Esophagus NOS, Specific
    location of Esophagus and EGJ Tumor Epicenter not documented)]]></description>
            <history>
                <event version="SE21-021-04" user="kirbyk" date="2021-04-14" ref="68638">Edit created.</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-11" ref="68934">Change edit name and update logic to stop using Primary Site.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6152" name="EOD Primary Tumor, Appendix, Histology ICDO3 (SEER)" tag="N6152" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.eodPrimaryTumor == null)
    return true
if (line.typeOfReportingSource == '7' || line.schemaId == null || (line.schemaId != '00190' && line.schemaId != '09190') || line.histologicTypeIcdO3 == null)
    return true

return line.eodPrimaryTumor != '600' || ['8480','8481','8490'].contains(line.histologicTypeIcdO3)]]></expression>
            <message>EOD Primary Tumor/Histology conflict for Appendix</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor is coded consistently with Histologic
Type ICD-O-3 codes for mucinous adenocarcinoma for Schema ID 00190, Appendix.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00190 or 09190
    d. EOD Primary Tumor is blank
    e. Histologic Type ICD-O-3 is blank
    f. Type of Reporting Source is 7 (Death Certificate Only)


2. If EOD Primary Tumor = 600 (for mucinous tumor only)
    then Histologic Type ICD-O-3 must = 8480 (mucinous adenocarcinoma), 8481
        (mucin-producing adenocarcinoma), or 8490 (signet ring cell carcinoma)]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-25" ref="68606">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE23-023-01" user="cooki" date="2023-02-06" ref="69139">Added skip condition for new schema.</event>
            </history>
        </rule>
        <rule id="IFN6153" name="EOD Regional Nodes, Appendix, Regional Nodes Positive (SEER)" tag="N6153" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7' || line.eodRegionalNodes == null)
    return true
if (line.schemaId == null || (line.schemaId != '00190' && line.schemaId != '09190') || line.regionalNodesPositive == null)
    return true

return line.eodRegionalNodes != '400' || ['00','98','99'].contains(line.regionalNodesPositive)]]></expression>
            <message>EOD Regional Nodes/Reg Nodes Pos conflict for Appendix</message>
            <description><![CDATA[This edit verifies that EOD Regional Nodes code 400 is coded consistently with
Regional Nodes Positive for Schema ID 00190, Appendix.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00190 or 09190
    d. EOD Regional Nodes is blank
    e. Regional Nodes Positive is blank
    f. Type of Reporting Source is 7 (Death Certificate Only)


2. If EOD Regional Nodes = 400 (Tumor deposits in subserosa or mesentery, no
    regional lymph node metastasis)
    then Regional Nodes Positive must = 00 (no nodes positive), 98 (no nodes
   examined), or 99 (unknown if nodes positive)]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-28" ref="68607">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE23-023-01" user="cooki" date="2023-02-06" ref="69139">Added skip condition for new schema.</event>
            </history>
        </rule>
        <rule id="IFN6154" name="Mets at DX, Appendix, EOD Mets (SEER)" tag="N6154" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.eodMets == null || line.schemaId == null || (line.schemaId != '00190' && line.schemaId != '09190'))
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true

boolean metsAtDxBoneCondition = line.metsAtDxBone == null || ['0','9'].contains(line.metsAtDxBone)
boolean metsAtDxBrainCondition = line.metsAtDxBrain == null || ['0','9'].contains(line.metsAtDxBrain)
boolean metsAtDxDistantLnCondition = line.metsAtDxDistantLn == null || ['0','9'].contains(line.metsAtDxDistantLn)
boolean metsAtDxLiverCondition = line.metsAtDxLiver == null || ['0','9'].contains(line.metsAtDxLiver)
boolean metsAtDxLungCondition = line.metsAtDxLung == null || ['0','9'].contains(line.metsAtDxLung)
boolean metsAtDxOtherCondition = line.metsAtDxOther == null || ['0','9'].contains(line.metsAtDxOther)

if ((line.metsAtDxOther == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxDistantLnCondition && metsAtDxLiverCondition && metsAtDxLungCondition) && !['10','30','50'].contains(line.eodMets))
    return false
if (line.metsAtDxOther == '2' && metsAtDxDistantLnCondition && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxLiverCondition && metsAtDxLungCondition && !['30','50'].contains(line.eodMets))
    return false
if (line.metsAtDxDistantLn == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxLiverCondition && metsAtDxLungCondition && metsAtDxOtherCondition && line.eodMets != '40')
    return false
if (((line.metsAtDxDistantLn == '1' && (line.metsAtDxOther == '1' || line.metsAtDxOther == '2')) || (line.metsAtDxBone == '1' || line.metsAtDxBrain == '1' || line.metsAtDxLiver == '1' || line.metsAtDxLung == '1')) && line.eodMets != '50')
    return false
if (line.eodMets == '10' && line.metsAtDxOther != '1')
    return false
if (line.eodMets == '30' && line.metsAtDxOther != '1' && line.metsAtDxOther != '2')
    return false
if (line.eodMets == '40' && line.metsAtDxDistantLn != '1')
    return false
return true]]></expression>
            <message>Mets at DX fields conflict with EOD Mets for Appendix</message>
            <description><![CDATA[This edit verifies that Mets at DX-Bone, Mets at DX-Brain,
Mets at DX-Distant LN, Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other
are coded consistently with EOD Mets for Schema ID 00190, Appendix.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00190 or 09190
    c. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN,
        Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other are all blank
    d. EOD Mets is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)


2. If Mets at DX-Other = 1 and (Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
       Mets at DX-Distant LN = 0,9, Mets at DX-Liver= 0,9, Mets at DX-Lung = 0,9,
      or fields are empty)
       then EOD Mets must = 10, 30, or 50

3. If Mets at DX-Other = 2 and (Mets at DX-Bone = 0, 9, Mets at DX-Brain = 0, 9,
       Mets at DX-Distant LN = 0, 9, Mets at DX-Liver = 0, 9, Mets at DX-Lung = 0, 9,
        or fields are empty)
         then EOD Mets must = 30 or 50

4. If Mets at DX-Distant LN = 1 and (Mets at DX-Bone = 0,9, Mets at DX-Brain =
       0,9, Mets at DX-Liver= 0,9, Mets at DX-Lung = 0,9, and Mets at DX-Other = 0,9,
       or fields are empty)
        then EOD Mets must = 40

5. If Mets at DX-Distant LN = 1 and Mets at DX-Other = 1 or 2, or (Mets at DX-Bone = 1,
        or Mets at DX-Brain = 1, or Mets at DX-Liver= 1, or Mets at DX-Lung = 1)
        then EOD Mets must = 50

6. If EOD Mets = 10 (intraperitoneal acellular mucin)
       then Mets at DX-Other must = 1

7. If EOD Mets = 30 (intraperitoneal metastasis)
       then Mets at DX-Other must = 1 or 2

8. If EOD Mets = 40 (Distant lymph nodes)
       then Mets at DX-Distant LN must = 1]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-14" ref="68608">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE23-023-01" user="cooki" date="2023-02-09" ref="69139">Updated several conditions to match new NAACCR translated edit.</event>
            </history>
        </rule>
        <rule id="IFN6155" name="Tumor Deposits, Colorectal, EOD Regional Nodes, Regional Nodes Positive (SEER)" tag="N6155" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.schemaId != '00200' || line.eodRegionalNodes == null ||
            line.tumorDeposits == null || line.tumorDeposits == 'X8' || line.regionalNodesPositive == null || line.typeOfReportingSource == '7')
        return true

if (Functions.matches(line.tumorDeposits, /^0[1-9]|[1-9]\d|X[12]$/) && line.eodRegionalNodes == '200')
    return ['00','98','99'].contains(line.regionalNodesPositive)

return true]]></expression>
            <message>Tumor Deposits and EOD Regional Nodes conflict with Regional Nodes Positive</message>
            <description><![CDATA[This edit verifies that the Tumor Deposits SSDI and EOD Regional Nodes are coded
consistently with Regional Nodes Positive for Schema ID 00200,Colon and Rectum.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00200
    c. Tumor Deposits is blank or = X8 (not applicable)
    d. EOD Regional Nodes is blank
    e. Regional Nodes Positive is blank
    f. Type of Reporting Source is 7 (Death Certificate Only)

2. If Tumor Deposits = 01-99, X1 (100 or more deposits), or X2 (tumor deposits,
   number unknown), and EOD Regional Nodes = 200 (tumor deposits without
   regional nodal metastasis),
   then Regional Nodes Positive must = 00, 98, or 99.
]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-03-24" ref="68615">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6156" name="Mets at DX, Colon/Rectum, EOD Mets (SEER)" tag="N6156" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.eodMets == null || line.schemaId == null || line.schemaId != '00200')
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true

boolean metsAtDxBoneCondition = line.metsAtDxBone == null || ['0','9'].contains(line.metsAtDxBone)
boolean metsAtDxBrainCondition = line.metsAtDxBrain == null || ['0','9'].contains(line.metsAtDxBrain)
boolean metsAtDxDistantLnCondition = line.metsAtDxDistantLn == null || ['0','9'].contains(line.metsAtDxDistantLn)
boolean metsAtDxLiverCondition = line.metsAtDxLiver == null || ['0','9'].contains(line.metsAtDxLiver)
boolean metsAtDxLungCondition = line.metsAtDxLung == null || ['0','9'].contains(line.metsAtDxLung)
boolean metsAtDxOtherCondition = line.metsAtDxOther == null || ['0','9'].contains(line.metsAtDxOther)

int count = 0
if (line.metsAtDxBone == '1')
    count++
if (line.metsAtDxBrain == '1')
    count++
if (line.metsAtDxLiver == '1')
    count++
if (line.metsAtDxLung == '1')
    count++
if (line.metsAtDxOther == '1')
    count++

if (line.metsAtDxDistantLn == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxLiverCondition && metsAtDxLungCondition && metsAtDxOtherCondition && !['10','30','70'].contains(line.eodMets))
    return false
if (count == 1 && metsAtDxDistantLnCondition && !['20','40','50'].contains(line.eodMets))
    return false
if (count == 1 && line.metsAtDxDistantLn == '1' && !['30','40','50'].contains(line.eodMets))
    return false
if (count > 1 && (line.metsAtDxDistantLn == '1' || metsAtDxDistantLnCondition) && !['40','50'].contains(line.eodMets))
    return false
if (line.metsAtDxOther == '2' && line.eodMets != '50')
    return false
if (['10','30'].contains(line.eodMets) && line.metsAtDxDistantLn != '1')
    return false
if (line.eodMets == '50' && !['1','2'].contains(line.metsAtDxOther))
    return false
return true]]></expression>
            <message>Mets at DX fields conflict with EOD Mets for Colon/Rectum</message>
            <description><![CDATA[This edit verifies that Mets at DX-Bone, Mets at DX-Brain,
Mets at DX-Distant LN, Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other
are coded consistently with EOD Mets for Schema ID 00200, Colon and Rectum.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00200
    c. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN,
        Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other are all blank
    d. EOD Mets is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If Mets at DX-Distant LN = 1 (and Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
       Mets at DX-Liver = 0,9, Mets at DX-Lung = 0,9, Mets at DX-Other = 0,9, or
      fields are empty)
      then EOD Mets must = 10, 30, or 70

3. If only one of Mets at DX-Bone=1, Mets at DX-Brain=1, Mets at DX-Liver=1,
       and Mets at DX-Lung=1, Mets at DX-Other = 1 (and Mets at DX-LN = 0,9, or
      fields are empty),
       then EOD Mets must = 20, 40, or 50

4. If only one of Mets at DX-Bone=1, Mets at DX-Brain=1, Mets at DX-Liver=1,and
      Mets at DX-Lung=1, and Mets at DX-Other = 1 (and Mets at DX-Distant LN = 1)
       then EOD Mets must = 30, 40, or 50

5. If more than one of Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Liver,
       Mets at DX-Lung, and Mets at DX-Other = 1 (and Mets at DX-Distant LN = 0,1,9
      or empty)
        then EOD Mets must = 40 or 50

6. If Mets at DX-Other = 2
       then EOD Mets must = 50

7. If EOD Mets = 10 or 30 (Distant lymph nodes)
      then Mets at DX-Distant LN must = 1

8. If EOD Mets = 50 (Peritoneal surface metastasis, carcinomatosis)
       then Mets at DX-Other must= 1 or 2]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-14" ref="68608">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68723">Updated to add EOD Mets = 40 to logic for conditions 3 and 4.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6157" name="Circumferential Resection Margin (CRM), Colon, Behavior ICDO3 (NAACCR)" tag="N6157" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[ if(line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.schemaId != '00200' || line.behaviorCodeIcdO3 == null ||
            line.typeOfReportingSource == '7' || line.circumferentialResectionMargin == null || line.circumferentialResectionMargin == 'XX.8')
        return true
if (line.behaviorCodeIcdO3 == '2')
    return line.circumferentialResectionMargin == 'XX.9'
return true
            ]]></expression>
            <message>Circumferential Resection Margin (CRM) conflicts with Behavior Code ICD-O-3</message>
            <description><![CDATA[This edit verifies that the Circumferential Resection Margin (CRM) SSDI is
coded consistently with Behavior Code ICD-O-3, code 2, for Schema ID 00200,
Colon and Rectum.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2021, blank (unknown), or invalid.
   b. Schema ID is blank or not 00200
   c. Circumferential Resection Margin (CRM) is blank or XX.8 (not
      applicable)
   d. Behavior Code ICD-O-3 is blank
   e. Type of Reporting Source is 7 (Death Certificate Only)

2. If Behavior Code ICD-O-3 = 2 (in situ)
   the Circumferential Resection Margin (CRM) must = XX.9]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-04-20" ref="68639">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6158" name="Tumor Deposits, Colorectal, Behavior (NAACCR)" tag="N6158" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.schemaId != '00200' || line.behaviorCodeIcdO3 == null ||
            line.tumorDeposits == null || line.tumorDeposits == 'X8' || line.typeOfReportingSource == '7')
        return true

if (Functions.matches(line.tumorDeposits, /^0[1-9]|[1-9][0-9]$/) || line.tumorDeposits == 'X1' || line.tumorDeposits == 'X2')
    return line.behaviorCodeIcdO3 != '2'

return true]]></expression>
            <message>Tumor Deposits conflicts with Behavior Code ICD-O-3</message>
            <description><![CDATA[This edit verifies that the Tumor Deposits SSDI is coded consistently with
Behavior Code ICD-O-3 code 2 for Schema ID 00200, Colon and Rectum.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00200
    c. Tumor Deposits is blank or X8 (not applicable)
    d. Behavior Code ICD-O-3 is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If Tumor Deposits = 01-99, X1 (100 or more deposits), or X2 (tumor deposits,
   number unknown)
   then Behavior Code ICD-O-3 must not = 2]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-03-24" ref="68615">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6159" name="EOD Regional Nodes, Pancreas/NET Pancreas, Primary Site (SEER)" tag="N6159" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7' || line.eodRegionalNodes == null)
    return true
if (line.schemaId == null || !['00280','00340','09340'].contains(line.schemaId) || line.primarySite == null)
    return true

return line.eodRegionalNodes != '700' || ['C251','C252'].contains(line.primarySite)]]></expression>
            <message>EOD Regional Nodes/Site conflict for Pancreas</message>
            <description><![CDATA[This edit verifies that EOD Regional Nodes is coded consistently with Primary
Site for Schema ID 00280, Pancreas and 00340 NET Pancreas.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00280, 00340, or 09340
    c. EOD Regional Nodes is blank
    d. Primary Site is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)



2. If EOD Regional Nodes = 700 (Pancreas Body, Tail, C251,C252, Celiac)
    then Primary Site must = C251 or C252]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-28" ref="68607">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-11" ref="69399">Added skip condition for Schema ID 09340</event>
            </history>
        </rule>
        <rule id="IFN6160" name="EOD Mets, Pancreas/NET Pancreas, Primary Site (SEER)" tag="N6160" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.eodMets == null)
    return true

if (line.schemaId == null || (line.schemaId != '00280' && line.schemaId != '00340' && line.schemaId != '09340'))
    return true

if (line.primarySite == null || line.typeOfReportingSource == '7')
    return true

if (line.schemaId == '00280' && !Functions.matches(line.primarySite, /^C25[0-2]$/))
    return line.eodMets != '10'

if ((line.schemaId == '00340' || line.schemaId == '09340') && !Functions.matches(line.primarySite, /^C25[0-2]$/))
    return line.eodMets != '20'

return true]]></expression>
            <message>EOD Mets conflicts with Primary Site</message>
            <description><![CDATA[This edit verifies that EOD Mets is coded consistently with Primary Site
codes C250-C252 for Schema ID 00280, Pancreas and 00340 NET Pancreas.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00280 or 00340 or 09340
    c. EOD Mets is blank
    d. Primary Site is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)


2. If Schema ID = 00280:
    If Primary Site is not C250-C252,
   then EOD Mets must not = 10 (Distant lymph nodes for Pancreas Head,
    C250, Pancreas Body, Tail, C251-C252)

3. If Schema ID = 00340 or 09340:
    If Primary Site is not C250-C252,
   then EOD Mets must not = 20 (Distant lymph nodes for Pancreas Head,
    C250, Pancreas Body, Tail, C251-C252]]></description>
            <history>
                <event version="SE21-021-04" user="kirbyk" date="2021-04-14" ref="68638">Edit created.</event>
                <event version="SE24-024-01" user="cooki" date="2024-03-14" ref="69395">Added logic for schema 09340.</event>
            </history>
        </rule>
        <rule id="IFN6161" name="Mets at DX, Lung, EOD Mets (SEER)" tag="N6161" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.eodMets == null || line.schemaId == null || line.schemaId != '00360')
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true

boolean metsAtDxBoneCondition = line.metsAtDxBone == null || ['0','9'].contains(line.metsAtDxBone)
boolean metsAtDxBrainCondition = line.metsAtDxBrain == null || ['0','9'].contains(line.metsAtDxBrain)
boolean metsAtDxDistantLnCondition = line.metsAtDxDistantLn == null || ['0','9'].contains(line.metsAtDxDistantLn)
boolean metsAtDxLiverCondition = line.metsAtDxLiver == null || ['0','9'].contains(line.metsAtDxLiver)
boolean metsAtDxLungCondition = line.metsAtDxLung == null || ['0','9'].contains(line.metsAtDxLung)
boolean metsAtDxOtherCondition = line.metsAtDxOther == null || ['0','9'].contains(line.metsAtDxOther)

if (line.metsAtDxLung == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxDistantLnCondition && metsAtDxLiverCondition && metsAtDxOtherCondition && line.eodMets != '10')
    return false
if (line.metsAtDxOther == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxDistantLnCondition && metsAtDxLiverCondition && (metsAtDxLungCondition || line.metsAtDxLung == '1') && !['10','30','50'].contains(line.eodMets))
    return false
if (line.metsAtDxDistantLn == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxLiverCondition && (metsAtDxLungCondition || line.metsAtDxLung == '1')  && (metsAtDxOtherCondition || line.metsAtDxOther == '1')  && !['20','50'].contains(line.eodMets))
    return false

int count = 0
if (line.metsAtDxBone == '1')
    count++
if (line.metsAtDxBrain == '1')
    count++
if (line.metsAtDxLiver == '1')
    count++
if (count == 1 && metsAtDxDistantLnCondition && (metsAtDxLungCondition || line.metsAtDxLung == '1') && (metsAtDxOtherCondition || line.metsAtDxOther == '1') && !['30','50'].contains(line.eodMets))
    return false
if (line.metsAtDxDistantLn == '1')
    count++
if ((count > 1 || line.metsAtDxOther == '2') && line.eodMets != '50')
    return false

if (line.eodMets == '20' && line.metsAtDxDistantLn != '1')
    return false
return true]]></expression>
            <message>Mets at DX fields conflict with EOD Mets for Lung</message>
            <description><![CDATA[This edit verifies that Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN, Mets at DX-
Liver,
Mets at DX-Lung, and Mets at DX-Other are coded consistently with EOD Mets for Schema ID
00360,
Lung.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00360
    c. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN,
        Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other are all blank
    d. EOD Mets is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If Mets at DX-Lung = 1 (and Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
       Mets at DX-Distant LN = 0,9, Mets at DX-Liver = 0,9, and Mets at DX-Other =
       0,9, or fields are empty),
      then EOD Mets must = 10

3. If Mets at DX-Other = 1 (and Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
      Mets at DX-Distant LN = 0,9, Mets at DX-Liver = 0,9, and Mets at DX-Lung =
        0,1,9, or fields are empty),
      then EOD Mets must = 10, 30, or 50

4. If Mets at DX-Distant LN = 1 (and Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
       Mets at DX-Liver = 0,9, Mets at DX-Lung = 0,1,9,and Mets at DX-Other = 0,1,9,
      or fields are empty),
      then EOD Mets must = 20 or 50

5. If only one of Mets at DX-Bone=1, Mets at DX-Brain=1, Mets at DX-Liver=1
    (and Mets at DX-Distant LN = 0,9, Mets at DX-Lung = 0,1,9, and Mets at DX-Other
     = 0,1,9, or fields are empty)
       then EOD Mets must = 30 or 50

6. If more than one of Mets at DX-Bone=1, Mets at DX-Brain=1, Mets at DX-Distant LN,
     or Mets at DX-Liver =1, or Mets at DX-Other = 2
       then EOD Mets must = 50

7. If EOD Mets = 20 (Distant lymph nodes)
     then Mets at DX-Distant LN must= 1]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-14" ref="68608">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6162" name="EOD Primary Tumor, Lung, Primary Site (SEER)" tag="N6162" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.eodPrimaryTumor == null)
    return true
if (line.typeOfReportingSource == '7' || line.schemaId == null || line.schemaId != '00360' || line.primarySite == null)
    return true

return line.eodPrimaryTumor != '600' || ['C340','C348','C349'].contains(line.primarySite)]]></expression>
            <message>EOD Primary Tumor conflicts with Primary Site</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor is coded consistently with Primary
Site of carina for Schema ID 00360, Lung.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00360
    d. EOD Primary Tumor is blank
    e. Primary Site is blank
    f. Type of Reporting Source is 7 (Death Certificate Only)


2. If EOD Primary Tumor = 600 (Tumor limited to carina),
   then Primary Site must = C340, C348, or C349]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-25" ref="68606">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6164" name="Visceral and Parietal Pleural Invasion, Lung, Behavior (NAACCR)" tag="N6164" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.schemaId != '00360' || line.behaviorCodeIcdO3 == null ||
            line.visceralParietalPleuralInvasion == null || line.visceralParietalPleuralInvasion == '8' || line.typeOfReportingSource == '7')
        return true

if (line.behaviorCodeIcdO3 == '2') {
    if (line.dateOfDiagnosisYear < '2023')
        return line.visceralParietalPleuralInvasion == '0' || line.visceralParietalPleuralInvasion == '9'
    else
        return line.visceralParietalPleuralInvasion == '0'
}

return true]]></expression>
            <message>Visceral and Parietal Pleural Invasion conflicts with Behavior Code ICD-O-3</message>
            <description><![CDATA[This edit verifies that the Visceral and Parietal Pleural Invasion SSDI is coded
consistently with Behavior Code ICD-O-3 code 2 for Schema ID 00360, Lung.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00360
    c. Visceral and Parietal Pleural Invasion is blank or = 8 (not applicable)
    d. Behavior Code ICD-O-3 is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If Behavior Code ICD-O-3 = 2 (in situ),
   then Visceral and Parietal Pleural Invasion must = 0 (No evidence of visceral
   pleural invasion) or 9 (Not documented in medical record)

3. If diagnosis year >= 2023, code 0 defined as non-invasive neoplasm behavior /2.
    Code 9 removed as allowable value for behavior /2]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-03-25" ref="68616">Edit created.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-22" ref="69171">Changed skip conditions, updated logic for DX year 2023+.</event>
            </history>
        </rule>
        <rule id="IFN6165" name="EOD Regional Nodes, Melanoma Skin, Sentinel Lymph Nodes Positive, Regional Nodes Positive (SEER)" tag="N6165" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7' || line.eodRegionalNodes == null)
    return true
if (line.schemaId == null || line.schemaId != '00470')
    return true

if (['000','300'].contains(line.eodRegionalNodes)) {
    if (line.sentinelLymphNodesPositive != null && !['00','98','99'].contains(line.sentinelLymphNodesPositive))
        return false
    if (line.regionalNodesPositive != null && !['00','98','99'].contains(line.regionalNodesPositive))
        return false
}
else if (line.eodRegionalNodes == '100') {
    if (line.sentinelLymphNodesPositive != null && !Functions.matches(line.sentinelLymphNodesPositive, /^0[01]|9[5789]$/))
        return false
    if (line.regionalNodesPositive != null && !['01','95','97'].contains(line.regionalNodesPositive))
        return false
}
else if (['200','350','500'].contains(line.eodRegionalNodes)) {
    if (line.sentinelLymphNodesPositive != null && !Functions.matches(line.sentinelLymphNodesPositive, /^0[01]|9[5789]$/))
        return false
    if (line.regionalNodesPositive != null && !Functions.matches(line.regionalNodesPositive, /^0[01]|9[5789]$/))
        return false
}
else if (line.eodRegionalNodes == '400') {
    if (line.sentinelLymphNodesPositive != null && !Functions.matches(line.sentinelLymphNodesPositive, /^0[0-3]|9[5789]$/))
        return false
    if (line.regionalNodesPositive != null && !Functions.matches(line.regionalNodesPositive, /^0[23]$/))
        return false
}
else if (['450','550'].contains(line.eodRegionalNodes)) {
    if (line.sentinelLymphNodesPositive != null && !Functions.matches(line.sentinelLymphNodesPositive, /^0[0-3]|9[5789]$/))
        return false
    if (line.regionalNodesPositive != null && !Functions.matches(line.regionalNodesPositive, /^0[0-3]|9[5789]$/))
        return false
}
else if (line.eodRegionalNodes == '600') {
    if (line.sentinelLymphNodesPositive != null && !Functions.matches(line.sentinelLymphNodesPositive, /^[0-8]\d|9[05789]$/))
        return false
    if (line.regionalNodesPositive != null && !Functions.matches(line.regionalNodesPositive, /^0[4-9]|[1-8]\d|9[057]$/))
        return false
}
else if (line.eodRegionalNodes == '999') {
    if (line.sentinelLymphNodesPositive != null && !['98','99'].contains(line.sentinelLymphNodesPositive))
        return false
    if (line.regionalNodesPositive != null && !['98','99'].contains(line.regionalNodesPositive))
        return false
}

if (Functions.matches(line.sentinelLymphNodesPositive, /^0[1-9]|[1-8]\d|9[0-7]$/) || Functions.matches(line.regionalNodesPositive, /^0[1-9]|[1-8]\d|9[0-7]$/))
    return line.eodRegionalNodes != '000'
return true]]></expression>
            <message>EOD Regional Nodes conflicts with Sentinel Lymph Nodes Positive and/or Regional Nodes Positive</message>
            <description><![CDATA[This edit verifies that EOD Regional Nodes is coded consistently with Sentinel
Lymph Nodes Positive and Regional Nodes Positive for Schema ID 00470, Melanoma
of Skin

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00470
    d. EOD Regional Nodes is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If EOD Regional Nodes is 000 (no lymph node involvement) or 300 (no
    clinically occult or detected nodes),
    then Sentinel Lymph Nodes Positive if not blank must = 00, 98, or 99 and
    Regional Nodes Positive if not blank must = 00, 98, or 99

3. If EOD Regional Nodes = 100 (1 clinically occult node)
    then Sentinel Lymph Node Positive if not blank must = 00, 01, 95, 97, 98, or 99
    and Regional Nodes Positive if not blank must = 01 or 95 or 97

4. If EOD Regional Nodes = 200 (1 clinically detected node), 350 (1
    involved node unknown how detected), or 500 (1 clinically occult or
    detected node)
    then Sentinel Lymph Node Positive if not blank must = 00, 01, 95, 97, 98, or 99
    and Regional Nodes Positive if not blank must = 00, 01, 95, 97, 98, or 99

5. If EOD Regional Nodes = 400 (2 or 3 clinically occult nodes)
    then Sentinel Lymph Node Positive if not blank must = 00, 01-03, 95, 97, 98,
    or 99 and Regional Nodes Positive if not blank must = 02-03

6. If EOD Regional Nodes = 450 (2 or 3 involved nodes with 1 or
    greater clinically detected) or 550 (2 or 3 nodes unknown how
    detected)
    then Sentinel Lymph Node Positive if not blank must = 00, 01-03, 95,97,
    98, or 99 and Regional Nodes Positive if not blank must = 00, 01-03,95,97,
    98, or 99

7. If EOD Regional Nodes = 600 (4 or more clinically occult nodes),
   then Sentinel Lymph Node Positive if not blank must = 00, 01-90, 95, 97,
   98, or 99
    and Regional Nodes Positive if not blank must = 04-90, 95, or 97

8.If EOD Regional Nodes = 999 (unknown regional lymph nodes),
    then Sentinel Nodes Positive if not blank must = 98 or 99
    and Regional Nodes Positive if not blank must = 98 or 99

10. If Sentinel Lymph Nodes Positive = 01-97 or Regional Nodes Positive =
    01-97,
    then EOD Regional Nodes must not = 000]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-28" ref="68607">Edit created.</event>
                <event version="SE23-023-01" user="cooki" date="2023-03-07" ref="69186">Added and removed codes for Node fields.</event>
            </history>
        </rule>
        <rule id="IFN6166" name="Mets at DX, Melanoma Skin, EOD Mets (SEER)" tag="N6166" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.eodMets == null || line.schemaId == null || line.schemaId != '00470')
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true

boolean metsAtDxBoneCondition = line.metsAtDxBone == null || ['0','9'].contains(line.metsAtDxBone)
boolean metsAtDxBrainCondition = line.metsAtDxBrain == null || ['0','9'].contains(line.metsAtDxBrain)
boolean metsAtDxDistantLnCondition = line.metsAtDxDistantLn == null || ['0','9'].contains(line.metsAtDxDistantLn)
boolean metsAtDxLiverCondition = line.metsAtDxLiver == null || ['0','9'].contains(line.metsAtDxLiver)
boolean metsAtDxLungCondition = line.metsAtDxLung == null || ['0','9'].contains(line.metsAtDxLung)
boolean metsAtDxOtherCondition = line.metsAtDxOther == null || ['0','9'].contains(line.metsAtDxOther)

if (line.metsAtDxDistantLn == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxLiverCondition && metsAtDxLungCondition && metsAtDxOtherCondition && line.eodMets != '10')
    return false
if (line.metsAtDxBone == '1' && metsAtDxBrainCondition && (metsAtDxDistantLnCondition || line.metsAtDxDistantLn == '1') && metsAtDxLiverCondition && metsAtDxLungCondition && metsAtDxOtherCondition && line.eodMets != '20')
    return false
if (line.metsAtDxOther == '1' && (metsAtDxBoneCondition || line.metsAtDxBone == '1') && metsAtDxBrainCondition && (metsAtDxDistantLnCondition || line.metsAtDxDistantLn == '1') && metsAtDxLiverCondition && metsAtDxLungCondition && !['20','50'].contains(line.eodMets))
    return false
if (line.metsAtDxLung == '1' && (metsAtDxBoneCondition || line.metsAtDxBone == '1') && metsAtDxBrainCondition && (metsAtDxDistantLnCondition || line.metsAtDxDistantLn == '1') && metsAtDxLiverCondition && metsAtDxOtherCondition && line.eodMets != '30')
    return false
if (line.metsAtDxOther == '1' && line.metsAtDxLung == '1' && (metsAtDxBoneCondition || line.metsAtDxBone == '1') && metsAtDxBrainCondition && (metsAtDxDistantLnCondition || line.metsAtDxDistantLn == '1') && metsAtDxLiverCondition && !['30','50'].contains(line.eodMets))
    return false
if ((line.metsAtDxLiver == '1' || line.metsAtDxOther == '2') && metsAtDxBrainCondition && line.eodMets != '50')
    return false
if (line.metsAtDxBrain == '1' && line.eodMets != '60')
    return false
if (line.eodMets == '10' && line.metsAtDxDistantLn != '1')
    return false
if (line.eodMets == '30' && line.metsAtDxLung != '1')
    return false
return true]]></expression>
            <message>Mets at DX fields conflict with EOD Mets for Melanoma Skin</message>
            <description><![CDATA[This edit verifies that Mets at DX-Bone, Mets at DX-Brain,
Mets at DX-Distant LN, Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other
are coded consistently with EOD Mets for Schema ID 00470, Melanoma of Skin.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00470
    c. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN,
        Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other are all blank
    d. EOD Mets is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If Mets at DX-Distant LN = 1 (and Mets at DX-Bone = 0,9, Mets at DX-Brain =
        0,9,Mets at DX-Liver = 0,9, Mets at DX-Lung = 0,9, Mets at DX-Other = 0,9, or
      fields are empty)
       then EOD Mets must = 10

3. If Mets at DX-Bone = 1 (and Mets at DX-Brain = 0,9,Mets at DX-Distant LN =
0,1,9,
       Mets at DX-Liver = 0,9, Mets at DX-Lung = 0,9, and Mets at DX-Other = 0,9, or
      fields are empty)
      then EOD Mets must = 20


4.  If Mets at DX-Other = 1 (and Mets at DX-Bone = 0,1,9 and Mets at DX-Brain =
0,9,
      Mets at DX-Distant LN = 0,1,9, Mets at DX-liver = 0,9, and Mets at DX-Lung =
0,9,
      or fields are empty)
      then EOD Mets must = 20 or 50.

5. If Mets at DX-Lung = 1 (and Mets at DX-Bone = 0,1,9, Mets at DX-Brain =
        0,9, Mets at DX-Distant LN = 0,1,9, Mets at DX-Liver = 0,9, and Mets at DX-
Other =
        0,9, or fields are empty)
        then EOD Mets must = 30

6. If Mets at DX-Lung = 1 and Mets at DX-Other = 1 (and Mets at DX-Bone =
        0,1,9, Mets at DX-Brain = 0,9,Mets at DX-Distant LN = 0,1,9, and Mets at DX-
Liver = 0,9,
        or fields are empty)
        then EOD Mets must = 30 or 50

7. If Mets at DX-Liver = 1 or Mets at DX-Other = 2 (and Mets at DX-Brain = 0,9
      or empty)
        then EOD Mets must = 50

8. If Mets at DX-Brain = 1,
       then EOD Mets must = 60.

9.  If EOD Mets = 10 (Distant lymph nodes)
      Mets at DX-Distant LN must = 1

10. If EOD Mets = 30 (Lung)
        Mets at DX-Lung must = 1]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-14" ref="68608">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6167" name="EOD Primary Tumor, Breast, Histology ICDO3 (SEER)" tag="N6167" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.eodPrimaryTumor == null)
    return true
if (line.typeOfReportingSource == '7' || line.schemaId == null || line.schemaId != '00480' || line.histologicTypeIcdO3 == null)
    return true

if (line.eodPrimaryTumor == '050' && line.histologicTypeIcdO3 != '8540')
    return false
if (line.eodPrimaryTumor == '070' && line.histologicTypeIcdO3 != '8543')
    return false
if (line.histologicTypeIcdO3 == '8541' && line.eodPrimaryTumor < '100')
    return false
return true]]></expression>
            <message>EOD Primary Tumor/Histology conflict for Breast</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor is coded consistently with Histologic
Type ICD-O-3 codes for Paget disease for Schema ID 00480, Breast.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00480
    d. EOD Primary Tumor is blank
    e. Histologic Type ICD-O-3 is blank
    f. Type of Reporting Source is 7 (Death Certificate Only)

2. If EOD Primary Tumor = 050 (Paget disease of nipple)
    then Histologic Type ICD-O-3 must = 8540 (Paget disease)

3. If EOD Primary Tumor = 070 (Paget disease of nipple with underlying DCIS)
    then Histologic Type ICD-O-3 must = 8543 (Paget disease and intraductal
    carcinoma)

4. If Histologic Type ICD-O-3 = 8541 (Paget disease and infiltrating duct
    carcinoma)
    then EOD Primary Tumor must be greater than or equal to 100 (invasive)]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-25" ref="68606">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6171" name="LN Laterality, Vulva, Behavior ICDO3 (NAACCR)" tag="N6171" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null ||
!['00500', '09500'].contains(line.schemaId) || line.lnLaterality == null || line.lnLaterality == '8' || line.behaviorCodeIcdO3 == null || line.typeOfReportingSource == '7')
    return true
if (line.behaviorCodeIcdO3 == '2') {
    if (line.dateOfDiagnosisYear < '2023')
        return line.lnLaterality == '0' || line.lnLaterality == '9'
    else
        return line.lnLaterality == '0'
}
return true]]></expression>
            <message>LN Laterality conflicts with Behavior Code ICD-O-3</message>
            <description><![CDATA[This edit verifies that the LN Laterality SSDI is coded consistently with
Behavior Code ICD-O-3 code 2 for Schema ID 00500, 09500, Vulva.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00500 or 09500
    c. LN Laterality is blank or = 8 (not applicable)
    d. Behavior Code ICD-O-3 is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If Behavior Code ICD-O-3 = 2 (in situ)
    then LN Laterality must = 0 or 9 (no lymph node involvement or not documented
    in medical record)

3. For diagnosis year 2023+, code 0 = non-invasive neoplasm, behavior /2.  Code 9
    removed as allowable value with behavior /2]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-03-25" ref="68629">Edit created.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-22" ref="69172">Updated skip conditions, year conditions for 2023+.</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-04" ref="69403">Added Schema ID 09500 to skip condition</event>
            </history>
        </rule>
        <rule id="IFN6174" name="Number of Positive Pelvic Nodes/Positive Para-aortic Nodes, Corpus Uteri, EOD Regional Nodes (SEER)" tag="N6174" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[ if(line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || !['00528', '00530','00541','00542'].contains(line.schemaId) || line.eodRegionalNodes == null || line.typeOfReportingSource == '7')
    return true
if ((line.numberOfPositivePelvicNodes == null || line.numberOfPositivePelvicNodes == 'X8') && (line.numberOfPositiveParaAorticNodes == null || line.numberOfPositiveParaAorticNodes == 'X8'))
    return true

if (line.schemaId == '00530') {
    if (Functions.matches(line.numberOfPositivePelvicNodes, /^0[1-9]|[1-9]\d|X[126]$/) && !Functions.between(line.eodRegionalNodes, '100', '600'))
        return false
    if (Functions.matches(line.numberOfPositiveParaAorticNodes, /^0[1-9]|[1-9]\d|X[126]$/) && !Functions.between(line.eodRegionalNodes, '400', '600'))
        return false
}

if (['00528', '00541','00542'].contains(line.schemaId))
    if ((Functions.matches(line.numberOfPositivePelvicNodes, /^0[1-9]|[1-9]\d|X[126]$/) || Functions.matches(line.numberOfPositiveParaAorticNodes, /^0[1-9]|[1-9]\d|X[126]$/)) && line.eodRegionalNodes != '300')
        return false

if (line.eodRegionalNodes == '000')
    return Functions.matches(line.numberOfPositiveParaAorticNodes, /^00|X[89]$/) && Functions.matches(line.numberOfPositivePelvicNodes, /^00|X[89]$/)

return true ]]></expression>
            <message>Number of Positive Pelvic Nodes and Number of Positive Para-Aortic Nodes  conflict with EOD Regional Nodes</message>
            <description><![CDATA[This edit verifies that the Number of Positive Pelvic Nodes SSDI and the
Number of Positive Para-aortic Nodes SSDI are coded consistently with EOD
Regional Nodes for Schema ID 00531, Corpus Carcinoma and Carcinosarcoma, 00541,
Corpus Sarcoma, and 00542, Corpus Adenosarcoma.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00528, 00530, 00541, or 00542
    c. Number of Positive Pelvic Nodes and Number of Positive Para-aortic Nodes
      are both blank or both = X8 (not applicable)
    d. EOD Regional Nodes is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If Schema ID = 00530:
    a. If Number of Positive Pelvic Nodes = 01-99, X1 (100 or more nodes positive),
       X2 (positive nodes, number unknown),or X6 (positive aspiration or core
      biopsy of nodes)
      then EOD Regional Nodes must = 100-600 (positive pelvic nodes or para-aortic nodes with or without pelvic nodes)

   b. If Number of Positive Para-aortic Nodes = 01-99, X1 (100 or more nodes
      positive), X2 (positive nodes, number unknown), or X6 (positive aspiration
      or core biopsy of nodes),
      then EOD Regional Nodes must = 400-600 (positive para-aortic nodes)

3. If Schema ID = 00528, 00541 or 00542:
   a. If Number of Positive Pelvic Nodes = 01-99, X1, X2, or X6
      then EOD Regional Nodes must = 300 (positive pelvic nodes or para-aortic nodes)

   b. If Number of Positive Para-aortic Nodes = 01-99, X1, X2, or X6,
      then EOD Regional Nodes must = 300 (positive pelvic or para-aortic nodes)

4. If EOD Regional Nodes = 000 (no nodes involved),
   then Number of Positive Pelvic Nodes must = 00, X8, or X9 and Number of
   Positive Para-aortic Nodes must = 00, X8, or X9]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-04-08" ref="68611">Edit created.</event>
                <event version="SE22-022-01" user="smithm" date="2022-01-19" ref="68840">Add 00528 schema id as condition to either fail or skip</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-27" ref="68947">Update edit name and remove CoC Accredited Flag.</event>
                <event version="SE24-024-01" user="kirbyk" date="2024-02-14" ref="69341">Updated requirements for Schema ID = 00530.</event>
            </history>
        </rule>
        <rule id="IFN6175" name="Number of Positive Pelvic Nodes/Positive Para-aortic Nodes, Corpus, Behavior ICDO3 (NAACCR)" tag="N6175" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if(line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || !['00530','00541','00542', '00528'].contains(line.schemaId) || line.behaviorCodeIcdO3 == null ||
            line.typeOfReportingSource == '7' || ((line.numberOfPositivePelvicNodes == null || line.numberOfPositivePelvicNodes == 'X8') &&
            (line.numberOfPositiveParaAorticNodes == null || line.numberOfPositiveParaAorticNodes == 'X8')))
        return true
if (line.behaviorCodeIcdO3 == '2')
    return Functions.matches(line.numberOfPositiveParaAorticNodes, /^00|X[89]$/) && Functions.matches(line.numberOfPositivePelvicNodes, /^00|X[89]$/)
return true]]></expression>
            <message>Number of Positive Pelvic Nodes and/or Number of Positive Para-Aortic Nodes conflicts with Behavior Code ICD-O-3</message>
            <description><![CDATA[This edit verifies that the Number of Positive Pelvic Nodes SSDI and the
Number of Positive Para-aortic Nodes SSDI are coded consistently with Behavior
Code ICD-O-3 code 2 for Schema ID 00531, Corpus Carcinoma.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00530, 00541, 00542, or 00528
    c. Number of Positive Pelvic Nodes and Number of Positive Para-aortic Nodes
      are both blank or both = X8 (not applicable)
    d. Behavior Code ICD-O-3 is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

Number of Positive Pelvic Nodes and Number of Positive Para-aortic Nodes are
required by SEER only if collected by a CoC-accredited facility on an analytic
case (CoC Accredited Flag = 1).

2. If Behavior Code ICD-O-3 = 2 (in situ)
   Number of Positive Pelvic Nodes must = 00 (no nodes involved), X8 (not
   applicable), or X9 (not documented in medical record
   and Number of Positive Para-aortic Nodes must = 00 (no nodes involved), X8
   (not applicable), or X9 (not documented in medical record]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6176" name="Mets at DX, Ovarian, EOD Mets (SEER)" tag="N6176" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.eodMets == null || line.schemaId == null || !['00551','00552','00553'].contains(line.schemaId))
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true

boolean metsAtDxBoneCondition = line.metsAtDxBone == null || ['0','9'].contains(line.metsAtDxBone)
boolean metsAtDxBrainCondition = line.metsAtDxBrain == null || ['0','9'].contains(line.metsAtDxBrain)
boolean metsAtDxDistantLnCondition = line.metsAtDxDistantLn == null || ['0','9'].contains(line.metsAtDxDistantLn)
boolean metsAtDxLiverCondition = line.metsAtDxLiver == null || ['0','9'].contains(line.metsAtDxLiver)
boolean metsAtDxLungCondition = line.metsAtDxLung == null || ['0','9'].contains(line.metsAtDxLung)
boolean metsAtDxOtherCondition = line.metsAtDxOther == null || ['0','9'].contains(line.metsAtDxOther)

if (line.metsAtDxOther == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxDistantLnCondition && metsAtDxLiverCondition && metsAtDxLungCondition && !['10','50'].contains(line.eodMets))
    return false
if (line.metsAtDxDistantLn == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxLiverCondition && metsAtDxLungCondition && metsAtDxOtherCondition && line.eodMets != '30')
    return false
if (line.metsAtDxDistantLn == '1' && line.metsAtDxOther== '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxLiverCondition && metsAtDxLungCondition && !['30','50'].contains(line.eodMets))
    return false
if ((line.metsAtDxBone == '1' || line.metsAtDxBrain == '1' || line.metsAtDxLiver == '1' || line.metsAtDxLung == '1' || line.metsAtDxOther == '2') && line.eodMets != '50')
    return false
if (line.eodMets == '10' && line.metsAtDxOther != '1')
    return false
if (line.eodMets == '30' && line.metsAtDxDistantLn!= '1')
    return false
return true]]></expression>
            <message>Mets at DX fields conflict with EOD Mets for Ovary</message>
            <description><![CDATA[This edit verifies that Mets at DX-Bone, Mets at DX-Brain,
Mets at DX-Distant LN, Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-
Other
are coded consistently with EOD Mets for Schema ID 00551, Ovary, 00552,
Primary
Peritoneal Carcinoma, and 00553, Fallopian Tube.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00551, 00552, or 00553
    c. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN,
        Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other are all blank
    d. EOD Mets is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If Mets at DX-Other = 1 (and Mets at DX-Bone = 0,9, Mets at DX-Brain =
0,9,
       Mets at DX-Distant LN = 0,9, Mets at DX-Liver = 0,9, Mets at DX-Lung
= 0,9, or
      fields are empty)
       then EOD Mets must = 10 or 50

3. If Mets at DX-Distant LN = 1 (and Mets at DX-Bone = 0,9, Mets at DX-
Brain = 0,9,
       Mets at DX-Liver = 0,9, Mets at DX-Lung = 0,9, and Mets at DX-Other =
0,9,
      or fields are empty)
       then EOD Mets must = 30

4. If Mets at DX-Distant LN = 1 and Mets at DX-Other = 1 (and Mets at DX-
Bone = 0,9,
       Mets at DX-Brain = 0,9, Mets at DX-Liver = 0,9, Mets at DX-Lung =
0,9, or fields
      are empty)
       then EOD Mets must = 30 or 50

5. If Mets at DX-Bone = 1, Mets at DX-Brain = 1, Mets at DX-Liver = 1,
       Mets at DX-Lung = 1, or Mets at DX-Other = 2,
       then EOD Mets must = 50.

6. If EOD Mets = 10 (Pleural effusion)
        Mets at DX-Other must = 1

7. If EOD Mets = 30 (Distant lymph nodes)
        Mets at DX-Distant LN must = 1]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-14" ref="68608">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6177" name="Mets at DX, Placenta, EOD Mets (SEER)" tag="N6177" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.eodMets == null || line.schemaId == null || line.schemaId != '00560')
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true

boolean metsAtDxBoneCondition = line.metsAtDxBone == null || ['0','9'].contains(line.metsAtDxBone)
boolean metsAtDxBrainCondition = line.metsAtDxBrain == null || ['0','9'].contains(line.metsAtDxBrain)
boolean metsAtDxDistantLnCondition = line.metsAtDxDistantLn == null || ['0','9'].contains(line.metsAtDxDistantLn)
boolean metsAtDxLiverCondition = line.metsAtDxLiver == null || ['0','9'].contains(line.metsAtDxLiver)
boolean metsAtDxLungCondition = line.metsAtDxLung == null || ['0','9'].contains(line.metsAtDxLung)
boolean metsAtDxOtherCondition = line.metsAtDxOther == null || ['0','9'].contains(line.metsAtDxOther)

if (line.metsAtDxLung == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxDistantLnCondition && metsAtDxLiverCondition && metsAtDxOtherCondition && line.eodMets != '10')
    return false
if (line.metsAtDxDistantLn == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxLiverCondition && (metsAtDxLungCondition || line.metsAtDxLung == '1') && metsAtDxOtherCondition && line.eodMets != '30')
    return false

if ((line.metsAtDxBone == '1' || line.metsAtDxBrain == '1' || line.metsAtDxLiver == '1' || line.metsAtDxOther == '1' || line.metsAtDxOther == '2') && line.eodMets != '50')
    return false

if (line.eodMets == '10' && line.metsAtDxLung != '1')
    return false
if (line.eodMets == '30' && line.metsAtDxDistantLn != '1')
    return false
return true]]></expression>
            <message>Mets at DX fields conflict with EOD Mets for Placenta</message>
            <description><![CDATA[This edit verifies that Mets at DX-Bone, Mets at DX-Brain,
Mets at DX-Distant LN, Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other
are coded consistently with EOD Mets for Schema ID 00560, Placenta.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00560
    c. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN,
        Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other are all blank
    d. EOD Mets is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If Mets at DX-Lung = 1 (and Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
       Mets at DX-Distant LN = 0,9, Mets at DX-Liver = 0,9, Mets at DX-Other = 0,9, or
      fields are empty)
       then EOD Mets must = 10

3. If Mets at DX-Distant LN = 1 (and Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
       Mets at DX-Liver = 0,9, Mets at DX-Lung = 0,1,9, and Mets at DX-Other = 0,9, or
      fields are empty)
       then EOD Mets must = 30

4. If Mets at DX-Bone = 1, Mets at DX-Brain = 1, Mets at DX-Liver, Mets at DX-Other = 1, 2,
       EOD Mets must = 50

5. If EOD Mets = 10 (Lung)
        Mets at DX-Lung must = 1

6. If EOD Mets = 30 (Distant lymph nodes)
        Mets at DX-Distant LN must = 1]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-14" ref="68608">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6178" name="Mets at DX, Prostate, EOD Mets (SEER)" tag="N6178" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.eodMets == null || line.schemaId == null || line.schemaId != '00580')
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true

boolean metsAtDxBoneCondition = line.metsAtDxBone == null || ['0','9'].contains(line.metsAtDxBone)
boolean metsAtDxBrainCondition = line.metsAtDxBrain == null || ['0','9'].contains(line.metsAtDxBrain)
boolean metsAtDxDistantLnCondition = line.metsAtDxDistantLn == null || ['0','9'].contains(line.metsAtDxDistantLn)
boolean metsAtDxLiverCondition = line.metsAtDxLiver == null || ['0','9'].contains(line.metsAtDxLiver)
boolean metsAtDxLungCondition = line.metsAtDxLung == null || ['0','9'].contains(line.metsAtDxLung)
boolean metsAtDxOtherCondition = line.metsAtDxOther == null || ['0','9'].contains(line.metsAtDxOther)

if (line.metsAtDxDistantLn == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxLiverCondition && metsAtDxLungCondition && metsAtDxOtherCondition && line.eodMets != '10')
    return false
if (line.metsAtDxBone == '1' && metsAtDxBrainCondition && (metsAtDxDistantLnCondition || line.metsAtDxDistantLn == '1') && metsAtDxLiverCondition && metsAtDxLungCondition && metsAtDxOtherCondition && line.eodMets != '30')
    return false

if ((line.metsAtDxBrain == '1' || line.metsAtDxLiver == '1' || line.metsAtDxLung == '1' || line.metsAtDxOther == '1' || line.metsAtDxOther == '2') && line.eodMets != '50')
    return false

if (line.eodMets == '10' && line.metsAtDxDistantLn != '1')
    return false
if (line.eodMets == '30' && line.metsAtDxBone != '1')
    return false
return true]]></expression>
            <message>Mets at DX fields conflict with EOD Mets for Prostate</message>
            <description><![CDATA[This edit verifies that Mets at DX-Bone, Mets at DX-Brain,
Mets at DX-Distant LN, Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other
are coded consistently with EOD Mets for Schema ID 00580, Prostate.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00580
    c. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN,
        Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other are all blank
    d. EOD Mets is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If Mets at DX-Distant LN = 1 (and Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
       Mets at DX-Liver = 0,9, Mets at DX-Lung = 0,9, Mets at DX-Other = 0,9, or
      fields are empty)
       then EOD Mets must = 10

3. If Mets at DX-Bone = 1 (and Mets at DX-Brain = 0,9,Mets at DX-Distant LN = 0,1,9,
        Mets at DX-Liver = 0,9, Mets at DX-Lung = 0,9, Mets at DX-Other = 0,9, or fields
        are empty)
       then EOD Mets must = 30

4. If Mets at DX-Brain = 1, Mets at DX-Liver, Mets at DX-Lung, or
      Mets at DX-Other = 1 or 2,
       then EOD Mets must = 50.

5. If EOD Mets = 10 (Distant lymph nodes)
        Mets at DX-Distant LN must = 1

6 If EOD Mets = 30 (Bone)
        Mets at DX-Bone must = 1]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-14" ref="68608">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6179" name="EOD Prostate Pathologic Extension, RX Summ--Surg Prim Site 03-2022 (SEER)" tag="N6179" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.dateOfDiagnosisYear > '2022' || line.schemaId == null ||
    line.schemaId != '00580' || line.prostatePathologicalExtension == null || line.rxSummSurgPrimSite == null)
    return true
if (line.typeOfReportingSource == '6' || line.typeOfReportingSource == '7')
    return true

Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

if (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5))
    return true

if (line.rxSummSurgPrimSite == '90' || line.rxSummSurgPrimSite == '99')
    return line.prostatePathologicalExtension == '900' || line.prostatePathologicalExtension == '950' || line.prostatePathologicalExtension == '999'

if (Functions.matches(line.rxSummSurgPrimSite, /^[5-7]\d|80$/))
    return Functions.matches(line.prostatePathologicalExtension, /^[0-7]\d\d|800|999$/)

if (Functions.matches(line.rxSummSurgPrimSite, /^[012]\d|30$/))
    return line.prostatePathologicalExtension == '900' || line.prostatePathologicalExtension == '950'

if (line.prostatePathologicalExtension == '900' || line.prostatePathologicalExtension == '950')
    return Functions.matches(line.rxSummSurgPrimSite, /^[012]\d|30|90|99$/)

return true]]></expression>
            <message>EOD Prostate Pathologic Extension conflicts with RX Summ--Surg Prim Site 03-2022</message>
            <description><![CDATA[This edit verifies that EOD Prostate Pathologic Extension is coded consistently with RX Summ--Surg Prim Site 03-2022 for Schema ID 00580, Prostate.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021 or after 2022, blank (unknown), or invalid.
    b. Schema ID is blank or not 00580
    c. EOD Prostate Pathlogic Extension is blank
    d. RX Summ--Surg Prim Site 03-2022 is blank
    e. Type of Reporting Source is 6 (Autopsy only) or 7 (Death Certificate Only)
    f. Vital Status = 0 and Date of Last Contact within 5 months of Date of Diagnosis

2. If RX Summ--Surg Prim Site 03-2022 = 90 or 99 (surgery NOS or unknown if surgery)
    then EOD Prostate Pathologic Extension must = 900, 950, or 999 (unknown if radical prostatectomy performed)

    A. If RX Summ--Surg Prim Site 03-2022 = 50-80 (radical prostatectomy performed)
        then EOD Prostate Pathologic Extension must = 000-800, 999.

    B. If RX Summ--Surg Prim Site 03-2022 = 00-30 (radical prostatectomy not performed)
        then EOD Prostate Pathologic Extension must = 900 (no radical prostatectomy performed) or 950 (radical prostatectomy not first course therapy)

    C. If EOD Prostate Pathologic Extension = 900 or 950
        then RX Summ--Surg Prim Site 03-2022 must = 00-30, 90, or 99 (no radical prostatectomy performed)]]></description>
            <history>
                <event version="SE21-021-04" user="kirbyk" date="2021-04-14" ref="68638">Edit created.</event>
                <event version="SE22-022-01" user="beverung" date="2022-02-08" ref="68873">Updated edit for 2022.</event>
                <event version="SE22-022-17" user="beverung" date="2022-11-03" ref="69060">Added skip condition for Type of Reporting Source = 6 (Autopsy Only)</event>
                <event version="SE23-023-01" user="cooki" date="2023-01-25" ref="69105">Added 2022+ skip condition and 03-2022 labels for Surg Prim Site, updated edit name.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-23" ref="69195">Updated valid RX Summ-Surg Prim Site values for EOD Prostate Path Ext for DX year = 2021.</event>
                <event version="SE24-024-01" user="cooki" date="2024-03-13" ref="69335">Updated logic and description to V24.</event>
                <event version="SE24-024-06" user="cooki" date="2024-07-18" ref="69494">Added skip condition f.</event>
            </history>
        </rule>
        <rule id="IFN6180" name="EOD Primary Tumor, Urinary, Histology ICDO3, Behavior ICDO3 (SEER)" tag="N6180" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.eodPrimaryTumor == null)
    return true
if (line.typeOfReportingSource == '7' || line.schemaId == null || !['00610','00620','00631','00633'].contains(line.schemaId))
    return true
if (line.behaviorCodeIcdO3 == null || line.histologicTypeIcdO3 == null)
    return true

return line.eodPrimaryTumor != '000' || (line.behaviorCodeIcdO3 == '2' && ['8130','8131'].contains(line.histologicTypeIcdO3))]]></expression>
            <message>EOD Primary Tumor conflicts with Histologic Type ICD-O-3 and/or Behavior Code ICD-O-3</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor is coded consistently with Histologic Type
ICD-O-3 codes for papillary carcinomas and Behavior Code ICD-O-3 for Schema IDs 00610
Kidney Renal Pelvis, 00620 Bladder, 00631 Urethra, 00633 Urethra Prostatic.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00610, 00620, 00631, 00633
    c. EOD Primary Tumor is blank
    d. Histologic Type ICD-O-3 is blank
    e. Behavior Code ICD-O-3 is blank
    f. Type of Reporting Source is 7 (Death Certificate Only)


2. If EOD Primary Tumor = 000 (papillary non-invasive)
    then Behavior Code ICD-O-3 must = 2 (in situ) and Histologic Type ICD-O-3
    must = 8130 or 8131 (papillary or micropapillary transitional cell carcinoma)]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-25" ref="68606">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6181" name="EOD Regional Nodes, Bladder, Regional Nodes Positive (SEER)" tag="N6181" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7' || line.eodRegionalNodes == null)
    return true
if (line.schemaId == null || line.schemaId != '00620' || line.regionalNodesPositive == null)
    return true

if (line.eodRegionalNodes == '300' && !['00','01','95','97','98','99'].contains(line.regionalNodesPositive))
    return false
if (Functions.matches(line.regionalNodesPositive, /^0[2-9]|[1-8]\d|90$/) && !['400','700'].contains(line.eodRegionalNodes))
    return false
return true]]></expression>
            <message>EOD Regional Nodes/Reg Nodes Pos conflict for Bladder</message>
            <description><![CDATA[This edit verifies that EOD Regional Nodes codes 300 and 400 are coded
consistently with Regional Nodes Positive for Schema ID 00620, Bladder.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00620
    d. EOD Regional Nodes is blank
    e. Regional Nodes Positive is blank
    f. Type of Reporting Source is 7 (Death Certificate Only)


2. If EOD Regional Nodes = 300 (single regional node)
   then Regional Nodes Positive must = 00, 01, 95, 97, 98, or 99

3. If Regional Nodes Positive = 02-90
    then EOD Regional Nodes must = 400 (multiple regional nodes) or 700
   (common iliac nodes)]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-28" ref="68607">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-22" ref="69184">Added 97 as a valid code for EOD Regional Nodes = 300</event>
            </history>
        </rule>
        <rule id="IFN6182" name="Behavior Code ICDO3, EOD Tumor/Mets, CNS (SEER)" tag="N6182" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021'|| line.typeOfReportingSource == '7' || line.behaviorCodeIcdO3 == null)
    return true
if (line.schemaId == null || !Functions.matches(line.schemaId, /^0072[123]|0972[1234]$/))
    return true
if (line.eodPrimaryTumor == null && line.eodMets == null)
    return true

if (['0','1'].contains(line.behaviorCodeIcdO3) && !(line.eodPrimaryTumor == '050' && line.eodMets == '00'))
    return false
if (line.eodPrimaryTumor == '050' && !['0','1'].contains(line.behaviorCodeIcdO3))
    return false
return true]]></expression>
            <message>Behavior Code ICD-O-3 conflicts with EOD Primary Tumor</message>
            <description><![CDATA[This edit verifies that Behavior Code ICD-O-3, codes 0 and 1, is coded
consistently with EOD Primary Tumor and EOD Mets for Schema ID 00721 and 09721,
Brain, 00722 and 09722, CNS Other, 00723 and 09723, Intracranial Gland and 09724, Medulloblastoma

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00721, 00722, 00723, 09721, 09722, 09723, or 09724
    c. EOD Primary Tumor and EOD Mets are both blank
    d. Behavior Code ICD-O-3 is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If Behavior Code ICD-O-3 = 0 (benign) or 1 (uncertain)
    then EOD Primary Tumor must = 050 (benign or borderline)
   and EOD Mets must = 00 (no metastasis)

3. If EOD Primary Tumor = 050 (benign or borderline)
    then Behavior Code ICD-O-3 must = 0 (benign) or 1 (uncertain)]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-23" ref="68600">Edit created.</event>
                <event version="SE23-023-01" user="cooki" date="2023-02-10" ref="69122">Updated description and added skip conditions for Schema IDs 09721, 09722, 09723, and 09724</event>
            </history>
        </rule>
        <rule id="IFN6185" name="EOD Regional Nodes, Stomach/NET Stomach, Primary Site (SEER)" tag="N6185" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7' || line.eodRegionalNodes == null)
    return true
if (line.schemaId == null || !['00170', '00290', '09290'].contains(line.schemaId) || line.primarySite == null)
    return true

if (line.schemaId == '00170' && line.eodRegionalNodes == '400' && line.primarySite != 'C165')
    return false
if (['00290', '09290'].contains(line.schemaId) && line.eodRegionalNodes == '700' && line.primarySite != 'C165')
    return false
return true]]></expression>
            <message>EOD Regional Nodes/Site/confict for Stomach</message>
            <description><![CDATA[This edit verifies that EOD Regional Nodes is coded consistently with Primary
Site code C165 for Schema IDs 00170, Stomach, and 00290, NET Stomach.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00170, 00290, or 09290
    d. EOD Regional Nodes is blank
    e. Primary Site is blank
    f. Type of Reporting Source is 7 (Death Certificate Only)


2. If Schema ID = 00170,
   If EOD Regional Nodes = 400 (Lesser Curvature (C165), Hepatoduodenal)
    then Primary Site must = C165

3. If Schema ID = 00290 or 09290
     if EOD Regional Nodes = 700 (Lesser Curvature (C165), Hepatoduodenal)
    then Primary Site must = C165]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-28" ref="68607">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-01" ref="69400">Add logic for Schema ID 09290.</event>
            </history>
        </rule>
        <rule id="IFN6188" name="EOD Primary Tumor, NET Jejunum and Ileum, Tumor Size (SEER)" tag="N6188" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.dateOfDiagnosisYear > '2023' || line.eodPrimaryTumor == null)
    return true
if (line.typeOfReportingSource == '7' || line.schemaId == null || line.schemaId != '00310')
    return true
if (line.tumorSizeClinical == null && line.tumorSizePathologic == null)
    return true

if (line.eodPrimaryTumor == '100') {
    if (!Functions.matches(line.tumorSizeClinical, /^00[1-9]|010|99[09]$/) && !Functions.matches(line.tumorSizePathologic, /^00[1-9]|010|99[09]$/))
        return false
    if (line.tumorSizeSummary != null && !Functions.matches(line.tumorSizeSummary, /^00[1-9]|010|99[09]$/))
        return false
}
return true]]></expression>
            <message>EOD Primary Tumor/Tumor Size conflict for NET Jejunum and Ileum</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor code 100 is coded consistently with
Tumor Size Clinical, Tumor Size Pathologic, and Tumor Size Summary for Schema
ID 00310 NET Jejunum and Ileum.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, after 2023, blank (unknown), or invalid.
    b. Schema ID is blank or not 00310
    c. Tumor Size Clinical and Tumor Size Pathologic are both blank
    d. EOD Primary Tumor is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If EOD Primary Tumor = 100 (Tumor less than or equal to 1cm AND confined to
   Intramucosal NOS, lamina propria, Mucosa NOS, Muscularis mucosae, Submucosa;
   Localized NOS)
    a.  Tumor Size Pathologic must = 001-010, 990, 999 or Tumor Size Clinical must
         = 001-010, 990, 999
    b.  Tumor Size Summary if not blank must = 001-010, 990, 999]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-25" ref="68606">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE24-024-01" user="cooki" date="2024-03-08" ref="69397">Added 2024 skip condition.</event>
            </history>
        </rule>
        <rule id="IFN6189" name="Mets at DX, NET Pancreas, EOD Mets (SEER)" tag="N6189" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.eodMets == null || line.schemaId == null || (line.schemaId != '00340' && line.schemaId != '09340'))
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true

boolean metsAtDxBoneCondition = line.metsAtDxBone == null || ['0','9'].contains(line.metsAtDxBone)
boolean metsAtDxBrainCondition = line.metsAtDxBrain == null || ['0','9'].contains(line.metsAtDxBrain)
boolean metsAtDxDistantLnCondition = line.metsAtDxDistantLn == null || ['0','9'].contains(line.metsAtDxDistantLn)
boolean metsAtDxLiverCondition = line.metsAtDxLiver == null || ['0','9'].contains(line.metsAtDxLiver)
boolean metsAtDxLungCondition = line.metsAtDxLung == null || ['0','9'].contains(line.metsAtDxLung)
boolean metsAtDxOtherCondition = line.metsAtDxOther == null || ['0','9'].contains(line.metsAtDxOther)

if (line.metsAtDxLiver == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxDistantLnCondition && metsAtDxLungCondition && metsAtDxOtherCondition && line.eodMets != '10')
    return false
if (line.metsAtDxDistantLn == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxLiverCondition && metsAtDxLungCondition && metsAtDxOtherCondition && !['20','40'].contains(line.eodMets))
    return false
if (['0','9'].contains(line.metsAtDxLiver) && (line.metsAtDxBone == '1' || line.metsAtDxBrain == '1' || line.metsAtDxLung == '1' || ['1','2'].contains(line.metsAtDxOther)) && line.eodMets != '50')
    return false
if (line.metsAtDxLiver == '1' && (line.metsAtDxBone == '1' || line.metsAtDxBrain == '1' || line.metsAtDxDistantLn == '1' || line.metsAtDxLung == '1' || ['1','2'].contains(line.metsAtDxOther)) && line.eodMets != '60')
    return false

if (['10','60'].contains(line.eodMets) && line.metsAtDxLiver != '1')
    return false
if (line.eodMets == '20' && line.metsAtDxDistantLn != '1')
    return false
return true]]></expression>
            <message>Mets at DX fields conflict with EOD Mets for NET Pancreas</message>
            <description><![CDATA[This edit verifies that Mets at DX-Bone, Mets at DX-Brain,
Mets at DX-Distant LN, Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other
are coded consistently with EOD Mets for Schema ID 00340 or 09340, NET Pancreas.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00340 or 09340
    c. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN,
        Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other are all blank
    d. EOD Mets is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If Mets at DX-Liver = 1 and (Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
       Mets at DX-Distant LN = 0,9, Mets at DX-Lung= 0,9, and Mets at DX-Other
        = 0,9, or fields are empty),
       then EOD Mets must = 10

3. If Mets at DX-Distant LN = 1 and (Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
      Mets at DX-Liver = 0,9, Mets at DX-Lung = 0,9 and Mets at DX-Other = 0,9, or
     fields are empty)
       then EOD Mets must = 20 or 40.

4. If Mets at DX-Liver = 0,9 and (Mets at DX-Bone = 1 or Mets at DX-Brain = 1 or
      Mets at DX-Lung = 1 or Mets at DX-Other = 1 or 2)
       then EOD Mets must = 50.

5. If Mets at DX-Liver = 1 (and Mets at DX-Bone = 1, Mets at DX-Brain = 1, Mets at
       DX-Distant LN = 1, Mets at DX-Lung = 1, or Mets at DX-Other = 1 or 2
       then EOD Mets must = 60.

6.  If EOD Mets = 10 or 60 (Liver)
      Mets at DX-Liver must = 1

7. If EOD Mets = 20 (Distant lymph nodes)
        Mets at DX-Distant LN must = 1]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-14" ref="68608">Edit created.</event>
                <event version="SE21-021-04" user="kirbyk" date="2021-05-12" ref="68654">Clarifying condition #4.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-03-04" ref="69407">Add schema 09340 to skip condition.</event>
            </history>
        </rule>
        <rule id="IFN6190" name="EOD Primary Tumor, Penis, Morphology ICDO3 (SEER)" tag="N6190" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.eodPrimaryTumor == null)
    return true
if (line.typeOfReportingSource == '7' || line.schemaId == null || line.schemaId != '00570')
    return true
if (line.histologicTypeIcdO3 == null || line.behaviorCodeIcdO3 == null)
    return true

String morphTypebehavIcdO3 = line.histologicTypeIcdO3 + line.behaviorCodeIcdO3
return line.eodPrimaryTumor != '070' || morphTypebehavIcdO3 == '80513']]></expression>
            <message>EOD Primary Tumor/Morphology conflict for Penis</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor is coded consistently with Histologic Type ICD-O-3 and Behavior
Code ICD-O-3 for verrucous carcinoma for Schema ID 00570, Penis.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00570
    d. EOD Primary Tumor is blank
    e. Histologic Type ICD-O-3 or Behavior Code ICD-O-3 is blank
    f. Type of Reporting Source is 7 (Death Certificate Only)


2. If EOD Primary Tumor = 070 (verrucous carcinoma)
    then Histologic Type ICD-O-3 and Behavior Code ICD-O-3 must = 80513 (verrucous carcinoma)]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-25" ref="68606">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE23-023-01" user="cooki" date="2023-01-27" ref="69113">Updated description with Histologic Type and Behavior Code</event>
            </history>
        </rule>
        <rule id="IFN6191" name="EOD Regional Nodes, Penis, Reg Nodes Positive, Scope Nodes (SEER)" tag="N6191" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7' || line.eodRegionalNodes == null)
    return true
if (line.schemaId == null || line.schemaId != '00570')
    return true

if (['400','500'].contains(line.eodRegionalNodes)) {
    if (line.regionalNodesPositive != null && !Functions.matches(line.regionalNodesPositive, /^0[1-9]|[1-8]\d|9[057]$/))
        return false
    if (line.typeOfReportingSource == '6') {
        if (line.rxSummScopeRegLnSur != '0')
            return false
    }
    else {
        Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
        Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
        Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
        Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
        Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
        Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

        if (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5)) {
            if (!Functions.matches(line.rxSummScopeRegLnSur, /^[0-7]$/))
                return false
        }
        else if (!Functions.matches(line.rxSummScopeRegLnSur, /^[1-7]$/))
            return false
    }
}
return true]]></expression>
            <message>EOD Regional Nodes/Reg Nodes Pos conflict for Penis</message>
            <description><![CDATA[This edit verifies that EOD Regional Nodes is coded consistently with RX
Summ--
Scope Reg LN Sur for Schema ID 00570, Penis.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00570
    d. EOD Regional Nodes is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)


2. If EOD Regional Nodes = 400 or 500 (pathological assessment)
    then Regional Nodes Positive if not blank must = 01-90, 95, or 97

3. If EOD Regional Nodes = 400 or 500
    If Type of Reporting Source = 6 (autopsy only) then RX Summ--Scope Reg LN Sur must =0
    Else if vital Status = 0 and Date of Last Contact within 5 months of Date of Diagnosis then RX Summ--Scope Reg LN Sur must = 0-7
    Else RX Summ--Scope Reg LN Sur must = 1-7]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-28" ref="68607">Edit created.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-27" ref="68786">Update RX Summ-Scope Reg LN Sur conditions.</event>
                <event version="SE22-022-05" user="kirbyk" date="2022-05-17" ref="68995">Replaced non-ASCII characters in description.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE23-023-03" user="shearerw" date="2023-05-24" ref="69216">Fix logic for DOLC within 5 months of DX date to allow difference in year.</event>
            </history>
        </rule>
        <rule id="IFN6193" name="Extranodal Extension Clin/Path (non-Head and Neck), Behavior (NAACCR)" tag="N6193" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || !['00460', '00570'].contains(line.schemaId)
|| ((line.extranodalExtensionClin == null || line.extranodalExtensionClin == '8') && (line.extranodalExtensionPath == null || line.extranodalExtensionPath == '8'))  ||  line.typeOfReportingSource == '7')
    return true

if (line.behaviorCodeIcdO3 == '2')
    return (line.extranodalExtensionClin == null || ['7', '8','9'].contains(line.extranodalExtensionClin)) && (line.extranodalExtensionPath == null || ['7', '8','9'].contains(line.extranodalExtensionPath))
return true]]></expression>
            <message>Extranodal Extension Clin (non-Head and Neck) conflicts with Behavior Code ICD-O-3</message>
            <description><![CDATA[This edit verifies that the Extranodal Extension Clin (non-Head and Neck) and
Extranodal Extension Path (non-Head and Neck) SSDIs are coded consistently with
Behavior Code ICD-O-3 code 2 for Schema IDs 00460, Merkel Cell, and 00570, Penis.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00460 or 00570
    c. Extranodal Extension Clin (non-Head and Neck) is blank or 8 and
        Extranodal Extension Path (non-Head and Neck) is blank or 8
    d. Behavior Code ICD-O-3 is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

Extranodal Extension Clin (non-Head and Neck) and Extranodal Extension Path
(non-Head and Neck) are required by SEER only if collected by a CoC-
accredited facility on an analytic case (CoC Accredited Flag = 1).

2. If Behavior Code ICD-O-3 = 2 (in situ)
    then Extranodal Extension Clin (non-Head and Neck) if not blank must equal
    7 (no lymph node involvement on diagnostic workup (cN0)), 8 (not applicable),
    or 9 (notdocumented in medical record) and Extranodal Extension Path (non-Head
    and Neck) if not blank must = 7 (no lymph node involvement on surgical resection
    (pN0)), 8 (not applicable),or 9 (not documented in medical record)]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6195" name="EOD Primary Tumor, Testis, RX Summ--Surg Prim Site 03-2022 (SEER)" tag="N6195" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.dateOfDiagnosisYear > '2022' || line.eodPrimaryTumor == null || line.rxSummSurgPrimSite == null)
    return true
if (line.typeOfReportingSource == '7' || line.schemaId == null || line.schemaId != '00590')
    return true

return !Functions.matches(line.eodPrimaryTumor, /^[1245]00|150$/) || Functions.matches(line.rxSummSurgPrimSite, /^[348]0$/)]]></expression>
            <message>EOD Primary Tumor/Surgery conflict for Testis</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor is coded consistently with RX Summ--
Surg Prim Site 03-2022 for Schema ID 00590, Testis.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021 or after 2022, blank (unknown), or invalid.
    b. Schema ID is blank or not 00590
    c. EOD Primary Tumor is blank
    d. RX Summ--Surg Prim Site 03-2022 is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)


2. If EOD Primary Tumor = 100, 150, 200, 400, or 500 (codes requiring orchiectomy)
    then RX Summ--Surg Prim Site 03-2022 must = 30, 40, or 80 (orchiectomy)]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-25" ref="68606">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE23-023-01" user="cooki" date="2023-01-27" ref="69106">Changed name, added 2022+ skip condition, added 03-2022 label to Surg Prim Site.</event>
            </history>
        </rule>
        <rule id="IFN6196" name="EOD Regional Nodes, Testis, Reg Nodes Positive, Scope Nodes (SEER)" tag="N6196" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7' || line.eodRegionalNodes == null)
    return true
if (line.schemaId == null || line.schemaId != '00590')
    return true

if (['200','400','500'].contains(line.eodRegionalNodes) && line.regionalNodesPositive != null && !Functions.matches(line.regionalNodesPositive, /^0[1-9]|[1-8]\d|9[057]$/))
    return false
if (['200','400','500'].contains(line.eodRegionalNodes) && line.rxSummScopeRegLnSur != null) {
    if (line.typeOfReportingSource == '6') {
        if (line.rxSummScopeRegLnSur != '0')
            return false
    }
    else {
        Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
        Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
        Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
        Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
        Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
        Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

        if (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5)) {
            if (!Functions.matches(line.rxSummScopeRegLnSur, /^[0-7]$/))
                return false
        }
        else if (!Functions.matches(line.rxSummScopeRegLnSur, /^[1-7]$/))
            return false
    }
}
return true]]></expression>
            <message>EOD Regional Nodes/Reg Nodes Pos/Scope conflict for Testis</message>
            <description><![CDATA[This edit verifies that EOD Regional Nodes is coded consistently with Regional
Nodes Positive and RX Summ--Scope Reg LN Sur for Schema ID 00590, Testis

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00590
    d. EOD Regional Nodes is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If EOD Regional Nodes = 200, 400, or 500 (pathological only)
    Regional Nodes Positive if not blank must = 01-90, 95, or 97

3. If EOD Regional Nodes = 200, 400, or 500 and RX Summ--Scope Reg LN Sur is not blank
    If Type of Reporting Source = 6 (autopsy only) then RX Summ--Scope Reg LN Sur must =0
    Else if vital Status = 0 and Date of Last Contact within 5 months of Date of Diagnosis then RX Summ--Scope Reg LN Sur must = 0-7
    Else RX Summ--Scope Reg LN Sur must = 1-7]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-28" ref="68607">Edit created.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-27" ref="68788">Update RX Summ-Scope Reg LN Sur conditions.</event>
                <event version="SE22-022-05" user="kirbyk" date="2022-05-17" ref="68995">Replaced non-ASCII characters in description.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE23-023-03" user="shearerw" date="2023-05-24" ref="69216">Fix logic for DOLC within 5 months of DX date to allow difference in year.</event>
            </history>
        </rule>
        <rule id="IFN6198" name="Mets at DX, Testis, EOD Mets (SEER)" tag="N6198" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.eodMets == null || line.schemaId == null || line.schemaId != '00590')
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true

boolean metsAtDxBoneCondition = line.metsAtDxBone == null || ['0','9'].contains(line.metsAtDxBone)
boolean metsAtDxBrainCondition = line.metsAtDxBrain == null || ['0','9'].contains(line.metsAtDxBrain)
boolean metsAtDxDistantLnCondition = line.metsAtDxDistantLn == null || ['0','9'].contains(line.metsAtDxDistantLn)
boolean metsAtDxLiverCondition = line.metsAtDxLiver == null || ['0','9'].contains(line.metsAtDxLiver)
boolean metsAtDxLungCondition = line.metsAtDxLung == null || ['0','9'].contains(line.metsAtDxLung)
boolean metsAtDxOtherCondition = line.metsAtDxOther == null || ['0','9'].contains(line.metsAtDxOther)

if (line.metsAtDxDistantLn == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxLiverCondition && metsAtDxLungCondition && metsAtDxOtherCondition && !['10','30'].contains(line.eodMets))
    return false
if (line.metsAtDxLung == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && (metsAtDxDistantLnCondition || line.metsAtDxDistantLn == '1') && metsAtDxLiverCondition && metsAtDxOtherCondition && line.eodMets != '50')
    return false

if ((line.metsAtDxBone == '1' || line.metsAtDxBrain == '1' || line.metsAtDxLiver == '1'|| line.metsAtDxOther == '1' || line.metsAtDxOther == '2') && line.eodMets != '60')
    return false

if (['10','30'].contains(line.eodMets) && line.metsAtDxDistantLn != '1')
    return false
if (line.eodMets == '50' && line.metsAtDxLung != '1')
    return false
return true]]></expression>
            <message>Mets at DX fields conflict with EOD Mets for Testis</message>
            <description><![CDATA[This edit verifies that Mets at DX-Bone, Mets at DX-Brain,
Mets at DX-Distant LN, Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other
are coded consistently with EOD Mets for Schema ID 00590, Testis.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00590
    c. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN,
        Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other are all blank
    d. EOD Mets is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)


2. If Mets at DX-Distant LN = 1 (and Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
       Mets at DX-Liver = 0,9, Mets at DX-Lung = 0,9, and Mets at DX-Other = 0,9, or
      fields are empty)
       then EOD Mets must = 10 or 30

3. If Mets at DX-Lung = 1 (and Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
       Mets at DX-Distant LN = 0,1,9, Mets at DX-Liver = 0,9, Mets at DX-Other = 0,9,
      or fields are empty)
       then EOD Mets must = 50

4. If Mets at DX-Bone = 1, Mets at DX-Brain = 1, Mets at DX-Liver, or
      Mets at DX-Other = 1 or 2,
       then EOD Mets must = 60.

5. If EOD Mets = 10 or 30 (Distant lymph nodes)
       Mets at DX-Distant LN must = 1

6. If EOD Mets = 50 (Lung)
       Mets at DX-Lung must = 1]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-14" ref="68608">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6199" name="EOD Regional Nodes, Kidney Renal Pelvis/Urethra, Regional Nodes Positive (SEER)" tag="N6199" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7' || line.eodRegionalNodes == null)
    return true
if (line.schemaId == null || !['00610','00631','00633'].contains(line.schemaId) || line.regionalNodesPositive == null)
    return true

if (['200','300'].contains(line.eodRegionalNodes) && !Functions.matches(line.regionalNodesPositive, /^0[01]|9[5789]$/))
    return false
if (Functions.matches(line.regionalNodesPositive, /^0[2-9]|[1-8]\d|90$/) && line.eodRegionalNodes != '400')
    return false
return true]]></expression>
            <message>EOD Regional Nodes/Reg Nodes Pos conflict for Kidney and Urethra</message>
            <description><![CDATA[This edit verifies that EOD Regional Nodes codes 400 and 800 are coded
consistently with Regional Nodes Positive for Schema ID 00610, Kidney Renal
Pelvis, 00631 Urethra, and 00633 Urethra Prostatic.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00610, 00631, or 00633
    c. EOD Regional Nodes is blank
    d. Regional Nodes Positive is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If EOD Regional Nodes = 200 or 300 (single positive node)
    Regional Nodes Positive must = 00, 01, 95, 97, 98, or 99

2. If Regional Nodes Positive = 02-90
    then EOD Regional Nodes must = 400 (multiple nodes)


Note: Schema IDs 00631 and 00633 have only codes 300 and 400]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-28" ref="68607">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-22" ref="69185">Added 97 as a valid code for EOD Nodes 200 or 300, remove code 800.</event>
            </history>
        </rule>
        <rule id="IFN6200" name="Mets at DX, Thymus, EOD Mets (SEER)" tag="N6200" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.eodMets == null || line.schemaId == null || line.schemaId != '00350')
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true

boolean metsAtDxBoneCondition = line.metsAtDxBone == null || ['0','9'].contains(line.metsAtDxBone)
boolean metsAtDxBrainCondition = line.metsAtDxBrain == null || ['0','9'].contains(line.metsAtDxBrain)
boolean metsAtDxDistantLnCondition = line.metsAtDxDistantLn == null || ['0','9'].contains(line.metsAtDxDistantLn)
boolean metsAtDxLiverCondition = line.metsAtDxLiver == null || ['0','9'].contains(line.metsAtDxLiver)
boolean metsAtDxLungCondition = line.metsAtDxLung == null || ['0','9'].contains(line.metsAtDxLung)
boolean metsAtDxOtherCondition = line.metsAtDxOther == null || ['0','9'].contains(line.metsAtDxOther)

if (line.metsAtDxOther == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxDistantLnCondition && metsAtDxLiverCondition && metsAtDxLungCondition && !['10','50'].contains(line.eodMets))
    return false
if (line.metsAtDxDistantLn == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxLiverCondition && metsAtDxLungCondition && metsAtDxOtherCondition && line.eodMets != '30')
    return false
if (line.metsAtDxDistantLn == '1' && line.metsAtDxOther== '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxLiverCondition && metsAtDxLungCondition && !['30','50'].contains(line.eodMets))
    return false
if ((line.metsAtDxBone == '1' || line.metsAtDxBrain == '1' || line.metsAtDxLiver == '1' || line.metsAtDxLung == '1' || line.metsAtDxOther == '2') && line.eodMets != '50')
    return false
if (line.eodMets == '10' && line.metsAtDxOther != '1')
    return false
if (line.eodMets == '30' && line.metsAtDxDistantLn!= '1')
    return false
return true]]></expression>
            <message>Mets at DX fields conflict with EOD Mets for Thymus</message>
            <description><![CDATA[This edit verifies that Mets at DX-Bone, Mets at DX-Brain,
Mets at DX-Distant LN, Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other
are coded consistently with EOD Mets for Schema ID 00350, Thymus.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00350
    c. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN,
        Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other are all blank
    d. EOD Mets is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If Mets at DX-Other = 1 (and Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
       Mets at DX-Distant LN = 0,9, Mets at DX-Liver = 0,9, Mets at DX-Lung = 0,9, or
      fields are empty)
       then EOD Mets must = 10 or 50

3. If Mets at DX-Distant LN = 1 (and Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
       Mets at DX-Liver = 0,9, Mets at DX-Lung = 0,9, Mets at DX-Other = 0,9, or
       fields are empty)
       then EOD Mets must = 30

4. If Mets at DX-Distant LN = 1 and Mets at DX-Other = 1 (and Mets at DX-Bone = 0,9,
      Mets at DX-Brain = 0,9, Mets at DX-Liver = 0,9, Mets at DX-Lung = 0,9, or
       fields are empty)
       then EOD Mets must = 30 or 50

5. If Mets at DX-Bone = 1, Mets at DX-Brain = 1, Mets at DX-Liver = 1, Mets at DX-Lung = 1, or
      Mets at DX-Other = 2,
       then EOD Mets must = 50.

6. If EOD Mets = 10 (Separate pleural or pericardial nodules)
        Mets at DX-Other must = 1

6. If EOD Mets = 30 (Distant lymph nodes)
        Mets at DX-Distant LN must = 1]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-14" ref="68608">Edit created.</event>
                <event version="SE21-021-04" user="kirbyk" date="2021-05-10" ref="68655">Added Mets at DX-Lung value for condition #5.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6203" name="Mets at DX, Bone, EOD Mets (SEER)" tag="N6203" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.eodMets == null || line.schemaId == null || !['00381','00382','00383'].contains(line.schemaId))
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true

boolean metsAtDxBoneCondition = line.metsAtDxBone == null || ['0','9'].contains(line.metsAtDxBone)
boolean metsAtDxBrainCondition = line.metsAtDxBrain == null || ['0','9'].contains(line.metsAtDxBrain)
boolean metsAtDxDistantLnCondition = line.metsAtDxDistantLn == null || ['0','9'].contains(line.metsAtDxDistantLn)
boolean metsAtDxLiverCondition = line.metsAtDxLiver == null || ['0','9'].contains(line.metsAtDxLiver)
boolean metsAtDxLungCondition = line.metsAtDxLung == null || ['0','9'].contains(line.metsAtDxLung)
boolean metsAtDxOtherCondition = line.metsAtDxOther == null || ['0','9'].contains(line.metsAtDxOther)

if (line.metsAtDxLung == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxDistantLnCondition && metsAtDxLiverCondition && metsAtDxOtherCondition && line.eodMets != '10')
    return false
if (line.metsAtDxDistantLn == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxLiverCondition && (metsAtDxLungCondition || line.metsAtDxLung == '1') && metsAtDxOtherCondition && line.eodMets != '30')
    return false
if ((line.metsAtDxBone == '1' || line.metsAtDxBrain == '1' || line.metsAtDxLiver == '1' || line.metsAtDxOther == '1' || line.metsAtDxOther == '2') && line.eodMets != '50')
    return false
if (line.eodMets == '10' && line.metsAtDxLung != '1')
    return false
if (line.eodMets == '30' && line.metsAtDxDistantLn != '1')
    return false
return true]]></expression>
            <message>Mets at DX fields conflict with EOD Mets for Bone</message>
            <description><![CDATA[This edit verifies that Mets at DX-Bone, Mets at DX-Brain,
Mets at DX-Distant LN, Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other
are coded consistently with EOD Mets for Schema ID 00381 Bone Appendicular,
00382 Bone Spine, and 00383 Bone Pelvis.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00381, 00382, or 00383
    c. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN,
        Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other are all blank
    d. EOD Mets is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If Mets at DX-Lung = 1 and (Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
      Mets at DX-Distant LN = 0,9, Mets at DX-Liver= 0,9, and Mets at DX-
       Other = 0,9, or fields are empty)
        then EOD Mets must = 10

3. If Mets at DX-Distant LN = 1 and (Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
      Mets at DX-Liver = 0,9, Mets at DX-Lung = 0,1,9, and Mets at DX-Other = 0,9, or
     fields are empty)
       then EOD Mets must = 30.

4. If Mets at DX-Bone = 1, Mets at DX-Brain = 1, Mets at DX-Liver, or
      Mets at DX-Other = 1 or 2,
       then EOD Mets must = 50.

5. If EOD Mets = 10 (Lung)
      then Mets at DX-Lung must = 1

6. If EOD Mets = 30 (Distant lymph nodes)
        then Mets at DX-Distant LN must = 1]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-14" ref="68608">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6204" name="EOD Primary Tumor, Lung, Tumor Size (SEER)" tag="N6204" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.dateOfDiagnosisYear > '2023' || line.eodPrimaryTumor == null)
    return true
if (line.typeOfReportingSource == '7' || line.schemaId == null || line.schemaId != '00360')
    return true
if (line.tumorSizeClinical == null && line.tumorSizePathologic == null)
    return true

if (line.eodPrimaryTumor == '100') {
    if (!Functions.matches(line.tumorSizeClinical, /^00[1-9]|0[12]\d|030|99[09]$/) && !Functions.matches(line.tumorSizePathologic, /^00[1-9]|0[12]\d|030|99[09]$/))
        return false
    if (line.tumorSizeSummary != null && !Functions.matches(line.tumorSizeSummary, /^00[1-9]|0[12]\d|030|990$/))
        return false
}
return true]]></expression>
            <message>Tumor Size Clinical and Tumor Size Pathologic are inconsistent with EOD Primary Tumor</message>
            <description><![CDATA[This edit checks consistency of coding between EOD Primary Tumor code 100 and
Tumor Size Clinical, Tumor Size Pathologic, and Tumor Size Summary for Schema
ID 00360, Lung.

1. This edit is skipped if any of the following conditions is true:
    a. Diagnosis date is invalid, blank (unknown), before 2021, or after 2023.
    b. Schema ID is blank or not = 00360
    c. EOD Primary Tumor is blank
    d. Tumor Size Clinical and Tumor Size Pathologic are both blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If EOD Primary Tumor = 100 (Minimally invasive adenocarcinoma: Adenocarcinoma
    tumor
    WITH predominantly lepidic pattern measuring less than or equal to 3 cm in
    greatest dimension
    WITH invasive component measuring less than or equal to 5 mm in greatest
    dimension)
    a. Tumor Size Clinical or Tumor Size Pathological must = 001-030, 990,999
    b. Tumor Size Summary if not blank must = 001-030, 990]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-25" ref="68606">Edit created.</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-11" ref="69396">Add skip condition for DX Year &gt; 2023 and remove 999 for Tumor Size Summary.</event>
            </history>
        </rule>
        <rule id="IFN6205" name="EOD Primary Tumor/Nodes/Mets, Lung Occult Carcinoma, Summary Stage 2018 (SEER)" tag="N6205" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.schemaId != '00360' ||
(line.eodPrimaryTumor == null && line.eodMets == null && line.eodRegionalNodes == null) || line.typeOfReportingSource == '7')
    return true
if (line.eodPrimaryTumor == '980')
    return line.eodRegionalNodes == '000' && line.eodMets == '00' && (line.summaryStage2018 == null || line.summaryStage2018 == '9')
return true]]></expression>
            <message>EOD variables/Summary Stage 2018 conflict for Lung Occult Carcinoma</message>
            <description><![CDATA[This edit checks consistency of coding between EOD Primary Tumor, EOD Regional
Nodes, EOD Mets, and Summary Stage 2018 for an Occult Carcinoma in Schema ID 00360, Lung.

1. This edit is skipped if any of the following conditions is true:
    a. Diagnosis date is invalid, blank (unknown), or before 2021.
    b. Schema ID is blank or not = 00360
    c. EOD Primary Tumor, EOD Regional Nodes, and EOD Mets are all blank
    d. Type of Reporting Source is 7 (Death Certificate Only)

2. If EOD Primary Tumor = 980 (Tumor proven by presence of malignant cells in
    sputum or bronchial washings but not visualized by imaging or bronchoscopy)
    then:  Mets a. EOD Regional Nodes must = 000
           b. EOD must = 00
           c. Summary Stage 2018 must = 9 or blank]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-04-20" ref="68623">Edit created.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-26" ref="68976">Updated description.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6207" name="Behavior Code ICDO3, EOD Tumor/Nodes/Mets, Prostate (SEER)" tag="N6207" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.schemaId != '00580' || line.typeOfReportingSource == '7')
    return true
if (line.behaviorCodeIcdO3 == null || ['0','1'].contains(line.behaviorCodeIcdO3))
    return true
if (line.eodPrimaryTumor == null && line.prostatePathologicalExtension == null && line.eodRegionalNodes == null && line.eodMets == null)
    return true

if (line.behaviorCodeIcdO3 == '2') {
    boolean condition1 = line.eodPrimaryTumor == '000' && Functions.matches(line.prostatePathologicalExtension, /^[089]00|9(50|99)$/)
    boolean condition2 = ['800','999'].contains(line.eodPrimaryTumor) && line.prostatePathologicalExtension == '000'

    return (condition1 || condition2) && line.eodRegionalNodes == '000' && line.eodMets == '00'
}
else if (line.behaviorCodeIcdO3 == '3')
    return !['000','800'].contains(line.eodPrimaryTumor) ||
        !['000','800','900','950'].contains(line.prostatePathologicalExtension) ||
        line.eodRegionalNodes != '000' ||
        line.eodMets != '00'

return true]]></expression>
            <message>Behavior Code ICD-O-3 conflicts with EOD Primary Tumor, EOD Prostate Pathologic Extension, EOD Regional Nodes, and EOD Mets</message>
            <description><![CDATA[This edit checks consistency of coding between Behavior Code ICD-O-3, codes
2
and 3, and EOD Primary Tumor, EOD Prostate Patholgical Extension, EOD
Regional Nodes,
    and EOD Mets for Schema ID 00580, Prostate.

1. This edit is skipped if any of the following conditions is true:
    a. Diagnosis date is invalid, blank (unknown), or before 2021.
    b. Schema ID is blank or not 00580
    c. Behavior Code ICD-O-3 is blank or = 0 or 1
    d. EOD Primary Tumor, EOD Prostate Pathological Extension, EOD Regional
       Nodes, and EOD Mets are all blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. If Behavior Code ICD-O-3 = 2 (in situ)
    EOD Primary Tumor must = 000 (in situ) and EOD Prostate Pathologic
    Extension must = 000 (in situ), 800 (no evidence of primary tumor), 900
    (no prostatectomy or autopsy performed), 950 (prostatectomy not part of
    first course of treatment) or 999 (unknown extension)
    OR
   EOD Primary Tumor must = 800 (no evidence of primary tumor) or 999
    (unknown extension) and EOD Prostate Pathologic Extension must = 000
    (in situ)
    AND
    EOD Regional Nodes must = 000 and EOD Mets must = 00

3. If Behavior Code ICD-O-3 = 3 (invasive)
   EOD Primary Tumor must not = 000 or 800
    or EOD Prostate Pathologic Extension must not = 000, 800, 900, or 950
    or EOD Regional Nodes must not = 000 or EOD Mets must not = 00]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-23" ref="68600">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6208" name="Summary Stage 2018, EOD Tumor/Nodes/Mets, Prostate (SEER)" tag="N6208" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.summaryStage2018 == null || line.typeOfReportingSource == '7')
    return true
if (line.eodPrimaryTumor == null && line.prostatePathologicalExtension == null && line.eodRegionalNodes == null && line.eodMets == null)
    return true
if (line.schemaId == null || line.schemaId != '00580')
    return true

if (line.summaryStage2018 == '0') {
    boolean condition1 = line.eodPrimaryTumor == '000' && Functions.matches(line.prostatePathologicalExtension, /^[089]00|950|999$/)
    boolean condition2 = ['800', '999'].contains(line.eodPrimaryTumor) && line.prostatePathologicalExtension == '000'

    return (condition1 || condition2) && line.eodRegionalNodes == '000' && line.eodMets == '00'
}
else if (line.summaryStage2018 == '1' || line.summaryStage2018 == '2') {
    boolean condition1 = !['000', '800', '999'].contains(line.eodPrimaryTumor)
    boolean condition2 = !Functions.matches(line.prostatePathologicalExtension, /^[089]00|950|999$/)

    return (condition1 || condition2) && ['000', '999'].contains(line.eodRegionalNodes) && line.eodMets == '00'
}
else if (line.summaryStage2018 == '3') {
    return !['000', '999'].contains(line.eodRegionalNodes) && line.eodMets == '00'
}
else if (line.summaryStage2018 == '4') {
    boolean condition1 = !['000', '800', '999'].contains(line.eodPrimaryTumor)
    boolean condition2 = !Functions.matches(line.prostatePathologicalExtension, /^[089]00|950|999$/)

    return (condition1 || condition2) && !['000', '999'].contains(line.eodRegionalNodes) && line.eodMets == '00'
}

if (Functions.matches(line.eodMets, /^[1-6]\d|70$/))
    return line.summaryStage2018 == '7'

return true]]></expression>
            <message>Summary Stage 2018 conflicts with EOD Primary Tumor, EOD Prostate Pathologic Extension, EOD Regional Nodes, and EOD Mets</message>
            <description><![CDATA[This edit checks consistency of coding between Summary Stage 2018 for in situ
and invasive cases, and EOD Primary Tumor, Prostate Pathological Extension,
EOD Regional Nodes, and EOD Mets for Schema ID 00580, Prostate.

1. This edit is skipped if any of the following conditions is true:
    a. Diagnosis date is invalid, blank (unknown), or before 2019.
    b. Schema ID is blank or not 00580
    c. Summary Stage 2018 is blank
    d. EOD Primary Tumor, EOD Prostate Pathological Extension, EOD Regional Nodes,
        and EOD Mets are all blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. If Summary Stage 2018 = 0 (in situ)
    EOD Primary Tumor must = 000 (in situ) and EOD Prostate Pathological Extension
    must = 000 (in situ), 800 (no evidence of primary tumor), 900 (no
    prostatectomy or autopsy performed), 950 (prostatectomy not part of first
    course of treatment) or 999 (unknown extension)
    OR
    EOD Primary Tumor must = 800 (no evidence of primary tumor) or 999 (unknown
    extension) and EOD Prostate Pathological Extension must = 000 (in situ)
    AND
    EOD Regional Nodes must = 000 and EOD Mets must = 00

3. If Summary Stage 2018 = 1 (localized) or 2 (regional by direct extension)
    EOD Primary Tumor must not = 000 or 800 or 999
    or EOD Prostate Pathological Extension must not = 000, 800, 900, 950, or 999
    AND
    EOD Regional Nodes must = 000 or 999 and EOD Mets must = 00

4. If Summary Stage 2018 = 3 (regional to lymph nodes)
    EOD Regional Nodes must not = 000 or 999
    AND EOD Mets must = 00

5. If Summary Stage 2018 = 4 (regional by direct extension and nodal
    involvement)
    EOD Primary Tumor must not = 000, 800, or 999
    or EOD Prostate Pathological Extension must not = 000, 800, 900, 950, or 999
    AND
    EOD Regional Nodes must not = 000 or 999 and EOD Mets must = 00

6. If EOD Mets = 10, 30, 50, 70,
    Summary Stage 2018 must = 7.]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-16" ref="68583">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6210" name="Response to Neoadjuvant Therapy, Breast, Behavior (NAACCR)" tag="N6210" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.behaviorCodeIcdO3 == null || line.responseToNeoadjuvantTherapy == null || line.responseToNeoadjuvantTherapy == '8')
    return true
if (line.schemaId == null || line.schemaId != '00480')
    return true

if (line.behaviorCodeIcdO3 == '2')
    return line.responseToNeoadjuvantTherapy == '0' || (line.responseToNeoadjuvantTherapy == '9' && line.dateOfDiagnosisYear < '2023')

return true]]></expression>
            <message>Behavior Code ICD-O-3 conflicts with Response to Neoadjuvant Therapy</message>
            <description><![CDATA[This edit verifies that the Response to Neoadjuvant Therapy SSDI is coded
consistently with Behavior Code ICD-O-3 code 2 for Schema ID 00480, Breast.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00480
    c. Response to Neoadjuvant Therapy is blank or 8 (not applicable)
    d. Behavior Code ICD-O-3 is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

Response to Neoadjuvant Therapy is required by SEER only if collected by a
CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).

2. If Behavior Code ICD-O-3 = 2 and year of diagnosis 2021-2022
    then Response to Neoadjuvant Therapy must be coded 0 (Neoadjuvant therapy
    not given) or 9 (Not documented)

3. If Behavior Code ICD-O-3 = 2 and year of diagnosis 2023+
    then Response to Neoadjuvant Therapy must be coded 0 defined as non-invasive neoplasm behavior)]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-22" ref="69173">Stop allowing 9 for Response to Neoadjuvant Therapy for 2023 forward.</event>
            </history>
        </rule>
        <rule id="IFN6211" name="LN Distant, Gynecologic, Behavior ICDO3 (NAACCR)" tag="N6211" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if(line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021'|| !['00510','00520','09520'].contains(line.schemaId) || line.behaviorCodeIcdO3 == null ||
        line.lnDistantMediastinalScalene == null || line.lnDistantMediastinalScalene == '8')
    return true
if (line.behaviorCodeIcdO3 == '2')
    return line.lnDistantMediastinalScalene == '0' || (line.lnDistantMediastinalScalene == '9' && line.dateOfDiagnosisYear < '2023')
return true]]></expression>
            <message>LN Distant: Mediastinal, Scalene conflicts with Behavior Code ICD-O-3</message>
            <description><![CDATA[This edit verifies that the LN Distant: Mediastinal, Scalene SSDI is coded
consistently with Behavior Code ICD-O-3 code 2 for Vagina and Cervix.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is not 00510, 00520, 09520
    c. LN Distant: Mediastinal, Scalene is blank or 8 (not applicable)
    d. Behavior Code ICD-O-3 is blank

LN Distant: Mediastinal, Scalene is required by SEER only if collected by
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).

2. If Behavior Code ICD-O-3 = 2 (in situ) and diagnosis years 2021-2022
    LN Distant: Mediastinal Scalene must = 0 (no nodal involvement) or
    9 (not documented)

3. If Behavior Code ICD-O-3 = 2 (in situ) and diagnosis years 2023+
    LN Distant: Mediastinal Scalene must = 0 (non-invasive neoplasm behavior)
]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-22" ref="69174">Stop allowing 9 for LN Distant Mediastinal Scalene for 2023 forward.</event>
            </history>
        </rule>
        <rule id="IFN6217" name="Estrogen Receptor Summary, Percent Positive, Breast (NAACCR)" tag="N6217" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if(line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.schemaId != '00480')
    return true

if (line.estrogenReceptorSummary == null || line.typeOfReportingSource == '7')
    return true

if (line.estrogenReceptorPercntPosOrRange == null || Functions.matches(line.estrogenReceptorPercntPosOrRange, /^XX[789]$/))
    return true

if (line.estrogenReceptorSummary == '0')
    return line.estrogenReceptorPercntPosOrRange == '000'
else if (line.estrogenReceptorSummary == '1')
    return Functions.matches(line.estrogenReceptorPercntPosOrRange, /^00[1-9]|0[1-9]\d|100|R[1-9]\d$/)
else if (line.estrogenReceptorSummary == '7' || line.estrogenReceptorSummary == '9')
    return line.estrogenReceptorPercntPosOrRange == 'XX7' || line.estrogenReceptorPercntPosOrRange == 'XX9'

return true]]></expression>
            <message>Estrogen Receptor Summary and Estrogen Receptor Percent Positive or Range conflict for 2021+</message>
            <description><![CDATA[This edit checks on consistency of coding between the Estrogen Receptor Summary
SSDI codes 0,1,7, and 9, and Estrogen Receptor Percent Positive or Range SSDI
for Schema ID 00480, Breast.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis is blank (unknown), invalid, or before 2021.
    b. Schema ID is blank or not 00480.
    c. Estrogen Receptor Summary is blank
    d. Estrogen Receptor Percent Positive or Range is blank or XX7 (test done,
       results not in chart, XX8 (not applicable), or XX9 (not documented in
        medical record)
    e. Type of Reporting Source = 7 (Death Certificate Only)

Estrogen Receptor Percent Positive or Range is required by SEER only if collected by
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).

2. If Estrogen Receptor Summary = 0 (negative),
    Estrogen Receptor Percent Positive or Range must = 000 (negative)

3. If Estrogen Receptor Summary = 1 (positive)
    Estrogen Receptor Percent Positive or Range must = 001-100, R10-R99 (positive)

4. If Estrogen Receptor Summary = 7 (test done, results not in chart) or 9
    (not documented in medical record)
    Estrogen Receptor Percent Positive or Range must = XX7 (test done, results
    not in chart), or XX9 (not documented in medical record)]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6219" name="Progesterone Receptor Summary, Percent Positive, Breast (NAACCR)" tag="N6219" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.progesteroneRecepSummary == null || line.progesteroneRecepPrcntPosOrRange == null || Functions.matches(line.progesteroneRecepPrcntPosOrRange, /^XX[789]$/))
    return true
if (line.schemaId == null || line.schemaId != '00480')
    return true

if (line.progesteroneRecepSummary == '0')
    return line.progesteroneRecepPrcntPosOrRange == '000'
else if (line.progesteroneRecepSummary == '1')
    return Functions.matches(line.progesteroneRecepPrcntPosOrRange, /^00[1-9]|0[1-9]\d|100|R[1-9]\d$/)
else if (line.progesteroneRecepSummary == '7' || line.progesteroneRecepSummary == '9')
    return line.progesteroneRecepPrcntPosOrRange == 'XX7' || line.progesteroneRecepPrcntPosOrRange == 'XX9'

return true]]></expression>
            <message>Progesterone Receptor Summary and Progesterone Receptor Percent Positive or Range conflict for 2021+</message>
            <description><![CDATA[This edit checks on consistency of coding between the Progesterone Receptor
Summary SSDI codes 0,1,7, and 9, and Progesterone Receptor Percent Positive or
Range SSDI for Schema ID 00480, Breast.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis is blank (unknown), invalid, or before 2021.
    b. Schema ID is blank or not 00480.
    c. Progesterone Receptor Summary is blank
    d. Progesterone Receptor Percent Positive or Range is blank or XX7 (test
       done, results not in chart), XX8 (not applicable), or XX9 (not documented
        in medical record)
    e. Type of Reporting Source = 7 (Death Certificate Only)

Progesterone Receptor Percent Positive or Range is required by SEER only if
collected by a CoC-accredited facility on an analytic case (CoC Accredited Flag
= 1).

2. If Progesterone Receptor Summary = 0 (negative),
    Progesterone Receptor Percent Positive or Range must = 000 (negative)

3. If Progesterone Receptor Summary = 1 (positive)
    Progesterone Receptor Percent Positive or Range must = 001-100, R10-R99
    (positive)

4. If Progesterone Receptor Summary = 7 (test done, results not in chart) or 9
    (not documented in medical record)
    Progesterone Receptor Percent Positive or Range must = XX7 or XX9]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6223" name="NCCN International Prognostic Index (IPI), Lymphoma, Histology (NAACCR)" tag="N6223" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[ if(line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.schemaId != '00790' || line.histologicTypeIcdO3 == null ||
            line.typeOfReportingSource == '7' || line.nccnInternationalPrognosticIndex == null || line.nccnInternationalPrognosticIndex == 'X8')
        return true
if (Functions.matches(line.histologicTypeIcdO3, /^96[56]\d$/))
    return line.nccnInternationalPrognosticIndex == 'X9'
return true
            ]]></expression>
            <message>NCCN International Prognostic Index (IPI) conflicts with Histologic Type ICD-O-3</message>
            <description><![CDATA[This edit checks on consistency of coding between the NCCN International
Prognostic Index (IPI) SSDI and Histologic Type ICD-O-3 for Schema ID 00790,
Lymphoma.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis is blank (unknown), invalid, or before 2021.
    b. Schema ID is blank or not 00790.
    c. NCCN International Prognostic Index (IPI) is blank or X8 (not applicable)
    d. Histologic Type ICD-O-3 is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. If Histology ICD-O-3 is Hodgkin Lymphoma, 965-966
    NCCN International Prognostic Index (IPI) must = X9 (not documented in
   medical record)]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-04-20" ref="68639">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6225" name="EOD Regional Nodes, Gynecologic, Reg Nodes Positive, Scope Reg LN (SEER)" tag="N6225" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7' || line.eodRegionalNodes == null)
    return true

if (line.schemaId == null || !Functions.matches(line.schemaId, /^005([0-3]0|28|4[12]|5[123])|095(00|20)$/))
    return true
if (line.eodRegionalNodes == '040' || line.eodRegionalNodes == '050') {
    if (!['00','99'].contains(line.regionalNodesPositive))
        return false
    if (line.typeOfReportingSource == '6')
        return line.rxSummScopeRegLnSur == '0'
    else {
        Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
        Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
        Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
        Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
        Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
        Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

        if (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5))
            return Functions.matches(line.rxSummScopeRegLnSur, /^[0-7]$/)
        else
            return Functions.matches(line.rxSummScopeRegLnSur, /^[1-7]$/)
    }
}
return true]]></expression>
            <message>EOD Regional Nodes/Reg Nodes Pos/Scope conflict for Gynecologic schemas</message>
            <description><![CDATA[This edit verifies that EOD Regional Nodes codes 040 and 050 are coded consistently with
Regional Nodes Positive and RX Summ--Scope Reg LN Sur for gynecologic schemas:
Schema ID 00500 Vulva [8th: 2018-2023], 09500 Vulva [V9: 2024+], 00510 Vagina, 00520 Cervix [8th: 2018-2020], 09520 Cervix [V9: 2021+], 00528 Cervix Sarcoma [2021],
00530 Corpus Carcinoma, 00541 Corpus Sarcoma, 00542 Corpus Adenosarcoma, 00551 Ovary, 00552 Primary Peritoneal Carcinoma, and 00553 Fallopian Tube.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00500, 00510, 00520, 00528, 09520, 00530, 00541, 00542, 00551, 00552, 00553, 09500
    c. EOD Regional Nodes is blank
    d. Type of Reporting Source is 7 (Death Certificate Only)

2. If EOD Regional Nodes = 040 or 050 (Isolated tumor cells in regional lymph node(s) no greater than 0.2 mm)
    then Regional Nodes Positive must = 00 or 99

3. If EOD Regional Nodes = 040 or 050
    if Type of Reporting Source = 6 (autopsy only)
        RX Summ--Scope Reg LN Sur must =0
    else if vital Status = 0 and Date of Last Contact within 5 months of Date of Diagnosis
        RX Summ--Scope Reg LN Sur must = 0-7
    else RX Summ--Scope Reg LN Sur must = 1-7

NOTE: Code 040 is valid only for Schema ID 09500, Vulva [V9: 2024+]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-28" ref="68607">Edit created.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68782">Add Cervix Sarcoma to skip condition and update scope conditions.</event>
                <event version="SE22-022-05" user="kirbyk" date="2022-05-17" ref="68995">Replaced non-ASCII characters in description.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE23-023-03" user="shearerw" date="2023-05-24" ref="69216">Fix logic for DOLC within 5 months of DX date to allow difference in year.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-03-01" ref="69398">Add logic for codes 09500 and 040.</event>
            </history>
        </rule>
        <rule id="IFN6226" name="EOD Primary Tumor, Corpus Carcinoma, Morphology ICDO3 (SEER)" tag="N6226" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.eodPrimaryTumor == null)
    return true
if (line.typeOfReportingSource == '7' || line.schemaId == null || line.schemaId != '00530')
    return true
if (line.histologicTypeIcdO3 == null || line.behaviorCodeIcdO3 == null)
    return true

String morphTypebehavIcdO3 = line.histologicTypeIcdO3 + line.behaviorCodeIcdO3
if (morphTypebehavIcdO3 == '83802' && !['000', '050'].contains(line.eodPrimaryTumor))
    return false
if (morphTypebehavIcdO3 == '84412' && line.eodPrimaryTumor != '050')
    return false
if (line.eodPrimaryTumor == '050' && !['83802', '84412'].contains(morphTypebehavIcdO3))
    return false
return true]]></expression>
            <message>EOD Primary Tumor/Morphology conflict for Corpus</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor is coded consistently with Histologic Type ICD-O-3 and Behavior Code ICD-O-3 Code 8380/2
            for Schema ID 00530, Corpus Carcinoma and Carcinosarcoma.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00530
    c. EOD Primary Tumor is blank
    d. Histologic Type ICD-O-3 or Behavior Code ICD-O-3 is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)


2. If Histologic Type ICD-O-3 and Behavior Code ICD-O-3 = 83802,
   EOD Primary Tumor must = 000 or 050 for Schema ID 00530

3. If Histologic Type ICD-O-3 and Behavior Code ICD-O-3 = 84412
    EOD Primary Tumor must = 050 for Schema ID 00530

4. If EOD Primary Tumor = 050 for Schema ID 00530,
    Histologic Type ICD-O-3 and Behavior Code ICD-O-3 must = 83802 or 84412]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-25" ref="68606">Edit created.</event>
                <event version="SE22-022-01" user="smithm" date="2022-03-01" ref="68872">Updated edit logic for NAACCR 22.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-01-26" ref="69111">In description replace Morph with Hist. No logic changed.</event>
            </history>
        </rule>
        <rule id="IFN6227" name="EOD Primary Tumor, Ovary, Laterality (SEER)" tag="N6227" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.eodPrimaryTumor == null || line.laterality == null)
    return true
if (line.typeOfReportingSource == '7' || line.schemaId == null || line.schemaId != '00551')
    return true

return line.laterality != '4' || line.eodPrimaryTumor != '100']]></expression>
            <message>EOD Primary Tumor conflicts with Laterality</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor codes 100 and 150 are coded
consistently with Laterality for Schema ID 00551, Ovary.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00551
    c. EOD Primary Tumor is blank
    d. Laterality is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If Laterality = 4
    EOD Primary Tumor must not = 100 (limited to one ovary)]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-25" ref="68606">Edit created.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-06-24" ref="69475">Remove logic for when EOD Primary Tumor is 150.</event>
            </history>
        </rule>
        <rule id="IFN6229" name="Mets at DX-Distant LN, Kaposi Sarcoma, EOD Regional Nodes (SEER)" tag="N6229" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId != '00458' || line.metsAtDxDistantLn == null)
        return true

if (line.eodRegionalNodes == null || line.typeOfReportingSource == '7')
    return true

if (line.metsAtDxDistantLn == '1' && line.eodRegionalNodes != '700')
    return false

if (line.eodRegionalNodes == '700' && line.metsAtDxDistantLn != '1')
    return false

return true]]></expression>
            <message>Mets at Dx-Distant LN conflicts with EOD Regional Nodes</message>
            <description><![CDATA[The edit verifies that Mets at DX-Distant LN code 1 is coded consistently with
EOD Regional Nodes for for Schema ID 00458 Kaposi Sarcoma.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00458
    c. Mets at DX-Distant LN is blank
    d. Type of Reporting Source is 7 (Death Certificate Only)
    e. EOD Regional Nodes is blank

2. If Mets at DX-Distant LN = 1,
       EOD Regional Nodes must = 700 (distant nodes NOS).

3. If EOD Regional Nodes = 700
       Mets at DX-Distant LN must = 1]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-03-16" ref="68634">Edit created.</event>
                <event version="SE21-021-04" user="kirbyk" date="2021-05-10" ref="68651">Added skip condition for EOD Regional Nodes.</event>
            </history>
        </rule>
        <rule id="IFN6231" name="ALK Rearrangement, Date DX (NAACCR)" tag="N6231" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[ if (line.dateOfDiagnosisYear == null)
                return true

if (line.dateOfDiagnosisYear < '2021')
     return line.alkRearrangement == null

return Functions.matches(line.alkRearrangement, /^[0124789]$/) || line.alkRearrangement == null
            ]]></expression>
            <message>ALK Rearrangement must be blank for cases diagnosed before 2021</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2021 diagnoses.

2. Must be a valid ALK Rearrangement code or blank:
    0: Normal
       ALK negative
       Negative for rearrangement, no rearrangement identified,
       no mutations (somatic) identified, not present, not detected
    1: Abnormal Rearrangement identified/detected: EML4-ALK, KIF5B-ALK, TFG-ALK,
      and/or KLC1-ALK
    2: Rearrangement identified/detected: Other ALK Rearrangement not listed in code 1
    4: Rearrangement, NOS
    7: Test ordered, results not in chart
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
        ALK Rearrangement not assessed or unknown if assessed

Another edit, ALK Rearrangement, Schema ID, Required (NAACCR), checks that
the item is coded by Schema ID if required by a standard setter. ]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-03-19" ref="68601">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6232" name="ALK Rearrangement, Schema ID, Required (NAACCR)" tag="N6232" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[ if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.typeOfReportingSource == '7')
                return true
if (line.registryId == '0000001565' && ['2021','2022'].contains(line.dateOfDiagnosisYear))
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear == '2021')
    return true

if (line.schemaId == '00360')
    return line.alkRearrangement != '8' && line.alkRearrangement != null

return true]]></expression>
            <message>ALK Rearrangement must not be blank or not applicable for Schema ID for cases diagnosed 2021 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2021, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID is 0000001565 (Illinois) and Year of Date of Diagnosis is 2021 or 2022.
    e. Registry ID is 0000001566 (Texas) and Year of Date of Diagnosis is 2021

2. This edit verifies that ALK Rearrangement is not "8" (not applicable) and not
   blank for the Schema IDs for which it is required by a standard setter.

    Required for Schema ID:

    00360: Lung]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-03-19" ref="68601">Edit created.</event>
                <event version="SE22-022-06" user="beverung" date="2022-06-13" ref="69006">Add skip conditions for IL and TX.</event>
            </history>
        </rule>
        <rule id="IFN6233" name="EGFR Mutational Analysis, Date DX (NAACCR)" tag="N6233" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[ if (line.dateOfDiagnosisYear == null)
        return true
if (line.dateOfDiagnosisYear < '2021')
    return line.egfrMutationalAnalysis == null

else
    return line.egfrMutationalAnalysis == null || Functions.matches(line.egfrMutationalAnalysis, /^[0124789]$/)
            ]]></expression>
            <message>EGFR Mutational Analysis must be blank for cases diagnosed before 2021</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2021 diagnoses.

2. Must be a valid EGFR Mutational Analysis code or blank:

   0: Normal
      EGFR negative, EGFR wild type
      Negative for mutations, no alterations, no mutations (somatic) identified, not present,
        not detected
    1: Abnormal (mutated)/detected in exon(s) 18, 19, 20, and/or 21
    2: Abnormal (mutated)/detected but not in exon(s) 18, 19, 20, and/or 21
    4: Abnormal (mutated)/detected, NOS, exon(s) not specified
    7: Test ordered, results not in chart
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
        EGFR not assessed or unknown if assessed

Another edit, EGFR Mutational Analysis, Schema ID, Required (NAACCR), checks that
the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-03-22" ref="68605">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6234" name="EGFR Mutational Analysis, Schema ID, Required (NAACCR)" tag="N6234" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.typeOfReportingSource == '7')
        return true
if (line.registryId == '0000001565' && ['2021','2022'].contains(line.dateOfDiagnosisYear))
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear == '2021')
    return true

if (line.schemaId == '00360')
    return line.egfrMutationalAnalysis != '8' && line.egfrMutationalAnalysis != null

return true
            ]]></expression>
            <message>EGFR Mutational Analysis must not be blank or not applicable for Schema ID for cases diagnosed 2021 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2021, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID is 0000001565 (Illinois) and Year of Date of Diagnosis is 2021 or 2022.
    e. Registry ID is 0000001566 (Texas) and Year of Date of Diagnosis is 2021

2. This edit verifies that EGFR Mutational Analysis is not "8" (not applicable)
    and not blank for the Schema IDs for which it is required by a standard setter.

    Required for Schema ID:

    00360: Lung]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-03-22" ref="68605">Edit created.</event>
                <event version="SE22-022-06" user="beverung" date="2022-06-13" ref="69006">Add skip conditions for IL and TX.</event>
            </history>
        </rule>
        <rule id="IFN6235" name="BRAF Mutational Analysis, Date DX (NAACCR)" tag="N6235" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
if (line.dateOfDiagnosisYear < '2021')
    return line.brafMutationalAnalysis == null

return line.brafMutationalAnalysis == null || Functions.matches(line.brafMutationalAnalysis, /^[0124789]$/)]]></expression>
            <message>BRAF Mutational Analysis must be blank for cases diagnosed before 2021</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2021 diagnoses.

2. Must be a valid BRAF Mutational Analysis code or blank:


   0: Normal
      BRAF negative, BRAF wild type
      Negative for (somatic) mutations, no alterations, no mutations (somatic)
       identified, not present, not detected
    1:  Abnormal (mutated)/detected: BRAF V600E (c.1799T>A) mutation
    2:  Abnormal (mutated)/detected, but not BRAF V600E (c.1799T>A) mutation
    4:  Abnormal (mutated), NOS
    7:  Test ordered, results not in chart
    8:  Not applicable: Information not collected for this case
    9: Not documented in medical record
        BRAF not assessed or unknown if assessed


Another edit, BRAF Mutational Analysis, Schema ID, Required (NAACCR), checks
that the item is coded by Schema ID if required by a standard setter.  ]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-03-31" ref="68602">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6236" name="BRAF Mutational Analysis, Schema ID, Required (NAACCR)" tag="N6236" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if ((line.registryId == '0000001565' && (line.dateOfDiagnosisYear == '2021' || line.dateOfDiagnosisYear == '2022'))
    || (line.registryId == '0000001566' && line.dateOfDiagnosisYear == '2021'))
    return true

if (line.schemaId == '00200')
    return line.brafMutationalAnalysis != null && line.brafMutationalAnalysis != '8'
return true]]></expression>
            <message>BRAF Mutational Analysis must not be blank or not applicable for Schema ID case diagnosed 2021 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2021, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID is 0000001565 (Illinois) and Year of Date of Diagnosis is 2021 or 2022.
    e. Registry ID is 0000001566 (Texas) and Year of Date of Diagnosis is 2021

2. This edit verifies that BRAF Mutational Analysis is not "8" (not applicable)
    and not blank for the Schema IDs for which it is required by a standard setter.

    Required for Schema ID:

    00200: Colon and Rectum]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-03-31" ref="68602">Edit created.</event>
                <event version="SE23-023-02" user="cooki" date="2023-04-11" ref="69218">Added logic for blank value.</event>
                <event version="SE23-023-04" user="shearerw" date="2023-06-14" ref="69288">Add registry skip conditions.</event>
            </history>
        </rule>
        <rule id="IFN6237" name="NRAS Mutational Analysis, Date DX (NAACCR)" tag="N6237" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
if (line.dateOfDiagnosisYear < '2021')
    return line.nrasMutationalAnalysis == null
return line.nrasMutationalAnalysis == null || Functions.matches(line.nrasMutationalAnalysis, /^[0124789]$/)]]></expression>
            <message>NRAS Mutational Analysis must be blank for cases diagnosed before 2021</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2021 diagnoses.

2. Must be a valid NRAS Mutational Analysis code or blank:


    0: Normal
      NRAS negative, NRAS wild type
      Negative for (somatic) mutations, no alterations, no mutations (somatic)
       identified, not present, not detected
    1:  Abnormal (mutated)/detected in codon(s) 12, 13, and/or 61
    2:  Abnormal (mutated)/detected, codon(s) specified but not in codon(s) 12, 13, or 61
    4:  Abnormal (mutated)/detected, NOS, codon(s) not specified
    7:  Test ordered, results not in chart
    8:  Not applicable: Information not collected for this case
    9:  Not documented in medical record
        NRAS not assessed or unknown if assessed


Another edit, NRAS Mutational Analysis, Schema ID, Required (NAACCR), checks that
the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-03-31" ref="68610">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6238" name="NRAS Mutational Analysis, Schema ID, Required (NAACCR)" tag="N6238" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if ((line.registryId == '0000001565' && (line.dateOfDiagnosisYear == '2021' || line.dateOfDiagnosisYear == '2022'))
    || (line.registryId == '0000001566' && line.dateOfDiagnosisYear == '2021'))
    return true

if (line.schemaId == '00200')
    return line.nrasMutationalAnalysis != null && line.nrasMutationalAnalysis != '8'
return true]]></expression>
            <message>NRAS Mutational Analysis must not be blank or not applicable for Schema ID case diagnosed 2021 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2021, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID is 0000001565 (Illinois) and Year of Date of Diagnosis is 2021 or 2022.
    e. Registry ID is 0000001566 (Texas) and Year of Date of Diagnosis is 2021

2. This edit verifies that NRAS Mutational Analysis is not "8" (not applicable)
    and not blank for the Schema IDs for which it is required by a standard setter.

    Required for Schema ID:

    00200: Colon and Rectum ]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-03-31" ref="68610">Edit created.</event>
                <event version="SE23-023-02" user="cooki" date="2023-04-11" ref="69218">Added logic for blank value.</event>
                <event version="SE23-023-04" user="shearerw" date="2023-06-14" ref="69288">Add registry skip conditions.</event>
            </history>
        </rule>
        <rule id="IFN6239" name="CA 19-9 PreTX Lab Value, Date DX (NAACCR)" tag="N6239" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear ==  null || line.ca199PretxLabValue == null)
return true
if (line.dateOfDiagnosisYear <  '2021')
    return line.ca199PretxLabValue == null
String ca199PretxLabValue = (String)line.ca199PretxLabValue;
if (ca199PretxLabValue.length() < 3)
    return false
String decimal = ca199PretxLabValue.substring(ca199PretxLabValue.length() - 2)
if (decimal.charAt(0) != '.')
    return false
String digits = ca199PretxLabValue.substring(0, ca199PretxLabValue.length() - 2) + ca199PretxLabValue.substring(ca199PretxLabValue.length() - 1)
return Functions.matches(digits, /^(\d\d)|(\d\d\d)|(\d\d\d\d)|(\d\d\d\d\d)|XXXX(1|2|3|7|8|9)$/)]]></expression>
            <message>Not valid code for CA 19-9 PreTX Lab Value</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown),
or invalid.

1. This data item must be blank for pre-2021 diagnoses

2. Must be a valid CA 19-9 PreTX Lab Value code or blank:

    0.0: 0.0 Units/milliliter (U/ml) exactly
    0.1-9999.9: 0.1-9999.9 U/ml
                (Exact value to nearest tenth in U/ml)
    XXXX.1: 10,000 U/ml or greater
    XXXX.2: Lab value not available, physician states CA 19-9 is negative/normal
    XXXX.3: Lab value not available, physician states CA 19-9 is positive/elevated/high
    XXXX.7: Test ordered, results not in chart
    XXXX.8: Not applicable: Information not collected for this
case
    XXXX.9: Not documented in medical record
            CA19-9 PreTX Lab Value not assessed or unknown if
assessed

3. Code must contain one place after decimal point.

Another edit, CA19-9 PreTX Lab Value, Schema ID, Required
(NAACCR), checks
that the item is coded by Schema ID if required by a standard
setter. ]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-03-17" ref="68604">Edit created.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-28" ref="68871">XXXX.2 and XXXX.3 added as valid codes.</event>
            </history>
        </rule>
        <rule id="IFN6240" name="CA 19-9 PreTX Lab Value, Schema ID, Required (NAACCR)" tag="N6240" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
return true
if (line.registryId == '0000001565' && ['2021','2022'].contains(line.dateOfDiagnosisYear))
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear == '2021')
    return true

if (line.schemaId == '00280')
    return line.ca199PretxLabValue != null && line.ca199PretxLabValue != 'XXXX.8'
    
return true]]></expression>
            <message>CA 19-9 PreTX Lab Value must not be blank or not applicable for Schema ID case diagnosed 2021 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2021, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID is 0000001565 (Illinois) and Year of Date of Diagnosis is 2021 or 2022.
    e. Registry ID is 0000001566 (Texas) and Year of Date of Diagnosis is 2021

2. This edit verifies that CA 19-9 PreTX Lab Value is not
"XXXX.8" (not applicable)
    and not blank for the Schema IDs for which it is required
by a standard setter.

    Required for Schema ID:

    00280: Pancreas ]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-03-17" ref="68604">Edit created.</event>
                <event version="SE21-021-06" user="kirbyk" date="2021-06-02" ref="68675">Fixing edit for schema IDs not = 00280.</event>
                <event version="SE22-022-06" user="beverung" date="2022-06-13" ref="69006">Add skip conditions for IL and TX.</event>
            </history>
        </rule>
        <rule id="IFN6244" name="SSDI for Breast/Digestive, Blank for Other Schemas (NAACCR)" tag="N6244" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if(line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || ['00480','00161','00169','00170'].contains(line.schemaId))
            return true
return line.her2OverallSummary == null]]></expression>
            <message>HER2 Overall Summary should be blank for this schema</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for 
Esophagus Squamous, Schema ID 00161, Esophagus Other,Schema ID 00169,
Stomach, Schema ID 00170, and Breast,Schema ID 00480, as of diagnosis date
2021, are blank (not coded) for all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2021, blank, invalid.
    b.Schema ID is blank, 00480, 00161, 00169, 00170. 

If Schema ID is not 00480 (Breast) 00161 (Esophagus Squamous), 00169 (Esophagus)
or 00170 (Stomach), the following Site-Specific Data Item must be blank:

    HER2 Overall Summary]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-04-13" ref="68635">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6245" name="SSDI for Breast/NET, Blank for Other Schemas (NAACCR)" tag="N6245" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if(line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null ||
            ['00290','00301','00302','00310','00320','00330','00340','00480','09290','09301','09302','09310','09320','09330','09340'].contains(line.schemaId))
            return true
return line.ki67 == null]]></expression>
            <message>Ki-67 should be blank for this schema</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for NET Stomach 
00290, NET Duodenum 00301, NET Ampulla of Vater 00302, NET Jejunum and Ileum
00310, NET Appendix 00320, NET Colon and Rectum 00330, NET Pancreas 00340, and
Breast 00480) are blank (not coded) for all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2021, blank, invalid.
    b.Schema ID is blank, 00290, 00301, 00302, 00310, 00320, 00330, 00340, 00480, 09290, 09301, 09302, 09310, 09320, 09330, 09340

If Schema ID is not in the list below,
    the following Site-Specific Data Item must be blank:

    Ki-67

    00480   Breast
    00290   NET Stomach [8th: 2018-2023]
    00301   NET Duodenum [8th: 2018-2023]
    00302   NET Ampulla of Vater [8th: 2018-2023]
    00310   NET Jejunum and Ileum [8th: 2018-2023]
    00320   NET Appendix [8th: 2018-2023]
    00330   NET Colon and Rectum[ 8th: 2018-2023]
    00340   NET Pancreas [8th: 2018-2023]
    09290   NET Stomach [V9:2024+]
    09301   NET Duodenum [V9:2024+]
    09302   NET Ampulla of Vater [V9:2024+]
    09310   NET Jejunum and Ileum [V9:2024+]
    09320   NET Appendix [V9:2024+]
    09330   NET Colon and Rectum [V9:2024+]
    09340   NET Pancreas [V9:2024+]]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-04-13" ref="68635">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-03-11" ref="69420">Add schemas to skip condition.</event>
            </history>
        </rule>
        <rule id="IFN6246" name="EOD Primary Tumor, Testis, Morphology, Tumor Size (SEER)" tag="N6246" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.dateOfDiagnosisYear > '2023' || line.eodPrimaryTumor == null)
    return true
if (line.typeOfReportingSource == '7' || line.schemaId == null || line.schemaId != '00590')
    return true
if (line.tumorSizeClinical == null && line.tumorSizePathologic == null)
    return true
if (line.histologicTypeIcdO3 == null || line.behaviorCodeIcdO3 == null)
    return true

String morphTypebehavIcdO3 = line.histologicTypeIcdO3 + line.behaviorCodeIcdO3
if (line.eodPrimaryTumor == '100') {
    if (morphTypebehavIcdO3 != '90613')
        return false
    if (!Functions.matches(line.tumorSizeClinical, /^00[1-9]|0[12]\d|99[09]$/) && !Functions.matches(line.tumorSizePathologic, /^00[1-9]|0[12]\d|99[09]$/))
        return false
    if (line.tumorSizeSummary != null && !Functions.matches(line.tumorSizeSummary, /^00[1-9]|0[12]\d|99[09]$/))
        return false
}
else if (line.eodPrimaryTumor == '150') {
    if (morphTypebehavIcdO3 != '90613')
        return false
    if (!Functions.matches(line.tumorSizeClinical, /^0[3-9]\d|[1-8]\d\d|9[0-8]\d|999$/) && !Functions.matches(line.tumorSizePathologic, /^0[3-9]\d|[1-8]\d\d|9[0-8]\d|999$/))
        return false
    if (line.tumorSizeSummary != null && !Functions.matches(line.tumorSizeSummary, /^0[3-9]\d|[1-8]\d\d|9[0-8]\d|999$/))
        return false
}
return true]]></expression>
            <message>EOD Primary Tumor/Tumor Size conflict for Testis</message>
            <description><![CDATA[This edit checks consistency of coding between EOD Primary Tumor code 100
and Histologic Type ICD-O-3, Behavior Code ICD-O-3, Tumor Size Clinical, Tumor Size Pathologic,
and Tumor Size Summary for Schema ID 00590, Testis.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, after 2023, blank (unknown), or invalid.
    b. Schema ID is blank or not 00590
    c. EOD Primary Tumor is blank
    d. Histologic Type ICD-O-3 or Behavior Code ICD-O-3 is blank
    e. Tumor Size Clinical and Tumor Size Pathologic are both blank
    f. Type of Reporting Source is 7 (Death Certificate Only)


2. If EOD Primary Tumor = 100 (tumor size < 3cm limited to testis):
    a. Histologic Type ICD-O-3 and Behavior Code ICD-O-3 must = 90613 (pure seminoma)
    b. Tumor Size Clinical must = 001-029, 990, 999 or
       Tumor Size Pathologic must = 001-029, 990, 999
    c. Tumor Size Summary if not blank must = 001-029, 990, 999


3. If EOD Primary Tumor = 150 (tumor >= 3cm limited to testis):
    a. Histologic Type ICD-O-3 and Behavior Code ICD-O-3 must = 90613 (pure seminoma)
    b. Tumor Size Clinical must = 030-989 or 999 or Tumor Size
       Pathologic if not blank must = 030-989 or 999 and
    c. Tumor Size Summary if not blank must = 030-989 or 999]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-25" ref="68606">Edit created.</event>
                <event version="SE21-021-04" user="kirbyk" date="2021-05-10" ref="68650">Fixed Tumor Size valid values for condition #2.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-01-26" ref="69114">Replace Morph with Hist in description only.</event>
                <event version="SE24-024-01" user="cooki" date="2024-03-08" ref="69397">Added 2024 skip condition.</event>
            </history>
        </rule>
        <rule id="IFN6253" name="EOD Primary Tumor, Lymphoma (SEER)" tag="N6253" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.eodPrimaryTumor == null)
    return true
if (line.typeOfReportingSource == '7' || line.schemaId == null || !['00790','00795'].contains(line.schemaId))
    return true

if (line.eodPrimaryTumor == '100' && !Functions.matches(line.primarySite, /^C(0(24|9\d)|111|142|379|422|77[0-59])$/))
    return false
if (line.eodPrimaryTumor == '200' && Functions.matches(line.primarySite, /^C(0(24|9\d)|111|142|379|422|77[0-589])$/))
    return false

if (line.primarySite == 'C778' && line.eodPrimaryTumor < '300')
    return false
if (line.primarySite == 'C421' && line.eodPrimaryTumor != '750' && line.eodPrimaryTumor != '800')
    return false
if (line.primarySite == 'C220' && line.eodPrimaryTumor != '800')
    return false

return true]]></expression>
            <message>Conflict between EOD Primary Tumor and Primary Site</message>
            <description><![CDATA[The purpose of this edit is to verify that EOD Primary Tumor is coded
correctly for Schema ID 00790, Lymphoma, and 00795, Lymphoma CLL/SLL.

1. This edit is skipped if any of the following conditions is true:
    a. Date of diagnosis is pre-2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00790 or 00795
    c. EOD Primary Tumor is blank
    d. Case is death certificate only (Type of Reporting Source = 7).

2. If Schema ID = 00790 or 00795:

a. If EOD Primary Tumor = 100 (Involvement of a single lymph node region),
    then Primary Site must be one of the following:
    C770-C775, C779 (single lymph node region), C024 (lingual tonsil),
    C090-C099 (tonsil), C111 (pharyngeal tonsil), C142 (Waldeyer's ring),
    C379 (thymus), or C422 (spleen)


b. If EOD Primary Tumor  = 200 (Involvement of a single extralymphatic
    site without nodal involvement, multifocal involvement of one
    extralymphatic organ/site (except multifocal lung involvement) without
    nodal involvement),
    then Primary Site must NOT be one of the following:
    C770-C775, C778, C779 (lymph node regions), C024 (lingual tonsil),
    C090-C099 (tonsil), C111 (pharyngeal tonsil), C142 (Waldeyer ring),
    C379 (thymus), or C422 (spleen)

c. If Primary Site = C778 (multiple lymph nodes),
    then EOD Primary Tumor must be > or = 300.

d. If Primary Site = C421 (bone marrow),
    then EOD Primary Tumor must = 750 (Peripheral blood involvement only) or
    800 (Any involvement of bone marrow)

e. If Primary Site = C220 (liver),
    then EOD Primary Tumor must = 800 (Any involvement of liver)]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-25" ref="68606">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6255" name="Summary Stage 2018, Derived Summary Stage 2018 (SEER)" tag="N6255" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.summaryStage2018 == null || line.derivedSummaryStage2018 == null)
    return true

boolean summaryStageLiverCase = false;
if(line.schemaId == '00220' && ['150','200'].contains(line.eodPrimaryTumor))
    summaryStageLiverCase = (line.summaryStage2018 == '1' && line.derivedSummaryStage2018 == '2') || (line.summaryStage2018 == '3' && line.derivedSummaryStage2018 == '4')

return line.summaryStage2018 == line.derivedSummaryStage2018 || summaryStageLiverCase]]></expression>
            <message>Summary Stage 2018 and Derived Summary Stage 2018 must be the same. Please review EOD components and Summary Stage 2018</message>
            <description><![CDATA[This edit checks consistency between Summary Stage 2018 and Derived Summary Stage
2018.  If both data items are present, they must be the same.

1. The edit is skipped for any of the following conditions:
    a. Date of diagnosis is pre-2021, blank (unknown), or invalid.
    b. Derived Summary Stage 2018 is blank
    c. Summary Stage 2018 is blank.

2. If Schema ID = 00220 (Liver) and EOD Primary Tumor = 150 or 200, the edit passes when one of the following conditions is met:
    a. Summary Stage 2018 = 1 and Derived Summary Stage 2018 = 2
    b. Summary Stage 2018 = 3 and Derived Summary Stage 2018 = 4

Otherwise, Summary Stage 2018 must equal Derived Summary Stage 2018.]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-26" ref="68614">Edit created.</event>
                <event version="SE22-022-10" user="secristc" date="2022-08-19" ref="69024">Added condition for Schema ID = 00220 and EOD Primary Tumor = 150 or 200.</event>
            </history>
        </rule>
        <rule id="IFN6256" name="Grade, Brain, CNS, Behavior (NAACCR)" tag="N6256" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.behaviorCodeIcdO3 == null)
    return true
if (line.gradeClinical == null && line.gradePathological == null)
    return true
if (!Functions.matches(line.schemaId, /^0072[123]|0972[1-4]$/) || line.typeOfReportingSource == '7')
    return true

if (line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') {
    if (!['1','2','3','L','9'].contains(line.gradePathological))
        return false
    if (!['1','2','3','L','9'].contains(line.gradeClinical))
        return false
    return true
}
return true]]></expression>
            <message>Grade/Behavior conflict for Brain/CNS</message>
            <description><![CDATA[This edit verifies that Grade Clinical and Grade Pathological are coded
consistently with Behavior ICD-O-3 for benign and borderline tumors of the
Brain, Central Nervous System, and Intracranial Glands

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is not 00721, 00722, 00723, 09721, 09722, 09723, or 09724
    c. Grade Clinical and Grade Pathological are both blank.
    d. Behavior ICD-O-3 is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. If Behavior ICD-O-3 = 0 (benign), or 1 (borderline)
    a. Grade Pathological must = 1, 2, 3, L, or 9.
    b. Grade Clinical must = 1, 2, 3, L, or 9.]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-29" ref="68625">Edit created.</event>
                <event version="SE21-021-06" user="beverung" date="2021-06-10" ref="68680">Added skip condition for Type of Reporting Source = 7 (Death Certificate Only).</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68722">Updated logic to require Grade Clinical and Grade Pathological to be 1, 2, L, or 9 when Behavior is 1.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-03" ref="69129">Add Schema IDs for skip condition.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-22" ref="69199">Combine logic for Behavior ICD-O-3 = 0, 1.</event>
            </history>
        </rule>
        <rule id="IFN6257" name="Brain Molecular Markers, Derived SS 2018 (SEER)" tag="N6257" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.derivedSummaryStage2018 == null || line.typeOfReportingSource  == '7')
    return true
if (!['00721','00722','09721','09722','09724'].contains(line.schemaId) || line.brainMolecularMarkers == null || line.brainMolecularMarkers == '88')
    return true

if (line.brainMolecularMarkers == '86' && line.derivedSummaryStage2018 != '8')
    return false
if (line.derivedSummaryStage2018 == '8' && line.brainMolecularMarkers != '86' && line.brainMolecularMarkers != '99')
    return false
return true]]></expression>
            <message>Brain Molecular Markers conflicts with Derived Summary Stage 2018</message>
            <description><![CDATA[This edit verifies that the Brain Molecular Markers SSDI is coded consistently
with Derived Summary Stage 2018 for benign and borderline tumors.


1. The edit is skipped for the following conditions:
    a. Diagnosis date is before 2021, blank (unknown), or invalid.
    b. Schema ID not = 00721, 00722, 09721, 09722, or 09724.
    c. Brain Molecular Markers is blank or 88 (not applicable).
    d. Derived Summary Stage 2018 is blank
    e. Type of Reporting Source = 7

2. The edit verifies that if Brain Molecular Markers is coded 86 (Benign or
   borderline tumor), Derived Summary Stage 2018 = 8.

3. If Derived Summary Stage 2018 = 8, Brain Molecular Markers must = 86 (Benign or
   borderline) or 99 (no microscopic confirmation).]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-30" ref="68637">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
                <event version="SE23-023-01" user="cooki" date="2023-02-16" ref="69144">Added skip condition for Schema IDs 09721, 09722, and 09724.</event>
            </history>
        </rule>
        <rule id="IFN6258" name="Breslow Tumor Thickness, Melanoma, Derived SS 2018 (SEER)" tag="N6258" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.derivedSummaryStage2018 == null || line.typeOfReportingSource  == '7')
    return true
if (line.schemaId != '00470' || line.breslowTumorThickness == null || line.breslowTumorThickness == 'XX.8')
    return true

return (line.derivedSummaryStage2018 != '0' || line.breslowTumorThickness == 'XX.9')]]></expression>
            <message>Breslow Tumor Thickness conflicts with Derived Summary Stage 2018</message>
            <description><![CDATA[This edit verifies that the Breslow Tumor Thickness SSDI is coded consistently
with Derived Summary Stage 2018 for in situ tumors.

1. The edit is skipped for the following conditions:
    a. Diagnosis date is before 2021, blank (unknown), or invalid.
    b. Schema ID not = 00470
    c. Breslow Tumor Thickness is blank or XX.8 (not applicable).
    d. Derived Summary Stage 2018 is blank
    e. Type of Reporting Source = 7

2. The edit verifies that if Derived Summary Stage 2018 = 0, Breslow Tumor
    Thickness must = XX.9 (In situ melanoma).]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-30" ref="68637">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN6259" name="Extranodal Extension Head and Neck Clin/Path, Derived SS 2018 (SEER)" tag="N6259" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || !((List)Context.IFN_6259_SchemaId_List).contains(line.schemaId)
|| ((line.extranodalExtensionHeadNeckClin == null || line.extranodalExtensionHeadNeckClin == '8') && (line.extranodalExtensionHeadNeckPath == null || line.extranodalExtensionHeadNeckPath == 'X.8'))
|| line.derivedSummaryStage2018 == null || line.typeOfReportingSource == '7')
    return true

if (line.extranodalExtensionHeadNeckClin == '7' && line.extranodalExtensionHeadNeckPath == 'X.7')
    return !['3', '4'].contains(line.derivedSummaryStage2018)

if (['0', '1', '2', '4'].contains(line.extranodalExtensionHeadNeckClin) && Functions.matches(line.extranodalExtensionHeadNeckPath,  /^\d\.\d|X\.[1-4]$/))
    return !['0', '1', '2'].contains(line.derivedSummaryStage2018)
return true]]></expression>
            <message>Extranodal Extension Head and Neck Clinical and Extranodal Extension Head and Neck Pathological conflict with Derived Summary Stage 2018</message>
            <description><![CDATA[This edit verifies that the extranodal extension SSDIs are coded consistently
with Derived Summary Stage 2018 for head and neck sites.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is not 00060, 00071, 00072, 00073, 00074, 00075, 00076, 00077,
      00080, 00090, 00100, 00111, 00112, 00121, 00122, 00130, 00131, 00132,
        00133, 00140
    c. Extranodal Extension Head and Neck Clinical and Extranodal Extension
       Head and Pathological are both blank or not applicable
    d. Derived Summary Stage 2018 is blank.
    e. Type of Reporting Source = 7 (death certificate only).

2.  If Extranodal Extension Head and Neck Clinical = 7 (cN0) and Extranodal
      Extension Head and Neck Pathological = X.7 (pN0),
    Derived Summary Stage 2018 must not = 3 or 4 (regional nodes involved).

3. If Extranodal Extension Head and Neck Clinical = 0, 1, 2 or 4 (clinical nodal
      involvement), and Extranodal Extension Head and Neck
      Pathological = 0.0-9.9, X.1-X.4 (nodal involvement),
   Derived Summary Stage 2018 must not = 0, 1, or 2 (in situ, local, or regional by
      extension only)]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-04-29" ref="68624">Edit created.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68950">Removed skip condition for CoC Accredited Flag, added condition for Type of Reporting Source.</event>
                <event version="SE22-022-04" user="secristc" date="2022-04-29" ref="68967">Change skip value for Extranodal Extension Head and Neck Clinical to 8.</event>
            </history>
        </rule>
        <rule id="IFN6261" name="Extranodal Extension Clin/Path, Merkel Cell, Derived SS 2018 (SEER)" tag="N6261" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId != '00460' || line.derivedSummaryStage2018 == null || line.typeOfReportingSource == '7')
    return true

String clin = line.extranodalExtensionClin
String path = line.extranodalExtensionPath
if ((clin == null || clin == '8') && (path == null || path == '8'))
    return true

return (!['0', '1', '2', '4'].contains(clin) || !['0', '1'].contains(path) || !['0', '1', '2'].contains(line.derivedSummaryStage2018))]]></expression>
            <message>Extranodal Extension Clin (non-Head and Neck) and Extranodal Extension Path (non-Head and Neck) conflict with Derived Summary Stage 2018.</message>
            <description><![CDATA[This edit verifies that the extranodal extension SSDIs are coded consistently
with Derived Summary Stage 2018 for Merkel Cell Carcinoma.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is not 00460
    c. Extranodal Extension Clin (non-Head and Neck) and
       Extranodal Extension Path (non-Head and Neck) are both blank or both not
       applicable
    d. Derived Summary Stage 2018 is blank
    e. Type of Reporting Source = 7 (death certificate only)

2. If Extranodal Extension Clin (non-Head and Neck) = 0, 1, 2, or 4 (regional nodes
    involved), and Extranodal Extension Path (non-Head and Neck) = 0 or 1
    (regional nodes involved),
    Derived Summary Stage 2018 must not = 0, 1 or 2 (in situ, local, or regional
    by direct extension only)]]></description>
            <history>
                <event version="SE21-021-03" user="beverung" date="2021-02-17" ref="68560">Edit created.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68951">Replaced CoC Accredited Flag skip condition with Type of Reporting Source.</event>
            </history>
        </rule>
        <rule id="IFN6263" name="Extranodal Extension Clin/Path, Penis, Derived SS 2018 (SEER)" tag="N6263" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId != '00570' || ((line.extranodalExtensionClin == null || line.extranodalExtensionClin == '8')
 && (line.extranodalExtensionPath == null || line.extranodalExtensionPath == '8')) || line.derivedSummaryStage2018 == null || line.typeOfReportingSource == '7')
    return true

if (line.extranodalExtensionClin == '7' && line.extranodalExtensionPath == '7' )
    return line.derivedSummaryStage2018 != '3' && line.derivedSummaryStage2018 != '4'

if (['0', '1', '2', '4'].contains(line.extranodalExtensionClin) && ['0', '1'].contains(line.extranodalExtensionPath))
    return !['0', '1', '2'].contains(line.derivedSummaryStage2018)
return true]]></expression>
            <message>Extranodal Extension Clin (non-Head and Neck) and Extranodal Extension Path (non-Head and Neck) conflict with Derived Summary Stage 2018</message>
            <description><![CDATA[This edit verifies that the extranodal extension SSDIs are coded consistently
with Derived Summary Stage 2018 for Penis.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is not 00570
    c. Extranodal Extension Clin (non-Head and Neck) and
      Extranodal Extension Path (non-Head and Neck) are both blank or both = 8
      (not applicable)
    d. Derived Summary Stage 2018 is blank
    e. Type of Reporting Source = 7 (death certificate only)

2. If Extranodal Extension Clin (non-Head and Neck) = 7 (no lymph node
     involvement during diagnostic workup) and Extranodal Extension Path
     (non-Head and Neck) = 7 (no lymph node involvement from surgical resection),
   Derived Summary Stage 2018 must not  = 3 or 4 (lymph node involvement)

3. If Extranodal Extension Clin (non-Head and Neck) = 0, 1, 2 or 4 (nodes involved
     clinically) and Extranodal Extension Path (non-Head and Neck) = 0 or 1
     (nodes involved pathologically)
   Derived Summary Stage 2018 must not = 0, 1 or 2 (in situ, local, or regional by
     direct extension only)]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-04-29" ref="68624">Edit created.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68952">CoC Accredited Flag skip condition replaced with Type of Reporting Source</event>
            </history>
        </rule>
        <rule id="IFN6264" name="FIGO Stage, Derived SS 2018 (SEER)" tag="N6264" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.figoStage == null || line.figoStage == '98' || line.typeOfReportingSource  == '7')
    return true

if (!Functions.matches(line.schemaId, /^(00(5[01236]0|55[123]|528)|095[02]0)$/) || line.derivedSummaryStage2018 == null)
    return true

if (line.figoStage == '97' && line.derivedSummaryStage2018 != '0')
    return false

if (line.derivedSummaryStage2018 == '0' && !['00530', '00551', '00553'].contains(line.schemaId) && line.figoStage != '97')
    return false

return true]]></expression>
            <message>FIGO Stage conflicts with Derived Summary Stage 2018.</message>
            <description><![CDATA[The edit verifies that the FIGO Stage SSDI is coded consistently with Derived
Summary Stage 2018 for in situ tumors.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank, or invalid
    b. Schema ID not = 00500, 00510, 00520, 00530, 00551, 00552,
      00553, 00560, 09520, 00528, 09500
    c. FIGO Stage is blank or = 98 (not applicable)
    d. Derived Summary Stage 2018 blank
    e. Type of Reporting Source = 7

2. The edit verifies that if FIGO Stage = 97 (Carcinoma in situ),
    Derived Summary Stage 2018 must = 0 (Carcinoma in situ).

3. If Derived Summary Stage 2018 = 0 and Schema ID is not 00530, 00551, or 00553 (schemas where 8380/2 or 8441/2 are staged T1a or T1b),
    FIGO Stage must = 97.]]></description>
            <history>
                <event version="SE21-021-02" user="kirbyk" date="2021-01-27" ref="68494">Edit created.</event>
                <event version="SE21-021-03" user="secristm" date="2021-02-26" ref="68588">Added schema check when Derived Summary Stage 2018 = 0/</event>
                <event version="SE22-022-01" user="smithm" date="2022-02-15" ref="68831">Add 00528 to skip condition</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-04" ref="69403">Added Schema ID 09500 to skip condition.</event>
            </history>
        </rule>
        <rule id="IFN6265" name="Invasion Beyond Capsule, Kidney, Derived SS 2018 (SEER)" tag="N6265" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.derivedSummaryStage2018 == null || line.typeOfReportingSource  == '7')
    return true
if (line.schemaId != '00600' || line.invasionBeyondCapsule == null || line.invasionBeyondCapsule == '8')
    return true

return !Functions.matches(line.invasionBeyondCapsule, /^[13-5]$/) || !['0','1','3'].contains(line.derivedSummaryStage2018)]]></expression>
            <message>Invasion Beyond Capsule conflicts with Derived Summary Stage 2018</message>
            <description><![CDATA[Purpose: This edit verifies that Invasion Beyond Capsule SSDI, with positive
invasion, is coded consistently with Derived Summary Stage 2018.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2021, blank (unknown), or invalid
   b. Schema ID is not 00600
   c. Invasion Beyond Capsule is blank or 8 (not applicable)
   d. Derived Summary Stage 2018 is blank
   e. Type of Reporting Source = 7

2. If Invasion Beyond Capsule = 1,3-5 (invasion beyond capsule),
   then Derived Summary Stage 2018 must not = 0, 1, or 3 (in situ, local, or
    regional by nodal involvement only).]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-30" ref="68637">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN6266" name="Ipsilateral Adrenal Gland Involvement, Kidney, Derived SS 2018 (SEER)" tag="N6266" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.derivedSummaryStage2018 == null || line.typeOfReportingSource  == '7')
    return true
if (line.schemaId != '00600' || line.ipsilateralAdrenalGlandInvolve == null || line.ipsilateralAdrenalGlandInvolve == '8')
    return true

if (line.ipsilateralAdrenalGlandInvolve == '1' && ['0','1','3'].contains(line.derivedSummaryStage2018))
    return false
if (['2','3'].contains(line.ipsilateralAdrenalGlandInvolve) && line.derivedSummaryStage2018 != '7')
    return false
return true]]></expression>
            <message>Ipsilateral Adrenal Gland Involvement conflicts with Derived Summary Stage 2018</message>
            <description><![CDATA[This edit verifies that the Ipsilateral Adrenal Gland Involvement SSDI, with
positive involvement, is coded consistently with Derived Summary Stage 2018.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is not 00600.
    c. Ipsilateral Adrenal Gland Involvement is blank or 8 (not applicable).
    d. Derived Summary Stage 2018 is blank
    e. Type of Reporting Source = 7

2. If Ipsilateral Adrenal Gland Involvement = 1 (contiguous involvement),
   then Derived Summary Stage 2018 must not = 0, 1, or 3 (in situ, local, or
    regional by nodal involvement only)

3. If Ipsilateral Adrenal Gland Involvement = 2 or 3 (discontiguous
   involvement),
   then Derived Summary Stage 2018 must = 7.]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-30" ref="68637">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN6268" name="LN Distant, Gynecologic, Derived SS 2018 (SEER)" tag="N6268" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if(line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021'|| !['00510','00520','09520'].contains(line.schemaId))
    return true
if (line.lnDistantMediastinalScalene == null || line.lnDistantMediastinalScalene == '8' || line.derivedSummaryStage2018 == null || line.typeOfReportingSource == '7')
    return true

if (Functions.matches(line.lnDistantMediastinalScalene, /^[123]$/))
    return line.derivedSummaryStage2018 == '7'
return true]]></expression>
            <message>LN Distant: Mediastinal, Scalene conflicts with Derived Summary Stage 2018</message>
            <description><![CDATA[This edit verifies that LN Distant: Mediastinal, Scalene SSDI, codes 1-3, is
coded consistently with Derived Summary Stage 2018 for Vagina and Cervix.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is not 00510, 00520, 09520
    c. LN Distant: Mediastinal, Scalene is blank or 8 (not applicable)
    d. Derived Summary Stage 2018 is blank
    e. Type of Reporting Source = 7 (death certificate only)

2. If LN Distant: Mediastinal Scalene = 1-3 (positive distant nodes)
     Derived Summary Stage 2018 must = 7]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-04-07" ref="68627">Edit created.</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-27" ref="68953">Change edit name and update edit logic for 2022.</event>
            </history>
        </rule>
        <rule id="IFN6269" name="LN Head and Neck Levels, Melanoma Head/Neck, Derived SS 2018 (SEER)" tag="N6269" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.derivedSummaryStage2018 == null || line.schemaId != '00140' || line.typeOfReportingSource  == '7')
    return true
String ln13 = line.lnHeadAndNeckLevels1To3
String ln45 = line.lnHeadAndNeckLevels4To5
String ln67 = line.lnHeadAndNeckLevels6To7
String lnOther = line.lnHeadAndNeckOther
if ((ln13 == null || ln13 == '8') && (ln45 == null || ln45 == '8') && (ln67 == null || ln67 == '8') && (lnOther == null || lnOther == '8'))
    return true

Boolean ln13Condition = Functions.matches(ln13, /^[1-7]$/)
Boolean ln45Condition = Functions.matches(ln45, /^[123]$/)
Boolean ln67Condition = Functions.matches(ln67, /^[123]$/)
Boolean lnOtherCondition = Functions.matches(lnOther, /^[1-7]$/)

return !(ln13Condition || ln45Condition || ln67Condition || lnOtherCondition) || !['0','1','2'].contains(line.derivedSummaryStage2018)]]></expression>
            <message>LN Head and Neck codes conflict with Derived Summary Stage 2018</message>
            <description><![CDATA[This edit verifies that the LN Head and Neck SSDIs, with positive nodes, are
coded consistently with Derived Summary Stage 2018 for Schema ID 00140, Melanoma
Head and Neck.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2021, blank (unknown), or invalid.
   b. Schema ID is not 00140
   c. LN Head and Neck Levels I-III, LN Head and Neck levels IV-V, LN Head and
      Neck Levels VI-VII, and LN Head and Neck Other are all blank or not
      applicable.
   d. Derived Summary Stage 2018 is blank
   e. Type of Reporting Source = 7

2. If LN Head and Neck Levels I-III = 1-7 (lymph nodes involved) or
     LN Head and Neck Levels IV-V = 1-3 (lymph nodes involved) or
     LN Head and Neck Levels VI-VII = 1-3 (lymph nodes involved) or
     LN Head and Neck Other = 1-7 (lymph nodes involved)
   Derived Summary Stage 2018 must not = 0, 1, or 2 (in situ, local, regional by
     extension only)]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-30" ref="68637">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN6270" name="LN Isolated Tumor Cells (ITC), Merkel Cell, Derived SS 2018 (SEER)" tag="N6270" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if(line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.schemaId != '00460'
            || line.lnIsolatedTumorCells == null || line.lnIsolatedTumorCells == '8' || line.derivedSummaryStage2018 == null || line.typeOfReportingSource  == '7')
    return true
if (line.lnIsolatedTumorCells == '1')
    return !['0', '1', '2'].contains(line.derivedSummaryStage2018)
return true]]></expression>
            <message>LN Isolated Tumor Cells (ITC) conflicts with Derived Summary Stage 2018</message>
            <description><![CDATA[This edit verifies that LN Isolated Tumor Cells (ITC) SSDI, with positive nodes,
is coded consistently with Derived Summary Stage 2018 for Merkel Cell Carcinoma.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2021, blank (unknown), or invalid.
   b. Schema ID is not 00460
   c. LN Isolated Tumor Cells (ITC) is blank or 8 (not applicable).
   d. Derived Summary Stage 2018 is blank
   e. Type of Reporting Source = 7

2. If LN Isolated Tumor Cells (ITC) = 1 (lymph nodes positive for ITCs)
   Derived Summary Stage 2018 must not = 0, 1, or 2 (in situ, local, or regional
    by direct extension only)]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-03-22" ref="68628">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN6271" name="LN Laterality, Vulva, Derived SS 2018 (SEER)" tag="N6271" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null ||
!['00500', '09500'].contains(line.schemaId) || line.lnLaterality == null || line.lnLaterality == '8' || line.derivedSummaryStage2018 == null || line.typeOfReportingSource  == '7')
    return true
if (['1', '2', '3'].contains(line.lnLaterality))
    return !['0', '1', '2'].contains(line.derivedSummaryStage2018)
return true]]></expression>
            <message>LN Laterality conflicts with Derived Summary Stage 2018</message>
            <description><![CDATA[This edit verifies that the LN Laterality SSDI, with positive nodes, is coded
consistently with Derived Summary Stage 2018 for Vulva.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2021, blank (unknown), or invalid.
   b. Schema ID is not 00500 or 09500
   c. LN Laterality is blank or 8 (not applicable)
   d. Derived Summary Stage 2018 is blank
   e. Type of Reporting Source = 7

2. If LN Laterality = 1-3 (lymph nodes positive)
   Derived Summary Stage 2018 must not = 0, 1, or 2 (in situ, local, or regional
    by direct extension only)]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-03-25" ref="68629">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-04" ref="69403">Added Schema ID 09500 to skip condition</event>
            </history>
        </rule>
        <rule id="IFN6272" name="LN Positive Axillary Level I-II, Breast, Derived SS 2018 (SEER)" tag="N6272" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.derivedSummaryStage2018 == null || line.typeOfReportingSource  == '7')
    return true
if (line.schemaId != '00480' || line.lnPositiveAxillaryLevel1To2 == null || line.lnPositiveAxillaryLevel1To2 == 'X8')
    return true

return !Functions.matches(line.lnPositiveAxillaryLevel1To2, /^0[1-9]|[1-9]\d|X[156]$/) || !['0','1','2'].contains(line.derivedSummaryStage2018)]]></expression>
            <message>LN Positive Axillary Level I-II conflicts with Derived Summary Stage 2018</message>
            <description><![CDATA[This edit verifies that LN Positive Axillary Level I-II SSDI, with positive
nodes, is coded consistently with Derived Summary Stage 2018 for Breast.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2021, blank (unknown), or invalid.
   b. Schema ID is not 00480
   c. LN Positive Axillary Level I-II is blank or X8 (not applicable).
   d. Derived Summary Stage 2018 is blank
   e. Type of Reporting Source = 7

2. If LN Positive Axillary Level I-II = 01-99, X1, X5, or X6 (lymph nodes
     positive)
   Derived Summary Stage 2018 must not = 0, 1, or 2 (in situ, local, or regional
      by direct extension only)]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-30" ref="68637">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN6273" name="LN Size, Head/Neck, Derived SS 2018 (SEER)" tag="N6273" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear < '2021' || line.dateOfDiagnosisYear == null || line.lnSize == null || line.lnSize == 'XX.8'
            || line.derivedSummaryStage2018 == null || line.schemaId == null || !Functions.matches(line.schemaId, /^(000(60|7[1234567]|80|90))|(001(00|1[12]|2[12]|3[0123]|40|50))$/) || line.typeOfReportingSource  == '7')
    return true
if (line.lnSize != '0.0' && line.lnSize != 'XX.9')
    return line.derivedSummaryStage2018 != '0' && line.derivedSummaryStage2018 != '1' && line.derivedSummaryStage2018 != '2'
return true]]></expression>
            <message>LN Size conflicts with Derived Summary Stage 2018</message>
            <description><![CDATA[This edit verifies that LN Size SSDI, with positive nodes, is coded consistently
with Derived Summary Stage 2018 for head and neck sites.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2021, blank (unknown), or invalid.
   b. Schema ID is not in the following list:

        00060
        00071
        00072
        00073
        00074
        00075
        00076
        00077
        00080
        00090
        00100
        00111
        00112
        00121
        00122
        00130
        00131
        00132
        00133
        00140
        00150

   c. LN Size is blank or XX.8 (not applicable).
   d. Derived Summary Stage 2018 is blank
   e. Type of Reporting Source = 7

2. If LN Size not = 0.0 (no nodes involved) or XX.9 (unknown if nodes involved)
     (lymph nodes are positive)
   Derived Summary Stage 2018 must not = 0, 1, or 2 (in situ, local, or regional by
   direct extension only)]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-03-17" ref="68630">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN6275" name="Lymphovascular Invasion, Penis, Derived SS 2018 (SEER)" tag="N6275" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' ||  line.schemaId != '00570' || line.lymphVascularInvasion == null
|| line.lymphVascularInvasion == '8' || line.derivedSummaryStage2018 == null || line.typeOfReportingSource == '7')
    return true
if (Functions.matches(line.lymphVascularInvasion, /^[1-4]$/))
    return line.derivedSummaryStage2018 != '0'
return true]]></expression>
            <message>Lymphovascular Invasion/Derived Summary Stage 2018 conflict for Penis</message>
            <description><![CDATA[Purpose: This edit verifies that Lymphovascular Invasion, with positive invasion,
is coded consistently with Derived Summary Stage 2018 for Penis.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2021, blank (unknown), or invalid
   b. Schema ID is not 00570
   c. Lymphovascular Invasion is blank or 8 (not applicable)
   d. Derived Summary Stage 2018 is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. If Lymphovascular Invasion = 1-4 (invasion present)
   then Derived Summary Stage 2018 must not = 0 (in situ)]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-04-01" ref="68632">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6276" name="Lymphovascular Invasion, Testis, Derived SS 2018 (SEER)" tag="N6276" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' ||  line.schemaId != '00590' || line.lymphVascularInvasion == null
|| line.lymphVascularInvasion == '8' || line.derivedSummaryStage2018 == null || line.typeOfReportingSource == '7')
return true
if (Functions.matches(line.lymphVascularInvasion, /^[1-4]$/))
    return line.derivedSummaryStage2018 != '0'
return true]]></expression>
            <message>Lymphovascular Invasion/Derived Summary Stage 2018 conflict for Testis</message>
            <description><![CDATA[Purpose: This edit verifies that Lymphovascular Invasion, with positive invasion,
is coded consistently with Derived Summary Stage 2018 for Testis.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2021, blank (unknown), or invalid
   b. Schema ID is not 00590
   c. Lymphovascular Invasion is blank or 8 (not applicable)
   d. Derived Summary Stage 2018 is blank
   e. Type of Reporting Source = 7

2. If Lymphovascular Invasion = 1-4 (invasion present)
   then Derived Summary Stage 2018 must not = 0 (in situ)]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-04-01" ref="68632">Edit created.</event>
                <event version="SE21-021-09" user="beverung" date="2021-08-26" ref="68729">Updated to allow Summary Stage 2018 = 1, 3 when Lymphovascular Invasion = 1-4.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6277" name="Major Vein Involvement, Kidney, Derived SS 2018 (SEER)" tag="N6277" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.derivedSummaryStage2018 == null || line.typeOfReportingSource  == '7')
    return true
if (line.schemaId != '00600' || line.majorVeinInvolvement == null || line.majorVeinInvolvement == '8')
    return true

return !['1','2','3','4'].contains(line.majorVeinInvolvement) || !['0','1','3'].contains(line.derivedSummaryStage2018)]]></expression>
            <message>Major Vein Involvement conflicts with Derived Summary Stage 2018</message>
            <description><![CDATA[Purpose: This edit verifies that Major Vein Involvement SSDI, with positive
involvement, is coded consistently with Derived Summary Stage 2018 for
Kidney
Parenchyma.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2021, blank (unknown), or
invalid
   b. Schema ID is not 00600
   c. Major Vein Involvement is blank or 8 (not applicable)
   d. Derived Summary Stage 2018 is blank
   e. Type of Reporting Source = 7

2. If Major Vein Involvement = 1 (Involvement of renal vein only), 2
    (involvement of Inferior vena cava), 3 (Major vein invasion NOS), or 4
    (Any combination of codes 1-3)
    then Derived Summary Stage 2018 must not = 0, 1, or 3 (in situ, local,
    or regional by nodal involvement only)]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-30" ref="68637">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN6278" name="Peritoneal Cytology, Gynecologic, Derived SS 2018 (SEER)" tag="N6278" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.derivedSummaryStage2018 == null || line.typeOfReportingSource  == '7')
    return true
if (!['00530','00541','00542', '00528'].contains(line.schemaId) || line.peritonealCytology == null || line.peritonealCytology == '8')
    return true

return line.peritonealCytology != '2' || !['0','1','3'].contains(line.derivedSummaryStage2018)]]></expression>
            <message>Peritoneal Cytology conflicts with Derived Summary Stage 2018</message>
            <description><![CDATA[This edit verifies that Peritoneal Cytology SSDI, with positive cytology,
is coded consistently with Derived Summary Stage 2018 for Corpus Carcinoma,
Corpus arcoma, and Corpus Adenosarcoma.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2021, blank (unknown), or
invalid
   b. Schema ID is not 00530, 00541, 00542, 00528
   c. Peritoneal Cytology is blank or 8 (not applicable)
   d. Derived Summary Stage 2018 is blank
   e. Type of Reporting Source = 7

2. If Peritoneal Cytology  = 2 (peritoneal cytology positive for
    malignancy),
   Derived Summary Stage 2018 must not = 0, 1, or 3 (in situ, local,
    regional by nodal involvement only)]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-30" ref="68637">Edit created.</event>
                <event version="SE22-022-01" user="smithm" date="2022-02-15" ref="68831">Add 00528 to skip condition</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN6279" name="Separate Tumor Nodules, Lung, Derived SS 2018 (SEER)" tag="N6279" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.derivedSummaryStage2018 == null || line.typeOfReportingSource  == '7')
    return true
if (line.schemaId != '00360' || line.separateTumorNodules == null || line.separateTumorNodules == '8')
    return true

if (['1','4'].contains(line.separateTumorNodules) && ['0','1','3'].contains(line.derivedSummaryStage2018))
    return false
if (['2','3'].contains(line.separateTumorNodules) && line.derivedSummaryStage2018 != '7')
    return false
return true]]></expression>
            <message>Separate Tumor Nodules conflicts with Derived Summary Stage 2018</message>
            <description><![CDATA[This edit verifies that Separate Tumor Nodules SSDI, with positive nodules, is
coded consistently with Derived Summary Stage 2018 for Lung.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2021, blank (unknown), or invalid
   b. Schema ID is not 00360
   c. Separate Tumor Nodules is blank or 8 (not applicable)
   d. Derived Summary Stage 2018 is blank
   e. Type of Reporting Source = 7

2. If Separate Tumor Nodules = 1 (separate nodules in ipsilateral lung, same
     lobe) or 4 (separate nodules in ipsilateral lung, unknown lobe),
    Derived Summary Stage 2018 must not = 0, 1, or 3 (in situ, local, regional
      by nodal involvement only)

3. If Separate Tumor Nodules = 2 or 3 (separate nodules in ipsilateral lung,
    different lobe),
    Derived Summary Stage 2018 must = 7 (metastasis)]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-30" ref="68637">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN6280" name="Derived Summary Stage 2018, Regional Nodes Positive (SEER)" tag="N6280" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.derivedSummaryStage2018 == null || line.typeOfReportingSource  == '7')
    return true

if (line.schemaId == null || line.regionalNodesPositive == null)
    return true

if (Functions.matches(line.regionalNodesPositive, /^0[1-9]|[1-8]\d|9[0-7]$/))
    return !['0','1','2'].contains(line.derivedSummaryStage2018)

return true]]></expression>
            <message>Regional Nodes Positive conflicts with Derived Summary Stage 2018</message>
            <description><![CDATA[This edit checks that Derived Summary Stage 2018 is coded consistently with
Regional Nodes Positive, with positive nodes.

1. This edit is skipped for any of the following conditions:
    a. Diagnosis date is pre-2021, blank (unknown), or invalid
    b. Schema ID is blank
    c. Derived Summary Stage 2018 is blank
    d. Regional Nodes Positive is blank
    e. Type of Reporting Source = 7

2. If Regional Nodes Positive = 01-97, Derived Summary Stage 2018 must not =
    0, 1, 2]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-22" ref="68603">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN6281" name="Tumor Deposits, Colorectal, Derived SS 2018 (SEER)" tag="N6281" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.schemaId != '00200' || line.derivedSummaryStage2018 == null ||
            line.tumorDeposits == null || line.tumorDeposits == 'X8' || line.typeOfReportingSource  == '7')
        return true

if (Functions.matches(line.tumorDeposits, /^0[1-9]|[1-9][0-9]$/) || line.tumorDeposits == 'X1' || line.tumorDeposits == 'X2')
    return !Functions.matches(line.derivedSummaryStage2018, /^[012]$/)

return true]]></expression>
            <message>Tumor Deposits conflicts with Derived Summary Stage 2018</message>
            <description><![CDATA[This edit verifies that the Tumor Deposits SSDI, with positive deposits, is coded
consistently with Derived Summary Stage 2018.

1. The edit is skipped for the following conditions:
    a. Diagnosis date is before 2021, blank (unknown), or invalid.
    b. Schema ID not = 00200.
    c. Tumor Deposits is blank or X8 (not applicable).
    d. Derived Summary Stage 2018 is blank
    e. Type of Reporting Source = 7

2. The edit verifies that if Tumor Deposits is coded 01-99, X1, or X2 (tumor
   deposits identified),
    Derived Summary Stage 2018 must not =  0, 1, or 2 (in situ, local, or regional
    by direct extension only).]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-03-24" ref="68615">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN6282" name="Visceral and Parietal Pleural Invasion, Lung, Derived SS 2018 (SEER)" tag="N6282" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.schemaId != '00360' ||
            line.derivedSummaryStage2018 == null || line.visceralParietalPleuralInvasion == null || line.visceralParietalPleuralInvasion == '8' || line.typeOfReportingSource  == '7')
        return true

if (Functions.matches(line.visceralParietalPleuralInvasion, /^[4-6]$/))
    return !Functions.matches(line.derivedSummaryStage2018, /^[013]$/)

return true]]></expression>
            <message>Visceral and Parietal Pleural Invasion conflicts with Derived Summary Stage 2018</message>
            <description><![CDATA[Purpose: This edit verifies that Visceral and Parietal Pleura Invasion SSDI, with
positive invasion, is coded consistently with Derived Summary Stage 2018 for Lung.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2021, blank (unknown), or invalid
   b. Schema ID is not 00360
   c. Visceral and Parietal Pleura Invasion is blank or 8 (not applicable)
   d. Derived Summary Stage 2018 is blank
   e. Type of Reporting Source = 7

2. If Visceral and Parietal Pleura Invasion = 4 invasion of visceral pleura),
    5 (invasion of parietal pleura), or 6 (invasion of pleura NOS)
    then Derived Summary Stage 2018 must = not = 0, 1, or 3 (in situ, local,
    regional by nodal involvement only)]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-03-25" ref="68616">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN6283" name="Pleural Effusion, Pleural Mesothelioma, EOD Mets (SEER)" tag="N6283" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear < '2021' || line.dateOfDiagnosisYear == null || line.schemaId == null || line.schemaId != '00370'
            || line.pleuralEffusion == null || line.pleuralEffusion == '8' || line.eodMets == null || line.typeOfReportingSource == '7')
    return true
if (line.pleuralEffusion == '2')
    return line.eodMets == '70' || line.eodMets == '05'
return true
    ]]></expression>
            <message>Pleural Effusion conflicts with EOD Mets</message>
            <description><![CDATA[This edit verifies that the Pleural Effusion SSDI, code 2, is coded consistently
with EOD Mets for Schema ID 00370, Pleural Mesothelioma.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00370
    c. Pleural Effusion is blank or = 8 (not applicable)
    d. EOD Mets is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)


2. If Pleural Effusion = 2 (Pleural Effusion present, malignant),
   then EOD Mets if not blank must = 05 (Malignant pleural effusion) or 70 (Pleural Effusion) ]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-03-19" ref="68612">Edit created.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-21" ref="68880">Added logic for EOD mets code 05.</event>
            </history>
        </rule>
        <rule id="IFN6286" name="Extranodal Extension Head and Neck Path, Head/Neck, Derived SS 2018 (SEER)" tag="N6286" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || !((List)Context.IFN_6286_SchemaId_List).contains(line.schemaId)
            || line.extranodalExtensionHeadNeckPath == null || line.extranodalExtensionHeadNeckPath == 'X.8' || line.derivedSummaryStage2018 == null || line.typeOfReportingSource  == '7')
    return true
if (Functions.matches(line.extranodalExtensionHeadNeckPath, /^\d\.\d|X\.[1-4]$/))
    return !['0', '1', '2'].contains(line.derivedSummaryStage2018)
return true]]></expression>
            <message>Extranodal Extension Head and Neck Pathological conflicts with Derived Summary Stage 2018</message>
            <description><![CDATA[This edit verifies that the Extranodal Extension Head and Neck Pathological
is
is coded consistently with Derived Summary Stage 2018 for head and neck
sites.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is not 00060, 00071, 00072, 00073, 00074, 00075, 00076,
        00077, 00080, 00090, 00100, 00111, 00112, 00121, 00122, 00130, 00131,
        00132, 00133, 00140
   c. Extranodal Extension Head and Neck Pathological is blank or not
        applicable
   d. Derived Summary Stage 2018 is blank.
   e. Type of Reporting Source = 7

2.  If Extranodal Extension Head and Neck Pathological = 0.0-9.9,
      X.1, X.2, X.3, or X.4 (Pathological nodal involvement)
   Derived Summary Stage 2018 must not = 0, 1, or 2 (in situ, local, or
    regional by extension only)]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-04-29" ref="68624">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68965">Added skip condition for Type of Reporting Source = 7.</event>
            </history>
        </rule>
        <rule id="IFN6287" name="EOD Regional Nodes, Head/Neck, Reg Nodes Positive, Scope Nodes (SEER)" tag="N6287" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7' || line.eodRegionalNodes == null)
    return true
if (line.schemaId == null || !Functions.matches(line.schemaId, /^00(0(60|7[1-7]|80)|1(00|[12][12]|3[0-3]|50))$/))
    return true

if (Functions.matches(line.eodRegionalNodes, /^150|[567]00$/)) {
    if (['00','98','99'].contains(line.regionalNodesPositive))
        return false
    if (line.typeOfReportingSource == '6')
        return line.rxSummScopeRegLnSur == '0'
    else {
        Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
        Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
        Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
        Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
        Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
        Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

        if (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5))
            return Functions.matches(line.rxSummScopeRegLnSur, /^[0-7]$/)
        else
            return Functions.matches(line.rxSummScopeRegLnSur, /^[1-7]$/)
    }
}
return true]]></expression>
            <message>EOD Regional Nodes/Reg Nodes Pos/Scope conflict for Head and Neck schemas</message>
            <description><![CDATA[This edit verifies that EOD Regional Nodes codes for pathologic involvement
only are coded consistently with Regional Nodes Positive and RX Summ-Scope Reg LN
Sur for Head and Neck Schema IDs.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00060, 00071, 00072, 00073, 00074, 00075, 00076,
       00077, 00080, 00100, 00111, 00112, 00121, 00122, 00130, 00131 00132,
        00133, 00150
    d. EOD Regional Nodes is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)


2. If EOD Regional Nodes = 150, 500, 600, 700 (pathological only)
    a. Regional Nodes Positive must not = 00, 98, or 99 (no nodes positive)

3. If EOD Regional Nodes = 150, 500, 600, 700
    If Type of Reporting Source = 6 (autopsy only) then RX Summ--Scope Reg LN Sur must =0
    Else if vital Status = 0 and Date of Last Contact within 5 months of Date of Diagnosis then RX Summ--Scope Reg LN Sur must = 0-7
    Else RX Summ--Scope Reg LN Sur must = 1-7

NOTE:  Schema ID 00100 has only code 500]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-28" ref="68607">Edit created.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68783">Update RX Summ-Scope Reg LN Sur conditions.</event>
                <event version="SE22-022-05" user="kirbyk" date="2022-05-17" ref="68995">Replaced non-ASCII characters in description.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE23-023-03" user="shearerw" date="2023-05-24" ref="69216">Fix logic for DOLC within 5 months of DX date to allow difference in year.</event>
            </history>
        </rule>
        <rule id="IFN6288" name="LN Size, Head/Neck, Behavior (NAACCR)" tag="N6288" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear < '2021' || line.dateOfDiagnosisYear == null || line.lnSize == null || line.lnSize == 'XX.8' || line.behaviorCodeIcdO3 == null
            || line.typeOfReportingSource == null || line.schemaId == null || !Functions.matches(line.schemaId, /^(000(60|7[1234567]|80|90))|(001(00|1[12]|2[12]|3[0123]|40|50))$/))
    return true
if (line.behaviorCodeIcdO3 == '2')
    return line.lnSize == '0.0' || (line.lnSize == 'XX.9' && line.dateOfDiagnosisYear < '2023')
return true]]></expression>
            <message>LN Size conflicts with Behavior Code ICD-O-3</message>
            <description><![CDATA[This edit verifies that LN Size SSDI is coded consistently with Behavior Code
    ICD-O-3 /2, in situ, for head and neck Schema IDs.

    1. The edit is skipped for the following conditions:
       a. Date of Diagnosis before 2021, blank (unknown), or invalid.
       b. Schema ID is blank or not in the following list:

            00060
            00071
            00072
            00073
            00074
            00075
            00076
            00077
            00080
            00090
            00100
            00111
            00112
            00121
            00122
            00130
            00131
            00132
            00133
            00140
            00150

       c. LN Size is blank or XX.8 (not applicable).
       d. Behavior Code ICD-O-3 is blank
        e. Type of Reporting Source = 7 (Death Certificate Only)

    2. If Behavior Code ICD-O-3 = 2 (in situ) and year of diagnosis = 2021-2022
        LN Size must = 0.0 (no nodes involved) or XX.9 (unknown if nodes involved)

    3. If Behavior Code ICD-O-3 = 2 (in situ) and year of diagnosis = 2023+
        LN Size must = 0.0 (non-invasive neoplasm behavior)]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-03-16" ref="68630">Edit created.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-22" ref="69175">Stop allowing XX.9 for LN size for 2023 forward.</event>
            </history>
        </rule>
        <rule id="IFN6289" name="EOD Regional Nodes, Breast, Sentinel Nodes Positive, Scope Nodes (SEER)" tag="N6289" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7' || line.eodRegionalNodes == null)
    return true
if (line.schemaId == null || line.schemaId != '00480' || line.sentinelLymphNodesPositive == null)
    return true

if (Functions.matches(line.eodRegionalNodes, /^0[0357]0$/))
    return ['00','98','99'].contains(line.sentinelLymphNodesPositive)
else if (['250','300'].contains(line.eodRegionalNodes)) {
    if (['00','98','99'].contains(line.sentinelLymphNodesPositive))
        return false
    if (line.rxSummScopeRegLnSur != null && !['2','6','7'].contains(line.rxSummScopeRegLnSur))
        return false
}
return true]]></expression>
            <message>EOD Regional Nodes/Sentinel/Scope conflict for Breast</message>
            <description><![CDATA[This edit verifies that EOD Regional Nodes codes are coded consistently with Sentinel Nodes Positive
for Schema ID 00480, Breast.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2021, blank (unknown), or invalid
       b. Schema ID is not 00480
   c. EOD Regional Nodes is blank
    d. Sentinel Lymph Nodes Positive is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. If EOD Regional Nodes = 000 (negative nodal involvement) or 030, 050, or 070
    (pathological assessment of nodes with ITCs only or negative nodes)
    then Sentinel Lymph Nodes Positive must = 00, 98, or 99 (no nodes positive)

3. If EOD Regional Nodes = 250 or 300 (pathologic assessment only, internal mammary
   nodes positive on sentinel node biopsy without and with axillary nodes)
    then Sentinel Lymph Nodes Positive must not = 00, 98, or 99 (no nodes positive)

4. If EOD Regional Nodes = 250 or 300
    then RX Summ--Scope Reg LN Sur if not blank must = 2, 6, or 7 (sentinel
   node procedure performed)]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-28" ref="68607">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6290" name="Mets at DX, Melanoma Iris/Choroid, EOD Mets (SEER)" tag="N6290" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.eodMets == null || line.schemaId == null || !['00671','00672'].contains(line.schemaId))
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true

if ((line.metsAtDxBone == '1' || line.metsAtDxBrain == '1' || line.metsAtDxDistantLn == '1' || line.metsAtDxLiver == '1' || line.metsAtDxLung == '1' || line.metsAtDxOther == '1') && !['10','30','50','70'].contains(line.eodMets))
    return false
if (line.metsAtDxOther == '2' && line.eodMets != '70')
    return false
return true]]></expression>
            <message>Mets at DX fields conflict with EOD Mets for Melanoma Iris/Choroid</message>
            <description><![CDATA[This edit verifies that Mets at DX-Bone, Mets at DX-Brain,
Mets at DX-Distant LN, Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other
are coded consistently with EOD Mets for Schema ID 00671, Melanoma Iris, and
Schema ID 00672, Melanoma Choroid.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00671 or 00672
    c. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN,
        Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other are all blank
    d. EOD Mets is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)


2. If Mets at DX-Bone = 1, Mets at DX-Brain = 1, Mets at DX-Distant LN = 1
      Mets at DX-Liver = 1, Mets at DX-Lung = 1, or Mets at DX-Other = 1,
       then EOD Mets must = 10, 30, 50, or 70.

3. If Mets at DX-Other = 2,
       then EOD Mets must = 70.]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-14" ref="68608">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6291" name="Extranodal Extension Head and Neck Clin, Head/Neck, Behavior (NAACCR)" tag="N6291" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || !((List)Context.IFN_6292_SchemaId_List).contains(line.schemaId)
|| line.extranodalExtensionHeadNeckClin == null || line.extranodalExtensionHeadNeckClin == '8' ||  line.behaviorCodeIcdO3 == null ||  line.typeOfReportingSource == '7')
    return true
if (line.behaviorCodeIcdO3 == '2') {
    if (line.dateOfDiagnosisYear < '2023')
        return ['7','9'].contains(line.extranodalExtensionHeadNeckClin)
    else
        return line.extranodalExtensionHeadNeckClin == '7'
}
return true]]></expression>
            <message>Extranodal Extension Head and Neck Clinical conflicts with Behavior Code ICD-O-3</message>
            <description><![CDATA[This edit verifies that the Extranodal Extension Head and Neck Clinical SSDI is
coded consistently with Behavior Code ICD-O-3 /2 for in situ, for head and neck
Schema IDs.

1. This edit is skipped for the following conditions:
    a. Date of Diagnosis is pre-2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00071, 00072, 00073, 00074, 00075, 00076, 00077,
        00080, 00090, 00100, 00111, 00112, 00121, 00122, 00130, 00131, 00132,
        00133, 00140.
    c. Extranodal Extension Head and Neck Clinical is blank or 8 (not applicable)
    d. Behavior Code ICD-O-3 is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

Extranodal Extension Head and Neck Clinical is required by SEER only if collected by a CoC-
accredited facility on an analytic case (CoC Accredited Flag = 1).


2. If Behavior Code ICD-O-3 = 2 (in situ) and year of diagnosis = 2021-2022
    then Extranodal Extension Head and Neck Clinical must = 7 (no lymph node
    involvement during diagnostic workup) or 9 (not documented in medical record)

3. If Behavior Code ICD-O-3 = 2 (in situ) and year of diagnosis = 2023+
    then Extranodal Extension Head and Neck Clinical must = 7 (nnon-invasive neoplasm, behavior /2)]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-21" ref="69176">Removed 9 as a valid code for DX year &gt;= 2023.</event>
            </history>
        </rule>
        <rule id="IFN6293" name="Extranodal Extension Head and Neck Path, Head/Neck, Behavior (NAACCR)" tag="N6293" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || !((List)Context.IFN_6293_SchemaId_List).contains(line.schemaId)
|| line.extranodalExtensionHeadNeckPath == null || line.extranodalExtensionHeadNeckPath == 'X.8' || line.behaviorCodeIcdO3 == null || line.typeOfReportingSource == '7')
    return true

if (line.behaviorCodeIcdO3 == '2')
    return line.extranodalExtensionHeadNeckPath == 'X.7' || (line.extranodalExtensionHeadNeckPath == 'X.9')
return true]]></expression>
            <message>Extranodal Extension Head and Neck Pathological conflicts with Behavior Code ICD-O-3</message>
            <description><![CDATA[This edit verifies that the Extranodal Extension Head and Neck Pathological SSDI
is coded consistently with Behavior Code ICD-O-3 /2 for in situ, for head and
neck Schema IDs.

1. This edit is skipped for the following conditions:
    a. Date of Diagnosis is pre-2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00071, 00072, 00073, 00074, 00075, 00076, 00077,
        00080, 00090, 00100, 00111, 00112, 00121, 00122, 00130, 00131, 00132,
        00133, 00140.
    c. Extranodal Extension Head and Neck Pathological is blank or X.8 (not
        applicable)
    d. Behavior Code ICD-O-3 is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. If Behavior Code ICD-O-3 = 2 (in situ)
    then Extranodal Extension Head and Neck Pathological must = X.7 (surgically resected
    regional lymph nodes negative for cancer) or X.9 (non-invasive neoplasm (behavior /2))]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-04-29" ref="68624">Edit created.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-22" ref="69177">Stop allowing X.9 for Extranodal Extension Head/Neck Pathological for 2023 forward.</event>
                <event version="SE23-023-03" user="shearerw" date="2023-05-19" ref="69257">Allow X.9 for Extranodal Extension Head/Neck Pathological for 2021 forward.</event>
            </history>
        </rule>
        <rule id="IFN6294" name="Extranodal Extension Head and Neck Path, Head/Neck, Scope Nodes (SEER)" tag="N6294" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || !((List)Context.IFN_6294_SchemaId_List).contains(line.schemaId)
|| line.extranodalExtensionHeadNeckPath == null || line.extranodalExtensionHeadNeckPath == 'X.8' || line.rxSummScopeRegLnSur == null || line.typeOfReportingSource == '6' || line.typeOfReportingSource == '7')
    return true

Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

if (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5))
    return true

if (line.extranodalExtensionHeadNeckPath == '0.0')
    return Functions.matches(line.rxSummScopeRegLnSur, /^[3-7]$/)
else if (Functions.matches(line.extranodalExtensionHeadNeckPath, /^\d\.\d|X\.[1-7]$/))
    return Functions.matches(line.rxSummScopeRegLnSur, /^[2-7]$/)

return true]]></expression>
            <message>Extranodal Extension Head and Neck Pathological conflicts with RX Summ--Scope Reg LN Sur</message>
            <description><![CDATA[This edit verifies that the Extranodal Extension Head and Neck Pathological SSDI
with codes indicating nodal procedure is coded consistently with RX Summ--Scope
Reg LN Sur, for head and neck Schema IDs.

1. This edit is skipped for the following conditions:
    a. Date of Diagnosis is pre-2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00060, 00071, 00072, 00073, 00074, 00075, 00076,
        00077,00080, 00090, 00100, 00111, 00112, 00121, 00122, 00130, 00131, 00132,
        00133, 00140.
    c. Extranodal Extension Head and Neck Pathological is blank or X.8 (not
        applicable)
    d. RX Summ--Scope Reg LN Sur is blank
    e. Type of Reporting Source = 6 (Autopsy only) or 7 (Death Certificate Only)
    f. Vital Status = 0 and Date of Last Contact within 5 months of Date of Diagnosis

2. If Extranodal Extension Head and Neck Pathological = 0.0 (lymph nodes positive but ENE not identified),
    RX Summ--Scope Reg LN Sur must = 3-7.

3. If Extranodal Extension Head and Neck Pathological = 0.1-9.9, X.1-X.7,
    RX Summ--Scope Reg LN Sur must = 2-7. Sentinel node biopsy may assess presence of ENE.]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="0011-11-11" ref="68624">Edit created.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-01" user="smithm" date="2022-02-07" ref="68790">Add skip conditions.</event>
                <event version="SE23-023-01" user="cooki" date="2023-02-23" ref="69182">Updated logic to be dependent on DX year.</event>
                <event version="SE23-023-03" user="shearerw" date="2023-05-24" ref="69216">Fix logic for DOLC within 5 months of DX date to allow difference in year.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-02-22" ref="69336">Remove year conditions in non-skip condition logic.</event>
            </history>
        </rule>
        <rule id="IFN6295" name="EOD Regional Nodes, Kaposi Sarcoma, Scope Nodes (SEER)" tag="N6295" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7' || line.eodRegionalNodes == null)
    return true
if (line.schemaId == null || line.schemaId != '00458')
    return true
if (line.rxSummScopeRegLnSur == null)
    return true

if (['200','300'].contains(line.eodRegionalNodes)) {
    if (['00','98','99'].contains(line.regionalNodesPositive))
        return false

    Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
    Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
    Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
    Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
    Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
    Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

    if (line.typeOfReportingSource == '6')
        return line.rxSummScopeRegLnSur == '0'
    else if (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5))
        return Functions.matches(line.rxSummScopeRegLnSur, /^[0-7]$/)
    else
        return Functions.matches(line.rxSummScopeRegLnSur, /^[1-7]$/)
}

return true]]></expression>
            <message>EOD Regional Nodes conflicts with RX Summ--Scope Reg LN Sur and/or RX Summ--Surg Oth Reg/Dis</message>
            <description><![CDATA[This edit verifies that EOD Regional Nodes codes for pathologic involvement only are coded consistently with RX Summ-Scope Reg LN Sur
for Schema ID 00458, Kaposi Sarcoma.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00458
    c. EOD Regional Nodes is blank
    d. RX Summ-Scope Reg LN Sur is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If EOD Regional Nodes = 200 or 300 (pathological only)
    Regional Nodes Positive must not = 00, 98, or 99 (no nodes positive)

3. If EOD Regional Nodes = 200 or 300
    If Type of Reporting Source = 6 (autopsy only)
    RX Summ-Scope Reg LN Sur must = 0
    Else if Vital Status = 0 and Date of Last Contact within 5 months of Date of Diagnosis
    RX Summ-Scope Reg LN Sur must = 0-7
    Else RX Summ-Scope Reg LN Sur must = 1-7]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-28" ref="68607">Edit created.</event>
                <event version="SE22-022-01" user="smithm" date="2022-02-07" ref="68784">Add skip condition</event>
                <event version="SE23-023-03" user="shearerw" date="2023-05-24" ref="69216">Fix logic for DOLC within 5 months of DX date to allow difference in year.</event>
                <event version="SE24-024-06" user="cooki" date="2024-07-16" ref="69495">Update name, logic, and description to v24a.</event>
            </history>
        </rule>
        <rule id="IFN6296" name="EOD Regional Nodes, Merkel Cell, Reg Nodes Positive, Scope Nodes (SEER)" tag="N6296" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7' || line.eodRegionalNodes == null)
    return true
if (line.schemaId == null || line.schemaId != '00460')
    return true

if (line.eodRegionalNodes == '100') {
    if (line.rxSummScopeRegLnSur != null && !['0','9'].contains(line.rxSummScopeRegLnSur))
        return false
    if (line.regionalNodesPositive != null && !['98','99'].contains(line.regionalNodesPositive))
        return false
}
else if (line.eodRegionalNodes == '200') {
    if (line.rxSummScopeRegLnSur != null && line.rxSummScopeRegLnSur != '1')
        return false
    if (line.regionalNodesPositive != null && line.regionalNodesPositive != '95')
        return false
}
else if (line.eodRegionalNodes == '300') {
    if (line.rxSummScopeRegLnSur != null && !['2','6','7'].contains(line.rxSummScopeRegLnSur))
        return false
    if (line.regionalNodesPositive != null && !Functions.matches(line.regionalNodesPositive, /^0[1-9]|[1-8]\d|9[07]$/))
        return false
}
else if (line.eodRegionalNodes == '350') {
    if (line.regionalNodesPositive != null && !Functions.matches(line.regionalNodesPositive, /^0[1-9]|[1-8]\d|9[07]$/))
        return false
    if (line.typeOfReportingSource == '6') {
        if (line.rxSummScopeRegLnSur != '0')
            return false
    }
    else {
        Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
        Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
        Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
        Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
        Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
        Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

        if (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5)) {
            if (!Functions.matches(line.rxSummScopeRegLnSur, /^[03-7]$/))
                return false
        }
        else if (!Functions.matches(line.rxSummScopeRegLnSur, /^[3-7]$/))
            return false
    }
}
else if (['400','500','750'].contains(line.eodRegionalNodes)) {
    if (line.regionalNodesPositive != null && !Functions.matches(line.regionalNodesPositive, /^0[1-9]|[1-8]\d|9[057]$/))
        return false
    if (line.typeOfReportingSource == '6') {
        if (line.rxSummScopeRegLnSur != '0')
            return false
    }
    else {
        Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
        Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
        Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
        Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
        Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
        Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

        if (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5)) {
            if (!Functions.matches(line.rxSummScopeRegLnSur, /^[0-7]$/))
                return false
        }
        else if (!Functions.matches(line.rxSummScopeRegLnSur, /^[1-7]$/))
            return false
    }
}
else if (['600','700'].contains(line.eodRegionalNodes) && line.regionalNodesPositive != null && !['00','98','99'].contains(line.regionalNodesPositive))
    return false
else if (line.eodRegionalNodes == '650' && line.regionalNodesPositive != null && !['00','95','97','98','99'].contains(line.regionalNodesPositive))
    return false

if (['700','750'].contains(line.eodRegionalNodes)) {
    if (line.typeOfReportingSource == '6') {
        if (line.reasonForNoSurgery != '9')
            return false
    }
    else {
        Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
        Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
        Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
        Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
        Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
        Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

        if (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5)) {
            if (!Functions.matches(line.reasonForNoSurgery, /^[0-25-9]$/))
                return false
        }
        else if (line.reasonForNoSurgery != '0')
            return false
    }
}
return true]]></expression>
            <message>EOD Regional Nodes/Reg Nodes Pos/Scope conflict for Merkel Cell</message>
            <description><![CDATA[This edit verifies that EOD Regional Nodes is coded consistently with RX Summ--
Scope Reg LN Sur and Regional Nodes Positive for Schema ID 00460, Merkel Cell.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00460
    c. EOD Regional Nodes is blank
    d. Type of Reporting Source is 7 (Death Certificate Only)


2. If EOD Regional Nodes = 100 (clinical only without biopsy or resection),
    RX Summ--Scope Reg LN Sur if not blank must = 0 or 9 (no nodal procedure
   or unknown if nodal procedure) and
   Regional Nodes Positive if not blank must = 98 or 99

3. If EOD Regional Nodes = 200 (clinical only with core biopsy, FNA),
    RX Summ--Scope Reg LN Sur if not blank must = 1 (biopsy or aspiration of
   regional nodes) and Regional Nodes Positive if not blank must = 95

4. If EOD Regional Nodes = 300 (pathological only, positive on sentinel node
   biopsy),
    RX Summ--Scope Reg LN Sur if not blank must = 2, 6-7 and
    Regional Nodes Positive if not blank must = 01-90, 97

5. If EOD Regional Nodes = 350 (pathological only, positive on resection),
    a. Regional Nodes Positive if not blank must = 01-90, 97
    b. If Type of Reporting Source = 6 (autopsy only) then RX Summ--Scope Reg LN Sur must =0
    Else if vital Status = 0 and Date of Last Contact within 5 months of Date of Diagnosis then RX Summ--Scope Reg LN Sur must = 0,3-7
    Else RX Summ--Scope Reg LN Sur must = 3-7

6. If EOD Regional Nodes = 400, 500, or 750 (pathological with lymph node
    metastasis),
    a. Regional Nodes Positive if not blank must = 01-90, 95, or 97
    b. If Type of Reporting Source = 6 (autopsy only) then RX Summ--Scope Reg LN Sur must =0
    Else if vital Status = 0 and Date of Last Contact within 5 months of Date of Diagnosis then RX Summ--Scope Reg LN Sur must = 0-7
    Else RX Summ--Scope Reg LN Sur must = 1-7

7. If EOD Regional Nodes = 600 (clinical in transit met without lymph node
    metastasis or unknown ) or 700 (pathologic in transit met without lymph node
    metastasis or unknown)
    Regional Nodes Positive if not blank must = 00, 98, or 99

8. If EOD Regional Nodes = 650 (clinical only)
    Regional Nodes Positive if not blank must = 00, 95, 97, 98, or 99

9. If EOD Regional Nodes = 700 or 750 (pathologic in transit mets)
    If Type of Reporting Source = 6 (autopsy only) then Reason for No Surgery must =9
    Else if vital Status = 0 and Date of Last Contact within 5 months of Date of Diagnosis then Reason for No Surgery must = 0-2, 5-9
    Else Reason for No Surgery must = 0]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-28" ref="68607">Edit created.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-26" ref="68785">Update RX Summ-Scope Reg LN Sur conditions.</event>
                <event version="SE22-022-05" user="kirbyk" date="2022-05-17" ref="68995">Replaced non-ASCII characters in description.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-22" ref="69187">Added 97 as valid value for Regional Nodes Positive when EOD Nodes = 650.</event>
                <event version="SE23-023-03" user="shearerw" date="2023-05-24" ref="69216">Fix logic for DOLC within 5 months of DX date to allow difference in year.</event>
            </history>
        </rule>
        <rule id="IFN6297" name="Mets at DX, Merkel Cell, EOD Mets (SEER)" tag="N6297" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.eodMets == null || line.schemaId == null || line.schemaId != '00460')
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true

boolean metsAtDxBoneCondition = line.metsAtDxBone == null || ['0','9'].contains(line.metsAtDxBone)
boolean metsAtDxBrainCondition = line.metsAtDxBrain == null || ['0','9'].contains(line.metsAtDxBrain)
boolean metsAtDxDistantLnCondition = line.metsAtDxDistantLn == null || ['0','9'].contains(line.metsAtDxDistantLn)
boolean metsAtDxLiverCondition = line.metsAtDxLiver == null || ['0','9'].contains(line.metsAtDxLiver)
boolean metsAtDxLungCondition = line.metsAtDxLung == null || ['0','9'].contains(line.metsAtDxLung)
boolean metsAtDxOtherCondition = line.metsAtDxOther == null || ['0','9'].contains(line.metsAtDxOther)

if (line.metsAtDxDistantLn == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxLiverCondition && metsAtDxLungCondition && metsAtDxOtherCondition && line.eodMets != '10')
    return false
if (line.metsAtDxBone == '1' && metsAtDxBrainCondition && (metsAtDxDistantLnCondition || line.metsAtDxDistantLn == '1') && metsAtDxLiverCondition && metsAtDxLungCondition && metsAtDxOtherCondition && line.eodMets != '20')
    return false
if (line.metsAtDxOther == '1' && (metsAtDxBoneCondition || line.metsAtDxBone == '1') && metsAtDxBrainCondition && (metsAtDxDistantLnCondition || line.metsAtDxDistantLn == '1') && metsAtDxLiverCondition && metsAtDxLungCondition && !['20','50'].contains(line.eodMets))
    return false
if (line.metsAtDxLung == '1' && (metsAtDxBoneCondition || line.metsAtDxBone == '1') && metsAtDxBrainCondition && (metsAtDxDistantLnCondition || line.metsAtDxDistantLn == '1') && metsAtDxLiverCondition && metsAtDxOtherCondition && line.eodMets != '30')
    return false
if (line.metsAtDxOther == '1' && line.metsAtDxLung == '1' && (metsAtDxBoneCondition || line.metsAtDxBone == '1') && metsAtDxBrainCondition && (metsAtDxDistantLnCondition || line.metsAtDxDistantLn == '1') && metsAtDxLiverCondition && !['30','50'].contains(line.eodMets))
    return false
if ((line.metsAtDxBrain == '1' || line.metsAtDxLiver == '1' || line.metsAtDxOther == '2') && line.eodMets != '50')
    return false
if (line.eodMets == '10' && line.metsAtDxDistantLn != '1')
    return false
if (line.eodMets == '30' && line.metsAtDxLung != '1')
    return false
return true]]></expression>
            <message>Mets at DX fields conflict with EOD Mets for Merkel Cell</message>
            <description><![CDATA[This edit verifies that Mets at DX-Bone, Mets at DX-Brain,
Mets at DX-Distant LN, Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other
are coded consistently with EOD Mets for Schema ID 00460, Merkel Cell Skin.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00460
    c. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN,
        Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other are all blank
    d. EOD Mets is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If Mets at DX-Distant LN = 1 (and Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
       Mets at DX-Liver = 0,9, Mets at DX-Lung = 0,9, and Mets at DX-Other = 0,9, or
      fields are empty)
      then EOD Mets must = 10

3. If Mets at DX-Bone = 1 (and Mets at DX-Brain = 0,9,Mets at DX-Distant LN = 0,1,9,
       Mets at DX-Liver = 0,9, Mets at DX-Lung = 0,9, and Mets at DX-Other = 0,9, or
      fields are empty)
      then EOD Mets must = 20

4.  If Mets at DX-Other = 1 (and Mets at DX-Bone = 0,1,9 and Mets at DX-Brain = 0,9,
      Mets at DX-Distant LN = 0,1,9, Mets at DX-liver = 0,9, and Mets at DX-Lung = 0,9,
      or fields are empty)
      then EOD Mets must = 20 or 50.

5. If Mets at DX-Lung = 1 (and Mets at DX-Bone = 0,1,9, Mets at DX-Brain = 0,9,Mets at
       DX-Distant LN = 0,1,9, Mets at DX-Liver = 0,9, and Mets at DX-Other = 0,9, or
        fields are empty)
        then EOD Mets must = 30

6. If Mets at DX-Lung = 1 and Mets at DX-Other = 1 (and Mets at DX-Bone = 0,1,9, Mets at
       DX-Brain = 0,9,Mets at DX-Distant LN = 0,1,9, and Mets at DX-Liver = 0,9, or fields
        are empty)
        then EOD Mets must = 30 or 50

7. If Mets at DX-Brain = 1 or Mets at DX-Liver = 1 or Mets at DX-Other = 2
        then EOD Mets must = 50

8.  If EOD Mets = 10 (Distant lymph nodes)
      Mets at DX-Distant LN must = 1

9. If EOD Mets = 30 (Lung)
        Mets at DX-Lung must = 1]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-14" ref="68608">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6298" name="LN Isolated Tumor Cells (ITC), Merkel Cell, Behavior (NAACCR)" tag="N6298" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if(line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.schemaId != '00460'
            || line.lnIsolatedTumorCells == null || line.lnIsolatedTumorCells == '8' || line.behaviorCodeIcdO3 == null || line.typeOfReportingSource == '7' )
    return true
if (line.behaviorCodeIcdO3 == '2')
    return line.lnIsolatedTumorCells != '1'
return true]]></expression>
            <message>LN Isolated Tumor Cells (ITC) conflicts with Behavior Code ICD-O-3</message>
            <description><![CDATA[This edit verifies that the LN Isolated Tumor Cells (ITC) SSDI is coded consistently with
Behavior Code ICD-O-3 code 2 for Schema ID 00460, Merkel Cell Skin.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00460
    c. LN Isolated Tumor Cells (ITC) is blank or 8 (not applicable)
    d. Behavior Code ICD-O-3 is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)


2. If Behavior Code ICD-O-3 = 2 (in situ)
    LN Isolated Tumor Cells (ITC) must not = 1 (regional nodes positive for ITC)]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-03-22" ref="68628">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6301" name="EOD Regional Nodes, Skin Eyelid, Reg Nodes Positive, Scope Nodes (SEER)" tag="N6301" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7' || line.eodRegionalNodes == null)
    return true
if (line.schemaId == null || line.schemaId != '00640')
    return true

if (line.eodRegionalNodes == '200') {
    if (line.regionalNodesPositive != null && !['01','95','97'].contains(line.regionalNodesPositive))
        return false
}
else if (line.eodRegionalNodes == '500') {
    if (line.regionalNodesPositive != null && !Functions.matches(line.regionalNodesPositive, /^0[2-9]|[1-8]\d|9[057]$/))
    return false
}

if (['200','500'].contains(line.eodRegionalNodes)) {
    if (line.typeOfReportingSource == '6') {
        if (line.rxSummScopeRegLnSur != '0')
            return false
    }
    else {
        Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
        Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
        Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
        Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
        Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
        Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

        if (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5)) {
            if (!Functions.matches(line.rxSummScopeRegLnSur, /^[0-7]$/))
                return false
        }
        else if (!Functions.matches(line.rxSummScopeRegLnSur, /^[1-7]$/))
            return false
    }
}
return true]]></expression>
            <message>EOD Reginoal Nodes/Reg Nodes Pos/Scope conflict for Skin of Eyelid</message>
            <description><![CDATA[This edit verifies that EOD Regional Nodes is coded consistently with RX Summ--
Scope Reg LN Sur and Regional Nodes Positive for Schema ID 00640, Skin of
Eyelid.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00640
    c. EOD Regional Nodes is blank
    d. Type of Reporting Source is 7 (Death Certificate Only)

2. If EOD Regional Nodes = 200 (single positive node based on biopsy),
    Regional Nodes Positive if not blank must = 01 or 95 or 97

3. If EOD Regional Nodes = 500 (multiple positive nodes based on biopsy),
    Regional Nodes Positive if not blank must = 02-90, 95, 97

4. If EOD Regional Nodes = 200 or 500
    If Type of Reporting Source = 6 (autopsy only) then RX Summ--Scope Reg LN Sur must =0
    Else if vital Status = 0 and Date of Last Contact within 5 months of Date of Diagnosis then RX Summ--Scope Reg LN Sur must = 0-7
    Else RX Summ--Scope Reg LN Sur must = 1-7]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-28" ref="68607">Edit created.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-26" ref="68787">Update RX Summ-Scope Reg LN Sur conditions.</event>
                <event version="SE22-022-05" user="kirbyk" date="2022-05-17" ref="68995">Replaced non-ASCII characters in description.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE23-023-01" user="cooki" date="2023-03-06" ref="69188">Added code 97 to EOD Regional Nodes = 200.</event>
                <event version="SE23-023-03" user="shearerw" date="2023-05-24" ref="69216">Fix logic for DOLC within 5 months of DX date to allow difference in year.</event>
            </history>
        </rule>
        <rule id="IFN6302" name="EOD Primary Tumor/Mets, Conjunctiva, Mets at DX-Bone, Brain (SEER)" tag="N6302" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.schemaId != '00650' ||
(line.eodPrimaryTumor == null && line.eodMets == null) || (line.metsAtDxBrain == null && line.metsAtDxBone == null)  || line.typeOfReportingSource == '7')
    return true
if (line.eodPrimaryTumor == '500' && line.eodMets == '00')
    return line.metsAtDxBone == null || line.metsAtDxBone == '0'
if (line.eodPrimaryTumor == '650' && line.eodMets == '00')
    return line.metsAtDxBrain == null || line.metsAtDxBrain == '0'
return true]]></expression>
            <message>EOD Primary Tumor and EOD Mets are inconsistent with Mets at DX-Brain</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor indicating bone or brain involvement
and EOD Mets indicating no metastases are coded consistently with Mets at DX-Bone/Brain
for Schema ID 00650, Conjunctiva.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00650
    c. EOD Primary Tumor and EOD Mets are both blank
    d. Mets at DX-Bone and Mets at DX-Brain are both blank
    e. Type of Reporting Source is 7 (Death Certificate Only)


2. If EOD Primary Tumor = 500 (Bone, Bone of Orbit) and EOD Mets = 00 (no
    metatasis)
    then Mets at DX-Bone if not blank must = 0 (no bone metastasis)

3. If EOD Primary Tumor = 650 (Brain) and EOD Mets = 00 (no metatasis)
    then Mets at DX-Brain if not blank must = 0 (no brain metastasis)]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-04-20" ref="68623">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6303" name="Measured Thickness, Ophthalmic Melanoma, EOD Primary Tumor (SEER)" tag="N6303" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.eodPrimaryTumor == null || line.measuredThickness == null || line.measuredThickness == 'XX.8')
    return true
if (line.schemaId == null || (line.schemaId != '00660' && line.schemaId != '00671' && line.schemaId != '00672'))
    return true

if (line.eodPrimaryTumor == '800')
    return line.measuredThickness == '0.0' || line.measuredThickness == 'XX.9'

return true]]></expression>
            <message>Measured Thickness conflicts with EOD Primary Tumor</message>
            <description><![CDATA[This edit verifies that the Measured Thickness SSDI is coded consistently with
EOD Primary Tumor indicating no evidence of primary site for Schema IDs 00660,
Melanoma Conjunctiva, 00671, Melanoma Iris, and 00672, Melanoma Choroid &
Ciliary Body.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00660, 00671, or 00672
    c. EOD Primary Tumor is blank
    d. Measured Thickness is blank or XX.8 (not applicable)
    e. Type of Reporting Source is 7 (Death Certificate Only)


2. If EOD Primary Tumor = 800 (no evidence of primary tumor)
    Measured Thickness must = 0.0 (no tumor found) or XX.9 (not documented in
   medical record)]]></description>
            <history>
                <event version="SE21-021-04" user="kirbyk" date="2021-04-19" ref="68638">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6304" name="Mets at DX, Retinoblastoma, EOD Mets (SEER)" tag="N6304" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.eodMets == null || line.schemaId == null || line.schemaId != '00680')
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true

boolean metsAtDxBoneCondition = line.metsAtDxBone == null || ['0','9'].contains(line.metsAtDxBone)
boolean metsAtDxBrainCondition = line.metsAtDxBrain == null || ['0','9'].contains(line.metsAtDxBrain)
boolean metsAtDxDistantLnCondition = line.metsAtDxDistantLn == null || ['0','9'].contains(line.metsAtDxDistantLn)
boolean metsAtDxLiverCondition = line.metsAtDxLiver == null || ['0','9'].contains(line.metsAtDxLiver)
boolean metsAtDxLungCondition = line.metsAtDxLung == null || ['0','9'].contains(line.metsAtDxLung)
boolean metsAtDxOtherCondition = line.metsAtDxOther == null || ['0','9'].contains(line.metsAtDxOther)

if (line.metsAtDxDistantLn == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxLiverCondition && metsAtDxLungCondition && metsAtDxOtherCondition && line.eodMets != '10')
    return false
if ((line.metsAtDxBone == '1' || line.metsAtDxLiver == '1' || line.metsAtDxLung == '1' || line.metsAtDxOther == '2') && (metsAtDxDistantLnCondition || line.metsAtDxDistantLn == '1') && metsAtDxBrainCondition && line.eodMets != '30')
    return false
if ((line.metsAtDxBone == '1' || line.metsAtDxLiver == '1' || line.metsAtDxLung == '1' || line.metsAtDxOther == '1') && (metsAtDxDistantLnCondition || line.metsAtDxDistantLn == '1') && metsAtDxBrainCondition && !['30','50'].contains(line.eodMets))
    return false

if (line.metsAtDxBrain == '1' && line.eodMets != '50')
    return false
if (line.eodMets == '10' && line.metsAtDxDistantLn != '1')
    return false
return true]]></expression>
            <message>Mets at DX fields conflict with EOD Mets for Retinoblastoma</message>
            <description><![CDATA[This edit verifies that Mets at DX-Bone, Mets at DX-Brain,
Mets at DX-Distant LN, Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other
are coded consistently with EOD Mets for Schema ID 00680, Retinoblastoma.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00680
    c. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN,
        Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other are all blank
    d. EOD Mets is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If Mets at DX-Distant LN = 1 (and Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
       Mets at DX-Liver = 0,9, Mets at DX-Lung = 0,9, Mets at DX-Other = 0,9, or
      fields are empty)
       then EOD Mets must = 10

3. If Mets at DX-Bone = 1 or Mets at DX-Liver = 1 or Mets at DX-Lung = 1 or
      Mets at DX-Other = 2 (and Mets at DX-Distant LN = 0,1,9 and Mets at DX-Brain = 0,9,
      or fields are empty),
        then EOD Mets must = 30

4. If Mets at DX-Bone = 1 or Mets at DX-Liver = 1 or Mets at DX-Lung = 1 or
      Mets at DX-Other = 1 (and Mets at DX-Distant LN = 0,1,9 and Mets at DX-Brain = 0,9,
      or fields are empty),
        then EOD Mets must = 30 or 50

5. If Mets at DX-Brain = 1,
        then EOD Mets must = 50

6. If EOD Mets = 10 (Distant lymph nodes)
        Mets at DX-Distant LN must = 1]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-14" ref="68608">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6305" name="Mets at DX, Lymphoma Ocular Adnexa, EOD Nodes/Mets (SEER)" tag="N6305" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.eodMets == null || line.schemaId == null || line.schemaId != '00710')
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true

if ((line.metsAtDxBone == '1' || line.metsAtDxBrain == '1' || line.metsAtDxLiver == '1' || line.metsAtDxLung == '1' || line.metsAtDxOther == '2') && !['10','50'].contains(line.eodMets))
    return false
if (line.metsAtDxOther == '1' && !['10','30','50'].contains(line.eodMets))
    return false
if (line.metsAtDxDistantLn == '1' && !['600','700','750'].contains(line.eodRegionalNodes))
    return false
if (['30','50'].contains(line.eodMets) && line.metsAtDxOther != '1')
    return false
if (['600','700','750'].contains(line.eodRegionalNodes) && line.metsAtDxDistantLn != '1')
    return false
return true]]></expression>
            <message>Mets at DX fields conflict with EOD Nodes/Mets for Lymphoma Ocular Adnexa</message>
            <description><![CDATA[This edit verifies that Mets at DX-Bone, Mets at DX-Brain,
Mets at DX-Distant LN, Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other
are coded consistently with EOD Mets for Schema ID 00710, Lymphoma Ocular Adnexa.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00710
    c. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN,
        Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other are all blank
    d. EOD Mets is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If Mets at DX-Bone = 1, Mets at DX-Brain = 1, Mets at Dx-Liver = 1,
    or Mets at DX-Lung = 1 or Mets at DX-Other = 2,
        then EOD Mets must = 10 or 50.

3. If Mets at DX-Other = 1,
        then EOD Mets must = 10, 30, or 50

4. If Mets at DX-Distant LN = 1,
      then EOD Regional Nodes must = 600 (mediastinal), 700 (peripheral and central
      lymph nodes), or 750 (distant nodes NOS).

5. If EOD Mets = 30 or 50
      then Mets at DX-Other must = 1

6. if EOD Regional Nodes = 600, 700, or 750 (Distant lymph nodes)
       then Mets at DX-Distant LN must = 1]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-14" ref="68608">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6306" name="Mets at DX, NET Adrenal, EOD Mets (SEER)" tag="N6306" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.eodMets == null || line.schemaId == null || line.schemaId != '00770')
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true

boolean metsAtDxBoneCondition = line.metsAtDxBone == null || ['0','9'].contains(line.metsAtDxBone)
boolean metsAtDxBrainCondition = line.metsAtDxBrain == null || ['0','9'].contains(line.metsAtDxBrain)
boolean metsAtDxDistantLnCondition = line.metsAtDxDistantLn == null || ['0','9'].contains(line.metsAtDxDistantLn)
boolean metsAtDxLiverCondition = line.metsAtDxLiver == null || ['0','9'].contains(line.metsAtDxLiver)
boolean metsAtDxLungCondition = line.metsAtDxLung == null || ['0','9'].contains(line.metsAtDxLung)
boolean metsAtDxOtherCondition = line.metsAtDxOther == null || ['0','9'].contains(line.metsAtDxOther)

if (line.metsAtDxBone == '1' && metsAtDxBrainCondition && metsAtDxDistantLnCondition && metsAtDxLiverCondition && metsAtDxLungCondition && metsAtDxOtherCondition && line.eodMets != '10')
    return false
if (line.metsAtDxDistantLn == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxLiverCondition && metsAtDxLungCondition && metsAtDxOtherCondition && line.eodMets != '20')
    return false
if (['0','9'].contains(line.metsAtDxBone) && (line.metsAtDxBrain == '1' || line.metsAtDxLiver == '1' || line.metsAtDxLung == '1' || ['1','2'].contains(line.metsAtDxOther)) && line.eodMets != '30')
    return false
if (line.metsAtDxBone == '1' && (line.metsAtDxBrain == '1' || line.metsAtDxDistantLn == '1' || line.metsAtDxLiver == '1' || line.metsAtDxLung == '1' || ['1','2'].contains(line.metsAtDxOther)) && line.eodMets != '50')
    return false

if (['10','50'].contains(line.eodMets) && line.metsAtDxBone != '1')
    return false
if (line.eodMets == '20' && line.metsAtDxDistantLn != '1')
    return false
return true]]></expression>
            <message>Mets at DX fields conflict with EOD Mets for NET Adrenal</message>
            <description><![CDATA[This edit verifies that Mets at DX-Bone, Mets at DX-Brain,
Mets at DX-Distant LN, Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other
are coded consistently with EOD Mets for Schema ID 00770, NET Adrenal.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00770
    c. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN,
        Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other are all blank
    d. EOD Mets is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If Mets at DX-Bone = 1 (and Mets at DX-Brain = 0,9, Mets at DX-Distant LN =
        0,9,Mets at DX-Liver = 0,9, Mets at DX-Lung = 0,9, and Mets at DX-Other = 0,9,
      or fields are empty)
        then EOD Mets must = 10.

3. If Mets at DX-Distant LN = 1 (and Mets at Bone = 0,9, Mets at DX-Brain = 0,9,
      Mets at DX-Liver = 0,9, Mets at DX-Lung = 0,9, and Mets at DX-Other = 0,9,
     or fields are empty)
        then EOD Mets must = 20

4. If Mets at Dx-Bone = 0,9 and (Mets at DX-Brain = 1 or Mets at DX-Liver = 1 or
      Mets at DX-Lung = 1 or Mets at DX-Other
    = 1 or 2)
       then EOD Mets must = 30

5. If Mets at DX-Bone = 1 (and Mets at DX-Brain = 1, Mets at DX-Distant LN = 1,
      Mets at DX-Liver = 1, Mets at DX-Lung = 1, or Mets at DX-Other = 1 or 2)
       then EOD Mets must = 50

6.  If EOD Mets = 10 or 50 (Bone)
      Mets at DX-Bone must = 1

7. If EOD Mets = 20 (Distant lymph nodes)
        Mets at DX-Distant LN must = 1]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-14" ref="68608">Edit created.</event>
                <event version="SE21-021-04" user="kirbyk" date="2021-05-12" ref="68654">Clarifying condition #4.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6309" name="Mets at DX, Lymphoma, EOD Primary Tumor (SEER)" tag="N6309" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.eodPrimaryTumor == null || line.schemaId == null || !['00790','00795'].contains(line.schemaId))
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true

if ((line.metsAtDxBone == '1' || line.metsAtDxBrain == '1' || line.metsAtDxLung == '1' || line.metsAtDxOther == '1' || line.metsAtDxOther == '2') && !['700','800'].contains(line.eodPrimaryTumor))
    return false
if (line.metsAtDxLiver == '1' && line.eodPrimaryTumor != '800')
    return false
return true]]></expression>
            <message>Mets at DX fields conflict with Schema ID</message>
            <description><![CDATA[This edit verifies that Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN,
Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other are coded consistently with EOD Primary T
umor for Schema ID 00790, Lymphoma, and 00795, Lymphoma CLL/SLL.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00790 or 00795
    c. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Liver, Mets at DX-Lung, and
       Mets at DX-Other are all blank
    d. EOD Primary Tumor is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)


2. If Mets at DX-Bone = 1 or Mets at DX-Brain = 1 or Mets at DX-Lung = 1 or
    Mets at DX-Other = 1 or 2, then EOD Primary Tumor must = 700 or 800

3. If Mets at DX-Liver = 1,
    then EOD Primary Tumor must = 800]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-14" ref="68608">Edit created.</event>
                <event version="SE21-021-04" user="kirbyk" date="2021-05-11" ref="68658">Updated skip condition for EOD Primary Tumor.</event>
                <event version="SE21-021-09" user="beverung" date="2021-09-01" ref="68731">Update logic for Mets at DX-Liver = 1.</event>
            </history>
        </rule>
        <rule id="IFN6310" name="Summary Stage 2018, Lymphoma, Primary Site (NAACCR)" tag="N6310" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.summaryStage2018 == null || line.typeOfReportingSource == '7')
    return true
if (line.schemaId == null || !['00790','00795'].contains(line.schemaId) || line.primarySite == null)
    return true

if (line.primarySite == 'C421')
    return line.summaryStage2018 == '7'
else if (line.primarySite == 'C778')
    return ['2','7','9'].contains(line.summaryStage2018)

return true]]></expression>
            <message>Summary Stage 2018 not valid for Primary Site</message>
            <description><![CDATA[This edit verifies that Summary Stage 2018 is coded correctly for Primary Sites
C421 and C778 for Schema IDs 00790, Lymphoma and 00795, Lymphoma CLL/SLL

1. This edit is skipped for any of the following conditions:
    a. Diagnosis date is pre-2021, blank (unknown), or invalid
    b. Schema ID is blank or not 00790 or 00795
    c. Primary Site is blank
    d. Summary Stage 2018 is blank
    e. Type of Reporting Source = 7 (DCO)

2. If Primary Site = C421, Summary Stage 2018 must = 7

3. If Primary Site = C778, Summary Stage 2018 must = 2, 7, or 9]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-26" ref="68614">Edit created.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-15" ref="69159">Add skip condition for when Type of Reporting Source is DCO</event>
            </history>
        </rule>
        <rule id="IFN6311" name="EOD Primary Tumor/Nodes, Plasma Cell Disorders, Histology (SEER)" tag="N6311" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.schemaId != '00822' || line.histologicTypeIcdO3 == null
|| (line.eodPrimaryTumor == null && line.eodRegionalNodes == null))
    return true
if (line.histologicTypeIcdO3 == '9731') {
    if (line.typeOfReportingSource == '7')
        return line.eodPrimaryTumor == '999' && (line.eodRegionalNodes == '987' || line.eodRegionalNodes == '999')
    else
        return (line.eodPrimaryTumor == '100' || line.eodPrimaryTumor == '999') && line.eodRegionalNodes == '987'
}
else if (line.histologicTypeIcdO3 == '9734') {
    if (line.typeOfReportingSource == '7')
        return line.eodPrimaryTumor == '999' && line.eodRegionalNodes == '999'
    else
        return (line.eodPrimaryTumor == '200' || line.eodPrimaryTumor == '999') && (line.eodRegionalNodes == '000' || line.eodRegionalNodes == '800' || line.eodRegionalNodes == '999')
}
else if (line.histologicTypeIcdO3 == '9671' || line.histologicTypeIcdO3 == '9761') {
    if (line.typeOfReportingSource == '7')
        return (line.eodPrimaryTumor == '999' || line.eodPrimaryTumor == '700') && (line.eodRegionalNodes == '999' || line.eodRegionalNodes == '987')
    else
        return line.eodPrimaryTumor == '700' && line.eodRegionalNodes == '987'
}
return true]]></expression>
            <message>EOD Primary Tumor/Histology conflict for Plasma Cell Disorders</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor is coded consistently with Histologic
Type ICD-O-3 codes for histologies 9731, 9734, 9671, and 9761 for Schema ID
00822, Plasma Cell Disorders.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00822
    c. EOD Primary Tumor is blank and EOD Regional Nodes is blank
    d. Histologic Type ICD-O-3 is blank

2. If Histologic Type ICD-O-3 = 9731 (Plasmacytoma NOS)
    a. If Type of Reporting Source = 7 (Death Certificate Only)
        then EOD Primary Tumor must = 999 and
      EOD Regional Nodes must = 987 (not applicable) or 999 (unknown)
   b. If Type of Reporting Source not = 7,
       then EOD Primary Tumor must = 100 or 999 and
      EOD Regional Nodes must = 987.

3. If Histologic Type ICD-O-3 = 9734 (Plasmacytoma Extramedullary)
    a. If Type of Reporting Source = 7
        then EOD Primary Tumor must = 999 and EOD Regional Nodes must = 999
    b. If Type of Reporting Source not = 7
        then EOD Primary Tumor must = 200 or 999 (single extramedullary
    plasmacytomas or unknown)
        and EOD Regional Nodes must = 000, 800, or 999 (positive or negative
        nodal involvement or unknown)

4. If Histologic Type ICD-O-3 = 9671 (Lymphoplasmacytic Lymphoma) or 9761
    (Waldenstrom Macroglobulinemia)
    a. If Type of Reporting Source = 7,
       EOD Primary Tumor must = 700 or 999 and EOD Regional Nodes must =
      987 or 999.
   b. If Type of Reporting Source not = 7, EOD Primary Tumor must = 700
      and EOD Regional Nodes must = 987.]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-04-20" ref="68623">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6313" name="Summary Stage 2018, Plasma Cell Disorders, Histology (NAACCR)" tag="N6313" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.summaryStage2018 == null || line.typeOfReportingSource == '7')
    return true
if (line.schemaId == null || line.schemaId != '00822' || line.histologicTypeIcdO3 == null)
    return true

if (line.histologicTypeIcdO3 == '9731')
    return ['1','9'].contains(line.summaryStage2018)
else if (line.histologicTypeIcdO3 == '9734')
    return ['1','3','9'].contains(line.summaryStage2018)
else if (line.histologicTypeIcdO3 == '9671' || line.histologicTypeIcdO3 == '9761')
    return line.summaryStage2018 == '7'

return true]]></expression>
            <message>Summary Stage 2018 not valid for Histologic Type ICD-O-3</message>
            <description><![CDATA[This edit verifies that Summary Stage 2018 is coded correctly by histology
for Schema ID 00822, Plasma Cell Disorder

1. This edit is skipped for any of the following conditions:
    a. Diagnosis date is pre-2018, blank (unknown), or invalid
    b. Schema ID is blank or not 00822
    c. Histologic Type ICD-O-3 is blank
    d. Summary Stage 2018 is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. If Histologic Type ICD-O-3 = 9731 (Plasmacytoma NOS), Summary Stage 2018 must = 1 or 9

3. If Histologic Type ICD-O-3 = 9734 (Plasmacytoma Extramedullary, Summary Stage 2018 must = 1, 3, or 9

4. If Histologic Type ICD-O-3 = 9671 (Lymphoplasmacytic Lymphoma) or 9761 (Waldenstrom Macroglobulinemia),
   Summary Stage 2018 must = 7]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-26" ref="68614">Edit created.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-15" ref="69160">Add skip condition for when Type of Reporting Source is DCO. Add logic for Histologic type 9761.</event>
            </history>
        </rule>
        <rule id="IFN6315" name="EOD Primary Tumor, HemeRetic, Histology (SEER)" tag="N6315" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.eodPrimaryTumor == null || line.histologicTypeIcdO3 == null)
    return true
if (line.schemaId == null || line.schemaId != '00830')
    return true

if (Functions.matches(line.histologicTypeIcdO3, /^9(7(4[09]|5[15-9])|9(30|71))$/)) {
    if (line.typeOfReportingSource == '7')
        return line.eodPrimaryTumor == '999'
    else
        return ['100','700','999'].contains(line.eodPrimaryTumor)
}
else {
    if (line.typeOfReportingSource == '7')
        return ['700','999'].contains(line.eodPrimaryTumor)
    else
        return line.eodPrimaryTumor == '700'
}]]></expression>
            <message>EOD Primary Tumor/Histology conflict for HemeRetic</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor is coded
consistently with histologies
allowing localized disease and histologies requiring systemic
disease for Schema
ID 00830, HemeRetic

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or
invalid.
    b. Schema ID is blank or not 00830
    c. EOD Primary Tumor is blank
    d. Histologic Type ICD-O-3 is blank


2. If Histologic Type ICD-O-3 is in the following list,
    a. If Type of Reporting Source = 7 (Death Certificate only)
       EOD Primary Tumor must = 999.
    b. If Type of Reporting Source not = 7,
       EOD Primary Tumor must = 100 (Localized disease), 700
       (Systemic Disease), or 999 (unknown).

    9740        Mast cell sarcoma
    9749        Erdheim-Chester disease (2021+)
    9751        Langerhans cell histiocytosis, disseminated
    9755        Histiocytic sarcoma
    9756        Langerhans cell sarcoma
    9757        Interdigitating dendritic cell sarcoma
    9758        Follicular dendritic cell sarcoma
    9759        Fibroblastic reticular cell tumor
    9930        Myeloid sarcoma
    9971        Polymorphic PTLD (2018-2020, non-reportable 2021+)

3. For all other histologies,
   a. If Type of Reporting Source = 7 (Death Certificate Only),
      EOD Primary Tumor must = 700 or 999.
   b. If Type of Reporting Source not = 7,
      EOD Primary Tumor must = 700.]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-25" ref="68606">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6316" name="Summary Stage 2018, Plasma Cell Myeloma, Histology (NAACCR)" tag="N6316" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.summaryStage2018 == null || line.typeOfReportingSource == '7')
    return true
if (line.schemaId == null || line.schemaId != '00821')
    return true

return line.summaryStage2018 == '7']]></expression>
            <message>Summary Stage 2018 not valid for Schema ID</message>
            <description><![CDATA[This edit verifies that Summary Stage 2018 is coded correctly
for Schema ID
00821, Plasma Cell Myeloma.

1. This edit is skipped for any of the following conditions:
    a. Diagnosis date is pre-2018, blank (unknown), or invalid
    b. Schema ID is blank or not 00821
    c. Summary Stage 2018 is blank
    d. Type of Reporting Source = 7 (Death Certificate Only)

2. Summary Stage 2018 must = 7]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-26" ref="68614">Edit created.</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-12" ref="68939">Update skip condition to pre-2018 instead of pre-2021.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-17" ref="69161">Add skip condition for when Reporting Source is DCO.</event>
            </history>
        </rule>
        <rule id="IFN6318" name="Summary Stage 2018, HemeRetic, Histology (NAACCR)" tag="N6318" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.summaryStage2018 == null || line.typeOfReportingSource == '7')
    return true
if (line.schemaId == null || line.schemaId != '00830' || line.histologicTypeIcdO3 == null)
    return true

if (Functions.matches(line.histologicTypeIcdO3, /^9(7(4[09]|5[15-9])|9(30|71))$/)) {
    if (!['1','7','9'].contains(line.summaryStage2018))
        return false
}
else if (line.summaryStage2018 != '7')
    return false

return true]]></expression>
            <message>Summary Stage 2018 conflicts with Histologic Type ICD-O-3</message>
            <description><![CDATA[This edit verifies that Summary Stage 2018 is coded consistently with
histologies allowing localized disease and histologies requiring systemic
disease for Schema ID 00830, HemeRetic

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2018, blank (unknown), or invalid.
    b. Schema ID is blank or not 00830
    c. Summary Stage 2018 is blank
    d. Histologic Type ICD-O-3 is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)


2. If Histologic Type ICD-O-3 is in the following list,
    Summary Stage 2018 must = 1, 7, or 9.

    9740        Mast cell sarcoma
    9749        Erdheim-Chester disease (2021+)
    9751        Langerhans cell histiocytosis, disseminated
    9755        Histiocytic sarcoma
    9756        Langerhans cell sarcoma
    9757        Interdigitating dendritic cell sarcoma
    9758        Follicular dendritic cell sarcoma
    9759        Fibroblastic reticular cell tumor
    9930        Myeloid sarcoma
    9971        Polymmorphic PTLD (2018-2020 only, nonreportable 2021+)

3. For all other histologies, Summary Stage 2018 must = 7.]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-26" ref="68614">Edit created.</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-12" ref="68939">Update skip condition to pre-2018 instead of pre-2021.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-17" ref="69162">Add skip condition for when Type of Reporting Source is DCO.</event>
            </history>
        </rule>
        <rule id="IFN6319" name="Mets at DX, Mycosis Fungoides, EOD Nodes/Mets (SEER)" tag="N6319" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.schemaId == null || line.schemaId != '00811')
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true

if (line.eodMets != null) {
    if ((line.metsAtDxBone == '1' || line.metsAtDxBrain == '1' || line.metsAtDxLiver == '1' || line.metsAtDxLung == '1' || line.metsAtDxOther == '1') && line.eodMets != '70')
        return false
    if (line.metsAtDxOther == '2' && !['10','70'].contains(line.eodMets))
        return false
    if (line.eodMets == '10' && line.metsAtDxOther != '2')
        return false
}

if (line.eodRegionalNodes != null) {
    if (line.metsAtDxDistantLn == '1' && !Functions.matches(line.eodRegionalNodes, /^[1-8]00$/))
        return false
}

return true]]></expression>
            <message>Mets at DX fields conflict with EOD Nodes/Mets for Mycosis Fungoides</message>
            <description><![CDATA[This edit verifies that Mets at DX-Bone, Mets at DX-Brain, Mets at DX-
Distant LN,
Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other are coded
consistently
with EOD Mets for Schema ID 00811, Mycosis Fungoides.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00811
    c. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN,
        Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other are all blank
    d. Type of Reporting Source is 7 (Death Certificate Only)

2. If EOD Mets is blank, this part is skipped. Otherwise:
  a. If Mets at DX-Bone = 1, Mets at DX-Brain = 1, Mets at DX-Liver = 1, Mets
    at DX-Lung = 1, or Mets at DX-Other = 1,
      then EOD Mets must = 70

  b. If Mets at DX-Other = 2,
      then EOD Mets must = 10 or 70

  c. If EOD Mets = 10 (Carcinomatosis)
      then Mets at DX-Other must = 2

3. If EOD Regional Nodes is blank, this part is skipped. Otherwise:
  a. If Mets at DX-Distant LN = 1,
      then EOD Regional Nodes must = 100, 200, 300, 400, 500, 600, 700
      (clinically abnormal, pathologically positive nodes), or 800 (distant
       nodes NOS) ]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-14" ref="68608">Edit created.</event>
                <event version="SE21-021-04" user="kirbyk" date="2021-05-12" ref="68657">Edit will not fail for EOD Mets being blank or EOD Regional Nodes being blank.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-26" ref="68981">Updated message.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6321" name="Extranodal Extension Path (non-Head and Neck), Scope Nodes (SEER)" tag="N6321" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[
        Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
        Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
        Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
        Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
        Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
        Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

        if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || !['00460', '00570'].contains(line.schemaId)
|| line.extranodalExtensionPath == null || line.extranodalExtensionPath == '8' || line.rxSummScopeRegLnSur == null || line.typeOfReportingSource == '6'|| line.typeOfReportingSource == '7' ||
(line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5)))
    return true

if (line.extranodalExtensionPath == '0')
    return Functions.matches(line.rxSummScopeRegLnSur, /^[3-7]$/)
else if (['1', '7'].contains(line.extranodalExtensionPath))
    return Functions.matches(line.rxSummScopeRegLnSur, /^[2-7]$/)

return true]]></expression>
            <message>Extranodal Extension Path (non-Head and Neck) conflicts with RX Summ--Scope Reg LN Sur</message>
            <description><![CDATA[This edit verifies that the Extranodal Extension Path (non-Head and Neck) SSDI
with codes indicating nodal procedure is coded consistently with RX Summ--Scope
Reg LN Sur, for Schema IDs 00460, Merkel Cell Skin, and 00570, Penis.

1. This edit is skipped for the following conditions:
    a. Date of Diagnosis is pre-2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00460, 00570
    c. Extranodal Extension Path (non-Head and Neck) is blank or 8 (not
        applicable)
    d. RX Summ--Scope Reg LN Sur is blank
    e. Type of Reporting Source = 6 (Autopsy Only) or 7 (Death Certificate Only)
    f. Vital Status = 0 and Date of Last Contact within 5 months of Date of Diagnosis

2. If Extranodal Extension Path (non-Head and Neck) = 0 (positive nodes, ENE not identified)
    RX Summ--Scope Reg LN Sur must = 3-7.

3. If Extranodal Extension Path (non-Head and Neck) = 1 (nodes involved, ENE present) or 7 (no nodal involvement)
    RX Summ--Scope Reg LN Sur must = 2-7]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-21" ref="69183">Updated logic for 2023+.</event>
                <event version="SE23-023-03" user="shearerw" date="2023-05-24" ref="69216">Fix logic for DOLC within 5 months of DX date to allow difference in year.</event>
                <event version="SE23-023-04" user="cooki" date="2023-05-30" ref="69278">Updated name, ID, and tag.</event>
                <event version="SE23-023-06" user="shearerw" date="2023-08-01" ref="69299">Remove separate behaviors for DX year before and after 2023.</event>
                <event version="SE24-024-01" user="cooki" date="2024-03-07" ref="69337">Removed clause from description about Coc-Accredited.</event>
            </history>
        </rule>
        <rule id="IFN6339" name="Neoadjuvant Therapy, Date DX (SEER)" tag="N6339" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[ if(line.dateOfDiagnosisYear == null || line.neoadjuvantTherapy == null)
            return true
if (line.dateOfDiagnosisYear < '2021')
    return false
else
    return Functions.matches(line.neoadjuvantTherapy, /^[01239]$/)
            ]]></expression>
            <message>Neoadjuvant Therapy must be blank for cases diagnosed before 2021</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2021 diagnoses.

2. Must be a valid Neoadjuvant Therapy code or blank:

    0:  No neoadjuvant therapy, no treatment before surgery, autopsy only
    1: Neoadjuvant therapy completed according to treatment plan and guidelines
    2:  Neoadjuvant therapy started but not completed
    3:  Limited systemic exposure when the intent was not neoadjuvant; treatment
       did not meet the definition of neoadjuvant therapy
    9:  Unknown if neoadjuvant therapy performed
      Death Certificate only (DCO)]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-04-22" ref="68609">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6340" name="Neoadjuvant Therapy-Clinical Response, Date DX (SEER)" tag="N6340" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[ if(line.dateOfDiagnosisYear == null || line.neoadjuvTherapyClinicalResponse == null)
            return true
if (line.dateOfDiagnosisYear < '2021')
    return false
return Functions.matches(line.neoadjuvTherapyClinicalResponse, /^\d$/)
            ]]></expression>
            <message>Neoadjuvant Therapy-Clinical Response must be blank for cases diagnosed before 2021</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2021 diagnoses.

2. Must be a valid Neoadjuvant Therapy-Clinical Response code or blank:

    0:  Neoadjuvant therapy not given
    1:  Complete clinical response (CR) (per managing/treating hysician statement)
    2:  Partial clinical response (PR) (per managing/treating physician statement)
    3:  Progressive disease (PD) (per managing/treating physician statement)
    4:  Stable disease (SD) (per managing/treating physician statement)
    5:  No response (NR) (per managing/treating physician statement)
       Not stated as progressive disease (PD) or stable disease (SD)
    6:  Neoadjuvant therapy done, managing/treating physician interpretation not
      available, treatment response inferred from imaging, biomarkers, or yc stage
    7:  Complete clinical response based on biopsy results from a pathology report
        (per pathologist assessment)
    8: Neoadjuvant therapy done, response not documented or unknown
    9:  Unknown if neoadjuvant therapy performed
      Death Certificate only (DCO)]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-04-23" ref="68609">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6341" name="Neoadjuvant Therapy-Treatment Effect, Date DX (SEER)" tag="N6341" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[ if(line.dateOfDiagnosisYear == null || line.neoadjuvTherapyTreatmentEffect == null)
            return true
if (line.dateOfDiagnosisYear < '2021')
    return false
return Functions.matches(line.neoadjuvTherapyTreatmentEffect, /^[01234679]$/)
            ]]></expression>
            <message>Neoadjuvant Therapy-Treatment Effect must be blank for cases diagnosed before 2021</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2021 diagnoses.

2. Must be a valid Neoadjuvant Therapy-Treatment Effect code or blank:

    0:  Neoadjuvant therapy not given, no known presurgical therapy
    1-4: Site-specific code type of response
    6:  Neoadjuvant therapy completed and surgical resection performed, response not
       documented or unknown
        Cannot be determined
    7:  Neoadjuvant therapy completed and planned surgical resection not performed
    9:  Unknown if neoadjuvant therapy performed
        Unknown if planned surgical procedure performed after completion of
      neoadjuvant therapy
      Death Certificate only (DCO)]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-04-26" ref="68609">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6344" name="Neoadjuvant Therapy, Primary Site, Schema ID (SEER)" tag="N6344" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[ if(line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.primarySite == null ||
            line.neoadjuvantTherapy == null || line.typeOfReportingSource == '7')
        return true
if (Functions.matches(line.primarySite, /^C42[0134]|C809$/) || ['00790','00795','00811','00812','00821','00822','00830','99999'].contains(line.schemaId))
    return line.neoadjuvantTherapy == '0'
return true
            ]]></expression>
            <message>Neoadjuvant Therapy conflicts with Primary Site and/or Schema ID</message>
            <description><![CDATA[This edit verifies that Neoadjuvant Therapy is coded 0 for Primary Sites or
Schema IDs where neoadjuvant therapy is not part of standard treatment.

1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis is pre-2021, blank (unknown), or invalid.
    b. Schema ID is blank
    c. Primary Site is blank
    d. Neoadjuvant Therapy is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. Neoadjuvant Therapy must = 0 (no neoadjuvant treatment given) if Primary
    Site = C420, C421, C423, C424, or C809, or Schema ID is in the
   following list:

        00790-Lymphoma
        00795-Lymphoma (CLL/SLL)
        00811-Mycosis Fungoides
        00812-Primary Cutaneous Lymphomas (excluding Mycosis Fungoides)
        00821-Plasma Cell Myeloma
        00822-Plasma Cell Disorders
        00830-HemeRetic
        99999-Ill-Defined Other]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-04-22" ref="68609">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6345" name="Neoadjuvant Therapy-Clinical Response, Primary Site, Schema ID (SEER)" tag="N6345" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if(line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.primarySite == null ||
            line.neoadjuvTherapyClinicalResponse == null || line.typeOfReportingSource == '7')
        return true
if (Functions.matches(line.primarySite, /^C42[0134]|C809$/) || ['00790','00795','00811','00812','00821','00822','00830','99999'].contains(line.schemaId))
    return line.neoadjuvTherapyClinicalResponse == '0'
return true]]></expression>
            <message>Neoadjuvant Therapy-Clinical Response conflicts with Primary Site and/or Schema ID</message>
            <description><![CDATA[This edit verifies that Neoadjuvant Therapy-Clinical Response is coded 0
for Primary Sites or Schema IDs where neoadjuvant therapy is not part of
standard treatment.

1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis is pre-2021, blank (unknown), or invalid.
    b. Schema ID is blank
    c. Primary Site is blank
    d. Neoadjuvant Therapy-Clinical Response is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. Neoadjuvant Therapy-Clinical Response must = 0 (no neoadjuvant treatment
    given) if Primary Site = C420, C421, C423, C424, or C809, or Schema ID
    is in the following list:

        00790-Lymphoma
        00795-Lymphoma (CLL/SLL)
        00811-Mycosis Fungoides
        00812-Primary Cutaneous Lymphomas (excluding Mycosis Fungoides)
        00821-Plasma Cell Myeloma
        00822-Plasma Cell Disorders
        00830-HemeRetic
        99999-Ill-Defined Other]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-04-23" ref="68609">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6346" name="Neoadjuvant Therapy-Treatment Effect, Primary Site, Schema ID (SEER)" tag="N6346" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if(line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.primarySite == null ||
            line.neoadjuvTherapyTreatmentEffect == null || line.typeOfReportingSource == '7')
        return true
if (Functions.matches(line.primarySite, /^C42[0134]|C809$/) || ['00790','00795','00811','00812','00821','00822','00830','99999'].contains(line.schemaId))
    return line.neoadjuvTherapyTreatmentEffect == '0'
return true]]></expression>
            <message>Neoadjuvant Therapy-Treatment Effect conflicts with Primary Site and/or Schema ID</message>
            <description><![CDATA[This edit verifies that Neoadjuvant Therapy-Treatment Effect is coded 0 for
Primary Sites or Schema IDs where neoadjuvant therapy is not part of standard
treatment.

1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis is pre-2021, blank (unknown), or invalid.
    b. Schema ID is blank
    c. Primary Site is blank
    d. Neoadjuvant Therapy-Treatment Effect is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. Neoadjuvant Therapy-Treatment Effect must = 0 (no neoadjuvant treatment
    given) if Primary Site = C420, C421, C423, C424, or C809, or Schema ID is in the
   following list:

        00790-Lymphoma
        00795-Lymphoma (CLL/SLL)
        00811-Mycosis Fungoides
        00812-Primary Cutaneous Lymphomas (excluding Mycosis Fungoides)
        00821-Plasma Cell Myeloma
        00822-Plasma Cell Disorders
        00830-HemeRetic
        99999-Ill-Defined Other]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-04-23" ref="68609">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6355" name="Measured Basal Diameter, Ophthalmic Melanoma, EOD Primary Tumor (SEER)" tag="N6355" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.eodPrimaryTumor == null || line.measuredBasalDiameter == null || line.measuredBasalDiameter == 'XX.8')
    return true
if (line.schemaId == null || (line.schemaId != '00671' && line.schemaId != '00672'))
    return true

if (line.eodPrimaryTumor == '800')
    return line.measuredBasalDiameter == '0.0' || line.measuredBasalDiameter == 'XX.9'

return true]]></expression>
            <message>Measured Basal Diameter conflicts with EOD Primary Tumor</message>
            <description><![CDATA[This edit verifies that the Measured Basal Diameter SSDI is coded consistently with
EOD Primary Tumor indicating no evidence of primary site for Schema IDs 00671, Melanoma Iris
and 00672, Melanoma Choroid & Ciliary Body.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00671 or 00672
    c. EOD Primary Tumor is blank
    d. Measured Basal Diameter is blank or XX.8 (not applicable)
    e. Type of Reporting Source is 7 (Death Certificate Only)


2. If EOD Primary Tumor = 800 (no evidence of primary tumor)
    Measured Basal Diameter must = 0.0 (no tumor found) or XX.9 (not documented in
   medical record)]]></description>
            <history>
                <event version="SE21-021-04" user="kirbyk" date="2021-04-14" ref="68638">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6356" name="Grade, Ovary/PPC/FT, Morphology (NAACCR)" tag="N6356" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.gradeClinical == null && line.gradePathological == null)
    return true
if (!Functions.matches(line.schemaId, /^0055[123]$/))
    return true
if (line.histologicTypeIcdO3 == null || line.behaviorCodeIcdO3 == null || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1')
    return true

String morphTypeAndBehIcdO3 = line.histologicTypeIcdO3 + line.behaviorCodeIcdO3
if (['84412','84413','84603','84613','84743','90803'].contains(morphTypeAndBehIcdO3)) {
    if (line.gradePathological != null && !['L','H','9'].contains(line.gradePathological))
        return false
    if (line.gradeClinical != null && !['L','H','9'].contains(line.gradeClinical))
        return false
}
else {
    if (line.gradePathological != null && !['1','2','3','9'].contains(line.gradePathological))
        return false
    if (line.gradeClinical != null && !['1','2','3','9'].contains(line.gradeClinical))
        return false
}
return true]]></expression>
            <message>Grade Clinical is not valid for Morph--Type&amp;Behav ICD-O-3</message>
            <description><![CDATA[This edit verifies that Grade Clinical and Grade Pathological are coded
consistently with Histologic Type ICD-O-3 and Behavior Code ICD-O-3 for Ovary, Primary Peritoneal
Carcinoma, and Fallopian Tube.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is not 00551, 00552, or 00553.
    c. Grade Clinical and Grade Pathological are both blank.
    d. Histologic Type ICD-O-3 is blank
    e. Behavior Code ICD-O-3 is blank or = /0 or /1
    f. Type of Reporting Source = 7 (Death Certificate Only)

2. If Histologic Type ICD-O-3 and Behavior Code ICD-O-3 = 8441/2, 8441/3, 8460/3, 8461/3,
    8474/3, or 9080/3
   Grade Clinical if not empty must = L, H or 9
    Grade Pathological if not empty must = L, H, or 9

3. If Histologic Type ICD-O-3 and Behavior Code ICD-O-3 not = 8441/2, 8441/3, 8460/3, 8461/3,
    8474/3 or 9080/3,
    Grade Clinical if not empty must = 1, 2, 3, or 9
    Grade Pathological if not empty must = 1, 2, 3, or 9]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-29" ref="68625">Edit created.</event>
                <event version="SE23-023-01" user="cooki" date="2023-01-27" ref="69116">Updated description with Histologic Type and Behavior Code.</event>
                <event version="SE23-023-03" user="shearerw" date="2023-05-23" ref="69265">Add skip condition for Behavior Code /0 and /1.</event>
            </history>
        </rule>
        <rule id="IFN6357" name="Schema Discriminator 1, Urethra, Sex (NAACCR)" tag="N6357" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[ if(line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || !['00631','00633'].contains(line.schemaId) || line.sex == null)
        return true
if (line.schemaDiscriminator1 == '2' ||  line.schemaId == '00633')
    return line.sex != '2' && line.sex != '6'
return true
            ]]></expression>
            <message>Schema Discriminator 1 conflicts with Sex or Schema ID</message>
            <description><![CDATA[This edit verifies that Schema Discriminator 1 is coded
consistently with Sex for
Schema IDs 00631 Urethra and 00633 Prostatic Urethra.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is not 00631 or 00633.
    c. Sex is blank.

2. If Schema Discriminator 1 = 2 (Males only, Prostatic Urethra)
    Sex must not = 2 (Female) or 6 (Natal Female)

3. If Schema ID = 00633, Prostatic Urethra
    Sex must not = 2 (Female) or 6 (Natal Female)
]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-04-20" ref="68639">Edit created.</event>
                <event version="SE21-021-04" user="kirbyk" date="2021-05-13" ref="68661">Removed skip condition for Type of Reporting Source.</event>
            </history>
        </rule>
        <rule id="IFN6359" name="Mets at DX, NET, EOD Mets (SEER)" tag="N6359" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.eodMets == null || line.schemaId == null || !Functions.matches(line.schemaId, /^0[09](290|3(0[12]|[123]0))$/))
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true

boolean metsAtDxBoneCondition = line.metsAtDxBone == null || ['0','9'].contains(line.metsAtDxBone)
boolean metsAtDxBrainCondition = line.metsAtDxBrain == null || ['0','9'].contains(line.metsAtDxBrain)
boolean metsAtDxDistantLnCondition = line.metsAtDxDistantLn == null || ['0','9'].contains(line.metsAtDxDistantLn)
boolean metsAtDxLiverCondition = line.metsAtDxLiver == null || ['0','9'].contains(line.metsAtDxLiver)
boolean metsAtDxLungCondition = line.metsAtDxLung == null || ['0','9'].contains(line.metsAtDxLung)
boolean metsAtDxOtherCondition = line.metsAtDxOther == null || ['0','9'].contains(line.metsAtDxOther)

if (line.metsAtDxLiver == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxDistantLnCondition && metsAtDxLungCondition && metsAtDxOtherCondition && line.eodMets != '10')
    return false
if (line.metsAtDxDistantLn == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxLiverCondition && metsAtDxLungCondition && metsAtDxOtherCondition && line.eodMets != '20')
    return false
if (['0','9'].contains(line.metsAtDxLiver) && (line.metsAtDxBone == '1' || line.metsAtDxBrain == '1' || line.metsAtDxLung == '1' || ['1','2'].contains(line.metsAtDxOther)) && line.eodMets != '30')
    return false
if (line.metsAtDxLiver == '1' && (line.metsAtDxBone == '1' || line.metsAtDxBrain == '1' || line.metsAtDxDistantLn == '1' || line.metsAtDxLung == '1' || ['1','2'].contains(line.metsAtDxOther)) && line.eodMets != '50')
    return false

if (['10','50'].contains(line.eodMets) && line.metsAtDxLiver != '1')
    return false
if (line.eodMets == '20' && line.metsAtDxDistantLn != '1')
    return false
return true]]></expression>
            <message>Mets at DX fields conflict with EOD Mets for NET</message>
            <description><![CDATA[This edit verifies that Mets at DX-Bone, Mets at DX-Brain,
Mets at DX-Distant LN, Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other
are coded consistently with EOD Mets for Schema ID 00290 and 09290 NET Stomach,
00301 and 09301 NET Duodenum, 00302 and 09302 NET Ampulla of Vater,
00310 and 09310 NET Jejunum and Ileum, 00320 and 09320 NET Appendix,
and 00330 and 09330 NET Colon and Rectum


1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00290, 00301, 00302, 00310, 00320, 00330,
        09290, 09301, 09302, 09310, 09320, 09330
    c. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN,
        Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other are all blank
    d. EOD Mets is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If Mets at DX-Liver = 1 and (Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
       Mets at DX-Distant LN = 0,9, Mets at DX-Lung= 0,9, and Mets at DX-Other
        = 0,9, or fields are empty),
       then EOD Mets must = 10

3. If Mets at DX-Distant LN = 1 and (Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
      Mets at DX-Liver = 0,9, Mets at DX-Lung = 0,9 and Mets at DX-Other = 0,9, or
        fields are empty)
       then EOD Mets must = 20.

4. If Mets at DX-Liver = 0,9 and (Mets at DX-Bone = 1 or Mets at DX-Brain = 1 or
      Mets at DX-Lung = 1 or Mets at DX-Other = 1 or 2)
       then EOD Mets must = 30.

5. If Mets at DX-Liver = 1 (and Mets at DX-Bone = 1, Mets at DX-Brain = 1, Mets at
       DX-Distant LN = 1,Mets at DX-Lung = 1, or Mets at DX-Other = 1 or 2
       then EOD Mets must = 50.

6.  If EOD Mets = 10 or 50 (Liver)
      Mets at DX-Liver must = 1

7. If EOD Mets = 20 (Distant lymph nodes)
        Mets at DX-Distant LN must = 1]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-14" ref="68608">Edit created.</event>
                <event version="SE21-021-04" user="kirbyk" date="2021-05-12" ref="68654">Clarifying condition #4.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-03-11" ref="69408">Add schemas to skip condition.</event>
            </history>
        </rule>
        <rule id="IFN6360" name="Mets at DX, Bladder, EOD Mets (SEER)" tag="N6360" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.eodMets == null || line.schemaId == null || line.schemaId != '00620')
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true

boolean metsAtDxBoneCondition = line.metsAtDxBone == null || ['0','9'].contains(line.metsAtDxBone)
boolean metsAtDxBrainCondition = line.metsAtDxBrain == null || ['0','9'].contains(line.metsAtDxBrain)
boolean metsAtDxLiverCondition = line.metsAtDxLiver == null || ['0','9'].contains(line.metsAtDxLiver)
boolean metsAtDxLungCondition = line.metsAtDxLung == null || ['0','9'].contains(line.metsAtDxLung)
boolean metsAtDxOtherCondition = line.metsAtDxOther == null || ['0','9'].contains(line.metsAtDxOther)

if (line.metsAtDxDistantLn == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxLiverCondition && metsAtDxLungCondition && metsAtDxOtherCondition && line.eodMets != '10')
    return false
if ((line.metsAtDxBone == '1' || line.metsAtDxBrain == '1' || line.metsAtDxLiver == '1' || line.metsAtDxLung == '1' || line.metsAtDxOther == '1' || line.metsAtDxOther == '2') && line.eodMets != '50')
    return false
if (line.eodMets == '10' && line.metsAtDxDistantLn != '1')
    return false
return true]]></expression>
            <message>Mets at DX fields conflict with EOD Mets for Bladder</message>
            <description><![CDATA[This edit verifies that Mets at DX-Bone, Mets at DX-Brain,
Mets at DX-Distant LN, Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other
are coded consistently with EOD Mets for Schema ID 00620, Bladder.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00620
    c. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN,
        Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other are all blank
    d. EOD Mets is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If Mets at DX-Distant LN = 1 (and Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
       Mets at DX-Liver = 0,9, Mets at DX-Lung = 0,9, Mets at DX-Other = 0,9, or fields
        are empty)
        then EOD Mets must = 10.

3. If Mets at DX-Bone = 1, Mets at DX-Brain = 1, Mets at DX-Liver,
      Mets at DX-Lung = 1, or Mets at DX-Other = 1 or 2,
       then EOD Mets must = 50.

4. If EOD Mets = 10 (Distant lymph nodes)
       then Mets at DX-Distant LN must = 1]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-14" ref="68608">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6361" name="Grade Post Therapy, Primary Site, Schema ID (NAACCR)" tag="N6361" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.primarySite == null || line.typeOfReportingSource == '7')
    return true
if (line.gradePostTherapyClin == null && line.gradePostTherapy == null)
    return true
if (line.schemaId == null)
    return true

return (!Functions.matches(line.primarySite, /^C(42[0134]|809)$/) &&
    !Functions.matches(line.schemaId, /^00(79[05]|8([12][12]|30))|99999$/))]]></expression>
            <message>Grade Post Therapy not part of standard treatment</message>
            <description><![CDATA[This edit verifies that Grade Post Therapy Clin (yc) and Grade Post Therapy Path (yp) are
not coded for Primary Sites or Schema IDs where neoadjuvant therapy is not part of standard
treatment.

1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis is pre-2021, blank (unknown), or invalid.
    b. Schema ID is blank
    c. Primary Site is blank
    d. Grade Post Therapy Clin (yc) and Grade Post Therapy Path (yp) are both blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. Grade Post Therapy Clin (yc) and Grade Post Therapy Path (yp) must = blank if Primary
    Site = C420, C421, C423, C424, or C809, or Schema ID is in the
   following list:

        00790-Lymphoma
        00795-Lymphoma (CLL/SLL)
        00811-Mycosis Fungoides
        00812-Primary Cutaneous Lymphomas (excluding Mycosis Fungoides)
        00821-Plasma Cell Myeloma
        00822-Plasma Cell Disorders
        00830-HemeRetic
        99999-Ill-Defined Other]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-29" ref="68625">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6363" name="Regional Nodes Examined, RX Summ--Scope Reg LN Sur (NAACCR)" tag="N6363" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.regionalNodesExamined == null)
    return true
if (line.rxSummScopeRegLnSur == null || line.typeOfReportingSource == '7')
    return true

if (['00790', '00795', '00822', '00830', '99999'].contains(line.schemaId) && !Functions.matches(line.primarySite, /^C42[0134]|C589|C7[012]\d|C75[123]|C76[1-8]|C77\d|C809$/)
    && Functions.matches(line.rxSummScopeRegLnSur, /^\d$/))
    return true

if (line.rxSummScopeRegLnSur == '0') {
    Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
    Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
    Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
    Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
    Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
    Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

    if ((line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5)) || line.typeOfReportingSource == '6')
        return Functions.matches(line.regionalNodesExamined, /^[0-8]\d|9[078]$/)

    else
        return line.regionalNodesExamined == '00'
}
else if (line.rxSummScopeRegLnSur == '1' && line.regionalNodesExamined != '95')
    return false
else if (line.rxSummScopeRegLnSur == '2' && !Functions.matches(line.regionalNodesExamined, /^[0-8]\d|9[05-8]$/))
    return false
else if (line.rxSummScopeRegLnSur == '3' && !Functions.matches(line.regionalNodesExamined, /^00|9[678]$/))
    return false
else if (line.rxSummScopeRegLnSur == '4' && !Functions.matches(line.regionalNodesExamined, /^0[123]$/))
    return false
else if (line.rxSummScopeRegLnSur == '5' && !Functions.matches(line.regionalNodesExamined, /^0[4-9]|[1-8]\d|9[0678]$/))
    return false
else if (['6','7'].contains(line.rxSummScopeRegLnSur) && !Functions.matches(line.regionalNodesExamined, /^0[1-9]|[1-8]\d|9[0678]$/))
    return false
else if (line.rxSummScopeRegLnSur == '9' && line.regionalNodesExamined != '99')
    return false
return true]]></expression>
            <message>RX Summ--Scope Reg LN Sur conflicts with Regional Nodes Examined</message>
            <description><![CDATA[This edit checks that Regional Nodes Examined is coded consistently with RX
Summ--Scope Reg LN Sur.

1. This edit is skipped for any of the following conditions:
    a. Diagnosis date is pre-2021, blank (unknown), or invalid
    b. Regional Nodes Examined is blank
    c. RX Summ--Scope Reg LN Sur is blank
    d. Type of Reporting Source = 7 (Death Certificate Only)

2. If Schema ID = 00790, 00795, 00822, 00830, or 99999, and Primary Site not = C420, C421, C423, C424, C589,
    C700-C709, C710-C729, C751-C753, C761-C768, C770-C779, or C809
    If RX Summ--Scope Reg LN Sur = 0-9, the edit passes.

3. If RX Summ--Scope Reg LN Sur = 0 (no nodal procedure performed)
    A. then if Vital Status = 0 and Date of Last Contact <= 5 months from Date of Diagnosis,
    or Type of Reporting Source = 6 (Autopsy Only), then Regional Nodes Examined must = 00-90, 96,97,98.
    B. For all other cases, Regional Nodes Examined must = 00 (no nodes examined)

4. If RX Summ--Scope Reg LN Sur = 1 (biopsy or aspiration of lymph node only)
    Regional Nodes Examined must = 95 (aspiration or core biopsy of regional nodes
performed)

5. If RX Summ--Scope Reg LN Sur = 2 (sentinel node procedure performed)
    Regional Nodes Examined must = 00-90, 95, 96, 97, 98

6. If RX Summ--Scope Reg LN Sur = 6-7 (sentinel node procedure performed
    with regional lymph node dissection)
    Regional Nodes Examined must = 01-90, 96, 97, 98

7. If RX Summ--Scope Reg LN Sur = 3 (number of lymph nodes removed not stated)
    Regional Nodes Examined must = 00, 96, 97, or 98

8. If RX Summ--Scope Reg LN Sur = 4 (1-3 regional nodes removed)
    Regional Nodes Examined must = 01, 02, or 03

9. If RX Summ--Scope Reg LN Sur = 5 (4 or more regional nodes removed)
    Regional Nodes Examined must = 04-90, 96, 97, 98

10. If RX Summ--Scope Reg LN Sur = 9 (unknown whether nodal procedure performed)
    Regional Nodes Examined must = 99 (unknown if nodes removed or examined)]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-31" ref="68636">Edit created.</event>
                <event version="SE21-021-06" user="beverung" date="2021-06-10" ref="68681">Added skip condition for Type of Reporting Source = 6 (Autopsy only)</event>
                <event version="SE22-022-01" user="secristc" date="2022-02-14" ref="68796">Updated skip conditions, changed logic for RX Summ Scope Reg LN Sur = 0</event>
                <event version="SE22-022-05" user="kirbyk" date="2022-05-17" ref="68995">Replaced non-ASCII characters in description.</event>
                <event version="SE23-023-03" user="shearerw" date="2023-05-24" ref="69216">Fix logic for DOLC within 5 months of DX date to allow difference in year.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-07-03" ref="69484">Add logic to pass edit for certain Schema ID and Primary Site combinations.</event>
            </history>
        </rule>
        <rule id="IFN6366" name="EOD Primary Tumor, Retinoblastoma, RX Summ--Surg Prim Site 03-2022 (SEER)" tag="N6366" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.dateOfDiagnosisYear > '2022' || line.eodPrimaryTumor == null || line.rxSummSurgPrimSite == null)
    return true
if (line.typeOfReportingSource == '7' || line.schemaId == null || line.schemaId != '00680')
    return true

return !Functions.matches(line.eodPrimaryTumor, /^[12]75|[2347]50|[45]00$/) || line.rxSummSurgPrimSite == '41']]></expression>
            <message>EOD Primary Tumor/Surgery conflict for Retinoblastoma</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor is coded consistently with RX Summ--
Surg Prim Site 03-2022 for Schema ID 00680, Retinoblastoma.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021 or greater than 2022, blank (unknown), or invalid.
    b. Schema ID is blank or not 00680
    c. EOD Primary Tumor is blank
    d. RX Summ--Surg Prim Site 03-2022 is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)


2. If EOD Primary Tumor = 175, 250, 275, 350, 400, 450, 500, or 750 (codes
    requiring surgical resection, enucleation)
    then RX Summ--Surg Prim Site 03-2022 must = 41 (enucleation)]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-25" ref="68606">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE23-023-01" user="cooki" date="2023-01-25" ref="69107">Added skip condition for 2022+ and 03-2022 label to Surg Prim Site, updated edit name.</event>
            </history>
        </rule>
        <rule id="IFN6367" name="RX Summ--Surg Oth Reg/Dis, Schema ID, Primary Site, 2018 (NAACCR)" tag="N6367" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null)
    return true
if (line.rxSummSurgOthRegDis == null || line.primarySite == null || line.typeOfReportingSource == '7')
    return true

boolean primarySiteCondition = Functions.matches(line.primarySite, /^C(42[0134]|7(6[0-8]|7\d)|809)$/) && line.schemaId != '00060'
if (primarySiteCondition && !['0','1','9'].contains(line.rxSummSurgOthRegDis))
    return false

return true]]></expression>
            <message>RX Summ--Surg Oth Reg/Dis must = 0, 1, or 9 for this primary site</message>
            <description><![CDATA[9731,This edit verifies that RX Summ--Surg Oth Reg/Dis is coded appropriately by
Schema ID and/or Primary Site code.

1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis before 2018, blank (unknown), or invalid.
    b. Schema ID is blank
    c. RX Summ--Surg Oth Reg/Dis is blank.
    d. Primary Site is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. RX Summ--Surg Oth Reg/Dis must = 0, 1, or 9 for
   Any case with Primary Site code = C420, C421, C423, C424, C760-C768
    (excluding Schema ID 00060, C760), C770-C779, C809]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-31" ref="68636">Edit created.</event>
                <event version="SE21-021-04" user="kirbyk" date="2021-05-14" ref="68664">Updated Schema ID exclusion for condition #2.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-01" user="beverung" date="2022-02-25" ref="68820">Update to run for DX Years 2018 and later. Add DCO skip condition and remove DCO logic.</event>
            </history>
        </rule>
        <rule id="IFN6368" name="Reason for No Surgery, Surg Prim Site 03-2022, Primary Site, 2018 (NAACCR)" tag="N6368" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.dateOfDiagnosisYear > '2022' || line.rxSummSurgPrimSite == null || line.reasonForNoSurgery == null)
    return true

if (line.typeOfReportingSource == '7' || line.typeOfReportingSource == '6')
    return true

if (Functions.matches(line.primarySite, /^C(42[0134]|76[0-8]|809)$/))
    return line.reasonForNoSurgery == '1'
else if (line.rxSummSurgPrimSite == '00' && !Functions.matches(line.reasonForNoSurgery, /^[1-9]$/))
    return false
else if (Functions.matches(line.rxSummSurgPrimSite, /^[1-8]\d|90$/) && line.reasonForNoSurgery != '0')
    return false
else if (line.rxSummSurgPrimSite == '98' && line.reasonForNoSurgery != '1')
    return false
else if (line.rxSummSurgPrimSite == '99' && !['8','9'].contains(line.reasonForNoSurgery))
    return false
return true]]></expression>
            <message>Reason for No Surgery conflicts with RX Summ--Surg Prim Site 03-2022</message>
            <description><![CDATA[This edit checks that Reason for No Surgery is coded consistently
with RX Summ--Surgery Prim Site.

1. This edit is skipped for any of the following conditions:
    a. Date of diagnosis before 2018 or after 2022, blank (unknown), or invalid.
    b. Rx Summ--Surg Prim site 03-2022 is blank
    c. Reason for No Surgery is blank
    d. Type of Reporting Source = 7 (Death Certificate Only) or 6 (Autopsy Only)

2. If Primary Site = C420, C421, C423, C424, C760-C768, C809,
     Reason for No Surgery must = 1

3. If RX Summ--Surgery Prim Site 03-2022 = 00 (no surgery performed)
    Reason for No Surgery must = 1-9 (surgery not performed)

4. If RX Summ--Surgery Prim Site 03-2022 = 10-90 (surgery performed)
    Reason for No Surgery must = 0 (surgery performed)

5. If RX Summ--Surg Prim Site 03-2022 = 98 (not applicable)
    Reason for No Surgery must = 1 (surgery not recommended)

6. If RX Summ--Surg Prim Site 03-2022 = 99 (unknown if surgery performed)
   Reason for No Surgery must = 8 or 9 (unknown if surgery performed)]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-31" ref="68636">Edit created.</event>
                <event version="SE21-021-06" user="beverung" date="2021-06-11" ref="68682">Updated so subsequent conditions are not checked if conditions 2,3 apply</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68897">Update edit name to match new NAACCR translated edit.</event>
                <event version="SE22-022-01" user="beverung" date="2022-02-25" ref="68866">Update to run for DX Years 2018 and later. Add DCO skip condition and remove DCO logic.</event>
                <event version="SE22-022-12" user="kirbyk" date="2022-10-13" ref="69041">Added skip condition for Type of Reporting Source = 6.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-01-26" ref="69108">Update edit name. Add skip condition for DX year after 2022.</event>
            </history>
        </rule>
        <rule id="IFN6371" name="SSDI for Pancreas, Blank for Other Schemas (NAACCR)" tag="N6371" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if(line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.schemaId == '00280')
            return true
return line.ca199PretxLabValue == null]]></expression>
            <message>CA19-9 PreTX Lab Value should be blank for this schema</message>
            <description><![CDATA[This edit verifies that Site-Specific Data Items that are defined for Pancreas
(Schema ID 00280) are blank (not coded) for all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2021, blank, invalid.
    b.Schema ID is blank or 00280

If Schema ID is not 00280 (Pancreas), the following Site-
Specific Data Item must be blank:

    CA19-9 PreTX Lab Value]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-04-13" ref="68635">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6373" name="HER2 Overall Summary, Esophagus Squamous, Schema ID, Required (NAACCR)" tag="N6373" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.typeOfReportingSource == '7')
        return true
if (line.schemaId == '00161')
    return line.her2OverallSummary != null

return true]]></expression>
            <message>HER2 Overall Summary must not be blank or not applicable for Esophagus Squamous for cases 2021+</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2021, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)

2. This edit verifies that HER2 Overall Summary is coded (not blank) for the
   Schema IDs for which it is required by a standard setter.
    Required for Schema ID starting with 2021 diagnoses:

    00161: Esophagus Squamous]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-03-23" ref="68626">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6374" name="HER2 Overall Summary, Esophagus, Schema ID, Required (NAACCR)" tag="N6374" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.typeOfReportingSource == '7')
        return true
if (line.schemaId == '00169')
    return line.her2OverallSummary != null

return true]]></expression>
            <message>HER2 Overall Summary must not be blank or not applicable for Esophagus for cases 2021+</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2021, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)

2. This edit verifies that HER2 Overall Summary is coded (not blank) for the
   Schema IDs for which it is required by a standard setter.
   Required for Schema ID starting with 2021 diagnoses:

    00169: Esophagus]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-03-23" ref="68626">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6375" name="HER2 Overall Summary, Stomach, Schema ID, Required (NAACCR)" tag="N6375" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.typeOfReportingSource == '7')
        return true
if (line.schemaId == '00170')
    return line.her2OverallSummary != null

return true]]></expression>
            <message>HER2 Overall Summary must not be blank for Schema ID for cases diagnosed 2021 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2021, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)

2. This edit verifies that HER2 Overall Summary is coded (not blank) for
the Schema IDs for which it is required by a standard setter.
    Required for Schema ID starting with 2021 diagnoses:

    00170: Stomach]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-03-23" ref="68626">Edit created.</event>
                <event version="SE23-023-06" user="shearerw" date="2023-08-04" ref="69300">Update error message year to 2021.</event>
            </history>
        </rule>
        <rule id="IFN6376" name="Ki-67, NET, Schema ID, Required (NAACCR)" tag="N6376" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[ if(line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.typeOfReportingSource == '7')
            return true
if ('0000001565' == line.registryId && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if ('0000001566' == line.registryId && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

if (['00290','00301','00302','00310','00320','00330','00340','09290','09301','09302','09310','09320','09330','09340'].contains(line.schemaId))
    return line.ki67 != null && line.ki67 != 'XXX.8'
return true]]></expression>
            <message>Ki-67 must not be blank or not applicable for Schema ID cases diagnosed 2021 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
   a. Date of Diagnosis pre-2021, blank (unknown), or invalid.
   b. Schema ID is blank.
   c. Type of Reporting Source = 7 (Death Certificate Only)
   d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
   e. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

2. This edit verifies that Ki-67 is not "XXX.8" (not applicable) and not blank
   for the Schema IDs for which it is required by a standard setter.

    00290 NET Stomach [8th: 2018-2023]
    00301 NET Duodenum [8th: 2018-2023]
    00302 NET Ampulla of Vater [8th: 2018-2023]
    00310 NET Jejunum and Ileum [8th: 2018-2023]
    00320 NET Appendix [8th: 2018-2023]
    00330 NET Colon and Rectum [8th: 2018-2023]
    00340 NET Pancreas [8th: 2018-2023]

    09290 NET Stomach [V9: 2024+]
    09301 NET Duodenum [V9: 2024+]
    09302 NET Ampulla of Vater [V9: 2024+]
    09310 NET Jejunum and Ileum [V9: 2024+]
    09320 NET Appendix [V9: 2024+]
    09330 NET Colon and Rectum [V9: 2024+]
    09340 NET Pancreas [V9: 2024+]
]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-04-20" ref="68639">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68989">Added skip condition for IL for DX years 2018-2022, TX for 2018-2021.</event>
                <event version="SE23-023-06" user="cooki" date="2023-08-07" ref="69301">Changed error message to 2021+ cases.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-03-01" ref="69405">Add schemas for 2024+.</event>
            </history>
        </rule>
        <rule id="IFN6383" name="EOD Primary Tumor, Ovary/Fallopian Tube, Morphology ICDO3 (SEER)" tag="N6383" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.eodPrimaryTumor == null)
    return true
if (line.typeOfReportingSource == '7' || line.schemaId == null || !['00551','00553'].contains(line.schemaId))
    return true
if (line.histologicTypeIcdO3 == null || line.behaviorCodeIcdO3 == null)
    return true

String morphTypebehavIcdO3 = line.histologicTypeIcdO3 + line.behaviorCodeIcdO3
if (line.schemaId == '00551') {
    if (morphTypebehavIcdO3 == '84412')
        return ['000','050'].contains(line.eodPrimaryTumor)
    if (line.eodPrimaryTumor == '050')
        return morphTypebehavIcdO3 == '84412'
}
else if (line.schemaId == '00553') {
    if (morphTypebehavIcdO3 == '84412')
        return ['000','050','070','080'].contains(line.eodPrimaryTumor)
    if (['050','070','080'].contains(line.eodPrimaryTumor))
        return morphTypebehavIcdO3 == '84412'
}
return true]]></expression>
            <message>EOD Primary Tumor/Morphology conflct for Fallopian Tube</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor is coded consistently with Histologic Type ICD-O-3
and Behavior ICD-O-3 code 8441/2 for Schema ID 00551, Ovary, and 00553, Fallopian Tube.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00551 or 00553
    c. EOD Primary Tumor is blank
    d. Histologic Type ICD-O-3 or Behavior Code ICD-O-3 is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)


2. If Schema ID = 00551,
    a. If Histologic Type ICD-O-3 and Behavior Code ICD-O-3 = 84412
       EOD Primary Tumor must = 000 or 050

    b. If EOD Primary Tumor = 050
        Histologic Type ICD-O-3 and Behavior Code ICD-O-3 must = 84412

3. If Schema ID = 00553
    a. If Histologic Type ICD-O-3 and Behavior Code ICD-O-3 = 84412
       EOD Primary Tumor must = 000, 050, 070, or 080

    b. If EOD Primary Tumor = 050, 070, or 080
        Histologic Type ICD-O-3 and Behavior Code ICD-O-3 must = 84412]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-25" ref="68606">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-01-26" ref="69112">Update description to replace Morph with Hist. No logic changed.</event>
            </history>
        </rule>
        <rule id="IFN6385" name="Mets at DX-BBDLLO, Behavior Code ICDO3 (NAACCR)" tag="N6385" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.typeOfReportingSource == '7' || line.behaviorCodeIcdO3 == null)
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null  && line.metsAtDxLiver == null  && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true

boolean areAllMetsZero = line.metsAtDxBone == '0' && line.metsAtDxBrain == '0' && line.metsAtDxDistantLn == '0'  && line.metsAtDxLiver == '0'  && line.metsAtDxLung == '0' && line.metsAtDxOther == '0'
boolean areAllMetsEight = line.metsAtDxBone == '8' && line.metsAtDxBrain == '8' && line.metsAtDxDistantLn == '8'  && line.metsAtDxLiver == '8'  && line.metsAtDxLung == '8' && line.metsAtDxOther == '8'
if (line.dateOfDiagnosisYear < '2022' && ['00790', '00795', '00830', '99999'].contains(line.schemaId) && areAllMetsEight)
    return true
if (line.schemaId == '00822' || Functions.matches(line.primarySite, /^C42[0-4]$/))
    return true

if (Functions.matches(line.primarySite, /^C7([0-2][0-9]|5[123])$/)) {
    if (['0', '1'].contains(line.behaviorCodeIcdO3) && !(areAllMetsZero || areAllMetsEight))
        return false
}
else if (['0', '1', '2'].contains(line.behaviorCodeIcdO3) && !areAllMetsZero)
    return false

return true]]></expression>
            <message>Mets at DX fields are invalid for Behavior code</message>
            <description><![CDATA[The purpose of this edit is to verify that the Mets at DX-Bone, Brain, Distant LN, Liver, Lung, and Other fields
are blank or coded to 0 (not present) or 8 (not applicable) for Behavior Code ICD-O-3 values of 0 and 1 for brain and CNS tumors.
For other sites the edit verifies that the Mets at DX fields are blank or coded 0 for Behavior Code ICD-O-3 = 0, 1, or 2 (STORE requirement).

This edit is skipped under the following conditions:

1. Year of Date of Diagnosis is less than 2018, blank (unknown), or invalid
2. Type of Reporting Source = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 is blank
4. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN, Mets at DX-
    Liver, Mets at DX-Lung, and Mets at DX-Other are all blank
5. Diagnosis date = 2018-2021, Schema ID = 00790, 00795, 00830, 99999, and all
    Mets at DX fields = 8.
6. Schema ID = 00822, or Primary Site = C420, C421, C423, C424

If Primary Site = C700-C729, C751-C753 and Behavior Code ICD-O-3 = 0 or 1,
   all Mets at DX fields must = 0, all must = 8, or all must be blank

For all other primary sites, if Behavior Code ICD-O-3 = 0, 1, or 2
    Mets at DX fields must all = 0 or all must be blank]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-04-07" ref="68633">Edit created.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-27" ref="69200">Add skip conditions. Update Mets at DX logic to check for Primary Site.</event>
                <event version="SE24-024-01" user="cooki" date="2024-03-04" ref="69339">Replaced first paragraph description.</event>
            </history>
        </rule>
        <rule id="IFN6396" name="Derived Summary Stage 2018, HemeRetic, Histology (SEER)" tag="N6396" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.derivedSummaryStage2018 == null)
    return true

if (line.schemaId == null || line.schemaId != '00830' || line.histologicTypeIcdO3 == null)
    return true

if (((List)Context.IFN6396_Hist_List).contains(line.histologicTypeIcdO3)) {
    if (line.typeOfReportingSource == '7')
        return line.derivedSummaryStage2018 == '9'
    else
        return ['1','7','9'].contains(line.derivedSummaryStage2018)
}
else {
    if (line.typeOfReportingSource == '7')
        return ['7','9'].contains(line.derivedSummaryStage2018)
    else
        return line.derivedSummaryStage2018 == '7'
}]]></expression>
            <message>Derived Summary Stage 2018 conflicts with Histologic Type ICD-O-3</message>
            <description><![CDATA[This edit verifies that Derived Summary Stage 2018 is coded consistently with
histologies allowing localized disease and histologies requiring systemic
disease for Schema ID 00830, HemeRetic

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00830
    c. Derived Summary Stage 2018 is blank
    d. Histologic Type ICD-O-3 is blank


2. If Histologic Type ICD-O-3 is in the following list,
    a. If Type of Reporting Source = 7 (Death certificate only),
       Derived Summary Stage 2018 must = 9.
    b. If Type of Report Source not = 7, Derived Summary Stage 2018
        must = 1, 7, or 9.

    9740        Mast cell sarcoma
    9749        Erdheim-Chester disease (2021+)
    9751        Langerhans cell histiocytosis, disseminated
    9755        Histiocytic sarcoma
    9756        Langerhans cell sarcoma
    9757        Interdigitating dendritic cell sarcoma
    9758        Follicular dendritic cell sarcoma
    9759        Fibroblastic reticular cell tumor
    9930        Myeloid sarcoma
    9971        Polymmorphic PTLD (2018-2020 only, nonreportable 2021+)

3. For all other histologies,
    a. If Type of Reporting Source = 7 (Death Certificate Only),
         Derived Summary Stage 2018 must = 7 or 9.
    b. If Type of Reporting Source not = 7,
       Derived Summary Stage 2018 must = 7.]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-22" ref="68603">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6397" name="Derived Summary Stage 2018, Lymphoma, Primary Site (SEER)" tag="N6397" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.derivedSummaryStage2018 == null)
    return true

if (line.schemaId == null || !['00790', '00795'].contains(line.schemaId) || line.primarySite == null)
    return true

if (line.primarySite == 'C421') {
    if (line.typeOfReportingSource == '7')
        return ['7','9'].contains(line.derivedSummaryStage2018)
    else
        return line.derivedSummaryStage2018 == '7'
}
else if (line.primarySite == 'C778')
    return ['2','7','9'].contains(line.derivedSummaryStage2018)

return true]]></expression>
            <message>Derived Summary Stage 2018 not valid for Primary Site</message>
            <description><![CDATA[This edit verifies that Derived Summary Stage 2018 is coded correctly for Primary Sites
C421 and C778 for Schema IDs 00790, Lymphoma and 00795, Lymphoma CLL/SLL

1. This edit is skipped for any of the following conditions:
    a. Diagnosis date is pre-2021, blank (unknown), or invalid
    b. Schema ID is blank or not 00790 or 00795
    c. Primary Site is blank
    d. Derived Summary Stage 2018 is blank

2. If Primary Site = C421,
    If Type of Reporting Source = 7 (Death Certificate Only)
    Derived Summary Stage 2018 must = 7 or 9
    If Type of Reporting Source not = 7,
    Derived Summary Stage 2018 must = 7

3. If Primary Site = C778, Derived Summary Stage 2018 must = 2, 7, or 9]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-22" ref="68603">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6398" name="Derived Summary Stage 2018, Plasma Cell Disorders, Histology (SEER)" tag="N6398" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.derivedSummaryStage2018 == null)
    return true

if (line.schemaId == null || line.schemaId != '00822' || line.histologicTypeIcdO3 == null)
    return true

if (line.histologicTypeIcdO3 == '9731') {
    if (line.typeOfReportingSource == '7')
        return line.derivedSummaryStage2018 == '9'
    else
        return ['1','9'].contains(line.derivedSummaryStage2018)
}
else if (line.histologicTypeIcdO3 == '9734') {
    if (line.typeOfReportingSource == '7')
        return line.derivedSummaryStage2018 == '9'
    else
        return ['1','3','9'].contains(line.derivedSummaryStage2018)
}
else if (['9671','9761'].contains(line.histologicTypeIcdO3)) {
    if (line.typeOfReportingSource == '7')
        return ['7','9'].contains(line.derivedSummaryStage2018)
    else
        return line.derivedSummaryStage2018 == '7'
}
return true]]></expression>
            <message>Derived Summary Stage 2018 not valid for Histologic Type ICD-O-3</message>
            <description><![CDATA[This edit verifies that Derived Summary Stage 2018 is coded correctly by histology
for Schema ID 00822, Plasma Cell Disorder

1. This edit is skipped for any of the following conditions:
    a. Diagnosis date is pre-2021, blank (unknown), or invalid
    b. Schema ID is blank or not 00822
    c. Histologic Type ICD-O-3 is blank
    d. Derived Summary Stage 2018 is blank

2. If Histologic Type ICD-O-3 = 9731 (Plasmacytoma NOS)
    a. If Type of Reporting Source = 7 (Death certificate only)
        Derived Summary Stage 2018 must = 9.
    b. If Type of Reporting Source not = 7
        Derived Summary Stage 2018 must = 1 or 9

3. If Histologic Type ICD-O-3 = 9734 (Plasmacytoma Extramedullary,
    a. If Type of Reporting Source = 7
        Derived Summary Stage must = 9
    b. If Type of Reporting Source not = 7
        Derived Summary Stage 2018 must = 1, 3, or 9

4. If Histologic Type ICD-O-3 = 9671 (Lymphoplasmacytic Lymphoma),
    or 9761 (Waldenstrom Macroglobulinemia),
    a.  If Type of Reporting Source = 7 (Death Certificate Only)
        Derived Summary Stage 2018 must = 7 or 9
    b.  If Type of Reporting Source not = 7,
        Derived Summary Stage 2018 must = 7]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-22" ref="68603">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6399" name="Derived Summary Stage 2018, Plasma Cell Myeloma, Histology (SEER)" tag="N6399" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.derivedSummaryStage2018 == null)
    return true

if (line.schemaId == null || line.schemaId != '00821')
    return true

if (line.typeOfReportingSource == '7')
    return ['7','9'].contains(line.derivedSummaryStage2018)
else
    return line.derivedSummaryStage2018 == '7']]></expression>
            <message>Derived Summary Stage 2018 not valid for Schema ID</message>
            <description><![CDATA[This edit verifies that Derived Summary Stage 2018 is coded correctly
for Schema ID 00821, Plasma Cell Myeloma.

1. This edit is skipped for any of the following conditions:
    a. Diagnosis date is pre-2021, blank (unknown), or invalid
    b. Schema ID is blank or not 00821
    c. Derived Summary Stage 2018 is blank

2. If Type of Reporting Source = 7 (Death Certificate Only)
   Derived Summary Stage may = 7 or 9

3. If Type of Reporting Source is not 7
    Derived Summary Stage 2018 must = 7]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-22" ref="68603">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6407" name="Mets at DX, Bile Ducts Intrahepatic, EOD Mets (SEER)" tag="N6407" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.eodMets == null || line.schemaId == null || line.schemaId != '00230')
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true

boolean metsAtDxBoneCondition = line.metsAtDxBone == null || ['0','9'].contains(line.metsAtDxBone)
boolean metsAtDxBrainCondition = line.metsAtDxBrain == null || ['0','9'].contains(line.metsAtDxBrain)
boolean metsAtDxLiverCondition = line.metsAtDxLiver == null || ['0','9'].contains(line.metsAtDxLiver)
boolean metsAtDxLungCondition = line.metsAtDxLung == null || ['0','9'].contains(line.metsAtDxLung)
boolean metsAtDxOtherCondition = line.metsAtDxOther == null || ['0','9'].contains(line.metsAtDxOther)

if (line.metsAtDxDistantLn == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxLiverCondition && metsAtDxLungCondition && metsAtDxOtherCondition && !['10','50'].contains(line.eodMets))
    return false
if ((line.metsAtDxBone == '1' || line.metsAtDxBrain == '1' || line.metsAtDxLiver == '1' || line.metsAtDxLung == '1' || line.metsAtDxOther == '1' || line.metsAtDxOther == '2') && line.eodMets != '70')
    return false
if (['10','50'].contains(line.eodMets) && line.metsAtDxDistantLn != '1')
    return false
return true]]></expression>
            <message>Mets at DX fields conflict with EOD Mets for Bile Ducts Intrahepatic</message>
            <description><![CDATA[This edit verifies that Mets at DX-Bone, Mets at DX-Brain,
Mets at DX-Distant LN, Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other
are coded consistently with EOD Mets for Schema ID 00230, Bile Ducts Intrahepatic.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00230
    c. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN,
        Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other are all blank
    d. EOD Mets is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If Mets at DX-Distant LN = 1 (and Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
       Mets at DX-Liver = 0,9, Mets at DX-Lung = 0,9, Mets at DX-Other = 0,9, or fields
        are empty)
        then EOD Mets must = 10 or 50.

3. If Mets at DX-Bone = 1, Mets at DX-Brain = 1, Mets at DX-Liver,
      Mets at DX-Lung = 1, or Mets at DX-Other = 1 or 2,
       then EOD Mets must = 70.

4. If EOD Mets = 10 or 50 (Distant lymph nodes)
       then Mets at DX-Distant LN must = 1]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-14" ref="68608">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6408" name="Mets at DX, Pancreas, EOD Mets (SEER)" tag="N6408" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.eodMets == null || line.schemaId == null || line.schemaId != '00280')
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true

boolean metsAtDxBoneCondition = line.metsAtDxBone == null || ['0','9'].contains(line.metsAtDxBone)
boolean metsAtDxBrainCondition = line.metsAtDxBrain == null || ['0','9'].contains(line.metsAtDxBrain)
boolean metsAtDxLiverCondition = line.metsAtDxLiver == null || ['0','9'].contains(line.metsAtDxLiver)
boolean metsAtDxLungCondition = line.metsAtDxLung == null || ['0','9'].contains(line.metsAtDxLung)
boolean metsAtDxOtherCondition = line.metsAtDxOther == null || ['0','9'].contains(line.metsAtDxOther)

if (line.metsAtDxDistantLn == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxLiverCondition && metsAtDxLungCondition && metsAtDxOtherCondition && !['10','20'].contains(line.eodMets))
    return false
if ((line.metsAtDxBone == '1' || line.metsAtDxBrain == '1' || line.metsAtDxLiver == '1' || line.metsAtDxLung == '1' || line.metsAtDxOther == '1' || line.metsAtDxOther == '2') && line.eodMets != '70')
    return false
if (['10','20'].contains(line.eodMets) && line.metsAtDxDistantLn != '1')
    return false
return true]]></expression>
            <message>Mets at DX fields conflict with EOD Mets for Pancreas</message>
            <description><![CDATA[This edit verifies that Mets at DX-Bone, Mets at DX-Brain,
Mets at DX-Distant LN, Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other
are coded consistently with EOD Mets for Schema ID 00280, Pancreas.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00280
    c. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN,
        Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other are all blank
    d. EOD Mets is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If Mets at DX-Distant LN = 1 (and Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
       Mets at DX-Liver = 0,9, Mets at DX-Lung = 0,9, Mets at DX-Other = 0,9, or fields
        are empty)
        then EOD Mets must = 10 or 20.

3. If Mets at DX-Bone = 1, Mets at DX-Brain = 1, Mets at DX-Liver,
      Mets at DX-Lung = 1, or Mets at DX-Other = 1 or 2,
       then EOD Mets must = 70.

4. If EOD Mets = 10 or 20 (Distant lymph nodes)
       then Mets at DX-Distant LN must = 1]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-14" ref="68608">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6427" name="Neoadjuvant Therapy, Required (SEER)" tag="N6427" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[ if(line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
            return true
if ('0000001565' == line.registryId && line.dateOfDiagnosisYear > '2020' && line.dateOfDiagnosisYear < '2023')
    return true
if ('0000001566' == line.registryId && line.dateOfDiagnosisYear == '2021')
    return true
return line.neoadjuvantTherapy != null]]></expression>
            <message>Neoadjuvant Therapy must not be blank for Date of Diagnosis 2021 or later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2021, blank (unknown), or invalid.
    b. Type of Reporting Source = 7 (Death Certificate Only)
    c. Registry is Illinois (0000001565) and Year of Diagnosis is 2021-2022
    d. Registry is Texas (0000001566) and Year of Diagnosis is 2021

2. This edit verifies that Neoadjuvant Therapy is not blank for Date of Diagnosis 2021+.]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-04-23" ref="68609">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68988">Added skip condition for IL for 2021-2022, and TX for 2021.</event>
            </history>
        </rule>
        <rule id="IFN6428" name="Neoadjuvant Therapy-Clinical Response, Required (SEER)" tag="N6428" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[ if(line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
            return true
if ('0000001565' == line.registryId && line.dateOfDiagnosisYear > '2020' && line.dateOfDiagnosisYear < '2023')
    return true
if ('0000001566' == line.registryId && line.dateOfDiagnosisYear == '2021')
    return true
return line.neoadjuvTherapyClinicalResponse != null]]></expression>
            <message>Neoadjuvant Therapy-Clinical Response must not be blank for Date of Diagnosis 2021 or later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2021, blank (unknown), or invalid.
    b. Type of Reporting Source = 7 (Death Certificate Only)
    c. Registry is Illinois (0000001565) and Year of Diagnosis is 2021-2022
    d. Registry is Texas (0000001566) and Year of Diagnosis is 2021

2. This edit verifies that Neoadjuvant Therapy-Clinical Response is not blank for Date of Diagnosis 2021+.]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-04-26" ref="68609">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68988">Added skip condition for IL for 2021-2022, and TX for 2021.</event>
            </history>
        </rule>
        <rule id="IFN6429" name="Neoadjuvant Therapy-Treatment Effect, Required (SEER)" tag="N6429" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[ if(line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
            return true
if ('0000001565' == line.registryId && line.dateOfDiagnosisYear > '2020' && line.dateOfDiagnosisYear < '2023')
    return true
if ('0000001566' == line.registryId && line.dateOfDiagnosisYear == '2021')
    return true
return line.neoadjuvTherapyTreatmentEffect != null]]></expression>
            <message>Neoadjuvant Therapy-Treatment Effect must not be blank for Date of Diagnosis 2021 or later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2021, blank (unknown), or invalid.
    b. Type of Reporting Source = 7 (Death Certificate Only)
    c. Registry is Illinois (0000001565) and Year of Diagnosis is 2021-2022
    d. Registry is Texas (0000001566) and Year of Diagnosis is 2021

2. This edit verifies that Neoadjuvant Therapy-Treatment Effect is not blank for Date of Diagnosis 2021+.]]></description>
            <history>
                <event version="SE21-021-04" user="secristm" date="2021-04-26" ref="68609">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68988">Added skip condition for IL for 2021-2022, and TX for 2021.</event>
            </history>
        </rule>
        <rule id="IFN6432" name="Regional Nodes Positive, RX Summ--Scope Reg LN Sur (NAACCR)" tag="N6432" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.regionalNodesPositive == null)
    return true
if (line.rxSummScopeRegLnSur == null || line.typeOfReportingSource == '7')
    return true

if (['00790', '00795', '00822', '00830', '99999'].contains(line.schemaId) && !Functions.matches(line.primarySite, /^C42[0134]|C589|C7[012]\d|C75[123]|C76[1-8]|C77\d|C809$/)
    && Functions.matches(line.rxSummScopeRegLnSur, /^\d$/))
    return true

if (line.rxSummScopeRegLnSur == '0') {
        Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
        Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
        Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
        Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
        Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
        Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

        if ((line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5)) || line.typeOfReportingSource == '6')
            return Functions.matches(line.regionalNodesPositive, /^[0-8]\d|9[078]$/)

        else
            return line.regionalNodesPositive == '98'
    }
else if (line.rxSummScopeRegLnSur == '1' && !['95','00'].contains(line.regionalNodesPositive))
    return false
else if (Functions.matches(line.rxSummScopeRegLnSur, /^[4-7]$/) && line.regionalNodesPositive == '98')
    return false
return true]]></expression>
            <message>RX Summ--Scope Reg LN Sur conflicts with Regional Nodes Positive</message>
            <description><![CDATA[This edit checks that Regional Nodes Positive is coded
consistently with RX Summ--Scope Reg LN Sur.

1. This edit is skipped for any of the following conditions:
    a. Diagnosis date is pre-2021, blank (unknown), or invalid
    b. Regional Nodes Positive is blank
    c. RX Summ--Scope Reg LN Sur is blank
    d. Type of Reporting Source = 7 (Death Certificate Only)

2. If Schema ID = 00790, 00795, 00822, 00830, or 99999, and Primary Site not = C420, C421, C423, C424, C589, C700-C709, C710-C729, C751-C753, C761-C768, C770-C779, or C809
    If RX Summ--Scope Reg LN Sur = 0-9, the edit passes.

3. If RX Summ--Scope Reg LN Sur = 0 (no nodal procedure performed)
    A. then if Vital Status = 0 and Date of Last Contact <= 5 months from Date of Diagnosis,
    or Type of Reporting Source = 6 (Autopsy Only), Regional Nodes Positive must = 00-90,97, or 98.
    B. For all other cases, Regional Nodes Positive must = 98 (no nodes examined)

4. If RX Summ--Scope Reg LN Sur = 1 (biopsy or aspiration of lymph node only)
    Regional Nodes Positive must = 95 (positive aspiration or
    core biopsy of regional nodes) or 00 (all nodes examined negative)

5. If RX Summ--Scope Reg LN Sur = 4-7 (regional nodal procedure performed)
    Regional Nodes Positive must not = 98 (no nodes examined)]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-31" ref="68636">Edit created.</event>
                <event version="SE21-021-04" user="kirbyk" date="2021-05-14" ref="68663">Updated skip conditions and valid Regional Nodes Positive values.</event>
                <event version="SE21-021-05" user="kirbyk" date="2021-05-26" ref="68673">Removed Class of Case skip condition.</event>
                <event version="SE22-022-01" user="secristc" date="2022-02-14" ref="68797">Removed schema skip condition, changed logic for RX Summ-Scope = 0.</event>
                <event version="SE22-022-05" user="kirbyk" date="2022-05-17" ref="68995">Replaced non-ASCII characters in description.</event>
                <event version="SE23-023-03" user="shearerw" date="2023-05-24" ref="69216">Fix logic for DOLC within 5 months of DX date to allow difference in year.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-06-27" ref="69485">Add logic to pass edit for certain Schema ID and Primary Site combinations.</event>
            </history>
        </rule>
        <rule id="IFN6436" name="RX Summ--Treatm Stat, Date Initial RX SEER (SEER)" tag="N6436" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
boolean dateInitialRxSeerDateIsBlank = line.dateInitialRxSeerYear == null && line.dateInitialRxSeerMonth == null && line.dateInitialRxSeerDay == null

boolean surgPrimSiteCondition = line.dateOfDiagnosisYear >= '2023' ?
    ['A000', 'B000', 'A980'].contains(line.rxSummSurgPrimSite2023) :
    ['00', '98'].contains(line.rxSummSurgPrimSite)

if (Functions.matches(line.rxSummScopeRegLnSur, /^[0-79]$/) &&
    surgPrimSiteCondition &&
    line.rxSummSurgOthRegDis == '0' &&
    Functions.matches(line.rxSummBrm, /^00|8[0-8]$/) &&
    Functions.matches(line.rxSummChemo, /^00|8[0-8]$/) &&
    Functions.matches(line.rxSummHormone, /^00|8[0-8]$/) &&
    Functions.matches(line.rxSummTransplntEndocr, /^00|8[0-8]$/) &&
    Functions.matches(line.rxSummOther, /^[078]$/) &&
    (line.phase1RadiationTreatmentModality == '00' || Functions.matches(line.reasonForNoRadiation, /^[125-9]$/)))
    return true

if (line.dateOfDiagnosisYear < '2024') {
    if ((line.rxSummTreatmentStatus == '0' || line.rxSummTreatmentStatus == '2' || line.rxSummTreatmentStatus == '9') && !dateInitialRxSeerDateIsBlank)
        return false
    if (!dateInitialRxSeerDateIsBlank && line.rxSummTreatmentStatus != '1')
        return false
}

if (line.dateOfDiagnosisYear > '2023') {
    if (line.rxSummTreatmentStatus == '0' || line.rxSummTreatmentStatus == '9')
        return dateInitialRxSeerDateIsBlank
    if (!dateInitialRxSeerDateIsBlank)
        return line.rxSummTreatmentStatus == '1' || line.rxSummTreatmentStatus == '2'
}

return true]]></expression>
            <message>Conflict between treatment status and treatment</message>
            <description><![CDATA[The purpose of this edit is to verify that RX Summ--Treatment Status and Date Initial RX SEER are coded consistently.

This edit is skipped under the following conditions:
1. Type of Reporting Source = 7
2. Date of diagnosis is blank (unknown), invalid, or pre-2021.
3. RX Summ--Scope Reg LN Sur is the only coded treatment type

If date of diagnosis is 2021-2023
A. If RX Summ--Treatment Status = 0 (no treatment given), 2 (watchful waiting), or 9 (unknown if treatment given), then Date Initial RX SEER must = blank.

B. If Date Initial RX SEER is not blank, RX Summ--Treatment Status must = 1 (treatment given).

If date of diagnosis > 2023
A. If RX Summ--Treatment Status = 0 (no treatment) or 9 (unknown if treatment given) then Date Initial RX SEER must = blank.

B. If Date Intial RX SEER is not blank,RX Summ--Treatment Status must = 1 (treatment given) or 2 (watchful waiting)]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-03-31" ref="68636">Edit created.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-01-25" ref="69082">Update logic to remove date flag.</event>
                <event version="SE23-023-06" user="shearerw" date="2023-08-01" ref="69298">Add logic for DX years 2024+</event>
                <event version="SE24-024-03" user="beverung" date="2024-04-05" ref="69345">Added skip condition if Scope Reg LN Sur is the only treatment. Added logic checking Treatment Status for 2024+ cases.</event>
            </history>
        </rule>
        <rule id="IFN6437" name="Lymphovascular Invasion, Schema ID (SEER)" tag="N6437" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.lymphVascularInvasion == null ||  line.schemaId == null || line.typeOfReportingSource == '7')
    return true

if (['00570', '00590'].contains(line.schemaId))
    return Functions.matches(line.lymphVascularInvasion, /^[012349]$/)

if (['00710', '00790', '00795', '00811', '00812', '00821', '00822', '00830'].contains(line.schemaId) || (line.schemaId == '00430' && line.dateOfDiagnosisYear > '2020'))
    return line.lymphVascularInvasion == '8'

if (line.dateOfDiagnosisYear > '2021' && ['00730', '00740', '00760'].contains(line.schemaId))
    return line.lymphVascularInvasion != '1' && line.lymphVascularInvasion != '8'

return true
            ]]></expression>
            <message>Lymphovascular Invasion not valid for Schema ID</message>
            <description><![CDATA[1. This edit is skipped for any of the following conditions:
    a. Diagnosis date is pre-2018, invalid, blank (unknown).
    b. Lymphovascular Invasion is blank
    c. Schema ID is blank.
    d. Type of Reporting Source = 7 (Death Certificate Only)

2. Lymphovascular invasion must be coded 0, 1, 2, 3, 4, or 9 for the following:
    Schema ID
    00570       Penis
    00590       Testis

3. Lymphvascular invasion must be coded 8 for the following:
    Schema IDs:

    00430       GIST (2021+)
    00710       Lymphoma Ocular Adnexa
    00790       Lymphoma
    00795       Lymphoma (CLL/SLL)
    00811       Mycosis Fungoides
    00812       Primary Cutaneous Lymphoma non MF
    00821       Plasma Cell Myeloma
    00822       Plasma Cell Disorder
    00830       HemeRetic

4. Lymphovascular Invasion must not be coded 1 or 8 for the following Schema IDs for 2022+:

    00730       Thyroid
    00740       Thyroid Medullary
    00760       Adrenal]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-04-01" ref="68632">Edit created.</event>
                <event version="SE21-021-06" user="kirbyk" date="2021-06-03" ref="68677">Restricting condition for Schema ID = 00430 to DX Years 2021+.</event>
                <event version="SE22-022-01" user="secristc" date="2022-01-17" ref="68816">Added logic for schema IDs 00730, 00740, 00760 for DX years 2021+.</event>
                <event version="SE22-022-17" user="beverung" date="2022-11-03" ref="69057">Updated Thyroid/Adrenal condition to check for DX Year 2022+.</event>
            </history>
        </rule>
        <rule id="IFN6453" name="LN Status Para-Aortic, Date DX (NAACCR)" tag="N6453" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.lnStatusParaAortic != null)
    return false

return line.lnStatusParaAortic == null || Functions.matches(line.lnStatusParaAortic, /^[0189]$/)]]></expression>
            <message>LN Status Para-Aortic is not a valid code.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid LN Status Para-Aortic code or blank:

    0: Negative para-aortic lymph nodes
    1: Positive para-aortic lymph nodes
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Para-Aortic lymph node(s) not assessed or
       unknown if assessed

Another edit, LN Status Para-Aortic, Schema ID, Required (NAACCR), checks
that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-02-02" ref="68887">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6455" name="LN Status Para-Aortic, Vagina/Cervix, Derived SS 2018 (SEER)" tag="N6455" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || !['00510','09520'].contains(line.schemaId) || line.lnStatusParaAortic == null ||
line.lnStatusParaAortic == '8' || line.derivedSummaryStage2018 == null || line.typeOfReportingSource == '7')
    return true
if (line.lnStatusParaAortic == '1')
    return !['0','1','2'].contains(line.derivedSummaryStage2018)
return true
            ]]></expression>
            <message>LN Status Para-Aortic conflicts with Derived Summary Stage 2018</message>
            <description><![CDATA[This edit verifies that LN Status Para-aortic SSDI is
coded consistently with Derived Summary Stage 2018, codes with nodal
involvement, for Vagina, and Cervix.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is not 00510 or 09520
    c. LN Status Para-Aortic is blank or 8 (not applicable)
    d. Derived Summary Stage 2018 is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. If LN Status Para-Aortic = 1 (lymph nodes positive)
    Derived Summary Stage 2018 must not = 0, 1, or 2 (in situ, local, or regional by direct extension only)
            ]]></description>
            <history>
                <event version="SE22-022-03" user="secristc" date="2022-04-21" ref="68964">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6456" name="LN Status Para-Aortic, Vagina/Cervix, Behavior (NAACCR)" tag="N6456" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (!['00510','09520'].contains(line.schemaId) || line.behaviorCodeIcdO3 == null)
    return true
if (line.lnStatusParaAortic == null || line.lnStatusParaAortic == '8')
    return true

return line.behaviorCodeIcdO3 != '2' || line.lnStatusParaAortic == '0' || (line.lnStatusParaAortic == '9' && line.dateOfDiagnosisYear < '2023')]]></expression>
            <message>LN Status Para-Aortic conflicts with Behavior Code ICD-O-3</message>
            <description><![CDATA[This edit verifies that the LN Status Para-Aortic SSDI
is coded consistently with Behavior Code ICD-O-3, code 2, for Schema
ID
00510 Vagina, and 09520, Cervix.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00510 or 09520
    c. LN Status Para-Aortic is blank or = 8 (not applicable)
    d. Behavior Code ICD-O-3 ICD is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

LN Status Para-Aortic is required by SEER only for analytic cases from
CoC-accredited facility.

2. If Behavior Code ICD-O-3 = 2 (in situ) and year of diagnosis 2021-2022
    then LN Status Para-Aortic must = 0 or 9 (no lymph
    node involvement or not documented in medical record)

3. If Behavior Code ICD-O-3 = 2 (in situ) and year of diagnosis 2023+
    then LN Status Para-Aortic must = 0 (defined as non-invasive neoplasm behavior)]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-22" ref="69179">Stop allowing 9 for LN Status Para-Aortic for 2023 forward.</event>
            </history>
        </rule>
        <rule id="IFN6457" name="LN Status, Cervix, EOD Regional Nodes (SEER)" tag="N6457" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.typeOfReportingSource == '7' || !['00520','09520'].contains(line.schemaId) || line.eodRegionalNodes == null)
    return true
if ((line.lnStatusParaAortic == null || line.lnStatusParaAortic == '8') && (line.lnStatusPelvic == null || line.lnStatusPelvic == '8'))
    return true

if (line.schemaId == '00520' && (line.lnStatusPelvic == '1' || line.lnStatusParaAortic == '1') && line.eodRegionalNodes != '300')
    return false

if (line.schemaId == '09520') {
    if (line.lnStatusPelvic == '1' && (Functions.matches(line.lnStatusParaAortic, /^[089]$/) || line.lnStatusParaAortic == null) && !['100','200','300'].contains(line.eodRegionalNodes))
        return false
    if (line.lnStatusParaAortic == '1' && !['400','500','600'].contains(line.eodRegionalNodes))
        return false
}
if (line.dateOfDiagnosisYear >= '2022') {
    if (line.lnStatusPelvic == '0' && line.lnStatusParaAortic == '0' && !['000','050'].contains(line.eodRegionalNodes))
        return false
    if (['000','050'].contains(line.eodRegionalNodes) && (line.lnStatusParaAortic != '0' || line.lnStatusPelvic != '0'))
        return false
}
return true]]></expression>
            <message>LN Status Pelvic and/or LN Status Para-Aortic conflicts with EOD Regional Nodes</message>
            <description><![CDATA[This edit verifies that LN Status Para-Aortic SSDI is
coded consistently with EOD Regional Nodes for Cervix.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or
invalid.
   b. Schema ID is not 00520 or 09520
   c. LN Status Para-Aortic is blank or 8 (not applicable) and
       LN Status Pelvic is blank or 8 (not applicable)
   d. EOD Regional Nodes is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

For Schema ID 00520:

2.  If LN Status Pelvic = 1 or LN Status Para-Aortic = 1 (lymph nodes positive)
    EOD Regional Nodes must = 300

For Schema ID 09520:

3.    If LN Status Pelvic = 1 (lymph nodes positive) and
    LN Status Para-Aortic = 0, 8, 9, or blank
    EOD Regional Nodes must =  100, 200, or 300.

4.  if LN Status Para-Aortic = 1 (lymph nodes positive)
    EOD Regional Nodes must = 400, 500, or 600.


    for 2022+

5. If LN Status Pelvic = 0 and LN Status Para-Aortic = 0
    EOD Regional Nodes must = 000 or 050


6.    If EOD Regional Nodes = 000 or 050,
    LN Status Para-Aortic must = 0 and LN Status Pelvic must = 0]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-02-02" ref="68887">Edit created.</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-11" ref="68928">Removed CoC Accredited Flag logic; changed edit name.</event>
            </history>
        </rule>
        <rule id="IFN6458" name="LN Status Para-Aortic, Vagina/Cervix, Summary Stage 2018 (NAACCR)" tag="N6458" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.typeOfReportingSource == '7')
    return true
if (!['00510','00520','09520'].contains(line.schemaId) || line.summaryStage2018 == null)
    return true
if (line.lnStatusParaAortic == null || line.lnStatusParaAortic == '8')
    return true

return line.lnStatusParaAortic != '1' || !Functions.matches(line.summaryStage2018, /^[012]$/)]]></expression>
            <message>LN Status Para-Aortic conflicts with Summary Stage 2018</message>
            <description><![CDATA[This edit verifies that LN Status Para-aortic SSDI is
coded consistently with Summary Stage 2018, codes with nodal
involvement,
for Vagina, and Cervix.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or
invalid.
   b. Schema ID is not 00510, 00520, or 09520
   c. LN Status Para-Aortic is blank or 8 (not
      applicable)
   d. Summary Stage 2018 is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

LN Status Para-Aortic is required by SEER only for analytic cases from
CoC-accredited facility.

2. If LN Status Para-Aortic = 1 (lymph nodes positive)
   Summary Stage 2018 must not = 0, 1, or 2 (in situ, local,
or regional by
     direct extension only)]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6459" name="LN Status Pelvic, Date DX (NAACCR)" tag="N6459" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.lnStatusPelvic != null)
    return false

return line.lnStatusPelvic == null || Functions.matches(line.lnStatusPelvic, /^[0189]$/)]]></expression>
            <message>LN Status Pelvic is not a valid code</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown),
or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid LN Status Pelvic code or blank:

    0: Negative pelvic lymph nodes
    1: Positive pelvic lymph nodes
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Femoral-inguinal lymph node(s) not assessed or
       unknown if assessed

Another edit, LN Status Pelvic, Schema ID, Required (NAACCR),
checks
that the item is coded by Schema ID if required by a standard
setter.]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-02-02" ref="68887">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6460" name="LN Status Pelvic, Gynecologic, Behavior (NAACCR)" tag="N6460" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (!['00500','00510','09520','09500'].contains(line.schemaId) || line.behaviorCodeIcdO3 == null)
    return true
if (line.lnStatusPelvic == null || line.lnStatusPelvic == '8')
    return true

if (line.behaviorCodeIcdO3 == '2') {
    if (line.dateOfDiagnosisYear == '2021' || line.dateOfDiagnosisYear == '2022')
        return ['0','9'].contains(line.lnStatusPelvic)
    else if (line.dateOfDiagnosisYear >= '2023')
        return line.lnStatusPelvic == '0'
}

return true]]></expression>
            <message>LN Status Pelvic conflicts with Behavior Code ICD-O-3</message>
            <description><![CDATA[This edit verifies that the LN Status Pelvic SSDI
is coded consistently with Behavior Code ICD-O-3, code 2, for Schema ID 00500 Vulva, 09500 Vulva, 00510 Vagina, and 09520, Cervix.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00500, 00510, 09520, or 09500
    c. LN Status Pelvic is blank or = 8 (not applicable)
    d. Behavior Code ICD-O-3 ICD is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

LN Status Pelvic is required by SEER only for analytic cases from
CoC-accredited facility.

2. If Behavior Code ICD-O-3 = 2 (in situ) and year of diagnosis 2021-2022
    then LN Status Pelvic must = 0 or 9 (no lymph
    node involvement or not documented in medical record)

3. If Behavior Code ICD-O-3 = 2 (in situ) and year of diagnosis 2023+
    then LN Status Pelvic must = 0 (non-invasive neoplasm behavior /2)]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
                <event version="SE23-023-01" user="cooki" date="2023-03-06" ref="69180">Added DX year criteria to checks on LN Status Pelvic</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-04" ref="69403">Added Schema ID 09500 to skip condition</event>
            </history>
        </rule>
        <rule id="IFN6461" name="LN Status Pelvic, Gynecologic, Derived SS 2018 (SEER)" tag="N6461" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (!['00500','00510','09520','09500'].contains(line.schemaId) || line.derivedSummaryStage2018 == null)
    return true
if (line.lnStatusPelvic == null || line.lnStatusPelvic == '8')
    return true

if (line.lnStatusPelvic == '1' && Functions.matches(line.derivedSummaryStage2018, /^[012]$/))
    return false
if (line.lnStatusPelvic == '1' && ['00500', '09500'].contains(line.schemaId) && line.derivedSummaryStage2018 != '7')
    return false
return true]]></expression>
            <message>LN Status Pelvic conflicts with Derived Summary Stage 2018</message>
            <description><![CDATA[This edit verifies that LN Status Pelvic SSDI is
coded consistently with Derived Summary Stage 2018 for Vulva, Vagina, and
Cervix.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2021, blank (unknown), or invalid.
   b. Schema ID is not 00500, 00510, 09520, or 09500
   c. LN Status Pelvic is blank or 8 (not applicable)
   d. Derived Summary Stage 2018 is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. If LN Status Pelvic = 1 (lymph nodes positive)
   Derived Summary Stage 2018 must not = 0, 1, or 2 (in situ, local, or
regional
     by direct extension only)

3. For 00500 and 09500, if LN Status Pelvic = 1,
    Derived Summary Stage 2018 must = 7 (distant)]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-02-02" ref="68887">Edit created.</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-11" ref="68926">Removed CoC Accredited Flag logic; changed edit name.</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-04" ref="69403">Added logic for Schema ID 09500.</event>
            </history>
        </rule>
        <rule id="IFN6462" name="LN Status Pelvic, Gynecologic, Summary Stage 2018 (NAACCR)" tag="N6462" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.typeOfReportingSource == '7')
    return true
if (!['00500','00510','00520','09520','09500'].contains(line.schemaId) || line.summaryStage2018 == null)
    return true
if (line.lnStatusPelvic == null || line.lnStatusPelvic == '8')
    return true

if (line.lnStatusPelvic == '1' && Functions.matches(line.summaryStage2018, /^[012]$/))
    return false
if (line.lnStatusPelvic == '1' && ['00500', '09500'].contains(line.schemaId) && line.summaryStage2018 != '7')
    return false
return true]]></expression>
            <message>LN Status Pelvic conflicts with Summary Stage 2018</message>
            <description><![CDATA[This edit verifies that LN Status Pelvic SSDI is coded consistently with Summary Stage 2018 for Vulva, Vagina, and Cervix.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2019, blank (unknown), or invalid.
    b. Schema ID is not 00500, 00510, 00520, 09520, 09500
    c. LN Status Pelvic blank or 8 (not applicable)
    d. Summary Stage 2018 is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If LN Status Pelvic = 1 (lymph nodes positive)
       Summary Stage 2018 must not = 0, 1, or 2 (in situ, local, or regional by direct extension only)

3. For 00500 and 09500, if LN Status Pelvic = 1,
    Summary Stage 2018 must = 7 (distant)]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-04" ref="69403">Updated logic for Schema ID 09500.</event>
            </history>
        </rule>
        <rule id="IFN6464" name="Grade, Breast, Behavior ICD-O-3 (NAACCR)" tag="N6464" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2022' || line.schemaId != '00480' || line.histologicTypeIcdO3 == null || line.behaviorCodeIcdO3 == null)
    return true
if (line.typeOfReportingSource == '7')
    return true
if (line.gradeClinical == null && line.gradePathological == null)
    return true

if (Functions.matches(line.gradeClinical, /^[123]$/) && Functions.matches(line.gradePathological, /^[LMH]$/))
    return false

boolean summaryStageCondition = line.summaryStage2018 == '1' || line.derivedSummaryStage2018 == '1'
boolean tnmCondition = (line.ajccTnmClinN == 'cN0' || ['cN0','pN0'].contains(line.ajccTnmPathN)) &&
    (line.ajccTnmClinM == 'cM0' || line.ajccTnmPathM == 'cM0')
if (line.behaviorCodeIcdO3 == '3' && line.histologicTypeIcdO3 != '8543' && (summaryStageCondition || tnmCondition))
    return !(Functions.matches(line.gradeClinical, /^[LMH]$/) && Functions.matches(line.gradePathological, /^[LMH]$/))

return true]]></expression>
            <message>If Behavior Code ICD-O-3, Morph--Type&amp;Behav ICD-O-3 not 8543, tumor is invasive, Grade Clinical and Grade Pathological must not both = L, M, or H</message>
            <description><![CDATA[This edit verifies that Grade Clinical and Grade Pathological are coded consistently
for Breast.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2022, blank (unknown), or invalid.
    b. Schema ID is not 00480.
    c. Grade Clinical and Grade Pathological are both blank.
    d. Histologic Type ICD-O-3 or Behavior Code ICD-O-3 is blank
    e. Type of Reporting Source = 7 (death certificate only)

2. If Grade Clinical = 1-3, Grade Pathological cannot be L, M, or H.

3. If Behavior ICD-O-3 = 3 (invasive)
   and Histologic Type ICD-O-3 is not = 8543 (Paget) and
   (Summary Stage 2018 = 1 (local) or Derived Summary Stage 2018 = 1) or
   ((AJCC TNM Clin N = cN0 or AJCC TNM Path N = cN0 or pN0) and (AJCC TNM Clin M = cM0
   or AJCC TNM Path M = cM0)),
   both Grade Clinical and Grade Pathological must not = "L", "M", or "H" (nuclear grades
   for in situ only).]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-03-04" ref="68896">Edit Created</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-11" ref="68924">Add skip condition for Type of Reporting Source = 7 (DCO).</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-12" ref="68943">Update part 3 to check whether Grade Clinical and Grade Pathological are L/M/H at the same time.</event>
                <event version="SE23-023-01" user="secristc" date="2023-01-26" ref="69115">Updated logic and description to use histology</event>
            </history>
        </rule>
        <rule id="IFN6569" name="Regional Nodes Positive, Regional Nodes Examined (NAACCR)" tag="N6569" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.regionalNodesExamined == null || line.regionalNodesPositive == null)
    return true

if (line.regionalNodesExamined == '00')
    return line.regionalNodesPositive == '98'
else if (Functions.matches(line.regionalNodesExamined, /^0[1-9]|[1-8]\d|90$/)) {
    Integer regionalNodesExaminedInt = Functions.asInt(line.regionalNodesExamined)
    Integer regionalNodesPositiveInt = Functions.asInt(line.regionalNodesPositive)
    return ['95','97','99'].contains(line.regionalNodesPositive) || regionalNodesPositiveInt <= regionalNodesExaminedInt
}
else if (line.regionalNodesExamined == '95')
    return ['00','95','99'].contains(line.regionalNodesPositive)
else if (['96','97','98'].contains(line.regionalNodesExamined))
    return Functions.matches(line.regionalNodesPositive, /^[0-8]\d|9[0579]$/)
else if (line.regionalNodesExamined == '99')
    return line.regionalNodesPositive == '99'
return true
]]></expression>
            <message>Conflict between Regional Nodes Examined and Regional Nodes Positive</message>
            <description><![CDATA[This edit is skipped if:
1. Regional Nodes Examined is blank
2. Regional Nodes Positive is blank
3. Year of Date of Diagnosis is blank or less than 2018


1.  If Regional Nodes Examined = 00 , Regional Nodes Positive must = 98.
2.  If Regional Nodes Examined = 01 - 90, Regional Nodes Positive must
    = 95, 97 or 99, or be less than or equal to Regional Nodes Examined.
3.  If Regional Nodes Examined = 95, Regional Nodes Positive must
    = 00, 95, or 99.
4.  If Regional Nodes Examined = 96, 97, or 98, Regional Nodes Positive
    must = 00 - 90, 95, 97, or 99.
5.  If Regional Nodes Examined = 99, then Regional Nodes Positive must = 99.
]]></description>
            <history>
                <event version="SE22-022-06" user="beverung" date="2022-05-26" ref="68998">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6574" name="Gleason Score Pathological, EOD Prostate Pathologic Extension (SEER)" tag="N6574" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2022' || line.schemaId != '00580')
    return true
if (line.prostatePathologicalExtension == null || line.gleasonScorePathological == null)
    return true

if (line.gleasonScorePathological == 'X7' && line.prostatePathologicalExtension != '900')
    return false
if (line.prostatePathologicalExtension == '900' && line.gleasonScorePathological != 'X7')
    return false
if (line.prostatePathologicalExtension == '950' && line.gleasonScorePathological != 'X9')
    return false

return true]]></expression>
            <message>EOD Prostate Pathologic Extension conflicts with Gleason Score Pathological</message>
            <description><![CDATA[This edit verifies that Gleason Score Pathological is coded
consistently with EOD Prostate Pathologic Extension.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2022, blank (unknown), or
invalid.
   b. Schema ID is not 00580
   c. EOD Prostate Pathologic Extension is blank.
    d. Gleason Score Pathological is blank

2. If Gleason Score Pathological = X7 (no prostatectomy/autopsy performed)
   then EOD Prostate Pathologic Extension must = 900 (no prostatectomy or autopsy
    performed)

3. If EOD Prostate Pathologic Extension = 900 (no prostatectomy or autopsy
    performed)
   then Gleason Score Pathological must = X7 (no prostatectomy/autopsy
    performed)


4. If EOD Prostate Pathologic Extension = 950 (prostatectomy performed but not
   first course of treatment,
    then Gleason Score Pathological must = X9 (not documented in medical record,
    Gleason Score Pathological not assessed or unknown if assessed.]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-03-04" ref="68896">Edit Created</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-27" ref="68947">Update edit name and remove CoC Accredited Flag.</event>
            </history>
        </rule>
        <rule id="IFN6575" name="Gleason Tertiary Pattern, EOD Prostate Pathologic Extension (SEER)" tag="N6575" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2022' || line.schemaId != '00580')
    return true
if (line.prostatePathologicalExtension == null || line.gleasonTertiaryPattern == null)
    return true

if (line.gleasonTertiaryPattern == 'X7' && line.prostatePathologicalExtension != '900')
    return false
if (line.prostatePathologicalExtension == '900' && line.gleasonTertiaryPattern != 'X7')
    return false
if (line.prostatePathologicalExtension == '950' && line.gleasonTertiaryPattern != 'X9')
    return false

return true]]></expression>
            <message>EOD Prostate Pathologic Extension conflicts with Gleason Tertiary Pattern</message>
            <description><![CDATA[This edit verifies that Gleason Tertiary Pattrn is coded
consistently
with EOD Prostate Pathologic Extension.
.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2022, blank (unknown), or
invalid.
   b. Schema ID is not 00580
   c. EOD Prostate Pathologic Extension is blank.
    d. Gleason Tertiary Pattern is blank

2. If Gleason Tertiary Pattern = X7 (no prostatectomy/autopsy performed)
   then EOD Prostate Pathologic Extension must = 900 (no prostatectomy or autopsy
    performed)

3. If EOD Prostate Pathologic Extension = 900 (no prostatectomy or autopsy
    performed)
   then Gleason Tertiary Pattern must = X7 (no prostatectomy/autopsy performed)

4. If EOD Prostate Pathologic Extension = 950 (prostatectomy performed but not
   first course of treatment,
    then Gleason Tertiary Pattern must = X9 (not documented in medical record,
    Gleason Tertiary Pattern not assessed or unknown if assessed]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-03-04" ref="68896">Edit Created</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-27" ref="68947">Update edit name and remove CoC Accredited Flag.</event>
            </history>
        </rule>
        <rule id="IFN6584" name="Grade Post Therapy Clin (yc), Grade Post Therapy Path (yp) (NAACCR)" tag="N6584" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2022' || Functions.matches(line.schemaId, /^0072[123]|0972[1-4]$/))
    return true
if (line.gradePostTherapyClin == null || line.gradePostTherapyClin == '8' || line.gradePostTherapyClin == '9')
    return true
if (line.gradePostTherapy == null || line.gradePostTherapy == '8' || line.gradePostTherapy == '9')
    return true

Integer gradePostTherapyInt = Functions.asInt(line.gradePostTherapy)
Integer gradePostTherapyClinInt = Functions.asInt(line.gradePostTherapyClin)

if (gradePostTherapyInt != null && gradePostTherapyClinInt != null)
    return gradePostTherapyInt >= gradePostTherapyClinInt

return true]]></expression>
            <message>Grade Post Therapy Path (yp) must not be less than Grade Post Therapy Clin (yc)</message>
            <description><![CDATA[This edit checks that Grade Post Therapy Clin (yc) is used to code Grade Post Therapy Path (yp)
if the grade on clinical pathology is higher than the grade on surgical pathology.


1. This edit is skipped under the following conditions:
    a. Date of diagnosis = pre-2022, blank (unknown) or invalid.
    b. Grade Post Therapy Path (yp) is blank or = 8 or 9.
    c. Grade Post Therapy Clin (yc) is blank or = 8 or 9.
    d. Schema ID = 00721, 00722, 00723, 09721, 09722, 09723, 09724

2. If Grade Post Therapy Path(yp) is numeric and Grade Post
    Therapy Clin (yc) is numeric, Grade Post Therapy Path(yp)
    must not be less than Grade Post Therapy Clin (yc)]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-03-04" ref="68896">Edit Created</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-02" ref="69128">Add Schema IDs for skip condition.</event>
            </history>
        </rule>
        <rule id="IFN6585" name="LN Status Femoral-Inguinal, Date DX (NAACCR)" tag="N6585" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2018' && line.lnStatusFemoralInguinal != null)
    return false

return line.lnStatusFemoralInguinal == null || Functions.matches(line.lnStatusFemoralInguinal, /^[0189]$/)]]></expression>
            <message>LN Status Femoral-Inguinal is not a valid code.</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid LN Status Femoral-Inguinal code or blank:

    0: Negative femoral-inguinal lymph nodes
    1: Positive femoral-inguinal lymph nodes
    8: Not applicable: Information not collected for this case
    9: Not documented in medical record
       Femoral-inguinal lymph node(s) not assessed or
       unknown if assessed

Another edit, LN Status Femoral-Inguinal, Schema ID, Required (NAACCR), checks
that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-02-02" ref="68887">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6587" name="LN Status, Vulva, EOD Regional Nodes (SEER)" tag="N6587" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.typeOfReportingSource == '7')
    return true
if ((line.schemaId != '00500' && line.schemaId != '09500') || line.eodRegionalNodes == null)
    return true
if (line.lnStatusFemoralInguinal == null || line.lnStatusFemoralInguinal == '8')
    return true

if (line.lnStatusFemoralInguinal == '1' && ['000','040','050','800','999'].contains(line.eodRegionalNodes))
    return false

if (line.dateOfDiagnosisYear >= '2022') {
    if (line.lnStatusFemoralInguinal == '0' && !['000','040','050'].contains(line.eodRegionalNodes))
        return false
    if (['000','040','050'].contains(line.eodRegionalNodes) && line.lnStatusFemoralInguinal != '0')
        return false
}
return true]]></expression>
            <message>LN Status Femoral-Inguinal conflicts with EOD Regional Nodes</message>
            <description><![CDATA[This edit verifies that LN Status Femoral-Inguinal000 SSDI is
coded consistently with EOD Regional Nodes for Vulva.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or
    invalid.
   b. Schema ID is not 00500 or 09500
   c. LN Status Femoral-Inguinal is blank or 8 (not
    applicable)
   d. EOD Regional Nodes is blank
   e. Type of Reporting Source is 7 (Death Certificate Only)

2. If LN Status Femoral-Inguinal = 1 (lymph nodes positive)
   EOD Regional Nodes must not = 000 (no nodes involved), 040 or 050
   (Isolated Tumor Cells), 800 (nodes NOS), or 999 (unknown if nodes involved)

3. If diagnosis date >= 2022

    if LN Status Femoral-Inguinal = 0, EOD Regional Nodes must = 000, 040, or 050

    If EOD Regional Nodes = 000, 040, or 050, LN Status Femoral-Inguinal must = 0]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-02-02" ref="68887">Edit created.</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-11" ref="68930">Removed CoC Accredited Flag logic; changed edit name.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-03-11" ref="69406">Add schema 09500 and eod code 040.</event>
            </history>
        </rule>
        <rule id="IFN6588" name="LN Status Femoral-Inguinal, Vulva/Vagina, Behavior (NAACCR)" tag="N6588" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (!['00500','00510','09500'].contains(line.schemaId) || line.behaviorCodeIcdO3 == null)
    return true
if (line.lnStatusFemoralInguinal == null || line.lnStatusFemoralInguinal == '8')
    return true

if (line.behaviorCodeIcdO3 == '2') {
    if (line.dateOfDiagnosisYear == '2021' || line.dateOfDiagnosisYear == '2022')
        return ['0','9'].contains(line.lnStatusFemoralInguinal)
    else if (line.dateOfDiagnosisYear >= '2023')
        return line.lnStatusFemoralInguinal == '0'
}

return true]]></expression>
            <message>LN Status Femoral-Inguinal conflicts with Behavior Code ICD-O-3</message>
            <description><![CDATA[This edit verifies that the LN Status Femoral-Inguinal SSDI
is coded consistently with Behavior Code ICD-O-3, code 2, for
Schema ID 00500, 09500, Vulva, and 00510, Vagina.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or
invalid.
    b. Schema ID is blank or not 00500 or 00510 or 09500
    c. LN Status Femoral-Inguinal is blank or = 8 (not
applicable)
    d. Behavior Code ICD-O-3 ICD is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

LN Status Femoral-Inguinal is required by SEER only on analytic cases from
CoC-accredited facility

2. If Behavior Code ICD-O-3 = 2 (in situ) and year of diagnosis 2021-2022
    then LN Status Femoral-Inguinal must = 0 or 9 (no lymph
    node involvement or not documented in medical record)

3. If Behavior Code ICD-O-3 = 2 (in situ) and year of diagnosis 2023+
    then LN Status Femoral-Inguinal must = 0 (non-invasive neoplasm behavior)]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
                <event version="SE23-023-01" user="cooki" date="2023-03-07" ref="69181">Added DX year criteria to checks on LN Status Femoral Inguinal.</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-04" ref="69403">Added Schema ID 09500 to skip condition</event>
            </history>
        </rule>
        <rule id="IFN6589" name="LN Status Femoral-Inguinal, Vulva/Vagina, Derived SS 2018 (SEER)" tag="N6589" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (!['00500','00510','09500'].contains(line.schemaId) || line.derivedSummaryStage2018 == null)
    return true
if (line.lnStatusFemoralInguinal == null || line.lnStatusFemoralInguinal == '8')
    return true

return line.lnStatusFemoralInguinal != '1' || !Functions.matches(line.derivedSummaryStage2018, /^[012]$/)]]></expression>
            <message>LN Status Femoral-Inguinal conflicts with Derived Summary Stage 2018</message>
            <description><![CDATA[This edit verifies that LN Status Femoral-Inguinal SSDI is
coded consistently with Derived Summary Stage 2018, codes with nodal
involvement,
for Vulva and for Vagina.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2021, blank (unknown), or invalid.
   b. Schema ID is not 00500 or 00510 or 09500
   c. LN Status Femoral-Inguinal is blank or 8 (not applicable)
   d. Derived Summary Stage 2018 is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. If LN Status Femoral-Inguinal = 1 (lymph nodes positive)
   Derived Summary Stage 2018 must not = 0, 1, or 2 (in situ, local,
or regional
     by direct extension only)]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-02-02" ref="68887">Edit created.</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-11" ref="68925">Update edit name and remove CoC Accredited Flag.</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-04" ref="69403">Added Schema ID 09500 to skip condition</event>
            </history>
        </rule>
        <rule id="IFN6590" name="LN Status Femoral-Inguinal, Vulva/Vagina, Summary Stage 2018 (NAACCR)" tag="N6590" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.typeOfReportingSource == '7')
    return true
if (!['00500','00510','09500'].contains(line.schemaId) || line.summaryStage2018 == null)
    return true
if (line.lnStatusFemoralInguinal == null || line.lnStatusFemoralInguinal == '8')
    return true

return line.lnStatusFemoralInguinal != '1' || !Functions.matches(line.summaryStage2018, /^[012]$/)]]></expression>
            <message>LN Status Femoral-Inguinal conflicts with Summary Stage 2018</message>
            <description><![CDATA[This edit verifies that LN Status Femoral-Inguinal SSDI is
coded consistently with Summary Stage 2018, codes with nodal
involvement, for
Vulva and Vagina.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or
invalid.
   b. Schema ID is not 00500 or 00510 or 09500
   c. LN Status Femoral-Inguinal is blank or 8 (not
      applicable)
   d. Summary Stage 2018 is blank
   e. Type of Reporting Source is 7 (Death Certificate Only)

LN Status Femoral-Inguinal is required by SEER only on analytic cases from
CoC-accredited facility

2. If LN Status Femoral-Inguinal = 1 (lymph nodes positive)
   Summary Stage 2018 must not = 0, 1, or 2 (in situ, local,
or regional by
     direct extension only)]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-04" ref="69403">Added Schema ID 09500 to skip condition</event>
            </history>
        </rule>
        <rule id="IFN6592" name="LN Status Pelvic, Vulva, EOD Mets (SEER)" tag="N6592" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.typeOfReportingSource == '7')
    return true
if (!['00500', '09500'].contains(line.schemaId) || line.eodMets == null)
    return true
if (line.lnStatusPelvic == null || line.lnStatusPelvic == '8')
    return true

return line.lnStatusPelvic != '1' || ['10','70'].contains(line.eodMets)]]></expression>
            <message>LN Status Pelvic conflicts with EOD Mets</message>
            <description><![CDATA[This edit verifies that LN Status Pelvic SSDI is
coded consistently with EOD Mets for Vulva.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or invalid.
   b. Schema ID is not 00500 or 09500
   c. LN Status Pelvic is blank or 8 (not applicable)
   d. EOD Mets is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If LN Status Pelvic = 1 (lymph nodes
     positive)
   EOD Mets must = 10 (distant lymph nodes) or 70 (distant mets
other)]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-02-02" ref="68887">Edit created.</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-11" ref="68927">Removed CoC Accredited Flag logic; changed edit name.</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-04" ref="69403">Added Schema ID 09500 to skip condition</event>
            </history>
        </rule>
        <rule id="IFN6593" name="Derived Rai Stage, Date DX (NAACCR)" tag="N6593" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
            return true

if (line.dateOfDiagnosisYear < '2018')
    return line.derivedRaiStage == null

if (line.primarySite !='C421')
    return line.derivedRaiStage == '8' || line.derivedRaiStage == null

else
    return line.derivedRaiStage == null || Functions.matches(line.derivedRaiStage, /^[0-49]$/)
            ]]></expression>
            <message>Derived Rai Stage value is invalid for Year of Diagnosis</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2018 diagnoses.

2. Must be a valid Derived Rai Stage code or blank.

    0:  0 Lymphocytosis
    1:  I Lymphocytosis and Adenopathy
    2:  II Lymphocytosis and Organomegaly
        (Adenopathy is any value other than 5)
    3:  III Lymphocytosis and Anemia
        (Adenopathy and Organomegaly are any value other than 5)
    4:  IV Lymphocytosis and Thrombocytopenia
        (Adenopathy organomegaly and Anemia are any value other than 5)
    8:  Does not apply; Site is not C421
        (All SSDIs should be set to 5)
    9:  Unknown
        (All SSDIs are 9 or blank; at least one is set to 9 OR
        Lymphocytosis is 0, 7, 9 OR
        Lymphocytosis is blank and one of the other SSDIs is a value other than 5 or 9)

Another edit, Derived Rai Stage, Schema ID, Required (NAACCR), checks that
the item is coded by Schema ID if required by a standard setter.

3. Code 8 must be used if primary site not C421

4. Codes 0, 1, 2, 3, 4, and 9 must be used if primary site = C421
]]></description>
            <history>
                <event version="SE22-022-01" user="secristc" date="2022-02-17" ref="68861">Edit created.</event>
                <event version="SE22-022-17" user="beverung" date="2022-11-03" ref="69055">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6594" name="Derived Rai Stage, Schema ID, Required (NAACCR)" tag="N6594" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true
if ('0000001565' == line.registryId && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if ('0000001566' == line.registryId && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true
if ('0000001563' == line.registryId && line.dateOfDiagnosisYear == '2018')
    return true

return (line.schemaId != '00795' || line.primarySite != 'C421') || (line.derivedRaiStage != null && line.derivedRaiStage != '8')
]]></expression>
            <message>Derived Rai Stage must not be blank or not applicable for Primary Site cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    e. Registry ID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021
    f. Registry ID = 0000001563 (Massachusetts) and Year of Diagnosis = 2018

2. Where required by a standard setter:

    This edit verifies that Derived Rai Stage is not blank and not 8 for Schema ID
    00795 where Primary Site = C421.]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-02-03" ref="68862">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68989">Added skip condition for IL for DX years 2018-2022, TX for 2018-2021.</event>
                <event version="SE22-022-15" user="kirby" date="2022-10-21" ref="69048">Added skip condition for MA for DX year 2018.</event>
            </history>
        </rule>
        <rule id="IFN6595" name="Tobacco Use Smoking Status, Date DX (NPCR)" tag="N6595" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[ if(line.dateOfDiagnosisYear == null)
            return true

if (line.dateOfDiagnosisYear < '2022')
    return line.tobaccoUseSmokingStatus == null

else
    return line.tobaccoUseSmokingStatus == null || Functions.matches(line.tobaccoUseSmokingStatus, /^[01239]$/)
            ]]></expression>
            <message>Invalid value for Tobacco Use Smoking Status</message>
            <description><![CDATA[This edit is skipped if Date of Diagnosis is blank (unknown) or invalid.

1. This data item must be blank for pre-2022 diagnoses.

2. Must be a valid Tobacco Use Smoking Status code or blank.
    0: Never smoker
    1: Current some day smoker
    2: Former smoker
    3: Smoker, current status unknown
    9: Unknown if ever smoked]]></description>
            <history>
                <event version="SE22-022-01" user="secristc" date="2022-02-25" ref="68895">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6600" name="p16, Date DX (NAACCR)" tag="N6600" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
            return true

if (line.schemaId == '00210' && line.dateOfDiagnosisYear < '2023')
    return line.p16 == null

if (line.schemaId == '00500' && line.dateOfDiagnosisYear < '2024')
    return line.p16 == null

if (line.dateOfDiagnosisYear < '2021')
    return line.p16 == null

else
    return line.p16 == null || Functions.matches(line.p16, /^[0189]$/)
             ]]></expression>
            <message>p16 must be blank for cases diagnosed before 2021</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2021 diagnoses.

2. Must be a valid p16 code or blank:

    0: p16 Negative; Nonreactive
    1: p16 Positive; Diffuse, Strong reactivity
    8: Not applicable: Information not collected for this case
    9: Not tested for p16; Unknown
    Blank: Diagnosis year prior to 2021

3. This data item must be blank for pre-2023 cases assigned to Schema ID 00210

4. This data item must be blank for pre-2024 cases assigned to schema ID 00500

Another edit, p16, Schema ID, Required (NAACCR), checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE22-022-01" user="secristc" date="2022-02-24" ref="68895">Edit created.</event>
                <event version="SE23-023-01" user="cooki" date="2023-02-07" ref="69142">Added condition for Schema 00210.</event>
                <event version="SE24-024-01" user="kirbyk" date="2024-03-13" ref="69411">Added condition for Schema 00500.</event>
            </history>
        </rule>
        <rule id="IFN6602" name="Macroscopic Evaluation of Mesorectum, Date DX (COC)" tag="N6602" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
            return true

else
    return line.macroscopicEvalOfTheMesorectum == null || Functions.matches(line.macroscopicEvalOfTheMesorectum, /^[01234]0|99$/)
            ]]></expression>
            <message>Macroscopic Evaluation of Mesorectum must be blank for cases diagnosed before 2022</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. Must be a valid Macroscopic Evaluation of Mesorectum code or
blank:

    00: Patient did not receive Total Mesorectal Excision (TME)
    10: Incomplete
    20: Nearly complete
    30: Complete
    40: TME performed, not specified on pathology report as
        incomplete, nearly complete, or complete
        TME performed but pathology report not available
        Physician statement that TME performed, no mention of
        incomplete,nearly complete, or complete status
    99: Unknown if TME performed
    Blank:  Site not rectum (C20.9)

Another edit, Macroscopic Evaluation of Mesorectum, Schema ID,
Required (COC), checks that the item is coded by Schema ID if
required by a standard setter.]]></description>
            <history>
                <event version="SE22-022-01" user="secristc" date="2022-02-24" ref="68895">Edit created.</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-11" ref="68936">Remove condition for blank for cases prior to 2022.</event>
            </history>
        </rule>
        <rule id="IFN6604" name="LN Status/Assessment Method Femoral-Inguinal, Vulva/Vagina (NAACCR)" tag="N6604" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2022' || !['00500','00510','09500'].contains(line.schemaId))
    return true
if (line.lnStatusFemoralInguinal == null || line.lnAssessMethodFemoralInguinal == null)
    return true

return line.lnStatusFemoralInguinal != '9' || line.lnAssessMethodFemoralInguinal == '9' || line.lnAssessMethodFemoralInguinal == '0']]></expression>
            <message>LN Status Femoral-Inguinal conflicts with LN Assessment Method Femoral-Inguinal</message>
            <description><![CDATA[This edit verifies that LN Status Femoral-Inguinal and LN Assessment
Method
Femoral-Inguinal are coded consistently.

1. The edit is skipped for the following:
    a. Date of Diagnosis is blank (unknown), invalid, or pre-2022.
    b. LN Status Femoral-Inguinal is blank
    c. LN Assessment Method Femoral-Inguinal is blank
    d. Schema ID is not 00500 or 00510 or 09500.

2. If LN Status Femoral-Inguinal =9 (nodes not assessed or unknown
if assessed)
    LN Assessment Method Femoral-Inguinal must = 0 (Physical Exam Only) or 9 (nodes not
assessed or unknown
    if assessed).]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-22" ref="68189">Added code 0 for LN Assessment Method Femoral-Inguinal.</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-04" ref="69403">Added Schema ID 09500 to skip condition</event>
            </history>
        </rule>
        <rule id="IFN6605" name="LN Status/Assessment Method Para-Aortic, Vagina/Cervix (NAACCR)" tag="N6605" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2022' || !['00510','09520'].contains(line.schemaId))
    return true
if (line.lnStatusParaAortic == null || line.lnAssessMethodParaaortic == null)
    return true

return line.lnStatusParaAortic != '9' || line.lnAssessMethodParaaortic == '9' || line.lnAssessMethodParaaortic == '0']]></expression>
            <message>LN Status Para-Aortic conflicts with LN Assessment Method Para-aortic</message>
            <description><![CDATA[This edit verifies that LN Status Para-Aortic and LN Assessment Method Para-Aortic
are coded consistently.

1. The edit is skipped for the following:
    a. Date of Diagnosis is blank (unknown), invalid, or pre-2022.
    b. LN Status Para-Aortic is blank
    c. LN Assessment Method Para-Aortic is blank
    d. Schema ID is not 00510 or 09520.

2. If LN Status Para-Aortic =9 (nodes not assessed or unknown if assessed)
    LN Assessment Method Para-Aortic must = 0 (physical exam only) or 9 (nodes not assessed or unknown
    if assessed).]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-22" ref="69190">Allow code 0 for LN Assessment Method Para-Aortic.</event>
            </history>
        </rule>
        <rule id="IFN6606" name="LN Status/Assessment Method Pelvic, Gynecologic (NAACCR)" tag="N6606" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2022' || !['00500','00510','09520','09500'].contains(line.schemaId))
    return true
if (line.lnStatusPelvic == null || line.lnAssessMethodPelvic == null)
    return true

if (line.lnStatusPelvic == '9')
    return line.lnAssessMethodPelvic == '9' || line.lnAssessMethodPelvic == '0'

return true]]></expression>
            <message>LN Status Pelvic conflicts with LN Assessment Method Pelvic</message>
            <description><![CDATA[This edit verifies that LN Status Pelvic and LN Assessment Method
Pelvic
are coded consistently.

1. The edit is skipped for the following:
    a. Date of Diagnosis is blank (unknown), invalid, or pre-2022.
    b. LN Status Pelvic is blank
    c. LN Assessment Method Pelvic is blank
    d. Schema ID is not 00500, 00510, 09520, or 09500.

2. If LN Status Pelvic = 9 (nodes not assessed or unknown if assessed)
    LN Assessment Method Pelvic must = 0 (physical exam only) or 9 (nodes not assessed or unknown if assessed).

]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
                <event version="SE23-023-01" user="cooki" date="2023-03-06" ref="69191">Allowed code 0 for LN Assessment Method Pelvic</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-04" ref="69403">Added Schema ID 09500 to skip condition</event>
            </history>
        </rule>
        <rule id="IFN6608" name="Lymphovascular Invasion, Behavior (NAACCR)" tag="N6608" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2022' || line.behaviorCodeIcdO3 == null)
    return true
if (line.lymphVascularInvasion == null || line.typeOfReportingSource == '7')
    return true
if (line.behaviorCodeIcdO3 == '0' && Functions.matches(line.primarySite, /^C25\d$/))
    return true

if (Functions.matches(line.behaviorCodeIcdO3, /^[012]$/))
    return !Functions.matches(line.lymphVascularInvasion, /^[1-49]$/)
return true]]></expression>
            <message>Lymphovascular Invasion conflicts with Behavior Code ICD-O-3</message>
            <description><![CDATA[This edit confirms that Lymphovascular Invasion is coded consistently with
Behavior Code ICD-O-3.

1. This edit is skipped for the following conditions:
    a. Diagnosis date is blank (unknown), invalid, or before 2022.
    b. Behavior Code ICD-O-3 is blank
    c. Lymphovascular Invasion is blank
    d. Type of Reporting Source = 7 (Death Certificate Only)
    e. Behavior code = 0, Primary Site C250-C259

2. If Behavior Code ICD-O-3 = 0, 1, or 2, then Lymphovascular Invasion must
    not = 1-4 (lymphovascular invasion present/identified) or 9 (unknown)]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-03-04" ref="68896">Edit Created</event>
                <event version="SE24-024-06" user="shearerw" date="2024-06-21" ref="69497">Add skip condition for behavior 0 and primary site pancreas.</event>
            </history>
        </rule>
        <rule id="IFN6612" name="LN Status, Vagina, EOD Regional Nodes/EOD Mets (SEER)" tag="N6612" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.typeOfReportingSource == '7' || line.schemaId != '00510')
    return true
if ((line.lnStatusPelvic == null || line.lnStatusPelvic == '8') && (line.lnStatusParaAortic == null || line.lnStatusParaAortic == '8') && (line.lnStatusFemoralInguinal == null || line.lnStatusFemoralInguinal == '8'))
    return true
if (line.eodRegionalNodes == null && line.eodMets == null)
    return true

if (line.lnStatusFemoralInguinal == '1' && (Functions.matches(line.lnStatusParaAortic, /^[089]$/) || line.lnStatusParaAortic == null) && line.eodRegionalNodes != '300')
    return false

if (line.lnStatusPelvic == '1' && (Functions.matches(line.lnStatusParaAortic, /^[089$]/) || line.lnStatusParaAortic == null) && line.eodRegionalNodes != '300' && !['10','70'].contains(line.eodMets))
    return false

if (line.lnStatusParaAortic == '1' && line.eodRegionalNodes != '400' && !['10','70'].contains(line.eodMets))
    return false

if (line.dateOfDiagnosisYear >= '2022') {
    if (line.lnStatusFemoralInguinal == '0' && line.lnStatusPelvic == '0' && line.lnStatusParaAortic == '0' && !['000','050'].contains(line.eodRegionalNodes))
        return false
    if (['000','050'].contains(line.eodRegionalNodes) && !['0','9'].contains(line.lnStatusFemoralInguinal))
        return false
    if (line.eodRegionalNodes == '300' && line.lnStatusFemoralInguinal != '1' && line.lnStatusPelvic != '1')
        return false
    if (line.eodRegionalNodes == '400' && line.lnStatusParaAortic != '1')
        return false
}
return true]]></expression>
            <message>LN Status Femoral-Inguinal and LN Status Pelvic conflict with EOD Regional Nodes</message>
            <description><![CDATA[This edit verifies that LN Status Femoral-Inguinal, Para-Aortic, and Pelvic
SSDIs are
coded consistently with EOD Regional Nodes or EOD Mets for Vagina.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or invalid.
   b. Schema ID is not 00510
   c. LN Status Femoral-Inguinal, LN Status Pelvic, and LN Status Para-Aortic are all blank or 8
(not applicable)
   d. EOD Regional Nodes and EOD Mets are both blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If LN Status Femoral-Inguinal = 1 (lymph nodes positive for lower one-third of vagina)
   and LN Status Para-Aortic = 0, 8, 9, or blank
    EOD Regional Nodes must = 300 (positive femoral-inguinal nodes)

3. If LN Status Pelvic = 1 (lymph nodes positive)
   and LN Status Para-Aortic = 0, 8, 9, or blank
   EOD Regional Nodes must = 300 (positive pelvic nodes for upper
    two-thirds of vagina), or EOD Mets must = 10 (positive pelvic nodes for lower
    one-third of vagina) or 70 (distant mets other)


4. If LN Status Para-Aortic = 1 (lymph nodes positive)
   EOD Regional Nodes must = 400 (positive para-aortic nodes for upper
    two-thirds of vagina), or EOD Mets must = 10 (positive para-aortic nodes for lower
    one-third of vagina) or 70 (distant mets other)

for 2022+

5. If LN Status Femoral-Inguinal = 0 and LN Status Pelvic = 0 and LN Status Para-Aortic = 0
    EOD Regional Nodes must = 000 or 050


5.    if EOD Regional Nodes = 000 or 050,
    LN Status Femoral-Inguinal must = 0 or 9

6. if EOD Regional Nodes = 300,
    LN Status Femoral-Inguinal must= 1 or LN Status Pelvic must = 1


7. If EOD Regional Nodes = 400.
    LN Status Para-Aortic must = 1]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-02-02" ref="68887">Edit created.</event>
                <event version="SE22-022-03" user="beverung" date="2022-04-11" ref="68929">Removed CoC Accredited Flag logic; changed edit name.</event>
                <event version="SE23-023-02" user="cooki" date="2023-05-09" ref="69266">Fixed typo in description.</event>
            </history>
        </rule>
        <rule id="IFN6613" name="LN Assessment Method, Cervix, Regional Nodes Examined (NAACCR)" tag="N6613" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || !['00520','09520'].contains(line.schemaId) || line.regionalNodesExamined == null)
    return true
if ((line.lnAssessMethodParaaortic == null || line.lnAssessMethodParaaortic == '8') && (line.lnAssessMethodPelvic == null || line.lnAssessMethodPelvic == '8'))
    return true

if (line.lnAssessMethodParaaortic == '0' && line.lnAssessMethodPelvic == '0' && line.regionalNodesExamined != '00')
    return false
if ((line.lnAssessMethodParaaortic == '1' || line.lnAssessMethodPelvic == '1') && !Functions.matches(line.lnAssessMethodParaaortic, /^[2789]$/) && !Functions.matches(line.lnAssessMethodPelvic, /^[2789]$/)) {
    if (line.regionalNodesExamined != '95')
        return false
}
return ((line.lnAssessMethodParaaortic != '2' && line.lnAssessMethodPelvic != '2') || Functions.matches(line.regionalNodesExamined, /^0[1-9]|[1-8]\d|9[06-8]$/))]]></expression>
            <message>Conflict among LN Assessment Method Para-aortic, LN Assessment Method Pelvic, and Regional Nodes Examined</message>
            <description><![CDATA[This edit verifies that the LN Assessment Method SSDIs are coded consistently
with Regional Nodes Examined for Cervix.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2019, blank (unknown), or
invalid.
    b. Schema ID is not 00520 or 09520.
    c. LN Assessment Method SSDIs are all blank or not applicable.
    d. Regional Nodes Examined is blank.

2.  If LN Assessment Method Para-Aortic = 0 (clinical exam only) and
    LN Assessment Method Pelvic = 0 (clinical exam only),
    then Regional Nodes Examined must = 00 (no nodes examined).

3.  If LN Assessment Method Para-Aortic = 1 (incisional biopsy, FNA) or
    LN Assessment Method Pelvic = 1 (incisional biopsy, FNA) and
    LN Assessment Method Para-Aortic not = 2 (lymphadenectomy), 7
        (unknown),8 (NA), or 9 (unknown if assessed) and
    LN Assessment Method Pelvic not = 2 (lymphadenectomy), 7 (unknown),
       8 (NA), or 9 (unknown if assessed)
    then Regional Nodes Examined must = 95 (aspiration or core biopsy).

4.  If LN Assessment Method Para-Aortic = 2 (lymphadenectomy) or
    LN Assessment Method Pelvic = 2 (lymphadenectomy),
    then Regional Nodes Examined must = 01-90 (number of nodes removed),
       96-98 (nodes removed but number unknown).]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6614" name="LN Assessment Method, Vulva, Regional Nodes Examined (SEER)" tag="N6614" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || !['00500', '09500'].contains(line.schemaId) || line.regionalNodesExamined == null
            || ['6','7'].contains(line.typeOfReportingSource))
    return true
if (line.lnAssessMethodFemoralInguinal == null || line.lnAssessMethodFemoralInguinal == '8')
    return true

if (line.lnAssessMethodFemoralInguinal == '0' && line.regionalNodesExamined != '00')
    return false
if (line.lnAssessMethodFemoralInguinal == '1' && line.regionalNodesExamined != '95')
    return false
if (line.lnAssessMethodFemoralInguinal == '2' && !Functions.matches(line.regionalNodesExamined, /^0[1-9]|[1-8]\d|9[06-8]$/))
    return false

return true]]></expression>
            <message>Conflict between LN Assessment Method Femoral-Inguinal and Regional Nodes Examined</message>
            <description><![CDATA[This edit verifies that LN Assessment Method Femoral-Inguinal SSDI for Vulva is coded
consistently
with Regional Nodes Examined.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2019, blank (unknown), or invalid.
    b. Schema ID is not 00500 or 09500.
    c. LN Assessment Method Femoral-Inguinal is blank or not applicable.
    d. Regional Nodes Examined is blank.
    e. Type of Reporting Source = 6 (Autopsy Only) or 7 (Death Certificate Only)

2.  If LN Assessment Method Femoral-Inguinal = 0 (clinical exam only)
    then Regional Nodes Examined must = 00 (no nodes examined).

3.  If LN Assessment Method Femoral-Inguinal = 1 (incisional biopsy, FNA)
    then Regional Nodes Examined must = 95 (aspiration or core biopsy).

4.  If LN Assessment Method Femoral-Inguinal = 2 (lymphadenectomy),
    then Regional Nodes Examined must = 01-90 (number of nodes removed),
       96-98 (nodes removed but number unknown).]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
                <event version="SE23-023-03" user="cooki" date="2023-05-25" ref="69281">Changed name, id, and tag. Added skip condition for Type of Reporting Source.</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-04" ref="69403">Added Schema ID 09500 to skip condition</event>
            </history>
        </rule>
        <rule id="IFN6619" name="PhI Radiation Treatment Modality, DateDX, RPTSRC (SEER)" tag="N6619" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018')
    return true

if (line.typeOfReportingSource == '6' && line.phase1RadiationTreatmentModality != '00')
    return false
else if (line.typeOfReportingSource == '7' && line.phase1RadiationTreatmentModality != '99')
    return false
else if (line.phase1RadiationTreatmentModality == null)
    return false
return true]]></expression>
            <message>Phase I Radiation Treatment Modality must not be blank for cases diagnosed 2018 and later</message>
            <description><![CDATA[This edit checks that Phase I Radiation Treatment Modality [1506] is
reported for diagnoses 1/1/2018 and later.

The edit is skipped if diagnosis date is blank (unknown, invalid or < 2018.

If the year of Date of Diagnosis is 2018 or later:

1. If Type of Reporting Source = 6 (Autopsy Only), Phase I Radiation Treatment Modality must
= 00

2. If Type of Reporting Source = 7 )Death Certificate Only), Phase I Radiation Treatment
    modality must = 99.

3. For all other values of Type of Reporting Source, Phase I Radiation Treatment
    Modality [1506] may not be blank.]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-02-18" ref="68802">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6620" name="RX Summ--Treatment Status, DateDX, RPTSRC (SEER)" tag="N6620" java-path="lines.line" category="inter-field" depends="RX_Summ--Treatment_Status,Year_of_Diagnosis">
            <expression><![CDATA[if(line.dateOfDiagnosisYear < '2010')
                return true
    if (line.rxSummTreatmentStatus == null)
        return false
    if (line.typeOfReportingSource == '6')
        return line.rxSummTreatmentStatus == '0'
    if (line.typeOfReportingSource == '7')
        return line.rxSummTreatmentStatus == '9'

return true]]></expression>
            <message>If year of DX &gt; 2009, RX Summ--Treatment Status cannot be blank</message>
            <description><![CDATA[If year of Date of Diagnosis is 2010 or later:

1. If Type of Reporting Source = 6 (Autopsy Only), RX Summ--Treatment Status must
= 0

2. If Type of Reporting Source = 7 )Death Certificate Only), RX Summ--Treatment Status
modality must = 9.

3. For all other values of Type of Reporting Source, RX Summ--Treatment Status may not be blank.]]></description>
            <history>
                <event version="SE23-023-01" user="secristc" date="2023-03-02" ref="69213">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6621" name="RX Summ--Surgical Margins, RPTSRC (SEER)" tag="N6621" java-path="lines.line" category="inter-field">
            <expression><![CDATA[ if(line.rxSummSurgicalMargins == null)
            return true

if (line.typeOfReportingSource == '6')
    return line.rxSummSurgicalMargins == '8' || line.rxSummSurgicalMargins == '9'

if (line.typeOfReportingSource == '7')
    return line.rxSummSurgicalMargins == '9'

return true]]></expression>
            <message>Invalid value for RX Summ--Surgical Margins</message>
            <description><![CDATA[This edit is skipped if RX Summ--Surgical Margins is blank.

If Type of Reporting Source = 6 (Autopsy Only), RX Summ--Surgical Margins must = 8 or 9.

If Type of Reporting Source = 7 (Death Certificate Only), RX Summ--Surgical Margins must = 9.
            ]]></description>
            <history>
                <event version="SE22-022-01" user="secristc" date="2022-02-16" ref="68828">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6622" name="Reason for No Radiation, DateDX, RPTSRC (SEER)" tag="N6622" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018')
            return true

if (line.typeOfReportingSource == '6')
    return line.reasonForNoRadiation == '1'

if (line.typeOfReportingSource == '7')
    return line.reasonForNoRadiation == '9'

if (line.typeOfReportingSource != null)
    return line.reasonForNoRadiation != null

return true
            ]]></expression>
            <message>Reason for No Radiation must not be blank for cases diagnosed 2018 and later</message>
            <description><![CDATA[This edit is skipped if Year of Date of Diagnosis is blank (unknown), invalid, or less than 2018.

If year of Date of Diagnosis is 2018 or later:

    1. If Type of Reporting Source is 6 (autopsy only),
        then Reason for No Radiation must equal 1.

    2. If Type of Reporting Source is 7 (Death Certificate Only),
        then Reason for No Radiation must equal 9.

    3. For all other values of Type of Reporting Source, Reason for No Radiation may not be blank.]]></description>
            <history>
                <event version="SE22-022-01" user="secristc" date="2022-02-14" ref="68827">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6633" name="Gleason Patterns Clinical, Grade Clinical (SEER)" tag="N6633" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId != '00580' || line.gradeClinical == null)
    return true

String gleason = line.gleasonPatternsClinical
if (gleason == null || gleason == 'X8')
    return true

if (Functions.matches(gleason, /^[123][123]$/))
    return line.gradeClinical == '1'
else if (gleason == '34')
    return line.gradeClinical == '2'
else if (gleason == '43')
    return line.gradeClinical == '3'
else if (gleason == '44' || gleason == '35' || gleason == '53')
    return line.gradeClinical == '4'
else if (gleason == '45' || gleason == '54' || gleason == '55')
    return line.gradeClinical == '5'

return true]]></expression>
            <message>Gleason Patterns Clinical and Grade Clinical conflict.</message>
            <description><![CDATA[This edit verifies that Grade Clinical is coded consistently with Gleason
Patterns Clinical SSDI.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2018, blank (unknown), or invalid.
   b. Schema ID is not 00580
   c. Gleason Patterns Clinical is blank or not applicable.
   d. Grade Clinical is blank.

2. If Gleason Patterns Clinical = 11, 12, 13, 21, 22, 23, 31, 32, or 33
   Then Grade Clinical must = 1

3. If Gleason Patterns Clinical = 34
   Then Grade Clinical must = 2

4. If Gleason Patterns Clinical = 43
   Then Grade Clinical must = 3

5. If Gleason Patterns Clinical = 44, 35, or 53
   Then Grade Clinical must = 4

6. If Gleason Patterns Clinical = 45, 54, or 55
   Then Grade Clinical must = 5]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-05" ref="68155">Edit created.</event>
                <event version="SE21-021-11" user="beverung" date="2022-01-05" ref="68740">Changed edit name and tag. Updated skip condition to allow DX Year 2018.</event>
                <event version="SE22-022-01" user="beverung" date="2022-02-25" ref="68900">Update edit id to match tag.</event>
            </history>
        </rule>
        <rule id="IFN6634" name="Diagnostic Confirmation, Histology, Genetics (NAACCR)" tag="N6634" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2022' || line.diagnosticConfirmation == null || line.histologicTypeIcdO3 == null)
    return true
if (!['00790','00830'].contains(line.schemaId) || line.typeOfReportingSource == '7')
    return true

if (((List)Context.IFN6634_List_1).contains(line.histologicTypeIcdO3))
    return line.diagnosticConfirmation == '3'
if (((List)Context.IFN6634_List_2).contains(line.histologicTypeIcdO3))
    return line.diagnosticConfirmation != '3'
return true]]></expression>
            <message>Diagnostic Confirmation conflicts with Histologic Type ICD-O-3</message>
            <description><![CDATA[This edit confirms that Diagnostic Confirmation is coded correctly for histologies where
genetics data/immunophenotyping are listed in the HemeDB, and for other histologies where
genetics data/immunophenotyping are listed as "None".

1. This edit is skipped for any of the following:
    a. Diagnosis date is blank (unknown),invalid, or pre-2022.
    b. Schema ID is not 00790 or 00830.
    c. Diagnostic Confirmation is blank
    d. Histologic Type ICD-O-3 is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. If histology is in list 1, Diagnostic Confirmation must = 3.
3. If histology is in list 2, Diagnostic Confirmation must not = 3.

List 1:  Histologies with genetics data/immunophenotyping listed in Heme DB:

9806        Mixed-phenotype acute leukemia with t(9;22)(q34.1;q11.2); BCR-ABL1
9807          Mixed-phenotype acute leukemia with t(v;11q23.3); KMT2A-rearranged
9812        B-lymphoblastic leukemia/lymphoma with t(9;22)(q34.1;q11.2); BCR-ABL1
9813        B-lymphoblastic leukemia/lymphoma with t(v;11q23.3); KMT2A-rearranged
9814        B-lymphoblastic leukemia/lymphoma with t(12;21) (p13.2;q22.1); ETV6-RUNX1
9815        B-lymphoblastic leukemia/lymphoma with hyperdiploidy
9816        B-lymphoblastic leukemia/lymphoma with hypodiploidy
9817        B-lymphoblastic leukemia/lymphoma with t(5;14)(q31.1;q32.1); IGH/IL3
9818        B-lymphoblastic leukemia/lymphoma with t(1;19)(q23;p13.3); TCF3-PBX1
9819        B-lymphoblastic leukemia/lymphoma, BCR-ABL1-like
9865        Acute myeloid leukemia with t(6;9)(p23;q34.1); DEK-NUP214
9866        Acute promyelocytic leukemia with PML-RARA
9869        Acute myeloid leukemia with inv(3)(q21.3q26.2) or t(3;3)(q21.3;q26.2); GATA2, MECOM
9871        Acute myeloid leukemia with inv(16)(p13.1q22) or t(16;16)(p13.1;q22); CBFB-MYH11
9875        Chronic myeloid leukemia, BCR-ABL1-positive
9877        Acute myeloid leukemia with mutated NPM1
9878        Acute myeloid leukemia with biallelic mutation of CEBPA
9879        Acute myeloid leukemia with mutated RUNX1
9896        Acute myeloid leukemia, t(8;21)(q22;q22.1); RUNX1-RUNX1T1
9897        Acute myeloid leukemia with t(9;11)(p21.3;q23.3); KMT2A-MLLT3
9911        Acute myeloid leukemia (megakaryoblastic) with t(1;22)(p13.3;q13.1); RBM15-MKL1
9912        Acute myeloid leukemia with BCR-ABL1
9965        Myeloid/lymphoid neoplasms with PDGFRA rearrangement
9966        Myeloid/lymphoid neoplasms with PDGFRB rearrangement
9967        Myeloid/lymphoid neoplasms with FGFR1 rearrangement
9968        Myeloid/lymphoid neoplasms with PCM1-JAK2
9986        Myelodysplastic syndrome with isolated del(5q)


List 2:  Histologies without genetics data/immunophenotyping listed as "None":

9590        Malignant lymphoma, NOS
9655        Hodgkin lymphoma, lymphocyte depletion, reticular
9800        Leukemia, NOS
9820        Lymphoid leukemia, NOS
9860        Myeloid leukemia, NOS
9863        Chronic myeloid leukemia, NOS
9980        Myelodysplastic syndrome with single lineage dysplasia
9982        Myelodysplastic syndrome with ring sideroblasts and single lineage dysplasia
9989        Myelodysplastic syndrome, unclassifiable]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-03-04" ref="68896">Edit Created</event>
            </history>
        </rule>
        <rule id="IFN6639" name="Grade Post Therapy, Treatment Status (NAACCR)" tag="N6639" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2022' || line.rxSummTreatmentStatus == null)
    return true
if (line.gradePostTherapyClin == null && line.gradePostTherapy == null)
    return true

if (['0','2','9'].contains(line.rxSummTreatmentStatus))
    return line.gradePostTherapyClin == null && line.gradePostTherapy == null
return true]]></expression>
            <message>Grade Post Therapy Clin (yc) and Grade Post Therapy Path (yp) conflicts with RX Summ--Treatment Status.</message>
            <description><![CDATA[This edit enforces consistency of coding between Grade Post Therapy Clin (yc),
Grade Post Therapy Path (yp), and RX Summ--Treatment Status.

1. The edit is skipped for any of the following:
    a. Diagnosis date blank (unknown), invalid, or pre-2022.
    b. Grade Post Therapy Clin (yc) and Grade Post Therapy Path (yp) are both blank.
    c. Treatment Status is blank.

2. If RX Summ--Treatment Status = 0 (no treatment), 2 (watchful waiting), or 9 (unknown if
    treatment provided), Grade Post Therapy Clin (yc) and Grade Post Therapy Path (yp)
    must both be blank.]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-03-04" ref="68896">Edit Created</event>
            </history>
        </rule>
        <rule id="IFN6640" name="Macroscopic Evaluation of Mesorectum, Rectum, Surgery 03-2022 (SEER)" tag="N6640" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear != '2022' || line.primarySite != 'C209' || line.macroscopicEvalOfTheMesorectum == null ||
            line.rxSummSurgPrimSite == null || line.typeOfReportingSource == '6' || line.typeOfReportingSource == '7')
    return true

if (Functions.matches(line.rxSummSurgPrimSite, /^00|1[0-5]|2[0-8]$/))
    return line.macroscopicEvalOfTheMesorectum == '00'

if (line.rxSummSurgPrimSite == '99')
    return line.macroscopicEvalOfTheMesorectum == '99'

return true]]></expression>
            <message>Macroscopic Evaluation of Mesorectum conflicts with RX Summ--Surg Prim Site 03-2022</message>
            <description><![CDATA[This edit verifies that Macroscopic Evaluation of
Mesorectum is coded consistently with RX Summ--Surg Prim Site 03-2022 for Rectum.

1. This edit is skipped if any of the following conditions is true:

    a. Year of Date of Diagnosis is not 2022
    b. Primary Site is not C209
    c. Macroscopic Evaluation of Mesorectum is blank
    d. RX Summ--Surg Prim Site 03-2022 is blank
    e. Type of Reporting Source = 6 (Autopsy Only) or 7 (Death Certificate Only)

2. If RX Summ--Surg Prim Site 03-2022 = 00 (no surgery), 10-15 (tumor
    destruction without pathology specimen), or 20-28 (local excision)
    Macroscopic Evaluation of Mesorectum must = 00 (Patient did not
    receive TME)

3. If RX Summ--Surg Prim Site 03-2022 = 99 (unknown if surgery performed),
    Macroscopic Evaluation of Mesorectum must = 99 (Unknown if TME performed)
            ]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
                <event version="SE23-023-01" user="cooki" date="2023-01-26" ref="69109">Name changed, skip condition year changed to not 2022, Surg Prim Site 03-2022 label added.</event>
                <event version="SE23-023-04" user="cooki" date="2023-05-30" ref="69280">Changed ID, Tag, Name. Added skip conditon for Type of Reporting Source = 7.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-02-05" ref="69361">Add logic for code 99 for RX Summ-Surg Prim Site 03-2022.</event>
                <event version="SE24-024-04" user="beverung" date="2024-04-12" ref="69449">Don&apos;t allow Macroscopic Evaluation of Mesorectum must = 99 in condition 2.</event>
            </history>
        </rule>
        <rule id="IFN6641" name="Macroscopic Evaluation of Mesorectum, Schema ID, Required, CoC Flag (SEER)" tag="N6641" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2022' || line.schemaId == null || line.typeOfReportingSource == '7' || line.cocAccreditedFlag != '1')
    return true

if (line.schemaId == '00200' && line.primarySite == 'C209')
    return line.macroscopicEvalOfTheMesorectum != null

return true]]></expression>
            <message>Macroscopic Evaluation of Mesorectum must not be blank for Schema ID, Primary Site case diagnosed 2022 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2022, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. CoC Accredited Flag is not 1

Macroscopic Evaluation of Mesorectum is required by SEER only for
analytic cases from CoC Accredited facility.

2. This edit verifies that Macroscopic Evaluation of Mesorectum is
not blank for the Schema IDs
    for which it is required by a standard setter.

    Required for Schema ID:

    00200: Colon and Rectum, C20.9 only
            ]]></description>
            <history>
                <event version="SE22-022-01" user="secristc" date="2022-02-24" ref="68895">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6642" name="p16, Schema ID, Required, CoC Flag (SEER)" tag="N6642" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.dateOfDiagnosisYear > '2022'
            || line.schemaId == null || line.typeOfReportingSource == '7' || line.cocAccreditedFlag != '1')
    return true

if (('0000001565' == line.registryId || '0000001566' == line.registryId) && line.dateOfDiagnosisYear == '2021')
    return true

if (line.schemaId == '09520')
    return line.p16 != null && line.p16 != '8'

return true]]></expression>
            <message>p16 must not be blank or not applicable for Schema ID case diagnosed 2021 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2021 or after 2022, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. CoC Accredited Flag is not 1
    e. Registry ID = 0000001565 (Illinois) or 0000001566 (Texas) and Year of Diagnosis = 2021

p16 is required by SEER only for analytic case from CoC accredited
facility

2. This edit verifies that p16 is not "8" (not applicable) and not
   blank for the Schema IDs for which it is required by a standard setter.

    Required for Schema ID:

    09520: Cervix, 9th Edition]]></description>
            <history>
                <event version="SE22-022-01" user="secristc" date="2022-02-25" ref="68895">Edit created.</event>
                <event version="SE22-022-09" user="secristc" date="2022-08-09" ref="69018">Added skip condition for IL and TX when DX year = 2021.</event>
                <event version="SE23-023-01" user="cooki" date="2023-02-06" ref="69143">Added skip condition for DX year 2023+.</event>
            </history>
        </rule>
        <rule id="IFN6643" name="LN Status Femoral-Inguinal, Schema ID, Required, CoC Flag (SEER)" tag="N6643" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7' || line.cocAccreditedFlag != '1')
    return true
if ('0000001565' == line.registryId && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if ('0000001566' == line.registryId && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return !['00500','00510','09500'].contains(line.schemaId) || (line.lnStatusFemoralInguinal != null && line.lnStatusFemoralInguinal != '8')]]></expression>
            <message>LN Status Femoral-Inguinal must not be blank or not applicable for Schema ID cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. CoC Accredited Flag is not 1
    e. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    f. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

LN Status Femoral-Inguinal is required by SEER only on analytic cases from
CoC-accredited facility

1. This edit verifies that LN Status Femoral-Inguinal is not "8" (not applicable)
    and not blank for the Schema IDs for which it is required by a standard
setter.

    Required for Schema ID:

    00500: Vulva [8th: 2018-2023]
    09500: Vulva [V9: 2024+]
    00510: Vagina]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-02-02" ref="68887">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68989">Added skip condition for IL for DX years 2018-2022, TX for 2018-2021.</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-04" ref="69403">Added logic for Schema ID 09500.</event>
            </history>
        </rule>
        <rule id="IFN6646" name="LN Status Para-Aortic, Schema ID, Required, CoC Flag (SEER)" tag="N6646" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7' || line.cocAccreditedFlag != '1')
    return true
if ('0000001565' == line.registryId && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if ('0000001566' == line.registryId && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return !['00510','00520','09520'].contains(line.schemaId) || (line.lnStatusParaAortic != null && line.lnStatusParaAortic != '8')]]></expression>
            <message>LN Status Para-Aortic must not be blank or not applicable for Schema ID cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. CoC Accredited Flag is not 1
    e. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    f. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

LN Status Para-Aortic is required by SEER only for analytic cases from
CoC-accredited facility.

1. This edit verifies that LN Status Para-Aortic is not "8" (not
applicable)
    and not blank for the Schema IDs for which it is required by a standard
setter.

    Required for Schema ID:

    00510: Vagina
    00520: Cervix [8th Edition]
    09520: Cervix [9th Edition]]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-02-02" ref="68887">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68989">Added skip condition for IL for DX years 2018-2022, TX for 2018-2021.</event>
            </history>
        </rule>
        <rule id="IFN6651" name="LN Status Pelvic, Schema ID, Required, CoC Flag (SEER)" tag="N6651" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.typeOfReportingSource == '7' || line.cocAccreditedFlag != '1')
    return true

if ('0000001565' == line.registryId && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2023')
    return true
if ('0000001566' == line.registryId && line.dateOfDiagnosisYear > '2017' && line.dateOfDiagnosisYear < '2022')
    return true

return !['00500','00510','00520','09520','09500'].contains(line.schemaId) || (line.lnStatusPelvic != null && line.lnStatusPelvic != '8')]]></expression>
            <message>LN Status Pelvic must not be blank or not applicable for Schema ID cases diagnosed 2018 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2018, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. CoC Accredited Flag is not 1
    e. Registry ID = 0000001565 (Illinois) and Year of Diagnosis 2018-2022
    f. RegistryID = 0000001566 (Texas) and Year of Diagnosis = 2018-2021

LN Status Pelvic is required by SEER only for analytic cases from
CoC-accredited facility.

1. This edit verifies that LN Status Pelvic is not "8"
(not applicable)
    and not blank for the Schema IDs for which it is required
by a standard setter.

    Required for Schema ID:

    00500: Vulva [8th: 2018-2023]
    09500: Vulva [V9: 2024+]
    00510: Vagina
    00520: Cervix [8th Edition]
    09520: Cervix [9th Edition]]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-02-02" ref="68887">Edit created.</event>
                <event version="SE22-022-04" user="secristc" date="2022-05-03" ref="68989">Added skip condition for IL for DX years 2018-2022, TX for 2018-2021.</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-04" ref="69403">Added logic for Schema ID 09500.</event>
            </history>
        </rule>
        <rule id="IFN6660" name="Recurrence Type--1st, CoC Flag (SEER)" tag="N6660" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.cocAccreditedFlag != '1')
    return true
if (line.registryId == '0000001565' && line.dateOfDiagnosisYear < '2023')
    return true
if (line.registryId == '0000001566' && line.dateOfDiagnosisYear < '2022')
    return true

return ((List)Context.IFN6660_List).contains(line.recurrenceType1st)]]></expression>
            <message>Not a valid value for Recurrence Type--1st</message>
            <description><![CDATA[The edit is skipped for any of the following conditions:
    a. Date of Diagnosis is blank (unknown), invalid, or pre-2021.
    b. CoC Accredited Flag is not = 1
    c. Registry ID = 0000001565 (Illinois) and Year of Diagnosis < 2023
    d. Registry ID = 0000001566 (Texas) and Year of Diagnosis < 2022

This data item is required by SEER only for analytic cases from CoC-accredited facilities.

Must be a valid code for Recurrence Type--1st (00,04,06,10,13-17,20-22,25-27,30,36,40,46,51-60,62,70,88,99).

00    Patient became disease-free after treatment and has not had recurrence
04    In situ recurrence of invasive tumor
06    In situ recurrence of in situ tumor
10    Local recurrence, insufficient information to code to 13-17
13    Local recurrene of invasive tumor
14    Trocar recurrene of invasive tumor
15    Both local and trocar recurrence of invasive tumor
16    Local recurrence of in situ tumor, NOS
17    Both local and trocar recurrence of in situ tumor
20    Regional recurrence, insufficient information to code to 21-27
21    Recurrence of invasive tumor in adjacent organ(s) only
22    Recurrence of invasive tumor in regional lymph nodes only
25    Recurrence of invasive tumor in adjacent tissue or organ(s) and in regional nodes at same time
26    Regional recurrence of in situ tumor NOS
27    Recurrence of in situ tumor in adjacent tissue or organ(s) and in regional lymph nodes at same time
30    Both regional recurrence of invasive tumor in adjacent tissue or organ(s) and/or regional lymph odes and local
and/or trocar
recurrence
36    Both regional recurrence of in situ tumor in adjacent tissue or organ(s) and/or regional lymph odes and local
and/or trocar
recurrence
40    Distant recurrence to site not listed in 46-62 or insufficient information to code to 46-62
46    Distant recurrence of in situ tumor
51    Distant recurrence of invasive tumor in peritoneum only.
52    Distant recurrence of invasive tumor in lung only.
53    Distant recurrence of invasive tumor in pleura only
54    Distant recurrence of invasive tumor in liver only
55    Distant recurrence of invasive tumor in bones only
56    Distant recurrence of invasive tumor in CNS only.
57    Distant recurrence of invasive tumor in skin only.
58    Distant recurrence of invasive tumor in lymph node only.
59    Distant systemic recurrence of invasive tumor only
60    Distant recurrence of invasive tumor in single distant site and local, trocar and/or regional recurrence
62    Distant recurrence of invasive tumor in multiple sites
70    Since diagnosis patient has never been disease-free.
88    Disease has recurred but type of recurrence unknown
99    Unknown whether disease has recurred or if patient was ever disease-free]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-03-04" ref="68896">Edit Created</event>
                <event version="SE22-022-04" user="secristc" date="2022-04-29" ref="68980">Changed skip condition to pre 2021</event>
                <event version="SE22-022-08" user="beverung" date="2022-06-16" ref="69010">Added skip conditions for IL and TX.</event>
            </history>
        </rule>
        <rule id="IFN6661" name="Recurrence Type--1st, Cancer Status (SEER)" tag="N6661" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2022')
    return true
if (line.recurrenceType1st == null || line.cancerStatus == null)
    return true

if (line.recurrenceType1st == '00' && line.cancerStatus != '1')
    return false
if (line.recurrenceType1st == '70' && line.cancerStatus != '2')
    return false
return true]]></expression>
            <message>Cancer Status and Recurrence Type--1st conflict</message>
            <description><![CDATA[This edit is skipped if any of the fields are blank.
This edit is skipped for diagnosis date blank (unknown), invalid, or pre-2022.

If Recurrence Type--1st = 00 (patient became disease-free after treatment and has not had a
recurrence), then Cancer Status must = 1 (no evidence of this cancer).

If Recurrence Type--1st = 70 (patient has never been disease free), then Cancer Status must = 2
(evidence of this cancer).]]></description>
            <history>
                <event version="SE22-022-01" user="beverung" date="2022-03-04" ref="68896">Edit Created</event>
                <event version="SE22-022-18" user="secristc" date="2023-01-03" ref="69070">Removed condition for DOLC less than 2006</event>
            </history>
        </rule>
        <rule id="IFN6662" name="Pleural Effusion, Pleura, Derived SS 2018 (SEER)" tag="N6662" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId != '00370')
    return true
if (line.derivedSummaryStage2018 == null || line.typeOfReportingSource == '7')
    return true

return line.pleuralEffusion != '2' || line.derivedSummaryStage2018 == '7']]></expression>
            <message>Pleural Effusion conflicts with Derived Summary Stage 2018</message>
            <description><![CDATA[This edit verifies that Pleural Effusion SSDI is coded consistently with Summary Stage 2018 for Pleura.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2021, blank (unknown), or invalid
   b. Schema ID is not 00370
   c. Pleural Effusion is blank or 8 (not applicable)
   d. Derived Summary Stage 2018 is blank
   e. Type of Reporting Source = 7 (death certificate only)

2. If Pleural Effusion  = 2 (Pleural effusion positive for malignancy),
   Derived Summary Stage 2018 must = 7 (distant)]]></description>
            <history>
                <event version="SE22-022-06" user="beverung" date="2022-05-26" ref="68941">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6664" name="AFP Pre-Orchiectomy Range, Schema ID, Required (SEER)" tag="N6664" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2022' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true

if (line.dateOfDiagnosisYear < '2023' && line.registryId == '0000001565')
    return true

return line.schemaId != '00590' || (line.afpPreOrchiectomyRange != null && line.afpPreOrchiectomyRange != '8')]]></expression>
            <message>AFP Pre-Orchiectomy Range must be reported for diagnosis date 2022+</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2022, blank (unknown), or invalid
    b. Schema ID is blank
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Registry ID = 0000001565 (Illinois) and Year of Diagnosis < 2023

Prior to 2022 SEER only required this SSDI for analytic cases from COC facility.

2. This edit verifies that AFP Pre-Orchiectomy Range is not "8" (not
   applicable)and not blank for the Schema IDs for which it is required by a
   standard setter.

    Required for Schema ID:

    00590: Testis]]></description>
            <history>
                <event version="SE22-022-06" user="beverung" date="2022-05-26" ref="68941">Edit created.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-03-04" ref="69401">Add skip condition for IL before 2023.</event>
            </history>
        </rule>
        <rule id="IFN6665" name="PhII Radiation External Beam Planning Tech, Date DX, CoC Flag (SEER)" tag="N6665" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.cocAccreditedFlag != '1' || line.typeOfReportingSource == '7')
    return true

return line.phase2RadiationExternalBeamTech != null || line.phase2RadiationTreatmentModality == null || ['00','99'].contains(line.phase2RadiationTreatmentModality)]]></expression>
            <message>Phase II Radiation External Beam Planning Tech is not a valid value</message>
            <description><![CDATA[This edit checks that radiation items defined for 2018 are reported by standard
setter requirements for diagnoses 1/1/2018 and later.

1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. CoC Accredited Flag not = 1
    c. Type of Reporting Source = 7 (Death Certificate Only)

PhII Radiation External Beam Planning Tech is required by SEER only if collected by
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).

2. If the year of Date of Diagnosis is 2018 or later, Phase II Radiation External
   Beam Planning Technique may not be blank, with the following exception:
        If Phase II Radiation Treatment Modality is 00, 99, or blank, Phase II Radiation
        External Beam Planning Tech may be blank]]></description>
            <history>
                <event version="SE22-022-06" user="beverung" date="2022-05-26" ref="68941">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6666" name="PhIII Radiation External Beam Planning Tech, Date DX, CoC Flag (SEER)" tag="N6666" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.cocAccreditedFlag != '1' || line.typeOfReportingSource == '7')
    return true

return line.phase3RadiationExternalBeamTech != null || line.phase3RadiationTreatmentModality == null || ['00','99'].contains(line.phase3RadiationTreatmentModality)]]></expression>
            <message>Phase III Radiation External Beam Planning Tech is not a valid value</message>
            <description><![CDATA[This edit checks that radiation items defined for 2018 are reported by standard
setter requirements for diagnoses 1/1/2018 and later.

1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2018, blank (unknown), or invalid
    b. CoC Accredited Flag not = 1
    c. Type of Reporting Source = 7 (Death Certificate Only)

PhIII Radiation External Beam Planning Tech is required by SEER only if collected by
a CoC-accredited facility on an analytic case (CoC Accredited Flag = 1).

2. If the year of Date of Diagnosis is 2018 or later, Phase III Radiation External
   Beam Planning Technique may not be blank, with the following exception:
        If Phase III Radiation Treatment Modality is 00, 99, or blank, Phase III Radiation
        External Beam Planning Tech may be blank]]></description>
            <history>
                <event version="SE22-022-06" user="beverung" date="2022-05-26" ref="68941">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6669" name="EOD Primary Tumor/Nodes/Mets, Lung Occult Carcinoma, Derived SS 2018 (SEER)" tag="N6669" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.schemaId != '00360' || line.typeOfReportingSource == '7')
    return true
if (line.eodPrimaryTumor == null && line.eodRegionalNodes == null && line.eodMets == null)
    return true

if (line.eodPrimaryTumor == '980')
    return line.eodRegionalNodes == '000' && line.eodMets == '00' && line.derivedSummaryStage2018 == '9'

return true]]></expression>
            <message>EOD variables/Dervied Summary Stage 2018 conflict for Lung Occult Carcinoma</message>
            <description><![CDATA[This edit checks consistency of coding between EOD Primary Tumor, EOD Regional
Nodes, EOD Mets, and Derived Summary Stage 2018 for an Occult Carcinoma
in Schema ID 00360, Lung.

1. This edit is skipped if any of the following conditions is true:
    a. Diagnosis date is invalid, blank (unknown), or before 2021.
    b. Schema ID is blank or not = 00360
    c. EOD Primary Tumor, EOD Regional Nodes, and EOD Mets are all blank
    d. Type of Reporting Source is 7 (Death Certificate Only)

2. If EOD Primary Tumor = 980 (Tumor proven by presence of malignant cells in
    sputum or bronchial washings but not visualized by imaging or bronchoscopy)
    then:  a. EOD Regional Nodes must = 000
           b. EOD Mets must = 00
           c. Derived Summary Stage 2018 must = 9 ]]></description>
            <history>
                <event version="SE22-022-06" user="beverung" date="2022-05-26" ref="68941">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="IFN6673" name="Esophagus and EGJ Tumor Epicenter, Esophagus, Primary Site (NAACCR)" tag="N6673" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId == null || line.schemaId != '00161')
    return true
if (line.esophagusAndEgjTumorEpicenter == null || line.typeOfReportingSource == '7')
    return true

return line.primarySite != 'C159' || line.esophagusAndEgjTumorEpicenter == '9'
]]></expression>
            <message>Site and Esophagus and EGJ Tumor Epicenter conflict for Esophagus Squamous</message>
            <description><![CDATA[This edit verifies that the Esophagus and EGJ Tumor Epicenter SSDI is coded
consistently with Primary Site C159 for Schema ID 00161, Esophagus Squamous.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2018, blank (unknown), or invalid.
    b. Schema ID is blank or not 00161
    c. Esophagus and EGJ Tumor Epicenter is blank
    d. Type of Reporting Source is 7 (Death Certificate Only)



2. If Primary Site = C159 (Esophagus NOS),
    then Esophagus and EGJ Tumor Epicenter must = 9 (Esophagus NOS, Specific
    location of Esophagus and EGJ Tumor Epicenter not documented)]]></description>
            <history>
                <event version="SE22-022-03" user="beverung" date="2022-04-12" ref="68935">Add edit.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
                <event version="SE23-023-01" user="cooki" date="2023-02-22" ref="69163">Changed skip condition to pre-2018.</event>
            </history>
        </rule>
        <rule id="IFN6702" name="Date Regional Lymph Node Dissection, Scope Nodes (NAACCR)" tag="N6702" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[boolean dateRegionalLNDissectionBlank = line.dateRegionalLNDissectionYear == null && line.dateRegionalLNDissectionMonth == null && line.dateRegionalLNDissectionDay == null
if (dateRegionalLNDissectionBlank || line.rxSummScopeRegLnSur == null || line.dateOfDiagnosisYear < '2023')
    return true

if (!dateRegionalLNDissectionBlank && !Functions.matches(line.rxSummScopeRegLnSur, /^[3-7]$/))
    return false

return true]]></expression>
            <message>Conflict between Date Regional Lymph Node Dissection and RX Summ--Scope Reg LN Sur</message>
            <description><![CDATA[This edit checks consistency of coding between Date Regional Lymph Node Dissection
and RX Summ--Scope Reg LN Sur.

1. This edit is skipped for any of the following:
   a. Date Regional Lymph Node Dissection is blank (unknown) or invalid
   b. RX Summ--Scope of Reg LN Surg is blank
   c. Date of Diagnosis before 2023

2. If Date Regional Lymph Node Dissection is not blank,
RX Summ--Scope Reg LN Sur must= 3-7.]]></description>
            <history>
                <event version="SE23-023-02" user="shearerw" date="2023-05-04" ref="69205">Edit Created.</event>
                <event version="SE24-024-01" user="beverung" date="2024-02-08" ref="69333">Removed logic for RX Summ--Scope Reg LN Sur = 0-2.</event>
            </history>
        </rule>
        <rule id="IFN6711" name="Grade Post Therapy Path (yp), Surgery Sequence (NAACCR)" tag="N6711" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if ((line.rxSummSystemicSurSeq == null && line.rxSummSurgRadSeq == null) || line.dateOfDiagnosisYear < '2023' || line.dateOfDiagnosisYear == null
            || line.gradePostTherapy == '8')
    return true

if (line.rxSummSystemicSurSeq == '0' && line.rxSummSurgRadSeq == '0')
    return line.gradePostTherapy == null

return true]]></expression>
            <message>If RX Summ--Surg/Rad Seq and RX Summ--Systemic/Sur Seq both = 0, Grade Post Therapy Path (yp) must be blank</message>
            <description><![CDATA[This edit checks that Grade Post Therapy Path (yp) is coded consistently with the
sequence fields for surgery and radiation and surgery and systemic therapy.


1. This edit is skipped under the following conditions:
    a. Date of diagnosis = pre-2023, blank (unknown) or invalid.
    b. Grade Post Therapy Path (yp) = 8.
    c. RX Summ--Surg/Rad Seq and RX Summ--Systemic Sur/Seq are both blank.

2. if RX Summ--Surg/Rad Seq and RX Summ--Systemic Sur/Seq = 0
    Grade Post Therapy Path(yp) must be blank]]></description>
            <history>
                <event version="SE23-023-05" user="cooki" date="2023-06-23" ref="69226">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6712" name="Visceral and Parietal Pleural Invasion, Lung, Surg Prim Site 2023 (SEER)" tag="N6712" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId != '00360' || line.visceralParietalPleuralInvasion == null
            || line.visceralParietalPleuralInvasion == '8' || line.rxSummSurgPrimSite2023 == null || line.typeOfReportingSource == '6' || line.typeOfReportingSource == '7' || line.behaviorCodeIcdO3 == '2')
    return true

Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

if (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5))
    return true

if (Functions.matches(line.rxSummSurgPrimSite2023, /^(A|B)(1[2-4]\d|150|000|990)$/))
    return line.visceralParietalPleuralInvasion == '9'

return true]]></expression>
            <message>Conflict between RX Summ--Surg Prim Site 2023 and Visceral and Parietal Pleural Invasion</message>
            <description><![CDATA[Purpose: This edit verifies that Visceral and Parietal Pleural Invasion SSDI is
coded consistently with RX Summ--Surg Prim Site 2023 for Lung.

1. This edit is skipped if any of the following conditions is true:

    a. Year of Date of Diagnosis is less than 2023, blank (unknown),
        or invalid
    b. Schema ID is not 00360
    c. Visceral and Parietal Pleural Invasion is blank or 8 (not
        applicable)
    d. RX Summ--Surg Prim Site 2023 is blank
    e. Type of Reporting Source = 6 (Autopsy Only) or 7 (Death
        Certificate Only)
    f. Vital Status = 0 and Date of Last Contact within 5 months of
        Date of Diagnosis
    g. Behavior Code ICD-O-3 = 2



2. If RX Summ--Surg Prim Site 2023 = A000 or B000 (no surgery), A120-A150 or B120-B150 (tumor
    destruction without pathology specimen),
    Visceral and Parietal Pleural Invasion must = 9 (no surgical
    resection of primary site is performed)

3. If RX Summ-Surg Prim Site 2023 = A990 or B990 (unknown if surgery performed)
    Visceral and Parietal Pleural Invasion must = 9 (Visceral Pleural Invasion not assessed or unknown if assessed)]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-21" ref="69236">Edit created.</event>
                <event version="SE24-024-01" user="cooki" date="2024-02-12" ref="69348">Added skip condition g, B-codes to condition 2, and new condition 3.</event>
            </history>
        </rule>
        <rule id="IFN6714" name="Grade Post Therapy, Systemic Treatment (NAACCR)" tag="N6714" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if ((line.gradePostTherapy == null && line.gradePostTherapyClin == null) || line.dateOfDiagnosisYear < '2023' || line.dateOfDiagnosisYear == null
            || (line.phase1RadiationTreatmentModality == null && line.rxSummChemo == null && line.rxSummHormone == null && line.rxSummBrm == null && line.rxSummTransplntEndocr == null
            && line.rxSummOther == null))
    return true

if (Functions.matches(line.phase1RadiationTreatmentModality, /^00|99$/) &&
    Functions.matches(line.rxSummChemo, /^00|8[25-8]|99$/) &&
    Functions.matches(line.rxSummHormone, /^00|8[25-8]|99$/) &&
    Functions.matches(line.rxSummBrm, /^00|8[25-8]|99$/) &&
    Functions.matches(line.rxSummTransplntEndocr, /^00|8[25-8]|99$/) &&
    Functions.matches(line.rxSummOther, /^[07-9]$/))
    return line.gradePostTherapy == null && line.gradePostTherapyClin == null

return true]]></expression>
            <message>Grade Post Therapy Clin (yc) and Grade Post Therapy Path (yp) must be blank if no radiation or systemic therapy</message>
            <description><![CDATA[This edit enforces consistency of coding between Grade Post Therapy Clin (yc),
Grade Post Therapy Path (yp), and radiation and systemic treatment data items

1. The edit is skipped for any of the following:
    a. Diagnosis date blank (unknown), invalid, or pre-2023.
    b. Grade Post Therapy Clin (yc) and Grade Post Therapy Path (yp) are both
         blank.
    c. Phase I Radiation Treatment Modality, RX Summ--Chemo, RX Summ--Hormone,
        RX Summ--Brm, RX Summ--Transplnt Endocr, and RX Summ--Other are all blank

2. If treatment fields are coded no treatment or unknown if treatment,
    Grade Post Therapy Clin (yc) and Grade Post Therapy Path (yp)must both be blank.]]></description>
            <history>
                <event version="SE23-023-05" user="cooki" date="2023-06-23" ref="69226">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6715" name="Grade Post Therapy, Neoadjuvant Therapy (SEER)" tag="N6715" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if ((line.gradePostTherapy == null && line.gradePostTherapyClin == null) || line.dateOfDiagnosisYear < '2023' || line.dateOfDiagnosisYear == null
            || line.neoadjuvantTherapy == null)
    return true

if (line.neoadjuvantTherapy == '0' || line.neoadjuvantTherapy == '3' || line.neoadjuvantTherapy == '9')
    return line.gradePostTherapy == null && line.gradePostTherapyClin == null

return true]]></expression>
            <message>Grade Post Therapy Clin (yc) and Grade Post Therapy Path (yp) must be blank when no neoadjuvant therapy given</message>
            <description><![CDATA[This edit enforces consistency of coding between Grade Post Therapy Clin (yc),
Grade Post Therapy Path (yp), and Neoadjuvant Therapy.

1. The edit is skipped for any of the following:
    a. Diagnosis date blank (unknown), invalid, or pre-2023.
    b. Grade Post Therapy Clin (yc) and Grade Post Therapy Path (yp) are both
        blank.
    c. Neoadjuvant Therapy is blank.

2. If Neoadjuvant Therapy = 0 (no neoadjuvant therapy), 3 (limited systemic
     exposure when intent not neoadjuvant), or 9 (unknown if neoadjuvant therapy
     performed)
    Grade Post Therapy Clin (yc) and Grade Post Therapy Path (yp) must both be blank.]]></description>
            <history>
                <event version="SE23-023-05" user="cooki" date="2023-06-23" ref="69226">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6734" name="Clinical Margin Width, Date DX (NAACCR)" tag="N6734" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2023')
    return line.clinicalMarginWidth == null

return line.clinicalMarginWidth == null || Functions.matches(line.clinicalMarginWidth, /^XX\.[189]|\d\.\d$/)]]></expression>
            <message>Invalid code for Clinical Margin Width</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), invalid.

1. This data item must be blank for pre-2023 diagnoses.

2. Must be a valid Clinical Margin Width code or blank:

   0.1: Documented as 0.1 centimeter or less (1mm or less)
    0.2-9.9: 0.2-9.9 centimeters
    XX.1: 10 centimeters or greater
    XX.8: Not applicable: Information not collected for this schema
    XX.9: Not documented in medical record
          No wide excision performed
           Mohs or similar procedure
           Wide excision performed, but clinical margin widthnot documented.
           No surgical resetion performed (B000)
           Unknown if procedure performed
    Blank N/A-Diagnosis year prior to 2023

3. Code must contain decimal point with at least one character before and one character after
decimal point.

Another edit, Clinical Margin Width, Schema ID, Required (NAACCR),
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE23-023-02" user="cooki" date="2023-05-09" ref="69224">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6735" name="Clinical Margin Width, Schema ID, Required (NAACCR)" tag="N6735" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true

return line.schemaId != '00470' || (line.clinicalMarginWidth != null && line.clinicalMarginWidth != 'XX.8')]]></expression>
            <message>Clinical Margin Width must not be blank or not applicable for cases with this Schema ID diagnosed 2023 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2023, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)

2. This edit verifies that Clinical Margin Width is not "XX.8" (not applicable) and not
   blank for the Schema IDs for which it is required by a standard setter.

    Required for Schema ID:

    00470 Melanoma of Skin]]></description>
            <history>
                <event version="SE23-023-02" user="cooki" date="2023-05-10" ref="69224">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6736" name="Clinical Margin Width, Surg Prim Site 2023 (NAACCR)" tag="N6736" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId != '00470' || line.clinicalMarginWidth == null
             || line.rxSummSurgPrimSite2023 == null || line.rxSummSurgPrimSite2023 == 'B600' || line.typeOfReportingSource == '7')
    return true

if (Functions.matches(line.rxSummSurgPrimSite2023, /^B([0-2]\d\d|3[0-1]\d|320|900|990)$/))
    return line.clinicalMarginWidth == 'XX.9'

if (Functions.matches(line.clinicalMarginWidth, /^(0\.[1-9]|[1-9]\.\d|XX\.1)$/))
    return Functions.matches(line.rxSummSurgPrimSite2023, /^B(5[0-3]\d|540)$/)

return true]]></expression>
            <message>Clinical Margin Width must be coded for wide excision only</message>
            <description><![CDATA[This edit verifies consistency of coding between Clinical Margin Width SSDI
and RX Summ--Surg Prim Site 2023.

This edit is skipped for any of the following conditions:
    1. Diagnosis date blank (unknown), invalid, or before 2023.
    2. Schema ID is not 00470.
    3. Clinical Margin Width is blank
    4. RX Summ--Surg Prim Site 2023 is blank or B600
    5. Type of Reporting Source = 7 (Death Certificate Only)

A. If RX Summ--Surg Prim Site 2023 = B000-B320, B900, or B990 (no surgery, surgery
    other than wide excision, or unknown),Clinical Margin Width must = XX.9.

B. If Clinical Margin Width = 0.1-9.9 or XX.1,
    RX Summ--Surg Prim Site 2023 must = B500-B540 (wide excision)]]></description>
            <history>
                <event version="SE23-023-02" user="cooki" date="2023-05-10" ref="69224">Edit created.</event>
                <event version="SE24-024-04" user="beverung" date="2024-05-01" ref="69458">Add skip condition for RX Summ--Surg Prim Site 2023 = B600.</event>
            </history>
        </rule>
        <rule id="IFN6737" name="LN Head and Neck Levels I-III, Melanoma Head/Neck, Behavior (NAACCR)" tag="N6737" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId == null || line.schemaId != '00140'
            || line.lnHeadAndNeckLevels1To3 == null || line.lnHeadAndNeckLevels1To3 == '8' || line.behaviorCodeIcdO3 == null || line.typeOfReportingSource == '7')
    return true

if (line.behaviorCodeIcdO3 == '2')
    return line.lnHeadAndNeckLevels1To3 == '0'

return true]]></expression>
            <message>Conflict between Behavior Code ICD-O-3 and LN Head and Neck Levels I-III</message>
            <description><![CDATA[This edit verifies that the LN Head and Neck Levels I-III SSDI
is coded consistently with Behavior Code ICD-O-3 /2 for in situ, for head and
neck Schema IDs.

1. This edit is skipped for the following conditions:
    a. Date of Diagnosis is pre-2023, blank (unknown), or invalid.
    b. Schema ID is blank or not 00140.
    c. LN Head and Neck Levels I-III is blank or 8 (not applicable)
    d. Behavior Code ICD-O-3 is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. If Behavior Code ICD-O-3 = 2 (in situ)
    then LN Head and Neck Levels I-III must = 0 (Non-invasive neoplasm (behavior /2)]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-26" ref="69225">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN6738" name="LN Head and Neck Levels IV-V, Melanoma Head/Neck, Behavior (NAACCR)" tag="N6738" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId == null || line.schemaId != '00140'
            || line.lnHeadAndNeckLevels4To5 == null || line.lnHeadAndNeckLevels4To5 == '8' || line.behaviorCodeIcdO3 == null || line.typeOfReportingSource == '7')
    return true

if (line.behaviorCodeIcdO3 == '2')
    return line.lnHeadAndNeckLevels4To5 == '0'

return true]]></expression>
            <message>Conflict between Behavior Code ICD-O-3 and LN Head and Neck Levels IV-V</message>
            <description><![CDATA[This edit verifies that the LN Head and Neck Level IV-V SSDI
is coded consistently with Behavior Code ICD-O-3 /2 for in situ, for head and
neck Schema IDs.

1. This edit is skipped for the following conditions:
    a. Date of Diagnosis is pre-2023, blank (unknown), or invalid.
    b. Schema ID is blank or not 00140.
    c. LN Head and Neck Levels IV-V is blank or 8 (not applicable)
    d. Behavior Code ICD-O-3 is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. If Behavior Code ICD-O-3 = 2 (in situ)
    then LN Head and Neck Levels IV-V must = 0 (Non-invasive neoplasm (behavior /2)]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-26" ref="69225">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN6739" name="LN Head and Neck Levels VI-VII, Melanoma Head/Neck, Behavior (NAACCR)" tag="N6739" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId == null || line.schemaId != '00140'
            || line.lnHeadAndNeckLevels6To7 == null || line.lnHeadAndNeckLevels6To7 == '8' || line.behaviorCodeIcdO3 == null || line.typeOfReportingSource == '7')
    return true

if (line.behaviorCodeIcdO3 == '2')
    return line.lnHeadAndNeckLevels6To7 == '0'

return true]]></expression>
            <message>Conflict between Behavior Code ICD-O-3 and LN Head and Neck Levels VI-VII</message>
            <description><![CDATA[This edit verifies that the LN Head and Neck Level VI-VII SSDI
is coded consistently with Behavior Code ICD-O-3 /2 for in situ, for head and
neck Schema IDs.

1. This edit is skipped for the following conditions:
    a. Date of Diagnosis is pre-2023, blank (unknown), or invalid.
    b. Schema ID is blank or not 00140.
    c. LN Head and Neck Levels VI-VII is blank or 8 (not applicable)
    d. Behavior Code ICD-O-3 is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. If Behavior Code ICD-O-3 = 2 (in situ)
    then LN Head and Neck Levels VI-VII must = 0 (Non-invasive neoplasm (behavior /2)]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-26" ref="69225">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN6740" name="LN Head and Neck Other, Melanoma Head/Neck, Behavior (NAACCR)" tag="N6740" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId == null || line.schemaId != '00140'
            || line.lnHeadAndNeckOther == null || line.lnHeadAndNeckOther == '8' || line.behaviorCodeIcdO3 == null || line.typeOfReportingSource == '7')
    return true

if (line.behaviorCodeIcdO3 == '2')
    return line.lnHeadAndNeckOther == '0'

return true]]></expression>
            <message>Conflict between Behavior Code ICD-O-3 and LN Head and Neck Other</message>
            <description><![CDATA[This edit verifies that the LN Head and Neck Other SSDI
is coded consistently with Behavior Code ICD-O-3 /2 for in situ, for head and
neck Schema IDs.

1. This edit is skipped for the following conditions:
    a. Date of Diagnosis is pre-2023, blank (unknown), or invalid.
    b. Schema ID is blank or not 00140.
    c. LN Head and Neck Levels Other is blank or 8 (not applicable)
    d. Behavior Code ICD-O-3 is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. If Behavior Code ICD-O-3 = 2 (in situ)
    then LN Head and Neck Other must = 0 (Non-invasive neoplasm (behavior /2)]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-26" ref="69225">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN6741" name="High Risk Histologic Features, Carcinoma Skin, Behavior (NAACCR)" tag="N6741" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear < '2023' || line.dateOfDiagnosisYear == null || line.schemaId != '00150' || line.schemaId == null
            || line.highRiskHistologicFeatures == null || line.highRiskHistologicFeatures == '8' || line.behaviorCodeIcdO3 == null || line.typeOfReportingSource == '7')
    return true

if (line.behaviorCodeIcdO3 == '2')
    return line.highRiskHistologicFeatures == '0'

return true]]></expression>
            <message>Conflict between Behavior Code ICD-O-3 and High Risk Histologic Features</message>
            <description><![CDATA[This edit verifies that the High Risk Histologic Features SSDI
is coded consistently with Behavior Code ICD-O-3 /2 for in situ, for cutaneous
carcinoma of skin.

1. This edit is skipped for the following conditions:
    a. Date of Diagnosis is pre-2023, blank (unknown), or invalid.
    b. Schema ID is blank or not 00150.
    c. High Risk Histologic Features is blank or 8 (not applicable)
    d. Behavior Code ICD-O-3 is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. If Behavior Code ICD-O-3 = 2 (in situ)
    then High Risk Histologic Features must = 0 (Non-invasive neoplasm (behavior /2))]]></description>
            <history>
                <event version="SE23-023-05" user="cooki" date="2023-06-15" ref="69239">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6742" name="Perineural Invasion, Behavior (NAACCR)" tag="N6742" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear < '2023' || line.dateOfDiagnosisYear == null || !['00150','00200','00640','00690'].contains(line.schemaId) || line.schemaId == null
            || line.perineuralInvasion == null || line.perineuralInvasion == '8' || line.behaviorCodeIcdO3 == null || line.typeOfReportingSource == '7')
    return true

if (line.behaviorCodeIcdO3 == '2')
    return line.perineuralInvasion == '0'

return true]]></expression>
            <message>Conflict between Behavior Code ICD-O-3 and Perineural Invasion</message>
            <description><![CDATA[This edit verifies that the Perineural Invasion SSDI
is coded consistently with Behavior Code ICD-O-3 /2 for in situ, for cutaneous
carcinoma of skin, colon, skin of eyelid, and lacrimal gland.

1. This edit is skipped for the following conditions:
    a. Date of Diagnosis is pre-2023, blank (unknown), or invalid.
    b. Schema ID is blank or not 00150, 00200, 00640, 00690.
    c. Perineural Invasion is blank or 8 (not applicable)
    d. Behavior Code ICD-O-3 is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. If Behavior Code ICD-O-3 = 2 (in situ)
    then Perineural Invasion must = 0 (Non-invasive neoplasm (behavior /2)]]></description>
            <history>
                <event version="SE23-023-05" user="cooki" date="2023-06-15" ref="69239">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6743" name="Residual Tumor Volume Post Cytoreduction, Gynecologic, Behavior (NAACCR)" tag="N6743" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear < '2023' || line.dateOfDiagnosisYear == null || !['00551','00552','00553'].contains(line.schemaId) || line.schemaId == null
            || line.residualTumVolPostCytoreduction == null || line.residualTumVolPostCytoreduction == '98' || line.behaviorCodeIcdO3 == null || line.typeOfReportingSource == '7')
    return true

if (line.behaviorCodeIcdO3 == '2')
    return line.residualTumVolPostCytoreduction == '97'

return true]]></expression>
            <message>Conflict between Behavior Code ICD-O-3 and Residual Tumor Volume Post Cytoreduction</message>
            <description><![CDATA[This edit verifies that the Residual Tumor Volume Post Cytoreduction
SSDI is coded consistently with Behavior Code ICD-O-3 code 2 for Schema IDs
00551, Ovary, 00552, Primary Peritoneal Carcinoma, and 00553, Fallopian Tube.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2023, blank (unknown), or
invalid.
    b. Schema ID is blank or not 00551, 00552, or 00553
    c. Residual Tumor Volume Post Cytoreduction is blank or 98 (not
applicable)
    d. Behavior Code ICD-O-3 is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)


2. If Behavior Code ICD-O-3 = 2,
    then Residual Tumor Volume Post Cytoreduction must be coded 97
    (Non-invasive neoplasm Behavior /2)]]></description>
            <history>
                <event version="SE23-023-05" user="cooki" date="2023-06-15" ref="69239">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6746" name="Autopsy Only, RX 2023, Primary Site (NPCR)" tag="N6746" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId == null || line.typeOfReportingSource != '6')
    return true

boolean primarySitesFor2A = Functions.matches(line.primarySite, /^C(42[0134]|589|7([0127]\d|5[123]|6[1-8])|809)$/)

if (line.rxSummSurgPrimSite2023 != 'A000' && line.rxSummSurgPrimSite2023 != 'B000' && line.rxSummSurgPrimSite2023 != 'A980')
    return false

if (primarySitesFor2A) {
    if (line.rxSummScopeRegLnSur != '9')
        return false
}
else {
    if (line.rxSummScopeRegLnSur != '0')
         return false
}

if (line.rxSummSurgOthRegDis != '0')
    return false

if (line.reasonForNoSurgery != '1' && line.reasonForNoSurgery != '9')
    return false

if (line.rxSummBrm != '00')
    return false

if (line.rxSummChemo != '00')
    return false

if (line.rxSummHormone != '00')
    return false

if (line.rxSummOther != '0')
    return false

if (line.rxSummTransplntEndocr != '00')
    return false

if (line.phase1RadiationTreatmentModality != '00')
    return false

if (line.rxSummSurgRadSeq != '0')
    return false

if (line.rxSummSystemicSurSeq != '0')
    return false

return true]]></expression>
            <message>Conflict between Autopsy Only &amp; RX data items</message>
            <description><![CDATA[This edit verifies that treatment fields are coded appropriately by
Schema ID and/or Primary Site code for autopsy only cases.

This edit is skipped for any of the following:
    a. Year of Date of Diagnosis is less than 2023, blank(unknown), or invalid.
    b. Schema ID is blank


If Type of Reporting Source is 6 (autopsy only):

1.  RX Summ--Surg Prim Site 2023 must = A000, B000, or A980
2.  RX Summ--Scope Reg LN Sur

    A. For the following primary sites, RX Summ Scope Reg Ln Sur must = 9:
            C420, C421, C423, C424, C589, C700-C709, C710-C729, C751-C753, C761-C768, C770-C779, C809
    B. For all other sites/histologies, RX Summ--Scope Reg LN Sur must = 0

3.  RX Summ--Surg Oth Reg/Dis must = 0
4.  Reason for No Surgery must = 1 or 9
5.  RX Summ--BRM must = 00
6.  RX Summ--Chemo must = 00
7.  RX Summ--Hormone must = 00
8.  RX Summ--Other must = 0
9.  RX Summ--Transplnt/Endocr = 00
10. Phase I Radiation Treatment Modality must = 00
11. RX Summ--Surg/Rad Seq must = 0
12. RX Summ--Systemic/Sur Seq must = 0]]></description>
            <history>
                <event version="SE23-023-05" user="cooki" date="2023-06-20" ref="69231">Edit created.</event>
                <event version="SE24-024-01" user="beverung" date="2024-02-08" ref="69330">Requirement for code 9 for C760, Schema ID 99999 removed.</event>
                <event version="SE24-024-06" user="cooki" date="2024-06-24" ref="69479">Changed &quot;surgery&quot; to &quot;treatment&quot; in description.</event>
            </history>
        </rule>
        <rule id="IFN6748" name="Circumferential Resection Margin (CRM), Colon, Surg Prim Site 2023 (NAACCR)" tag="N6748" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId != '00200' || line.behaviorCodeIcdO3 == '2'
            || line.typeOfReportingSource == '7')
    return true

if (line.circumferentialResectionMargin == null || line.circumferentialResectionMargin == 'XX.8')
    return true

boolean aCodesCondition = Functions.matches(line.rxSummSurgPrimSite2023, /^A000|A1[0-1]\d|A120|A2[0-8]\d|A290$/)
boolean bCodesCondition = Functions.matches(line.rxSummSurgPrimSite2023, /^B[01]00|B2[0-8]\d|B29[01]$/)
if (Functions.matches(line.primarySite, /^C1(8[02-9]|99)$/) && (aCodesCondition || bCodesCondition) && line.circumferentialResectionMargin != 'XX.7')
    return false
else if (line.primarySite == 'C209' && Functions.matches(line.rxSummSurgPrimSite2023, /^A000|A1[0-1]\d|A120|A2[0-5]\d|A260|A280$/) && line.circumferentialResectionMargin != 'XX.7')
    return false

if (Functions.matches(line.rxSummSurgPrimSite2023, /^[AB]([3-7]\d\d|800)$/) && line.circumferentialResectionMargin == 'XX.7')
    return false

if ((line.rxSummSurgPrimSite2023 == 'A990' || line.rxSummSurgPrimSite2023 == 'B990') && line.circumferentialResectionMargin != 'XX.9')
    return false

return true]]></expression>
            <message>Conflict between RX Summ--Surg Prim Site 2023 and Circumferential Resection Margin (CRM).</message>
            <description><![CDATA[This edit verifies that the Circumferential Resection Margin (CRM) SSDI is coded consistently with RX Summ--Surg Prim Site 2023.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2023, blank (unknown), or invalid.
    b. Schema ID is not 00200
    c. Behavior Code = 2
    d. Circumferential Resection Margin (CRM) is blank or XX.8 (not applicable).
    e. Type of Reporting Source = 7 (death certificate only)


2. If Primary Site = C180, C182-C189, C199:
  If RX Summ--Surg Prim Site 2023 = A000 or B000 (no surgery of primary site), A100-A120 or B100 (local tumor destruction (no specimen sent to pathology)), or A200-A290 or B200-B291 (local excision),
    then the Circumferential Resection Margin must be coded XX.7 (no resection of primary site, no resection of primary site, surgical procedure did not remove enough tissue to measure CRM).

3. If Primary Site = C209:
  If RX Summ--Surg Prim Site 2023 = A000 (no surgery of primary site), A100-A120 (local tumor destruction (no specimen sent to pathology)), or A200-A260, A280 (local excision),
    then the Circumferential Resection Margin must be coded XX.7 (no resection of primary site, surgical procedure did not remove enough tissue to measure CRM).

4. If RX Summ--Surg Prim Site 2023 = A300-A800 or B300-B800 (surgery of primary site),
    then Circumferential Resection Margin must not = XX.7 (no resection of primary site).

5. If RX Summ--Surg Prim Site 2023 = A990 or B990 (unknown if surgery performed)
    then Circumferential Resection Margin must be coded XX.9 (Circumferential or radial resection margin not assessed or unknown if assessed.)]]></description>
            <history>
                <event version="SE23-023-05" user="cooki" date="2023-06-20" ref="69231">Edit created.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-02-13" ref="69354">Rename edit. Remove references to surgical margins.</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-01" ref="69393">Add B codes and update description.</event>
            </history>
        </rule>
        <rule id="IFN6749" name="Date Initial RX SEER, Ca Dir RX 2023 (SEER)" tag="N6749" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023')
    return true

boolean rxSummTreatmentStatusYes = line.rxSummTreatmentStatus == '2' && line.dateOfDiagnosisYear >= '2024'
boolean rxSummSurgPrimSite2023Yes = Functions.matches(line.rxSummSurgPrimSite2023, /^(A|B)([1-8]\d\d|900)$/)

boolean scopeSiteCondition = Functions.matches(line.primarySite, /^C(42[0134]|589|7[0127]\d|75[1-3]|76[1-8]|809)$/)
boolean rxSummSurgScopeRegLnSurYes = Functions.matches(line.rxSummScopeRegLnSur, /^[2-7]$/) && !scopeSiteCondition

boolean rxSummSurgOthRegDisYes = Functions.matches(line.rxSummSurgOthRegDis, /^[1-5]$/)
boolean phase1RadiationTreatmentModalityYes = Functions.matches(line.phase1RadiationTreatmentModality, /^0[1-9]|1[0-6]|98$/)
boolean rxSummSurgRadSeqYes = Functions.matches(line.rxSummSurgRadSeq, /^[2-9]$/)
boolean rxSummBrmYes = line.rxSummBrm == '01'
boolean rxSummChemoYes = Functions.matches(line.rxSummChemo, /^0[123]$/)
boolean rxSummHormoneYes = line.rxSummHormone == '01'
boolean rxSummTransplntEndocrYes = Functions.matches(line.rxSummTransplntEndocr, /^1[012]|[234]0$/)
boolean rxSummOtherYes = Functions.matches(line.rxSummOther, /^[1236]$/)

boolean atLeastOneFieldYes = rxSummTreatmentStatusYes || rxSummSurgPrimSite2023Yes || rxSummSurgScopeRegLnSurYes || rxSummSurgOthRegDisYes || phase1RadiationTreatmentModalityYes ||
    rxSummSurgRadSeqYes || rxSummBrmYes || rxSummChemoYes || rxSummHormoneYes || rxSummTransplntEndocrYes || rxSummOtherYes

return line.dateInitialRxSeerYear == null || atLeastOneFieldYes]]></expression>
            <message>If Date Initial RX SEER is not blank, at least one field must indicate treatment</message>
            <description><![CDATA[This edit verifies that Date Initial RX SEER is coded consistently with treatment data items.

This edit is skipped if one of the following is true:
   1. Year of diagnosis is blank or invalid
   2. Year of diagnosis is less than 2023

The following table specifies the values for each treatment field for known to have been performed (YES).

If no treatment field specifies YES then Date Initial RX SEER must be blank (unknown if performed or known not to have been performed)

If Date Initial RX SEER is a known date (not blank), then AT LEAST ONE treatment field MUST specify YES


======================================================================
2024 - RX Summ--Treatment Status
  YES:     2

======================================================================
RX Summ--Surg Primary Site 2023
  YES:     A100-A900, B100-B900

======================================================================
RX Summ--Surg Scope Reg LN Sur

  For Primary Site = C420, C421, C423, C424, C589, C700-C709, C710-C729, C751-C753, C761-C768, C770-C779, C809
RX Summ--Surg Scope Reg LN Sur can only be set to 9

  YES:     2-7 for all other primary sites

======================================================================
RX Summ--Surg Oth Reg/Dis
  YES:     1-5

======================================================================
Phase I Radiation Treatment Modality
  YES:     01-16, 98

======================================================================
RX Summ--Surg/Rad Seq
  YES:     2-9

======================================================================
RX Summ--BRM
  YES:     01

======================================================================
RX Summ--Chemo
  YES:     01-03

======================================================================
RX Summ--Hormone
  YES:     01

======================================================================
RX Summ--Transplant/Endocr
  YES:     10-12,20,30,40

======================================================================
RX Summ--Other
  YES:     1,2,3,6]]></description>
            <history>
                <event version="SE23-023-05" user="cooki" date="2023-06-20" ref="69231">Edit created.</event>
                <event version="SE23-023-06" user="cooki" date="2023-08-01" ref="69297">Limited edit to 2023 cases only.</event>
                <event version="SE24-024-01" user="kirbyk" date="2024-02-06" ref="69344">Updated description.</event>
                <event version="SE24-024-01" user="beverung" date="2024-02-16" ref="69332">Updated edit description. Added Treatment Status = YES condition for 2024+.</event>
            </history>
        </rule>
        <rule id="IFN6751" name="EOD Primary Tumor, Retinoblastoma, RX Summ--Surg Prim Site 2023 (SEER)" tag="N6751" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.eodPrimaryTumor == null || line.rxSummSurgPrimSite2023 == null)
    return true
if (line.typeOfReportingSource == '7' || line.schemaId == null || line.schemaId != '00680')
    return true

return !Functions.matches(line.eodPrimaryTumor, /^[12]75|[2347]50|[45]00$/) || line.rxSummSurgPrimSite2023 == 'A410']]></expression>
            <message>Conflict between EOD Primary Tumor and RX Summ--Surg Prim Site 2023</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor is coded consistently with RX Summ--
Surg Prim Site 2023 for Schema ID 00680, Retinoblastoma.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2023, blank (unknown), or invalid.
    b. Schema ID is blank or not 00680
    c. EOD Primary Tumor is blank
    d. RX Summ--Surg Prim Site 2023 is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)


2. If EOD Primary Tumor = 175, 250, 275, 350, 400, 450, 500, or 750 (codes
    requiring surgical resection, enucleation)
    then RX Summ--Surg Prim Site 2023 must = A410 (enucleation)]]></description>
            <history>
                <event version="SE23-023-05" user="cooki" date="2023-06-20" ref="69231">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6752" name="EOD Primary Tumor, Testis, RX Summ--Surg Prim Site 2023 (SEER)" tag="N6752" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.eodPrimaryTumor == null || line.rxSummSurgPrimSite2023 == null)
    return true
if (line.typeOfReportingSource == '7' || line.schemaId == null || line.schemaId != '00590')
    return true

return !Functions.matches(line.eodPrimaryTumor, /^[1-5]00|150$/) || Functions.matches(line.rxSummSurgPrimSite2023, /^A[348]00$/)]]></expression>
            <message>Conflict between EOD Primary Tumor and RX Summ--Surg Prim Site 2023</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor is coded consistently with RX Summ--
Surg Prim Site 2023 for Schema ID 00590, Testis.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2023, blank (unknown), or invalid.
    b. Schema ID is blank or not 00590
    c. EOD Primary Tumor is blank
    d. RX Summ--Surg Prim Site 2023 is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)


2. If EOD Primary Tumor = 100, 150, 200, 300, 400, or 500 (codes requiring orchiectomy)
    then RX Summ--Surg Prim Site 2023 must = A300, A400, or A800 (orchiectomy)]]></description>
            <history>
                <event version="SE23-023-05" user="cooki" date="2023-06-20" ref="69231">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6753" name="EOD Prostate Pathologic Extension, RX Summ--Surg Prim Site 2023 (SEER)" tag="N6753" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId == null ||
    line.schemaId != '00580' || line.prostatePathologicalExtension == null || line.rxSummSurgPrimSite2023 == null || line.typeOfReportingSource == '6' || line.typeOfReportingSource == '7')
    return true

Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

if (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5))
    return true

if (line.rxSummSurgPrimSite2023 == 'A900' || line.rxSummSurgPrimSite2023 == 'A990')
    return line.prostatePathologicalExtension == '900' || line.prostatePathologicalExtension == '950' || line.prostatePathologicalExtension == '999'

if (Functions.matches(line.rxSummSurgPrimSite2023, /^A[5-7]\d\d|A800$/))
        return Functions.matches(line.prostatePathologicalExtension, /^[0-7]\d\d|800|999$/)

if (Functions.matches(line.rxSummSurgPrimSite2023, /^A[012]\d\d|A300$/))
        return line.prostatePathologicalExtension == '900' || line.prostatePathologicalExtension == '950'

if (line.prostatePathologicalExtension == '900' || line.prostatePathologicalExtension == '950')
        return Functions.matches(line.rxSummSurgPrimSite2023, /^A[012]\d\d|A300|A900|A990$/)

return true]]></expression>
            <message>Conflict between RX Summ--Surg Prim Site 2023 and EOD Prostate Pathologic Extension</message>
            <description><![CDATA[This edit verifies that EOD Prostate Pathologic Extension is coded consistently
with RX Summ--Surg Prim Site 2023 for Schema ID 00580, Prostate.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2023, blank (unknown), or invalid.
    b. Schema ID is blank or not 00580
    c. EOD Prostate Pathlogic Extension is blank
    d. RX Summ--Surg Prim Site 2023 is blank
    e. Type of Reporting Source is 6 (Autopsy Only) or 7 (Death Certificate Only)
    f. Vital Status = 0 and Date of Last Contact within 5 months of Date of Diagnosis

2. If RX Summ--Surg Prim Site 2023 = A900 or A990 (surgery NOS or unknown if surgery)
    then EOD Prostate Pathologic Extension must = 900, 950, or 999 (unknown if
    prostatectomy performed)

3. If RX Summ--Surg Prim Site 2023 = A500-A800 (prostatectomy performed)
    then EOD Prostate Pathologic Extension must = 000-800, 999.

4. If RX Summ--Surg Prim Site 2023 = A000-A300 (prostatectomy not performed)
    then EOD Prostate Pathologic Extension must = 900 (no prostatectomy performed)
   or 950 (prostatectomy not first course therapy)

5. If EOD Prostate Pathologic Extension = 900 or 950
    then RX Summ--Surg Prim Site 2023 must = A000-A300, A900, or A990 (no
    prostatectomy performed)]]></description>
            <history>
                <event version="SE23-023-05" user="cooki" date="2023-06-21" ref="69232">Edit created.</event>
                <event version="SE23-023-06" user="cooki" date="2023-07-31" ref="69296">Added skip condition for Type of Reporting Source = 6.</event>
                <event version="SE24-024-06" user="cooki" date="2024-07-18" ref="69494">Added skip condition f.</event>
            </history>
        </rule>
        <rule id="IFN6757" name="Invasion Beyond Capsule, Kidney, Surgery 2023 (SEER)" tag="N6757" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[
        Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
        Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
        Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
        Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
        Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
        Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

    if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.rxSummSurgPrimSite2023 == null || line.schemaId != '00600' || line.typeOfReportingSource == '6' || line.typeOfReportingSource == '7' ||
    (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5)))
    return true

if (line.invasionBeyondCapsule == null || line.invasionBeyondCapsule == '8')
    return true

if (Functions.matches(line.rxSummSurgPrimSite2023, /^A000|A1[0-4]\d|A150|A2[0-6]\d|A270|A990$/))
    return line.invasionBeyondCapsule == '9'

return true]]></expression>
            <message>Conflict between RX Summ--Surg Prim Site 2023 and Invasion Beyond Capsule</message>
            <description><![CDATA[Purpose: This edit verifies that Invasion Beyond Capsule SSDI is
coded consistently with RX Summ--Surg Prim Site 2023 for Kidney Parenchyma.

1. This edit is skipped if any of the following conditions is true:

    a. Year of Date of Diagnosis is less than 2023, blank (unknown),
or invalid
    b. Schema ID is not 00600
    c. Invasion Beyond Capsule is blank or 8 (not applicable)
    d. RX Summ--Surg Prim Site 2023 is blank
    e. Type of Reporting Source = 6 (Autopsy Only) or 7 (Death
Certificate Only)
    f. Vital Status = 0 and Date of Last Contact within 5 months of
Date of Diagnosis

2. If RX Summ-Surg Prim Site 2023 = A000 (no surgery) or A100-A150 (tumor
destruction
     without pathology specimen)or A200-A270 (local excision),
   Invasion Beyond Capsule must = 9 (no surgical resection of
primary site)

3. If RX Summ-Surg Prim Site 2023 = A990 (unknown if surgery performed),
    Invasion Beyond Capsule must = 9 (Invasion beyond capsule not assessed or unknown if assessed)
]]></description>
            <history>
                <event version="SE23-023-05" user="cooki" date="2023-06-21" ref="69232">Edit created.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-02-05" ref="69356">Add check for RX Summ-Surg Prim Site 2023 when value is A990.</event>
            </history>
        </rule>
        <rule id="IFN6759" name="Ipsilateral Adrenal Gland Involvement, Kidney, Surgery 2023 (SEER)" tag="N6759" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.rxSummSurgPrimSite2023 == null || line.schemaId != '00600' ||
            line.typeOfReportingSource == '6' || line.typeOfReportingSource == '7')
    return true

Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

if (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5))
    return true

if (line.ipsilateralAdrenalGlandInvolve == null || line.ipsilateralAdrenalGlandInvolve == '8')
    return true

if (Functions.matches(line.rxSummSurgPrimSite2023, /^A000|A1[0-4]\d|A150|A2[0-6]\d|A270$/) && (line.rxSummSurgOthRegDis == '0' || line.rxSummSurgOthRegDis == '3'))
    return line.ipsilateralAdrenalGlandInvolve == '9'

if (line.rxSummSurgPrimSite2023 == 'A990' && ['0','3','9'].contains(line.rxSummSurgOthRegDis))
    return line.ipsilateralAdrenalGlandInvolve == '9'

return true]]></expression>
            <message>Ipsilateral Adrenal Gland Involvement conflicts with RX Summ--Surg Prim Site 2023 and/or RX Summ--Surg Oth Reg/Dis</message>
            <description><![CDATA[This edit verifies that the Ipsilateral Adrenal Gland Involvement
SSDI is coded consistently with RX Summ--Surg Prim Site 2023.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2023, blank (unknown), or invalid.
    b. Schema ID is not 00600.
    c. Ipsilateral Adrenal Gland Involvement is blank or 8 (not
applicable).
    d. RX Summ--Surg Prim Site 2023 is blank
    e. Type of Reporting Source = 6 (Autopsy Only) or 7 (Death
Certificate
Only)
    f. Vital Status = 0 and Date of Last Contact within 5 months of Date of Diagnosis


2.  If RX Summ--Surg Prim Site 2023 = A000 (no surgery of primary site) or A100-A150
    (local tumor destruction (no specimen sent to pathology), or A200-A270 (local
    excision) and RX Summ--Surg Oth Reg/Dis = 0 or 3 (no surgery of other
    site, surgery of distant lymph nodes)
     Then the data item must be coded 9 (no surgical resection of primary site).

3. If RX Summ-Surg Prim Site 2023 = A990 (unknown if surgery performed)
    and RX Summ-Surg Oth Reg/Dis = 0 or 3 (no surgery of other site, surgery of distant lymph nodes)
    or 9 (unknown if surgery of other site)
     then Ipsilateral Adrenal Gland Involvement must be coded 9 (no surgical resection of primary site).]]></description>
            <history>
                <event version="SE23-023-05" user="cooki" date="2023-06-21" ref="69232">Edit created.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-02-05" ref="69358">Add logic for value A990 for RX Summ-Surg Prim Site 2023.</event>
            </history>
        </rule>
        <rule id="IFN6762" name="Major Vein Involvement, Kidney, Surgery 2023 (SEER)" tag="N6762" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.rxSummSurgPrimSite2023 == null || line.schemaId != '00600' ||
            line.typeOfReportingSource == '6' || line.typeOfReportingSource == '7')
    return true

Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

if (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5))
    return true

String majorVeinInvolvement = line.majorVeinInvolvement
if (majorVeinInvolvement == null || majorVeinInvolvement == '8')
    return true

if (Functions.matches(line.rxSummSurgPrimSite2023, /^A000|A1[0-4]\d|A150|A2[0-6]\d|A270|A990$/))
    return majorVeinInvolvement == '9'

return true]]></expression>
            <message>Conflict between RX Summ--Surg Prim Site 2023 and Major Vein Involvement</message>
            <description><![CDATA[Purpose: This edit verifies that Major Vein Involvement SSDI is
coded
consistently with RX Summ--Surg Prim Site for Kidney Parenchyma.

1. This edit is skipped if any of the following conditions is true:

    a. Year of Date of Diagnosis is less than 2023, blank (unknown),
or invalid
    b. Schema ID is not 00600
    c. Major Vein Involvement is blank or 8 (not applicable)
    d. RX Summ--Surg Prim Site 2023 is blank
    e. Type of Reporting Source = 6 (Autopsy Only) or 7 (Death
Certificate Only)
    f. Vital Status = 0 and Date of Last Contact within 5 months of Date of Diagnosis


2. If RX Summ-Surg Prim Site 2023 = A000 (no surgery), A100-A150 (tumor
destruction
     without pathology specimen), or A200-A270 (local excision)
   Major Vein Involvement must = 9 (no surgical resection of primary
site)

3. If RX Summ-Surg Prim Site 2023 = A990 (unknown if surgery performed)
    Major Vein Involvement must = 9 (vein involvement not assessed or unknown if assessed)]]></description>
            <history>
                <event version="SE23-023-05" user="cooki" date="2023-06-21" ref="69232">Edit created.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-02-08" ref="69364">Add logic for code A990 for RX Summ-Surg Prim Site 2023.</event>
            </history>
        </rule>
        <rule id="IFN6763" name="Reason for No Surgery, Surg Prim Site 2023, Primary Site (NAACCR)" tag="N6763" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.rxSummSurgPrimSite2023 == null || line.reasonForNoSurgery == null)
    return true

if (line.typeOfReportingSource == '7' || line.typeOfReportingSource == '6')
    return true

if (Functions.matches(line.primarySite, /^C(42[0134]|76[0-8]|809)$/))
    return line.reasonForNoSurgery == '1'
else if ((line.rxSummSurgPrimSite2023 == 'A000' || line.rxSummSurgPrimSite2023 == 'B000') && !Functions.matches(line.reasonForNoSurgery, /^[1-9]$/))
    return false
else if (Functions.matches(line.rxSummSurgPrimSite2023, /^A[1-8]\d\d|A900|B[1-8]\d\d|B900$/) && line.reasonForNoSurgery != '0')
    return false
else if (line.rxSummSurgPrimSite2023 == 'A980' && line.reasonForNoSurgery != '1')
    return false
else if ((line.rxSummSurgPrimSite2023 == 'A990' || line.rxSummSurgPrimSite2023 == 'B990') && !['8','9'].contains(line.reasonForNoSurgery))
    return false
return true]]></expression>
            <message>Conflict between Primary Site and Reason for No Surgery</message>
            <description><![CDATA[This edit checks that Reason for No Surgery is coded consistently
with RX Summ--Surgery Prim Site 2023.

1. This edit is skipped for any of the following conditions:
    a. Date of diagnosis before 2023, blank (unknown), or invalid.
    b. RX Summ--Surg Prim Site 2023 is blank
    c. Reason for No Surgery is blank
    d. Type of Reporting Source = 6 (Autopsy Only) or 7 (Death Certificate Only)


2. If Primary Site = C420, C421, C423, C424, C760-C768, C809,
    Reason for No Surgery must = 1

3. If RX Summ--Surg Prim Site 2023 = A000 or B000 (no surgery performed)
    Reason for No Surgery must = 1-9 (surgery not performed)

4. If RX Summ--Surg Prim Site 2023 = A100-A900 or B100-B900 (surgery performed)
    Reason for No Surgery must = 0 (surgery performed)

5. If RX Summ--Surg Prim Site 2023 = A980 (not applicable)
    Reason for No Surgery must = 1 (surgery not recommended)

6. If RX Summ--Surg Prim Site 2023 = A990 or B990 (unknown if surgery performed)
    Reason for No Surgery must = 8 or 9 (unknown if surgery performed)]]></description>
            <history>
                <event version="SE23-023-05" user="cooki" date="2023-06-22" ref="69233">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6764" name="Residual Tumor Volume Post Cytoreduction, Gynecologic, Surg Prim Site 2023 (NAACCR)" tag="N6764" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || !Functions.matches(line.schemaId, /^0055[123]$/)
            || line.rxSummSurgPrimSite2023 == null || line.typeOfReportingSource == '7')
    return true

if (line.residualTumVolPostCytoreduction == null || line.residualTumVolPostCytoreduction == '98')
    return true

boolean schemaConditions = (Functions.matches(line.rxSummSurgPrimSite2023, /^A[1-4]\d\d|A5[0-6]\d|A570$/) && line.schemaId == '00551') ||
                           (Functions.matches(line.rxSummSurgPrimSite2023, /^A[1-3]\d\d|A40\d|A410$/) && (line.schemaId == '00552' || line.schemaId == '00553'))
if (line.rxSummSurgPrimSite2023 == 'A000' || schemaConditions)
    return line.residualTumVolPostCytoreduction == '97'

if (line.rxSummSurgPrimSite2023 == 'A990')
    return line.residualTumVolPostCytoreduction == '99'

return true]]></expression>
            <message>Conflict between RX Summ--Surg Prim Site 2023 and Residual Tumor Volume Post Cytoreduction</message>
            <description><![CDATA[This edit verifies that the Residual Tumor Volume Post Cytoreduction SSDI
is coded consistently with RX Summ--Surg Prim Site 2023.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2023, blank (unknown), or invalid.
   b. Schema ID is not 00551, 00552, or 00553
   c. Residual Tumor Volume Post Cytoreduction is blank or 98 (not
applicable).
    d. RX Summ--Surg Prim Site 2023 is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. If RX Summ--Surg Prim Site 2023 = A000 (no surgery of primary site) or A100-A570
for
    00551 (ovary), A100-A410 for 00552 (primary peritoneum) and 00553
(fallopian
     tube)(less than cytoreductive surgery),
   then the data item must be coded 97 (no cytoreductive surgery).

3. If RX Summ-Surg Prim Site 2023 = A990 (unknown if surgery performed)
then Residual Tumor Volume Post Cytoreduction must be coded 99 (Unknown if surgery performed)]]></description>
            <history>
                <event version="SE23-023-05" user="cooki" date="2023-06-22" ref="69233">Edit created.</event>
                <event version="SE24-024-01" user="cooki" date="2024-02-06" ref="69368">Added condition #3 for code 99.</event>
            </history>
        </rule>
        <rule id="IFN6769" name="RX Summ--Surg Prim Site 2023 (COC)" tag="N6769" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2023')
    return line.rxSummSurgPrimSite2023 == null

return Functions.matches(line.rxSummSurgPrimSite2023, /^[AB]([1-8]\d\d|000|900|990)|A980$/)]]></expression>
            <message>Invalid value for RX Summ--Surg Prim Site 2023</message>
            <description><![CDATA[This edit is skipped if diagnosis date = blank (unknown) or invalid.

This data item must be blank for cases diagnosed before 2023.

Must be A000, A100-A900, A980, A990, B000, B100-B900, or B990.]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-21" ref="69236">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6771" name="RX Summ--Surg Prim Site 2023, DateDX, RPTSRC (SEER)" tag="N6771" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true
if (line.dateOfDiagnosisYear < '2023')
    return line.rxSummSurgPrimSite2023 == null

if (line.typeOfReportingSource == '6')
    return line.rxSummSurgPrimSite2023 == 'A980' || line.rxSummSurgPrimSite2023 == 'A000' || line.rxSummSurgPrimSite2023 == 'B000'
if (line.typeOfReportingSource == '7')
    return line.rxSummSurgPrimSite2023 == 'A980' || line.rxSummSurgPrimSite2023 == 'A990' || line.rxSummSurgPrimSite2023 == 'B990'

return line.rxSummSurgPrimSite2023 != null]]></expression>
            <message>Type of Reporting Source conflicts with RX Summ--Surg Prim Site 2023</message>
            <description><![CDATA[The edit is skipped if Year of Diagnosis [390] is blank (unknown) or invalid.

A. This data item must be blank for cases diagnosed before 2023.

B. If Type of Reporting Source = 6 (Autopsy Only), RX Summ--Surg Prim Site 2023 must = A980 or A000 or
B000
C. if Type of Reporting Source = 7 (Death Certificate Only), RX Summ--Surg Prim Site 2023 must = A980 or
A990 or B990
D.  For all other values of Type of Reporting Source, RX Summ--Surg Prim Site 2023 cannot be
blank.]]></description>
            <history>
                <event version="SE23-023-05" user="cooki" date="2023-06-22" ref="69233">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6772" name="RX Summ--Surg Prim Site 2023, Diag Conf (SEER)" tag="N6772" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.overRideSurgDxconf == '1' || line.rxSummSurgPrimSite2023 == null || line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023')
                return true

if (Functions.matches(line.rxSummSurgPrimSite2023, /^(A[2-8]\d\d|A900|B[2-8]\d\d|B900)$/) && !(line.diagnosticConfirmation ==~/^[1234]$/))
    return false

return true]]></expression>
            <message>RX Summ--Surg Prim Site 2023 should have Diagnostic Confirmation = 1-4, microscopic confirmation</message>
            <description><![CDATA[This edit is skipped if RX Summ--Surg Prim Site is blank.
This edit is skipped if diagnosis blank (unknown), invalid, or before 2023.

If the case was previously reviewed and accepted as coded (Over-ride Surg/Dx Conf = 1) no further checking is
performed.

For anyone with RX Summ--Surg Prim Site 2023 = A200-A900 or B200-B900,
the diagnosis should be histologically confirmed (Diagnostic Confirmation 1-4).

Additional Information:

If the patient had a surgical procedure, most likely there was a microscopic examination of the cancer.  This
edit forces review of cases with a surgical procedure coded in the RX Summ--Surg Prim Site field but not a
microscopic confirmation code in Diagnostic Confirmation.  Verify the surgery and diagnostic confirmation
codes, and correct any errors.  Correction of errors may require inspection of the abstracted text, either
online or as recorded on a paper abstract.  Review of the original medical record may be necessary.

Sometimes there are valid reasons why no microscopic confirmation is achieved with surgery, for example, the
tissue removed may be inadequate for evaluation.  If upon review, the items are correct as coded, an over-ride
flag may be set so that the case will not be considered in error when the edit is run again.  Enter a 1 in the
field Over-ride Surg/DxConf to indicate that the coding is correct.]]></description>
            <history>
                <event version="SE23-023-05" user="cooki" date="2023-06-22" ref="69233">Edit created.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-16" ref="69326">Removed edit dependencies.</event>
            </history>
        </rule>
        <rule id="IFN6773" name="RX Summ--Surg Prim Site 2023, Lymphoma (COC)" tag="N6773" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (!Functions.matches(line.primarySite, /^C77\d$/) || line.rxSummSurgPrimSite2023 == null || line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023'
            || line.ajccTnmPathStageGroup == null || line.ajccTnmPathStageGroup == '88')
                return true

if (!['A600','A610','A620'].contains(line.rxSummSurgPrimSite2023))
    return line.ajccTnmPathStageGroup == '99'

return true]]></expression>
            <message>RX Summ--Surg Prim Site 2023 must indicate staging laparotomy for assignment of AJCC TNM Path Stage Group</message>
            <description><![CDATA[This edit enforces the statement in the AJCC 8th Edition, Chapter 79, Hodgkin
and Non-Hodgkin Lymphoma: "The use of the term pathological staging is reserved
for patients who undergo staging laparotomy with an explicit intent to assess the
presence of abdominal disease or to define histologic microscopic disease extent
in the abdomen.  As a result of improved diagnostic imaging, staging laparotomy
and pathologic staging generally are no longer performed."

The edit is skipped for any of the following conditions:

1. Year of Date of Diagnosis is less than 2023, blank (unknown), or invalid
2. Site is not C770-C779
3. AJCC TNM Path Stage Group is blank or 88
4. RX Summ--Surg Prim Site 2023 is blank

AJCC TNM Path Stage Group must = 99 if RX Summ Surg Prim Site 2023 not =
    A600 Lymph node dissection, NOS and partial/total removal of adjacent organ(s) PLUS
      splenectomy
       (Includes staging laparotomy for lymphoma)
    A610 One chain
    A620 Two or more chains]]></description>
            <history>
                <event version="SE23-023-05" user="cooki" date="2023-06-22" ref="69233">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6775" name="RX Summ--Surg Prim Site 2023, Primary Site (SEER)" tag="N6775" java-path="lines.line" category="inter-field" depends="Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.primarySite == null || line.rxSummSurgPrimSite2023 == null)
    return true

if (line.typeOfReportingSource == '7') {
    if (line.rxSummSurgPrimSite2023 == 'B990' && Functions.matches(line.primarySite, /^C44\d$/))
        return true
    if (line.rxSummSurgPrimSite2023 == 'A990' && !Functions.matches(line.primarySite, /^C44\d$/))
        return true
}

if (Functions.matches(line.primarySite, /^C(42[0134]|76[0-8]|809)$/))
    return line.rxSummSurgPrimSite2023 == 'A980'

Integer siteInt = Functions.asInt(line.primarySite.substring(1, 4))
Map<Integer, Integer> schemaIdMap = (Map<Integer, Integer>)Context.IFN6775_Primary_Site_GroupCode_Table
Integer groupCode = schemaIdMap.get(siteInt)

if (groupCode != null) {
    if (groupCode == 30 && line.rxSummSurgPrimSite2023 == 'A410')
        return line.primarySite.startsWith('C69')

    if (groupCode == 6 && line.rxSummSurgPrimSite2023 == 'B330' && line.dateOfDiagnosisYear >= '2024')
        return line.primarySite == 'C181'

    if (line.rxSummSurgPrimSite2023.charAt(0) == 'A' && groupCode != 17) {
        if (!([6, 11, 13, 18, 27].contains(groupCode) && line.dateOfDiagnosisYear >= '2024')) {
            Map<Integer, List<String>> groupCodeMap = (Map<Integer, List<String>>)Context.IFN6775_GroupCode_Table_23A
            if (groupCodeMap.containsKey(groupCode))
                return groupCodeMap.get(groupCode).contains(line.rxSummSurgPrimSite2023)
        }
    }
    else if (line.rxSummSurgPrimSite2023.charAt(0) == 'B' && (groupCode == 17 || line.dateOfDiagnosisYear >= '2024')) {
        Map<Integer, List<String>> groupCodeMap = (Map<Integer, List<String>>)Context.IFN6775_GroupCode_Table_23B
        if (groupCodeMap.containsKey(groupCode))
            return groupCodeMap.get(groupCode).contains(line.rxSummSurgPrimSite2023)
    }
}

return false]]></expression>
            <message>RX Summ--Surg Prim Site 2023 not valid for Primary Site for DX year</message>
            <description><![CDATA[This edit verifies that RX Summ--Surg Prim Site 2023 is coded appropriately by
Primary Site.

1. This edit is skipped for any of the following:
    a. Diagnosis date before 2023, blank (unknown), or invalid.
    b. Primary Site is blank
    c. RX Summ--Surg Prim Site 2023 is blank


1. This edit checks valid surgery codes by Primary Site code. The
valid RX Summ--Surg Prim Site 2023 codes are specified in the SEER Program Coding
Manual. The surgery codes are identified by sitegroup codes 01-30 in
the EW table SURG23. Primary Site codes are mapped to the sitegroup codes in the
EW table SCHEMASURG19 through 2022. Primary Site codes are mapped to the sitegroup
codes in the EW table SURGSITEGROUP23 for 2023+diagnoses. This table distinguishes
between A and B surgery codes for primary site by year, including first and last year
that A codes are used and the first year that B codes are used.


2. If Type of Reporting Source = 7 (Death Certificate Only), RX Summ--Surg Prim Site 2023
    may = B990 for any skin site (C440-C449) or A990 for any other site.

3. If Primary Site group is All Other Sites (group 30 in the table used for this
edit) and RX Summ--Surg Prim Site 2023 = A410 (enucleation for eye surgery only), then
Primary Site must = C690-C699 (multiple possible Schema IDs).

4. If Primary Site group is Colon (group 06 in the table used for this edit),
    RX Summ--Surg Prim Site 2023 = B330(Appendectomy for appendiceal primaries only,
    includes incidental findings), and year of diagnosis is 2024+,
    then Primary Site must = C181 (Appendix)

5. Surgery codes for Primary Site C420, C421, C423, C424, C760-C768, C809,
    must = A980.

6. Surgery codes for all other Primary Site codes must = codes as
    specified in the SEER Program Coding Manual.]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-21" ref="69236">Edit created.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-03-08" ref="69414">Add logic for colon primary site group.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-06-24" ref="69473">Add surgery codes to breast primary site group.</event>
            </history>
        </rule>
        <rule id="IFN6776" name="RX Summ--Surgical Margins, Surg Prim Site 2023, Primary Site (NAACCR)" tag="N6776" java-path="lines.line" category="inter-field">
            <expression><![CDATA[ if(line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.primarySite == null)
    return true
if (line.rxSummSurgicalMargins == null || line.rxSummSurgPrimSite2023 == null || line.typeOfReportingSource == '7')
    return true

if (line.rxSummSurgPrimSite2023 == 'A980' && line.rxSummSurgicalMargins != '9')
    return false

if (Functions.matches(line.primarySite, /^C(42[0134]|76[0-8]|77\d|809)$/)) {
    if (line.rxSummSurgicalMargins != '9')
        return false
}
else {
    if ((line.rxSummSurgPrimSite2023 == 'A000' || line.rxSummSurgPrimSite2023 == 'B000') && line.rxSummSurgicalMargins != '8')
        return false
    if (line.rxSummSurgicalMargins == '8' && !(line.rxSummSurgPrimSite2023 == 'A000' || line.rxSummSurgPrimSite2023 == 'B000'))
        return false
}

return true ]]></expression>
            <message>Primary Site conflicts with RX Summ--Surgical Margins</message>
            <description><![CDATA[This edit verifies that RX Summ--Surgical Margins is coded appropriately by
Primary Site code.

1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis before 2023, blank (unknown), or invalid.
    b. Primary Site is blank
    c. RX Summ--Surgical Margins is blank.
    d. RX Summ--Surg Prim Site 2023 is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)


2. If RX Summ--Surg Prim Site 2023 = A980, RX Summ--Surgical Margins must = 9

3. If Primary Site = C420, C421, C423, C424, C760-C768, C770-C779, or C809
    RX Summ--Surgical Margins must = 9

4. For any other primary site,
    if RX Summ--Surg Prim Site 2023 = A000 or B000, then RX Summ--Surgical Margins must = 8
    if RX Summ--Surgical Margins = 8, then RX Summ--Surg Prim Site 2023 must = A000 or B000]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-26" ref="69234">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6778" name="RX Summ--Treatm Stat, Treatment 2023 (NAACCR)" tag="N6778" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.rxSummTreatmentStatus == null)
    return true


boolean isSurgPrimSiteGiven = Functions.matches(line.rxSummSurgPrimSite2023, /^[AB]([1-8]\d\d|900)$/)
boolean isSurgOthRegDisGiven = Functions.matches(line.rxSummSurgOthRegDis, /^[1-5]$/)
boolean isChemoGiven = Functions.matches(line.rxSummChemo, /^0[1-3]$/)
boolean isTransplantGiven = Functions.matches(line.rxSummTransplntEndocr, /^[1-3]\d|40$/)
boolean isSummOtherGiven = Functions.matches(line.rxSummOther, /^[1236]$/)
boolean isTreatmentGivenNoScope = isSurgPrimSiteGiven || isSurgOthRegDisGiven || line.rxSummBrm == '01' || isChemoGiven || line.rxSummHormone == '01' || isTransplantGiven || isSummOtherGiven
    || line.reasonForNoRadiation == '0'

if (isTreatmentGivenNoScope)
    return line.rxSummTreatmentStatus == '1'

if (line.rxSummTreatmentStatus == '1') {
    return isTreatmentGivenNoScope || Functions.matches(line.rxSummScopeRegLnSur, /^[2-7]$/)
}
else if (line.rxSummTreatmentStatus == '0' || line.rxSummTreatmentStatus == '2') {
    return ['A000','A980','B000'].contains(line.rxSummSurgPrimSite2023) &&
            Functions.matches(line.rxSummScopeRegLnSur, /^0|[1-7]|9$/) &&
            line.rxSummSurgOthRegDis == '0' &&
            Functions.matches(line.rxSummBrm, /^00|8[0-8]$/) &&
            Functions.matches(line.rxSummChemo, /^00|8[0-8]$/) &&
            Functions.matches(line.rxSummHormone, /^00|8[0-8]$/) &&
            Functions.matches(line.rxSummTransplntEndocr, /^00|8[0-8]$/) &&
            Functions.matches(line.rxSummOther, /^[078]$/) &&
            (Functions.matches(line.reasonForNoRadiation, /^[125-9]$/) || line.phase1RadiationTreatmentModality == '00')
}
else if (line.rxSummTreatmentStatus == '9') {
    if (line.rxSummSurgPrimSite2023 == 'A990' || line.rxSummSurgPrimSite2023 == 'B990' ||
            line.rxSummSurgOthRegDis == '9' || line.rxSummBrm == '99' || line.rxSummChemo == '99' || line.rxSummHormone == '99' ||
            line.rxSummTransplntEndocr == '99' || line.rxSummOther == '9' || Functions.matches(line.reasonForNoRadiation, /^[89]$/) || line.phase1RadiationTreatmentModality == '99') {
        return Functions.matches(line.rxSummSurgPrimSite2023, /^[AB](000|990)|A980$/) &&
            Functions.matches(line.rxSummScopeRegLnSur, /^[0-7]|9$/) &&
            Functions.matches(line.rxSummSurgOthRegDis, /^[09]$/) &&
            Functions.matches(line.rxSummBrm, /^00|8[0-8]|99$/) &&
            Functions.matches(line.rxSummChemo, /^00|8[0-8]|99$/) &&
            Functions.matches(line.rxSummHormone, /^00|8[0-8]|99$/) &&
            Functions.matches(line.rxSummTransplntEndocr, /^00|8[0-8]|99$/) &&
            Functions.matches(line.rxSummOther, /^[0789]$/) &&
            (Functions.matches(line.reasonForNoRadiation, /^[89]$/) || Functions.matches(line.phase1RadiationTreatmentModality, /^00|99$/))
    }
    else
        return false
}

return true]]></expression>
            <message>Conflict between RX Summ--Treatment Status and treatment items</message>
            <description><![CDATA[The purpose of this edit is to verify that RX Summ--Treatment Status and
treatment fields are coded consistently.

This edit is skipped under the following conditions:
    a. RX Summ--Treatment Status is blank
    b. Date of Diagnosis is before 2023, blank (unknown), or invalid.

1.  If any of the treatment fields indicate treatment given, then RX Summ--
Treatment Status must equal 1 (treatment given). Treatment is considered "given"
if any of the following is true:
  RX Summ--Surg Prim Site 2023 = A100-A900, B100-B900
  RX Summ--Surg Oth Reg/Dis = 1-5
  RX Summ--BRM = 01
  RX Summ--Chemo = 01-03
  RX Summ--Hormone = 01
  RX Summ--Transplnt/Endocr = 10-40
  RX Summ--Other = 1, 2, 3, 6
  Reason for No Radiation = 0

2. If Treatment Status = 1 (treatment given), at least one of the following fields
must equal treatment given. Treatment is considered "given" if any of the following
is true:
  RX Summ--Surg Prim Site 2023= A100-A900, B100-B900
  RX Summ--Scope Reg LN Sur = 2-7
  RX Summ--Surg Oth Reg/Dis = 1-5
  RX Summ--BRM = 01
  RX Summ--Chemo = 01-03
  RX Summ--Hormone = 01
  RX Summ--Transplnt/Endocr = 10-40
  RX Summ--Other = 1, 2, 3, 6
  Reason for No Radiation = 0

3.  If RX Summ--Treatment Status = 0 (no treatment) or 2 (active surveillance),
then the treatment fields must all indicate "no treatment".
Treatment is considered "not given" if all of the following conditions are true:
  RX Summ--Surg Prim Site 2023 = A000, A980, B000
  RX Summ--Scope Reg LN Sur = 0, 1-7, 9
  RX Summ--Surg Oth Reg/Dis = 0
  RX Summ--BRM = 00, 80-88
  RX Summ--Chemo = 00, 80-88
  RX Summ--Hormone = 00, 80-88
  RX Summ--Transplnt/Endocr = 00, 80-88
  RX Summ--Other = 0, 7-8
  Reason for No Radiation = 1-2, 5-9 or
  Phase I Radiation Treatment Modality = 00

4.  If RX Summ--Treatment Status = 9 (unknown if any treatment), then at least
one of the following treatment fields must indicate "unknown if treatment" (codes 9 and
99 below) and the remaining should indicate either "unknown if treatment" or "no
treatment".  RX Summ--Scope Reg LN Sur may be coded any value 0, 1-7, or 9.
  RX Summ--Surg Prim Site 2023 = A000, A980, A990, B000, B990
  RX Summ--Surg Oth Reg/Dis = 0, 9
  RX Summ--BRM = 00, 80-88, 99
  RX Summ--Chemo = 00, 80-88, 99
  RX Summ--Hormone = 00, 80-88, 99
  RX Summ--Transplnt/Endocr = 00, 80-88, 99
  RX Summ--Other = 0, 7-8, 9
  Reason for No Radiation = 8 or 9 or
  Phase I Radiation Treatment Modality = 00, 99]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-26" ref="69234">Edit created.</event>
                <event version="SE24-024-04" user="beverung" date="2024-05-01" ref="69459">Fix regex for RX Summ--Surg Prim Site 2023 in condition 4</event>
            </history>
        </rule>
        <rule id="IFN6780" name="Surgery 2023, Phase I Rad, Surg/Rad Seq (SEER)" tag="N6780" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.rxSummSurgPrimSite2023 == null || line.rxSummScopeRegLnSur == null || line.rxSummSurgOthRegDis == null)
    return true

boolean surgeryPerformed = Functions.matches(line.rxSummSurgPrimSite2023, /^[AB]([1-8]\d\d|900)$/) || Functions.matches(line.rxSummScopeRegLnSur, /^[2-7]$/)
    || Functions.matches(line.rxSummSurgOthRegDis, /^[1-5]$/)
if (surgeryPerformed && Functions.matches(line.phase1RadiationTreatmentModality, /^0[1-9]|1[0-6]|98$/))
    return Functions.matches(line.rxSummSurgRadSeq, /^[2-79]$/)

boolean scopeNotPerformed = Functions.matches(line.rxSummScopeRegLnSur, /^[01]$/) || (line.rxSummScopeRegLnSur == '9' && (Functions.matches(line.primarySite, /^C(42[0134]|589|7[0127]\d|75[123]|76[1-8]|809)$/)))
boolean surgeryNotPerformed = (Functions.matches(line.rxSummSurgPrimSite2023, /^[AB](000|990)|A980$/)) && scopeNotPerformed && line.rxSummSurgOthRegDis == '0'
if (surgeryNotPerformed || line.phase1RadiationTreatmentModality == '00' || line.phase1RadiationTreatmentModality == '99')
    return line.rxSummSurgRadSeq == '0'

return true]]></expression>
            <message>Conflict among surgery, radiation, and surgery radiation sequence items</message>
            <description><![CDATA[1. This edit is skipped for the following conditions:
    a. Any of the three surgery code fields (RX Summ--Surg Prim Site, RX Summ--Scope Reg LN Sur, RX Summ--Surg Oth Reg/Dis) is blank.
    b. Diagnosis date < 2023 or blank (unknown) or invalid

If surgery was performed and if radiation was given (Phase I Radiation Treatment Modality = 01-16,98),
    then RX Summ--Surg/Rad Seq must specify sequence (codes 2-7, 9).
    Surgery is considered "performed" if ANY of the following three conditions are true:

  1.  RX Summ--Surg Prim Site 2023 = A100-A900, B100-B900
  2.  RX Summ--Scope Reg LN Sur = 2-7
  3.  RX Summ--Surg Oth Reg/Dis = 1-5

If surgery was not performed or no radiation was given (Phase I Radiation Treatment Modality = 00 or 99),
    then RX Summ--Surg/Rad Seq must specify no (0).
    Surgery is considered "not performed" if ALL of the following three conditions are true:

  1.  RX Summ--Surg Prim Site 2023 = A000, A980, A990, B000, B990
  2.  RX Summ--Scope Reg LN Sur = 0, 1
      RX Summ--Scope Reg LN Sur = 9 and the following is true:
        Primary Site = C420, C421, C423, C424, C589, C700-C709,C710-C729, C751-C753, C761-C768, C770-C779, C809
  3.  RX Summ--Surg Oth Reg = 0]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-26" ref="69234">Edit created.</event>
                <event version="SE24-024-01" user="kirbyk" date="2024-02-14" ref="69350">Removed check for Primary Site C760 with Schema ID 99999.</event>
            </history>
        </rule>
        <rule id="IFN6782" name="Surgery 2023, Reason for No Surg (SEER)" tag="N6782" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[
            if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || ['6','7'].contains(line.typeOfReportingSource))
    return true

if (Functions.matches(line.rxSummSurgPrimSite2023, /^[AB](000)|A980$/))
    return Functions.matches(line.reasonForNoSurgery, /^[125-8]$/)
if (Functions.matches(line.rxSummSurgPrimSite2023, /^[AB]([1-8]\d\d|900)$/))
    return line.reasonForNoSurgery == '0'
if (line.rxSummSurgPrimSite2023 == 'A990' || line.rxSummSurgPrimSite2023 == 'B990')
    return line.reasonForNoSurgery != '0'

return true]]></expression>
            <message>Conflict between Surgery and Reason for No Surgery</message>
            <description><![CDATA[This edit is skipped if any of the following conditions is true:
    1.  Year of Date of Diagnosis is less than 2023, blank, or invalid
    2.  Type of Reporting Source is equal to 6 (autopsy only) or 7 (death certificate only)


If RX Summ--Surg Prim Site 2023 = A000, A980, or B000 (no surgery to primary site), then Reason for No Surgery
must specify why primary site surgery was not performed (1, 2, 5, 6, 7, or 8).

If RX Summ--Surg Prim Site 2023 = A100-A900, B100-B900 (surgery performed), Reason for No Surgery must be 0
(surgery performed).

If RX Summ--Surg Prim Site = A990 or B990 (unknown), Reason for No Surgery cannot be 0 (surgery
performed).]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-26" ref="69234">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6784" name="Surgery 2023, RX Date Surgery, Primary Site (NAACCR)" tag="N6784" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId == null)
    return true
if (line.rxSummSurgPrimSite2023 == null || line.rxSummScopeRegLnSur == null || line.rxSummSurgOthRegDis == null)
    return true

boolean rxDateIsBlank = line.rxDateSurgeryYear == null && line.rxDateSurgeryMonth == null && line.rxDateSurgeryDay == null
boolean siteCondition = Functions.matches(line.primarySite, /^C(42[0134]|589|7[0127]\d|75[1-3]|76[1-8]|809)$/)

//condition 1
boolean rxSummSurgPrimSiteCondition = line.rxSummSurgPrimSite2023 == 'A000' || line.rxSummSurgPrimSite2023 == 'A980' || line.rxSummSurgPrimSite2023 == 'B000'
boolean rxSummScopeRegLnSurCondition = (line.rxSummScopeRegLnSur == '9' && siteCondition) || line.rxSummScopeRegLnSur == '1' || line.rxSummScopeRegLnSur == '0'

if (rxSummSurgPrimSiteCondition && rxSummScopeRegLnSurCondition && line.rxSummSurgOthRegDis == '0')
    return rxDateIsBlank

//condition 2
if (!rxDateIsBlank)
    return Functions.matches(line.rxSummSurgPrimSite2023, /^[AB]([1-8]\d\d|900)$/) || Functions.matches(line.rxSummScopeRegLnSur, /^[2-7]$/) || Functions.matches(line.rxSummSurgOthRegDis, /^[1-5]$/)

return true]]></expression>
            <message>Conflict between treatment and treatment date</message>
            <description><![CDATA[This edit verifies that surgery fields, by Schema ID and/or Primary Site, are
coded consistently with surgery date fields.

This edit is skipped if any of the following conditions is true:
1. Date of Diagnosis is blank or less than 2023
2. Schema ID is blank
3. RX Summ--Surg Prim Site is blank
4. RX Summ--Scope Reg LN Sur is blank
5. RX Summ--Surg Oth Reg/Dis is blank.


This edit compares the three surgery code fields (RX Summ--Surg Prim Site, RX Summ--Scope
Reg
LN Sur, RX Summ--Surg Oth Reg/Dis) against the date of first surgical procedure (RX Date
Surgery).  If all of the three fields show that no surgery was performed, then the date
must be blank.
If RX date is coded, then one of the surgery fields must indicate that surgery was
performed.

The edit works as follows:

1.  If surgery was not performed, then RX Date Surgery must be blank. Surgery is considered
"not performed" if all of the following three conditions are true:

  1.    RX Summ--Surg Prim Site 2023 = A000, B000 (none) or A980 (not applicable)
  2.    RX Summ--Scope Reg LN Sur = not applicable for the following:

         Primary Site code = C420, C421, C423, C424, C589, C700-C709,
            C710-C729, C751-C753, C761-C768, C770-C779, C809

         RX Summ--Scope Reg LN Sur = 0 or 1

  3.    RX Summ--Surg Oth Reg/Dis = 0 (none)


2.  If RX Date Surgery is not blank, at least one of the following three conditions must be true:
  1.    RX Summ--Surg Prim Site 2023 = A100-A900, B100-B900
  2.    RX Summ--Scope Reg LN Sur = 2-7
  3.    RX Summ--Surg Oth Reg/Dis = 1-5]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-26" ref="69234">Edit created.</event>
                <event version="SE24-024-06" user="cooki" date="2024-06-28" ref="69489">Removed Schema 99999, C760 from logic and description.</event>
            </history>
        </rule>
        <rule id="IFN6785" name="Systemic RX, Surgery 2023, Systemic/Sur Seq (COC)" tag="N6785" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.rxSummSurgPrimSite2023 == null || line.rxSummScopeRegLnSur == null || line.rxSummSurgOthRegDis == null || line.rxSummBrm == null || line.rxSummChemo == null
            || line.rxSummHormone == null || line.rxSummTransplntEndocr == null || line.rxSummSystemicSurSeq == null || line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023')
    return true

boolean surgeryPerformed = Functions.matches(line.rxSummSurgPrimSite2023, /^[AB]([1-8]\d\d|900)$/) || Functions.matches(line.rxSummScopeRegLnSur, /^[2-7]$/) || Functions.matches(line.rxSummSurgOthRegDis, /^[1-5]$/)
boolean therapyPerformed = line.rxSummBrm == '01' || Functions.matches(line.rxSummChemo, /^0[1-3]$/) || line.rxSummHormone == '01' || Functions.matches(line.rxSummTransplntEndocr, /(^[1-3]\d|40$)/)

if (surgeryPerformed && therapyPerformed)
    return Functions.matches(line.rxSummSystemicSurSeq, /^[2-7]|9$/)

boolean primarySiteCondition = Functions.matches(line.primarySite, /(^C(42[0134]|589|7[0127]\d|75[123]|76[1-8]|809)$)/)
boolean scopeCondition = line.rxSummScopeRegLnSur == '0' || line.rxSummScopeRegLnSur == '1' || (line.rxSummScopeRegLnSur == '9' && primarySiteCondition)
boolean surgeryNotPerformed = Functions.matches(line.rxSummSurgPrimSite2023, /(^[AB](000|990)$)/) && scopeCondition && line.rxSummSurgOthRegDis == '0'
boolean surgeryAlsoNotPerformed = line.rxSummSurgPrimSite2023 == 'A980' && line.rxSummScopeRegLnSur == '9' && line.rxSummSurgOthRegDis == '0'
boolean noTherapy = Functions.matches(line.rxSummBrm, /(^00|8[2-8]|99$)/) &&
   Functions.matches(line.rxSummChemo, /(^00|8[2-8]|99$)/) &&
   Functions.matches(line.rxSummHormone, /(^00|8[2-8]|99$)/) &&
   Functions.matches(line.rxSummTransplntEndocr, /(^00|8[2-8]|99$)/)

if (surgeryNotPerformed || surgeryAlsoNotPerformed || noTherapy)
    return line.rxSummSystemicSurSeq == '0'

return true]]></expression>
            <message>Conflict among Systemic RX, Surgery, and Systemic Sur Seq</message>
            <description><![CDATA[This edit is skipped if any of the fields are blank.
This edit is skipped for diagnosis date blank (unknown), invalid, or before 2023.

1.  If surgery was performed AND if systemic therapy was given,
    then RX Summ--Systemic/Sur Seq must specify a sequence (codes 2-7, 9).

  A.  Surgery is considered performed if ANY of the following three conditions are true:
      1.  RX Summ--Surg Prim Site 2023 = A100-A900, B100-B900
      2.  RX Summ--Scope Reg LN Sur = 2-7
      3.  RX Summ--Surg Oth Reg/Dis = 1-5

  B.  Systemic therapy is considered performed if ANY of the following four conditions are true:
      1.  RX Summ--BRM = 01
      2.  RX Summ--Chemo = 01-03
      3.  RX Summ--Hormone = 01
      4.  RX Summ--Transplnt/Endocr = 10-40

2.  If surgery was not performed OR there was no systemic therapy,
    then RX Summ--Systemic/Sur Seq must = 0 (no systemic therapy and/or surgical procedures).

  A.  Surgery is considered not performed if ALL of the following conditions are true:
       1.  RX Summ--Surg Prim Site 2023= A000, A990, B000, B990
       2.  RX Summ--Scope Reg LN Sur = 0, 1
           RX Summ--Scope Reg LN Sur = 9 and the following is true:
    Primary Site = C420, C421, C423, C424, C589, C700-C709,C710-C729, C751-C753, C761-C768, C770-C779, C809
       3.  RX Summ--Surg Oth Reg = 0

  B.  Surgery is also considered not performed if ALL of the following conditions are true:
       1.  RX Summ--Surg Prim Site 2023 = A980 (coded for hematopoietic, ill-defined and unknown sites)
       2.  RX Summ--Scope Reg LN Sur: 9
       3.  RX Summ--Surg Oth Reg = 0

  C.  Systemic therapy is considered not performed if ALL of the following four conditions are true:
      1.  RX Summ--BRM = 00, 82-88, 99
      2.  RX Summ--Chemo = 00, 82-88, 99
      3.  RX Summ--Hormone = 00, 82-88, 99
      4.  RX Summ--Transplnt/Endocr = 00, 82-88, 99]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-26" ref="69234">Edit created.</event>
                <event version="SE24-024-01" user="kirbyk" date="2024-02-14" ref="69350">Removed check for Primary Site C760 with Schema ID 99999.</event>
            </history>
        </rule>
        <rule id="IFN6786" name="Serum Markers, Testis, Post-Orchiectomy 2023, Lab Value (NAACCR)" tag="N6786" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.rxSummSurgPrimSite2023 == null || line.schemaId != '00590'
            || line.typeOfReportingSource == '7')
    return true
if ((line.afpPostOrchiectomyLabValue == null || line.afpPostOrchiectomyLabValue == 'XXXXX.8') && (line.hcgPostOrchiectomyLabValue == null || line.hcgPostOrchiectomyLabValue == 'XXXXX.8'))
    return true

if (['A000','A120','A200','A990'].contains(line.rxSummSurgPrimSite2023))
    return line.afpPostOrchiectomyLabValue == 'XXXXX.9' && line.hcgPostOrchiectomyLabValue == 'XXXXX.9'

return true]]></expression>
            <message>Testis Serum Markers must be coded &quot;no orchiectomy performed&quot; if no orchiectomy performed</message>
            <description><![CDATA[This edit verifies that the testis tumor marker lab value SSDIs are coded consistently
with surgery code.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2023, blank (unknown), or invalid.
    b. Schema ID not = 00590
    c. The following SSDIs are blank or not applicable:

       AFP Post-Orchiectomy Lab Value
       hCG Post-Orchiectomy Lab Value

    d. RX Summ--Surg Prim Site 2023 is blank
    e. Type of Reporting Source = 7 (death certificate only)

2.  If Primary Site Surgery = A000 (no surgery of primary site), A120 (local tumor
    destruction NOS (no specimen sent to pathology), or A200 (local excision of
    testicle),
     Then the data items must be coded as follows (no orchiectomy performed):

       AFP Post-Orchiectomy Lab Value          XXXXX.9
       hCG Post-Orchiectomy Lab Value          XXXXX.9

3. If RX Summ-Surg Prim Site 2023 = A990 ,
    Then the data items must be coded as follows (no orchiectomy performed, or AFP Post-Orchiectomy Lab Value not assessed or unknown if assessed):

       AFP Post-Orchiectomy Lab Value          XXXXX.9
       hCG Post-Orchiectomy Lab Value          XXXXX.9]]></description>
            <history>
                <event version="SE23-023-04" user="shearerw" date="2023-06-13" ref="69235">Edit created.</event>
                <event version="SE24-024-01" user="cooki" date="2024-02-09" ref="69371">Added condition 3. for code A990.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-06-20" ref="69499">Updated name.</event>
            </history>
        </rule>
        <rule id="IFN6787" name="Serum Markers, Testis, Post-Orchiectomy 2023, Range (NAACCR)" tag="N6787" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId != '00590' || line.rxSummSurgPrimSite2023 == null || line.typeOfReportingSource == '7')
    return true

if ((line.afpPostOrchiectomyRange == null || line.afpPostOrchiectomyRange == '8') && (line.hcgPostOrchiectomyRange == null || line.hcgPostOrchiectomyRange == '8') &&
    (line.ldhPostOrchiectomyRange == null || line.ldhPostOrchiectomyRange == '8') && line.sCategoryPathological == null)
    return true

if (['A000','A120','A200','A990'].contains(line.rxSummSurgPrimSite2023))
    return line.afpPostOrchiectomyRange == '9' && line.hcgPostOrchiectomyRange == '9' && line.ldhPostOrchiectomyRange == '9' && line.sCategoryPathological == '9'

return true]]></expression>
            <message>Testis Serum Markers must be coded &quot;no orchiectomy performed&quot; if no orchiectomy performed</message>
            <description><![CDATA[This edit verifies that the testis tumor marker range SSDIs are coded consistently
with surgery code.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2023, blank (unknown), or invalid.
    b. Schema ID not = 00590
    c. The following SSDIs are blank or not applicable:

       AFP Post-Orchiectomy Range
       hCG Post-Orchiectomy Range
       LDH Post-Orchiectomy Range
       S Category Pathological

    d. RX Summ--Surg Prim Site 2023 is blank
    e. Type of Reporting Source = 7 (death certificate only)

2.  If RX Summ--Surg Prim Site 2023 = A000 (no surgery of primary site), A120 (local tumor
    destruction NOS (no specimen sent to pathology), or A200 (local excision of
    testicle),
     Then the data items must be coded as follows (no orchiectomy performed):

       AFP Post-Orchiectomy Range          9
       hCG Post-Orchiectomy Range          9
       LDH Post-Orchiectomy Range          9
       S Category Pathological             9

3. If RX Summ-Surg Prim Site 2023 = A990,
    Then the data items must be coded as follows (no orchiectomy performed, or AFP Post-Orchiectomy Range not assessed or unknown if assessed):

       AFP Post-Orchiectomy Range          9
       hCG Post-Orchiectomy Range          9
       LDH Post-Orchiectomy Range          9
       S Category Pathological             9]]></description>
            <history>
                <event version="SE23-023-04" user="shearerw" date="2023-06-13" ref="69235">Edit created.</event>
                <event version="SE23-023-05" user="shearerw" date="2023-06-29" ref="69292">Remove logic for when S Category Pathological is 8.</event>
                <event version="SE24-024-01" user="cooki" date="2024-02-09" ref="69372">Added condition 3. for code A990.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-06-20" ref="69499">Updated name.</event>
            </history>
        </rule>
        <rule id="IFN6789" name="Tumor Deposits, Colorectal, Surgery 2023 (SEER)" tag="N6789" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.rxSummSurgPrimSite2023 == null
            || line.schemaId != '00200' || ['6','7'].contains(line.typeOfReportingSource))
    return true

Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)

if (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5))
    return true

String tumorDeposits = line.tumorDeposits
if (tumorDeposits == null || tumorDeposits == 'X8')
    return true

if (Functions.matches(line.rxSummSurgPrimSite2023, /^[AB]([01]\d\d|2[0-8]\d|290|990)$/))
    return tumorDeposits == 'X9'

return true]]></expression>
            <message>Conflict between RX Summ--Surg Prim Site 2023 and Tumor Deposits</message>
            <description><![CDATA[This edit verifies that Tumor Deposits SSDI is coded consistently with
RX Summ--Surg Prim Site 2023.

1. This edit is skipped if any of the following conditions is true:

   a. Year of Date of Diagnosis is less than 2023, blank (unknown), or invalid
   b. Schema ID is not 00200
   c. Tumor Deposits is blank or X8 (not applicable)
   d. RX Summ--Surg Prim Site 2023 is blank
   e. Type of Reporting Source = 6 (Autopsy Only) or 7 (Death Certificate Only)
   f. Vital Status = 0 and Date of Last Contact within 5 months of Date of Diagnosis

2. If RX Summ-Surg Prim Site 2023 = A000 or B000 (no surgery),
    A100-A120 or B100 (tumor destruction without pathology specimen),
    or A200-A290 or B200-B290 (local excision)
    Tumor Deposits must = X9 (no surgical resection of primary site)

3. If RX Summ-Surg Prim Site 2023 = A990 or B990 (unknown if surgery performed)
    Tumor Deposits must = X9 (Tumor Deposits not assessed or unknown if assessed)]]></description>
            <history>
                <event version="SE23-023-04" user="shearerw" date="2023-06-13" ref="69235">Edit created.</event>
                <event version="SE24-024-01" user="cooki" date="2024-02-07" ref="69374">Added 3. and B100, B200-B290 condition to 2.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-03-14" ref="69425">Make ranges more inclusive in logic for condition 2.</event>
            </history>
        </rule>
        <rule id="IFN6790" name="Histologic Subtype, Date DX (NAACCR)" tag="N6790" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2023' && line.histologicSubtype != null)
    return false

return line.histologicSubtype == null || Functions.matches(line.histologicSubtype, /^[0-4]$/)
]]></expression>
            <message>Code for Histologic Subtype is not valid</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), invalid.

1. This data item must be blank for pre-2023 diagnoses.

2. Must be a valid Histologic Subtype code or blank:

    0: Histology is not 8480
    1: Low-grade appendiceal mucinous neoplasm (LAMN)
    2: High-grade appendiceal mucinous neoplasm (HAMN)
    3: Mucinous/Mucus/Mucoid adenocarcinoma/carcinoma
    4: Acinar adenocarcinoma, mucinous variant, Colloid adenocarcinoma,
        Colloid carcinoma, Gelatinous adenocarcinoma,
        Other terminology used for 8480 code


Another edit, Histologic Subtype, Schema ID, Required (NAACCR),
checks that the item is coded by Schema ID if required by a standard setter.]]></description>
            <history>
                <event version="SE23-023-03" user="shearerw" date="2023-05-24" ref="69228">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN6791" name="Histologic Subtype, Schema ID, Required (NAACCR)" tag="N6791" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true

if (line.schemaId == '09190')
    return line.histologicSubtype != null

return true]]></expression>
            <message>Histologic Subtype must not be blank or not applicable for Schema ID for cases diagnosed 2023 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2023, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)

2. This edit verifies that Histologic Subtype is not
   blank for the Schema IDs for which it is required by a standard setter.

    Required for Schema ID:

    09190 Appendix]]></description>
            <history>
                <event version="SE23-023-03" user="shearerw" date="2023-05-24" ref="69228">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN6792" name="Histologic Subtype, Morphology ICDO3 (NAACCR)" tag="N6792" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId != '09190' || line.histologicTypeIcdO3 == null
            || line.behaviorCodeIcdO3 == null || line.histologicSubtype == null || line.typeOfReportingSource == '7')
    return true

String morphIcdO3 = line.histologicTypeIcdO3 + line.behaviorCodeIcdO3

if (morphIcdO3 == '84802' || morphIcdO3 == '84803')
    return Functions.matches(line.histologicSubtype, /^[1-4]$/)
else
    return line.histologicSubtype == '0']]></expression>
            <message>Morphology conflicts with Histologic Subtype</message>
            <description><![CDATA[This edit verifies that the Histologic Subtype SSDI is coded consistently
with Histologic Type ICD-O-3.

1. This edit is skipped for the following:
    a. Date of diagnosis is blank (invalid), unknown, or before 2023.
    b. Schema ID is not 09190
    c. Histologic Type ICD-O-3 is blank
    d. Behavior Code ICD-O-3 is blank
    e. Histologic Subtype is blank
    f. Type of Reporting Source = 7 (Death Certificate Only)

2. If Histologic Type ICD-O-3/Behavior Code ICD-O-3 is not 84802 or 84803,
    then Histologic Subtype must be coded 0.

3. If Histologic Type ICD-O-3/Behavior Code ICD-O-3 is 84802 or 84803,
    then Histologic Subtype must be coded 1, 2, 3, or 4.]]></description>
            <history>
                <event version="SE23-023-03" user="shearerw" date="2023-05-24" ref="69228">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN6793" name="EOD Primary Tumor, Appendix, Histologic Subtype (SEER)" tag="N6793" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId != '09190' || line.eodPrimaryTumor == null
            || line.histologicTypeIcdO3 == null || line.behaviorCodeIcdO3 == null || line.histologicSubtype == null || line.typeOfReportingSource == '7')
    return true

if (line.histologicTypeIcdO3 == '8480') {
    if (line.behaviorCodeIcdO3 == '2') {
        if (line.histologicSubtype == '1')
            return line.eodPrimaryTumor == '050'
        if (line.eodPrimaryTumor == '050')
            return line.histologicSubtype == '1'
        if (line.histologicSubtype == '2')
            return line.eodPrimaryTumor == '000'
        if (line.eodPrimaryTumor == '000')
            return Functions.matches(line.histologicSubtype, /^[234]$/)
    }
    else if (line.behaviorCodeIcdO3 == '3') {
        if (line.histologicSubtype == '1')
            return !['070','100','200'].contains(line.eodPrimaryTumor)
    }
}

return true]]></expression>
            <message>Conflict between EOD Primary Tumor and Histologic Subtype</message>
            <description><![CDATA[This edit verifies that the Histologic Subtype (Appendix 8480) SSDI is coded consistently
with EOD Primary Tumor.

1. This edit is skipped for the following:
    a. Date of diagnosis is blank (invalid), unknown, or before 2023.
    b. Schema ID is not 09190
    c. EOD Primary Tumor is blank
    d. Histologic Type ICD-O-3 is blank
    e. Behavior Code ICD-O-3 is blank
    f. Histologic Subtype is blank
    g. Type of Reporting Source = 7 (Death Certificate Only)

2. If Histologic Type ICD-O-3/Behavior Code ICD-O-3 is 84802

    A. If Histologic Subtype = 1 (LAMN)
        EOD Primary Tumor must = 050 (LAMN)

    B. If EOD Primary Tumor = 050,
        Histologic Subtype must = 1

    C. If Histologic Subtype = 2 (HAMN),
        EOD Primary Tumor must = 000

    D. If EOD Primary Tumor = 000
        Histologic Subtype must = 2, 3, or 4.

3. If Histologic Type ICD-O-3/Behavior Code ICD-O-3 is 84803
    A. If Histologic Subtype = 1 (LAMN)
        EOD Primary Tumor must not = 070 (Lamina propria, mucosa), 100 (Submucosa),
        200 (Muscularis propria)]]></description>
            <history>
                <event version="SE23-023-03" user="shearerw" date="2023-05-24" ref="69228">Edit Created.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-06-27" ref="69474">Remove references to Appendix 8480. Add logic for behavior code 3.</event>
            </history>
        </rule>
        <rule id="IFN6801" name="SSDI p16, Blank for Other Schemas (NAACCR)" tag="N6801" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear < '2018' || line.dateOfDiagnosisYear == null || ['09210','09520','09500'].contains(line.schemaId) || line.schemaId == null)
    return true

return line.p16 == null]]></expression>
            <message>Conflict between schema and coded SSDI items</message>
            <description><![CDATA[This edit verifies that p16 Site-Specific Data Item defined for Anus, Schema ID 09210, Vulva, Schema 09500, and Cervix, Schema 09520, is blank (not coded) for all other schemas.

This edit is skipped for any of the following conditions:

    a.Date of Diagnosis is before 2018, blank, invalid.
    b.Schema ID is blank, 09210, 09520, or 09500. 

If Schema ID is not 09210 (Anus, V9), 09500 (Vulva V9), 09520 (Cervix V9)
    the following Site-Specific Data Item must be blank:

    p16]]></description>
            <history>
                <event version="SE23-023-05" user="cooki" date="2023-06-15" ref="69239">Edit created.</event>
                <event version="SE24-024-01" user="beverung" date="2024-02-29" ref="69422">Updated edit name. Added logic for Vulva (09500). Updated DX Year skip condition to 2018+</event>
            </history>
        </rule>
        <rule id="IFN6802" name="Schema Discriminator 2, Head and Neck, Histology (NAACCR)" tag="N6802" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear < '2023' || line.dateOfDiagnosisYear == null || line.primarySite == null || line.histologicTypeIcdO3 == null ||
            line.schemaDiscriminator2 == null || line.typeOfReportingSource == '7')
    return true

if (Functions.matches(line.primarySite, /^C(10[0-489]|019|024|09\d|111)$/)) {
    if (line.histologicTypeIcdO3 == '8085')
        return line.schemaDiscriminator2 == '2' || line.schemaDiscriminator2 == '9'
    else if (line.histologicTypeIcdO3 == '8086')
        return line.schemaDiscriminator2 == '1' || line.schemaDiscriminator2 == '9'
    else if (line.histologicTypeIcdO3 == '8070')
        return line.schemaDiscriminator2 == '9'
    else if (line.histologicTypeIcdO3 == '8071')
        return line.schemaDiscriminator2 != '1'
    else if (line.histologicTypeIcdO3 == '8072')
        return line.schemaDiscriminator2 != '2'
}

return true]]></expression>
            <message>Histologic Type ICD-O-3, Schema Discriminator 2 must = 2 or 9</message>
            <description><![CDATA[This edit checks coding consistency among Histologic Type ICD-O-3, primary sites of
Head and Neck, and Schema Discriminator 2.

1. The edit is skipped for the following;
    a. Date of diagnosis blank (unknown), invalid, or before 2023.
    b. Primary Site is blank
    c. Histologic Type ICD-O-3 is blank
    d. Schema Discriminator 2 is blank
    e. Type of Reporting Source = 7 (death certificate only)

2. If Primary Site = C100-C104, C108-C109, C019, C024, C090-C099, or C111:

    If Histologic Type is 8085, Schema Discriminator 2 must = 2 or 9
    If Histologic Type is 8086, Schema Discriminator 2 must = 1 or 9
    If Histologic Type is 8070, Schema Discriminator 2 must = 9
    If Histologic Type is 8072, Schema Discriminator 2 must not = 2
    If Histologic Type is 8071, Schema Discriminator 2 must not = 1


Histology:  8085: Squamous cell carcinoma, HPV positive
            8086: Squamous cell carcinoma, HPV negative
            8070: Squamous cell carcinoma, NOS
            8071: Squamous cell carcinoma, keratinizing, NOS
            8072: Squamous cell carcinoma, nonkeratinizing, NOS

Schema Discriminator 2 - 1: p16 negative, nonreactive
                         2: p16 positive, HPV positive, diffuse, strong reactivity


SOLID TUMOR RULES:

The 2018 Solid Tumor Head and Neck Rules, Table 5, instruct squamous cell carcinoma, HPV positive (8085) and
squamous cell
carcinoma, HPV negative (8086) are coded only when HPV status is determined by tests based on ISH, PCR, RT-PCR
technologies to detect the viral DNA or RNA. P16 was not a valid test to assign these codes. Beginning with
cases diagnosed
1/1/2022 forward, p16 test results can be used to code squamous cell carcinoma, HPV positive (8085) and
squamous cell
carcinoma, HPV negative (8086.
2. Beginning 1/1/2022, non-keratinizing squamous cell carcinoma, HPV positive is coded 8085 for sites listed
in Table 5 only. A
diagnosis of non-keratinizing squamous cell carcinoma, NOS is coded 8072.
3. Beginning 1/1/2022, keratinizing squamous cell carcinoma, HPV negative is coded 8086 for sites listed in
Table 5 only. A
diagnosis of keratinizing squamous cell carcinoma, NOS is coded 8071.]]></description>
            <history>
                <event version="SE23-023-07" user="cooki" date="2023-09-08" ref="69306">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6806" name="EOD Regional Nodes, Ampulla, Regional Nodes Positive (SEER)" tag="N6806" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear < '2018' || line.dateOfDiagnosisYear == null || line.schemaId != '00270' || line.schemaId == null
            || line.eodRegionalNodes == null || line.regionalNodesPositive == null || line.typeOfReportingSource == '7')
    return true

if (line.eodRegionalNodes == '300')
    return Functions.matches(line.regionalNodesPositive, /^(0[0-3]|9[5789])$/)

if (Functions.matches(line.regionalNodesPositive, /^(0[4-9]|[1-8]\d|90)$/))
    return line.eodRegionalNodes == '400'

return true]]></expression>
            <message>Conflict between EOD Regional Nodes and Regional Nodes Positive</message>
            <description><![CDATA[This edit verifies that EOD Regional Nodes codes 300 and 400 are
coded consistently with Regional Nodes Positive for Schema ID 00270,
Ampulla of Vater.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2018, blank (unknown), or invalid.
    b. Schema ID is blank or not 00270
    c. EOD Regional Nodes is blank
    d. Regional Nodes Positive is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If EOD Regional Nodes = 300 (1-3 positive regional nodes)
   then Regional Nodes Positive must = 00, 01, 02, 03, 95, 97, 98,
or 99

3. If Regional Nodes Positive = 04-90
    then EOD Regional Nodes must = 400 (4 or more positive regional
lymph nodes)]]></description>
            <history>
                <event version="SE23-023-05" user="cooki" date="2023-06-15" ref="69239">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6809" name="Multigene Signature Method, Results (NAACCR)" tag="N6809" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId != '00480' || line.typeOfReportingSource == '7')
    return true

if (line.multigeneSignatureMethod == null || line.multigeneSignatureMethod == '8' || line.multigeneSignatureResults == null || line.multigeneSignatureResults == 'X8')
    return true

if (Functions.matches(line.multigeneSignatureResults, /^\d\d|X[1-4]$/))
    return Functions.matches(line.multigeneSignatureMethod, /^[1-6]$/)

if (line.multigeneSignatureResults == 'X7')
    return Functions.matches(line.multigeneSignatureMethod, /^[1-7]$/)

if (line.multigeneSignatureResults == 'X9')
    return line.multigeneSignatureMethod == '9'

return true]]></expression>
            <message>Conflict between Multigene Signature Method and Multigene Signature Results</message>
            <description><![CDATA[This edit verifies that the Multigene Signature Method and Multigene Signature Results
SSDIs are coded consistently with each other.

1. The edit is skipped for the following conditions:
    a. Diagnosis date is before 2023, blank (unknown), or invalid.
    b. Multigene Signature Method or Multigene Signature Results is blank or not applicable
    c. Schema ID not = 00480
    d. Type of Reporting Source = 7 (Death Certificate Only)

2. If Multigene Signature Results = 00-99, X1-X4 (test results),
    Multigene Signature Method = 1-6 (test performed)

3. If Multigene Signature Results = X7 (test ordered results not in chart)
    Multigene Signature Method = 1-6 (test performed) or 7 (test ordered, results not in chart)

4. If Multigene Signature Results = X9 (not documented, unknown)
    Multigene Signature Method =9 (not documented, unknown)]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-16" ref="69240">Edit Created.</event>
                <event version="SE24-024-01" user="cooki" date="2024-02-02" ref="69366">Added values 1-6 to #3 (X7 Condition).</event>
            </history>
        </rule>
        <rule id="IFN6811" name="LN Distant/Assessment Vagina/Cervix (NAACCR)" tag="N6811" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.lnDistantMediastinalScalene == null || line.lnDistantAssessMethod == null
            || (line.schemaId != '09520' && line.schemaId != '00510') || line.typeOfReportingSource == '7')
    return true

if (line.lnDistantMediastinalScalene == '9')
    return line.lnDistantAssessMethod == '0' || line.lnDistantAssessMethod == '9'

return true]]></expression>
            <message>Conflict between LN Distant Assessment Method and LN Distant: Mediastinal, Scalene</message>
            <description><![CDATA[This edit verifies that LN Distant: Mediastinal, Scalene and LN
Distant Assessment Method
are coded consistently.

1. The edit is skipped for the following:
    a. Date of Diagnosis is blank (unknown), invalid, or pre-2021.
    b. LN Distant: Mediastinal, Scalene is blank
    c. LN Distant Assessment Method is blank
    d. Schema ID is not 09520 or 00510.
    e. Type of Reporting Source = 7 (death certificate only)

2. If LN Distant: Mediastinal, Scalene =9 (nodes not assessed or unknown if assessed)
    LN Distant Assessment Method must = 0 (physical exam only) or 9 (nodes not assessed or
unknown if assessed).]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-16" ref="69240">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN6814" name="Perineural Invasion, Surg Prim Site 2023 (NAACCR)" tag="N6814" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.perineuralInvasion == null || line.perineuralInvasion == '8')
    return true

if (line.rxSummSurgPrimSite2023 == null || line.typeOfReportingSource == '7' || line.behaviorCodeIcdO3 == '2')
    return true

if (line.schemaId == null || !['00150', '00200', '00640', '00690'].contains(line.schemaId))
    return true

if (line.perineuralInvasion == '0')
    return Functions.matches(line.rxSummSurgPrimSite2023, /^[AB](900|[3-8]\d\d)$/) || (line.primarySite == 'C209' && Functions.matches(line.rxSummSurgPrimSite2023, /^[AB]270$/))

return true]]></expression>
            <message>Conflict between RX Summ--Surg Prim Site 2023 and Perineural Invasion</message>
            <description><![CDATA[This edit verifies that the Perineural Invasion SSDI is coded consistently with RX Summ Surg Prim Site 2023, for cutaneous carcinoma of skin, colon, skin of eyelid, and lacrimal gland.

1. This edit is skipped for the following conditions:
    a. Date of Diagnosis is pre-2023, blank (unknown), or invalid.
    b. Schema ID is blank or not 00150, 00200,00640, or 00690.
    c. Perineural Invasion is blank or 8 (not applicable)
    d. RX Summ--Surg Prim Site 2023 is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)
    f. Behavior Code ICD-O-3 = 2

2. If Perineural Invasion = 0 (not identified)
    a. For Primary Site C209, RX Summ--SurgPrim Site 2023 must = A270, A300-A900 or B270, B300-B900
    b. For other sites, RX Summ--Surg Prim Site 2023 must = A300-A900 or B300-B900]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-16" ref="69240">Edit Created.</event>
                <event version="SE24-024-01" user="kirbyk" date="2024-02-06" ref="69342">Updated description; added skip condition for Behavior Code ICD-O-3.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-02" ref="69483">Added logic for Primary Site = C209.</event>
                <event version="SE24-024-06" user="beverung" date="2024-07-10" ref="69513">Replaced non-ASCII characters in description.</event>
            </history>
        </rule>
        <rule id="IFN6815" name="Number of Positive/Examined Nodes, Corpus, Scope Nodes (NAACCR)" tag="N6815" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.rxSummScopeRegLnSur == null || line.typeOfReportingSource == '7')
    return true

if (!['00528', '00530', '00541', '00542'].contains(line.schemaId))
    return true

if ((line.numberOfPositivePelvicNodes == null || line.numberOfPositivePelvicNodes == 'X8') && (line.numberOfExaminedPelvicNodes == null || line.numberOfExaminedPelvicNodes == 'X8')
    && (line.numberOfPositiveParaAorticNodes == null || line.numberOfPositiveParaAorticNodes == 'X8') && (line.numberOfExaminedParaAorticNodes == null || line.numberOfExaminedParaAorticNodes == 'X8'))
    return true

if (line.rxSummScopeRegLnSur == '0')
    return line.numberOfPositivePelvicNodes == 'X9' && line.numberOfPositiveParaAorticNodes == 'X9' && line.numberOfExaminedPelvicNodes == '00' && line.numberOfExaminedParaAorticNodes == '00'

if (line.rxSummScopeRegLnSur == '1')
    return (line.numberOfPositivePelvicNodes == 'X6' || line.numberOfPositivePelvicNodes == 'X9') && (line.numberOfPositiveParaAorticNodes == 'X6' || line.numberOfPositiveParaAorticNodes == 'X9')
        && (line.numberOfExaminedPelvicNodes == '00' || line.numberOfExaminedPelvicNodes == 'X6') && (line.numberOfExaminedParaAorticNodes == '00' || line.numberOfExaminedParaAorticNodes == 'X6')

if (line.rxSummScopeRegLnSur == '9')
    return line.numberOfPositivePelvicNodes == 'X9' && line.numberOfPositiveParaAorticNodes == 'X9' && line.numberOfExaminedPelvicNodes == 'X9' && line.numberOfExaminedParaAorticNodes == 'X9'

return true]]></expression>
            <message>RX Summ--Scope Reg LN Sur conflicts with Number of Examined Para-Aortic Nodes, Number of Examined Pelvic Nodes, Number of Positive Para-Aortic Nodes, and/or Number of Positive Pelvic Nodes</message>
            <description><![CDATA[This edit verifies that the Number of Positive and Examined Pelvic Nodes and Number of
Positive and Examined Para-Aortic Nodes SSDIs are coded consistently with RX Summ--Scope
Reg LN Surgery for Schema ID 00528 Cervix Sarcoma, 00530, Corpus Carcinoma and
Carcinosarcoma, 00541,Corpus Sarcoma, and 00542, Corpus Adenosarcoma.


1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2023, blank (unknown), or invalid.
    b. Schema ID is not 00528, 00530, 00541, or 00542
    c. RX Summ--Scope Reg LN Sur is blank
    d. Type of Reporting Source = 7 (death certificate only)
    e. All SSDI fields are blank or not applicable

2. For the following SSDIS:
    Number of Positive Pelvic Nodes
    Number of Examined Pelvic Nodes
    Number of Positive Para-Aortic Nodes
    Number of Examined Para-Aortic Nodes

    A. If RX Summ--Scope Reg LN Sur = 0 (no procedure performed)
        1. the Nodes Positive SSDIs must = X9 (no lymph node dissection performed)
        2. the Nodes Examined SSDIs must = 00 (no nodes examined)

    B. If RX Summ--Scope Reg LN Sur = 1 (nodal aspiration or needle biopsy)
        1. The Nodes Positive SSDIs must = X6 (positive aspiration or biopsy) or X9 (negative
            aspiration or biopsy, no nodes removed)
        2. The Nodes Examined SSDIs must = 00 (no nodes examined) or X6 (aspiration or core biopsy of
            nodes only)

    C. If RX Summ--Scope Reg LN Sur = 9 (unknown if procedure performed)
        1. the Nodes Positive SSDIs must = X9 (no lymph node dissection performed)
        2. the Nodes Examined SSDIs must = X9 (no nodes examined)]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-16" ref="69240">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN6819" name="Bilirubin Pretreatment Lab, Unit of Measure, Liver (NAACCR)" tag="N6819" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.schemaId != '00220' || line.typeOfReportingSource == '7')
    return true

if (line.bilirubinPretxUnitOfMeasure == null || line.bilirubinPretxUnitOfMeasure == '8' || line.bilirubinPretxTotalLabValue == null || line.bilirubinPretxTotalLabValue == 'XXX.8')
    return true

if (line.bilirubinPretxTotalLabValue == 'XXX.7')
    return line.bilirubinPretxUnitOfMeasure == '7'

if (line.bilirubinPretxTotalLabValue == 'XXX.9')
    return line.bilirubinPretxUnitOfMeasure == '9'

return true]]></expression>
            <message>Conflict between Bilirubin Pretreatment Total Lab Value and Bilirubin Pretreatment Unit of Measure</message>
            <description><![CDATA[This edit verifies that Bilirubin Pretreatment Total Lab Value and
Bilirubin
Pretreatment Unit of Measure SSDIs are coded consistently with each
other

1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00220.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Bilirubin Pretreatment Total Lab Value or Bilirubin
        Pretreatment Unit of Measure is blank or coded not applicable

2.  If Bilirubin Pretreatment Total Lab Value = XXX.7 (test ordered,
    results not in chart) Bilirubin Pretreatment Unit of Measure must = 7
    (test ordered, results not in chart)

3. If Bilirubin Pretreatment Total Lab Value = XXX.9 (not assessed
    or unknown) Bilirubin Pretreatment Unit of Measure must = 9
    (not assessed or unknown)]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-16" ref="69240">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN6820" name="Creatinine Pretreatment Lab, Unit of Measure, Liver (NAACCR)" tag="N6820" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId == null || line.schemaId != '00220' || line.typeOfReportingSource == '7')
    return true
if (line.creatininePretreatmentLabValue == null || line.creatininePretreatmentLabValue == 'XX.8' || line.creatininePretxUnitOfMeasure == null || line.creatininePretxUnitOfMeasure == '8')
    return true

if (line.creatininePretreatmentLabValue == 'XX.7')
    return line.creatininePretxUnitOfMeasure == '7'

if (line.creatininePretreatmentLabValue == 'XX.9')
    return line.creatininePretxUnitOfMeasure == '9'

return true]]></expression>
            <message>Conflict between Creatinine Pretreatment Lab Value and Creatinine Pretreatment Unit of Measure</message>
            <description><![CDATA[This edit verifies that Creatinine Pretreatment Lab Value and Creatinine
Pretreatment Unit of Measure SSDIs are coded consistently with each other

1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2023, blank (unknown), or invalid.
    b. Schema ID is blank or not 00220.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. Creatinine Pretreatment Lab Value or Creatinine Pretreatment Unit of Measure
        is blank or not applicable

2.  If Creatinine Pretreatment Lab Value = XX.7 (test ordered, results not in chart)
     Creatinine Pretreatment Unit of Measure must = 7 (test ordered, results not in chart)

3. If Creatinine Pretreatment Lab Value = XX.9 (not assessed or unknown)
    Creatinine Pretreatment Unit of Measure must = 9 (not assessed or unknown)]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-26" ref="69241">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN6822" name="LDH Lab/Upper Limits/LDH Level, Melanoma Skin (NAACCR)" tag="N6822" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear < '2023' || line.dateOfDiagnosisYear == null || line.schemaId != '00470' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true

boolean ldhLevelBlankNa = line.ldhPretreatmentLevel == null || line.ldhPretreatmentLevel == '8'
boolean ldhUpperLimitsOfNormalBlankNa = line.ldhUpperLimitsOfNormal == null || line.ldhUpperLimitsOfNormal == 'XX8'
boolean ldhLabValueBlankNa = line.ldhPretreatmentLabValue == null || line.ldhPretreatmentLabValue == 'XXXXX.8'
if (ldhLevelBlankNa && ldhUpperLimitsOfNormalBlankNa && ldhLabValueBlankNa)
    return true

if (!ldhUpperLimitsOfNormalBlankNa) {
    boolean isLabValueValidInt = Functions.matches(line.ldhPretreatmentLabValue, /^\d{1,5}\.\d$/)
    boolean isUpperLimitValidInt = Functions.matches(line.ldhUpperLimitsOfNormal, /^\d\d\d$/) && line.ldhUpperLimitsOfNormal != '000'

    if (isLabValueValidInt && isUpperLimitValidInt) {
        Integer ldhLabValueInt = Functions.asInt(line.ldhPretreatmentLabValue.substring(0, line.ldhPretreatmentLabValue.length() - 2))
        Integer ldhUpperLimitInt = Functions.asInt(line.ldhUpperLimitsOfNormal)

        if (ldhLabValueInt <= ldhUpperLimitInt && line.ldhPretreatmentLevel != '0')
            return false
        if (ldhLabValueInt > ldhUpperLimitInt && line.ldhPretreatmentLevel != '1')
            return false
    }
}

if (line.ldhPretreatmentLabValue == 'XXXXX.1' && line.ldhPretreatmentLevel != '1')
    return false

return true]]></expression>
            <message>Conflict among LDH Lab Value, LDH Upper Limits of Normal, and LDH Level</message>
            <description><![CDATA[This edit verifies that LDH Lab Value, LDH Upper Limits of Normal, and LDH Level SSDIs are coded consistently with each other

1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2023, blank (unknown), or invalid.
    b. Schema ID is blank or not 00470.
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. LDH Lab Value and LDH Upper Limits of Normal and LDH Level are all blank or coded not applicable

2. If LDH Upper Limits of Normal is not blank and not = XX8

    a. If LDH Lab Value <= LDH Upper Limits of Normal,
        LDH Level must = 0 (normal)

    b. If LDH Lab Value > LDH Upper Limits of Normal
        LDH Level must = 1 (elevated

3. If LDH Lab Value = XXXXX.1 (100,000 U/L or greater)
    LDH Level must = 1 (elevated)]]]></description>
            <history>
                <event version="SE24-024-06" user="cooki" date="2024-07-19" ref="69507">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6823" name="EOD Primary Tumor, Nasal Cavity, Primary Site (SEER)" tag="N6823" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear < '2018' || line.dateOfDiagnosisYear == null || line.schemaId != '00122' || line.schemaId == null
            || line.eodPrimaryTumor == null || line.primarySite == null || line.typeOfReportingSource == '7')
    return true

if (line.eodPrimaryTumor == '150' || line.eodPrimaryTumor == '175')
    return line.primarySite == 'C300'

return true]]></expression>
            <message>Conflict between Primary Site and EOD Primary Tumor</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor is coded consistently with Primary
Site for Schema ID 00120, Nasal Cavity, Ethmoid Sinus.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2018, blank (unknown), or invalid.
    b. Schema ID is blank or not 00122
    c. EOD Primary Tumor is blank
    d. Primary Site is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)


2. If EOD Primary Tumor = 150 or 175 (Nasal Cavity only),
   then Primary Site must = C300]]></description>
            <history>
                <event version="SE23-023-04" user="cooki" date="2023-06-13" ref="69230">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6824" name="EOD Primary Tumor, NET Adrenal, Histology (SEER)" tag="N6824" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear < '2018' || line.dateOfDiagnosisYear == null || line.schemaId != '00770' || line.schemaId == null
            || line.eodPrimaryTumor == null || line.histologicTypeIcdO3 == null || line.typeOfReportingSource == '7')
    return true

if (line.eodPrimaryTumor == '100')
    return line.histologicTypeIcdO3 == '8700'

if (line.eodPrimaryTumor == '200')
    return ['8680','8690','8692','8693'].contains(line.histologicTypeIcdO3)

return true]]></expression>
            <message>Conflict between Histologic Type ICD-O-3 and EOD Primary Tumor</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor code 100 is coded
consistently with
Histology for Schema ID 00770 NET Adrenal.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2018, blank (unknown), or invalid.
    b. Schema ID is blank or not 00770
    c. Histologic Type ICD-O-3 is blank
    d. EOD Primary Tumor is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If EOD Primary Tumor = 100 (any size Pheochromocytoma)
          Histologic Type ICD-O-3 must = 8700

3. If EOD Primary Tumor = 200 (any size Paraganglioma)
          Histologic Type ICD-O-3 must = 8680, 8690, 8692, or 8693]]></description>
            <history>
                <event version="SE23-023-04" user="cooki" date="2023-06-13" ref="69230">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6827" name="EOD Primary Tumor, NET Duodenum, Tumor Size (SEER)" tag="N6827" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear < '2018' || line.dateOfDiagnosisYear > '2023' || line.dateOfDiagnosisYear == null || line.schemaId != '00301' || line.schemaId == null
            || line.eodPrimaryTumor == null || line.typeOfReportingSource == '7' || (line.tumorSizeClinical == null && line.tumorSizePathologic == null))
    return true

if (line.eodPrimaryTumor == '100') {
    if (!Functions.matches(line.tumorSizePathologic, /^(00[1-9]|010|990|999)$/) && !Functions.matches(line.tumorSizeClinical, /^(00[1-9]|010|990|999)$/))
        return false

    if (line.tumorSizeSummary != null && !Functions.matches(line.tumorSizeSummary, /^(00[1-9]|010|990|999)$/))
        return false
}
return true]]></expression>
            <message>EOD Primary Tumor conflicts with Tumor Size Summary</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor code 100 is coded
consistently with
Tumor Size Clinical, Tumor Size Pathologic, and Tumor Size Summary
for Schema
ID 00301 NET Duodenum

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2018, after 2023, blank (unknown), or invalid.
    b. Schema ID is blank or not 00301
    c. Tumor Size Clinical and Tumor Size Pathologic are both blank
    d. EOD Primary Tumor is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If EOD Primary Tumor = 100 (Tumor less than or equal to 1cm AND
confined to
   Intramucosal NOS, lamina propria, Mucosa NOS, Muscularis mucosae,
Submucosa;
   Localized NOS)
    a.  Tumor Size Pathologic must = 001-010, 990, 999 or Tumor Size
Clinical must
         = 001-010, 990, 999
    b.  Tumor Size Summary if not blank must = 001-010, 990, 999]]></description>
            <history>
                <event version="SE23-023-04" user="cooki" date="2023-06-14" ref="69230">Edit created.</event>
                <event version="SE24-024-01" user="cooki" date="2024-03-08" ref="69397">Added 2024 skip condition.</event>
            </history>
        </rule>
        <rule id="IFN6828" name="EOD Primary Tumor, Prostate, RX Summ--Surg Prim Site 2023 (SEER)" tag="N6828" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId != '00580' || line.eodPrimaryTumor == null
            || line.rxSummSurgPrimSite2023 == null || line.typeOfReportingSource == '7')
    return true

if (['100','110','150'].contains(line.eodPrimaryTumor) && Functions.matches(line.prostatePathologicalExtension, /^[89]\d\d$/))
    return Functions.matches(line.rxSummSurgPrimSite2023, /^A(2[0145]\d|220|260|300)$/)

return true]]></expression>
            <message>Conflict among EOD Primary Tumor, RX Summ--Surg Prim Site 2023, EOD Prostate Pathologic Extension</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor is coded consistently
with RX Summ--Surg Prim Site 2023 for Schema ID 00580, Prostate.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2023, blank (unknown), or invalid.
    b. Schema ID is blank or not 00580
    c. EOD Primary Tumor is blank
    d. RX Summ--Surg Prim Site 2023 is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If EOD Primary Tumor = 100, 110, or 150 (incidental finding for example on
    TURP)
   if EOD Prostate Pathologic Extension = 800-999 (no tumor at prostatectomy or
   no prostatectomy or unknown if prostatectomy done)
   RX Summ--Surg Prim Site 2023 must = A200-A220, A240-A260 (TURP), A300 (simple
prostatectomy)]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-21" ref="69236">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6829" name="EOD Primary Tumor, Stomach, Morphology ICDO3 (SEER)" tag="N6829" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear < '2018' || line.dateOfDiagnosisYear == null || line.schemaId != '00170' || line.schemaId == null
            || line.eodPrimaryTumor == null || line.histologicTypeIcdO3 == null || line.behaviorCodeIcdO3 == null || line.typeOfReportingSource == '7')
    return true

if (line.histologicTypeIcdO3 == '8142' && line.behaviorCodeIcdO3 == '3')
    return ['400','500','600','650','700','750'].contains(line.eodPrimaryTumor)

return true]]></expression>
            <message>Histo/Beh conflict with EOD Primary Tumor</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor is coded consistently with
Histologic
Type ICD-O-3 code for linitis plastica for Schema ID 00170, Stomach.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2018, blank (unknown), or invalid.
    b. Schema ID is blank or not 00170
    c. EOD Primary Tumor is blank
    d. Histologic Type ICD-O-3 is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)


2. If Histologic Type ICD-O-3 = 8142/3 (linitis plastica),
    EOD Primary Tumor must = 400 (linitis plastica with no other
   information on tumor) or higher (500, 600, 650, 700, 750)]]></description>
            <history>
                <event version="SE23-023-04" user="cooki" date="2023-06-14" ref="69230">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6830" name="Serum Tumor Markers, Testis, RX Summ--Surg Prim Site 2023 (SEER)" tag="N6830" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId == null || line.schemaId != '00590' || line.rxSummSurgPrimSite2023 == null
            || line.typeOfReportingSource == '7')
    return true

if ((line.afpPostOrchiectomyLabValue == null || line.afpPostOrchiectomyLabValue == 'XXXXX.8') && (line.afpPostOrchiectomyRange == null || line.afpPostOrchiectomyRange == '8')
    && (line.hcgPostOrchiectomyLabValue == null || line.hcgPostOrchiectomyLabValue == 'XXXXX.8') && (line.hcgPostOrchiectomyRange == null || line.hcgPostOrchiectomyRange == '8')
    && (line.ldhPostOrchiectomyRange == null || line.ldhPostOrchiectomyRange == '8') && (line.sCategoryPathological == null || line.sCategoryPathological == '9'))
    return true

if (Functions.matches(line.afpPostOrchiectomyLabValue, /^XXXXX\.[17]|(0|[1-9]\d{0,4})\.\d$/) || Functions.matches(line.afpPostOrchiectomyRange, /^[0-47]$/)
    || Functions.matches(line.hcgPostOrchiectomyLabValue, /^XXXXX\.[17]|(0|[1-9]\d{0,4})\.\d$/) || Functions.matches(line.hcgPostOrchiectomyRange, /^[0-47]$/)
    || Functions.matches(line.ldhPostOrchiectomyRange, /^[0-47]$/) || Functions.matches(line.sCategoryPathological, /^[0-3]$/))
    return ['A300','A400','A800'].contains(line.rxSummSurgPrimSite2023)

return true]]></expression>
            <message>Conflict between RX Summ--Surg Prim Site 2023 and Serum Tumor Marker values</message>
            <description><![CDATA[This edit verifies that Serum Tumor Marker SSDIs are coded consistently with RX Summ--Surg Prim Site 2023 for Schema ID 00590, Testis.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2023, blank (unknown), or invalid.
    b. Schema ID is blank or not 00590
    c. All tumor marker SSDIs are blank or not applicable [S Category Pathological blank or 9]
    d. RX Summ--Surg Prim Site 2023 is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)


2. If Tumor Marker SSDIs = Post-Orchiectomy values:
    AFP Post-Orchiectomy Lab Value = 0.0-99999.9 or XXXXX.1 or XXXXX.7 or
    AFP Post-Orchiectomy Range = 0-4 or 7 or
    hCG Post-Orchiectomy Lab Value = 0.0-99999.9 or XXXXX.1 or XXXXX.7 or
    hCG Post-Orchiectomy Range = 0-4 or 7 or
    LDH Post-Orchiectomy Range = 0-4 or 7 or
    S Category Pathological = 0-3
        RX Summ--Surg Prim Site 2023 must = A300, A400, or A800 (orchiectomy)]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-26" ref="69241">Edit Created.</event>
                <event version="SE24-024-01" user="kirbyk" date="2024-02-06" ref="69347">Added S Category Pathological = 9 to skip condition.</event>
            </history>
        </rule>
        <rule id="IFN6837" name="AFP Pre/Post Treatment Range, Testis (NAACCR)" tag="N6837" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.schemaId != '00590' || line.typeOfReportingSource == '7')
    return true
if (line.afpPreOrchiectomyRange == null || line.afpPreOrchiectomyRange == '8' || line.afpPostOrchiectomyRange == null || line.afpPostOrchiectomyRange == '8')
    return true

if (line.afpPostOrchiectomyRange == '5')
    return line.afpPreOrchiectomyRange == '0'

return true]]></expression>
            <message>Conflict between AFP Post-Orchiectomy Range and AFP Pre-Orchiectomy Range</message>
            <description><![CDATA[This edit verifies that AFP Pre-Orchiectomy Range and AFP Post-
Treatment Orchiectomy Range SSDIs are coded consistently with each other for Schema ID 00590, Testis.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00590
    c. AFP Pre-Orchiectomy Range or AFP Post-Orchiectomy Range is
        blank or not applicable
    d. Type of Reporting Source is 7 (Death Certificate Only)

2. If AFP Post-Orchiectomy Range = 5 (Post-Orchiectomy not done or
unknown but Pre-Orchiectomy within normal limits)
    AFP Pre-Orchiectomy Range must = 0 (within normal limits)]]></description>
            <history>
                <event version="SE23-023-04" user="shearerw" date="2023-06-09" ref="69229">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN6838" name="hCG Pre/Post Treatment Range, Testis (NAACCR)" tag="N6838" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.schemaId != '00590' || line.typeOfReportingSource == '7')
    return true
if (line.hcgPreOrchiectomyRange == null || line.hcgPreOrchiectomyRange == '8' || line.hcgPostOrchiectomyRange == null || line.hcgPostOrchiectomyRange == '8')
    return true

if (line.hcgPostOrchiectomyRange == '5')
    return line.hcgPreOrchiectomyRange == '0'

return true]]></expression>
            <message>Conflict between hCG Post-Orchiectomy Range and hCG Pre-Orchiectomy Range</message>
            <description><![CDATA[This edit verifies that hCG Pre-Orchiectomy Range and hCG Post-
Treatment Orchiectomy Range SSDIs are coded consistently with each other for Schema ID 00590, Testis.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00590
    c. hCG Pre-Orchiectomy Range or hCG Post-Orchiectomy Range is
        blank or not applicable
    d. Type of Reporting Source is 7 (Death Certificate Only)

2. If hCG Post-Orchiectomy Range = 5 (Post-Orchiectomy not done or
unknown but Pre-Orchiectomy within normal limits)
    hCG Pre-Orchiectomy Range must = 0 (within normal limits)]]></description>
            <history>
                <event version="SE23-023-04" user="shearerw" date="2023-06-09" ref="69229">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN6839" name="LDH Pre/Post Treatment Range, Testis (NAACCR)" tag="N6839" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.schemaId == null || line.schemaId != '00590' || line.typeOfReportingSource == '7')
    return true
if (line.ldhPreOrchiectomyRange == null || line.ldhPreOrchiectomyRange == '8' || line.ldhPostOrchiectomyRange == null || line.ldhPostOrchiectomyRange == '8')
    return true

if (line.ldhPostOrchiectomyRange == '5')
    return line.ldhPreOrchiectomyRange == '0'

return true]]></expression>
            <message>Conflict between LDH Post-Orchiectomy Range and LDH Pre-Orchiectomy Range</message>
            <description><![CDATA[This edit verifies that LDH Pre-Orchiectomy Range and LDH Post-
Treatment Orchiectomy Range SSDIs are coded consistently with each other for Schema ID 00590, Testis.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00590
    c. LDH Pre-Orchiectomy Range or LDH Post-Orchiectomy Range is
        blank or not applicable
    d. Type of Reporting Source is 7 (Death Certificate Only)

2. If LDH Post-Orchiectomy Range = 5 (Post-Orchiectomy not done or
unknown but Pre-Orchiectomy within normal limits)
    LDH Pre-Orchiectomy Range must = 0 (within normal limits)]]></description>
            <history>
                <event version="SE23-023-04" user="shearerw" date="2023-06-09" ref="69229">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN6840" name="Date of SLN Biopsy, Date RLN Dissection (NAACCR)" tag="N6840" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || (line.schemaId != '00470' && line.schemaId != '00480')
            || line.rxSummScopeRegLnSur == null || line.typeOfReportingSource == '7')
    return true
if (line.dateSentinelLymphNodeBiopsyYear == null && line.dateSentinelLymphNodeBiopsyMonth == null && line.dateSentinelLymphNodeBiopsyDay == null)
    return true
if (line.dateRegionalLNDissectionYear == null && line.dateRegionalLNDissectionMonth == null && line.dateRegionalLNDissectionDay == null)
    return true

if (line.dateSentinelLymphNodeBiopsyYear != line.dateRegionalLNDissectionYear || line.dateSentinelLymphNodeBiopsyMonth != line.dateRegionalLNDissectionMonth
    || line.dateSentinelLymphNodeBiopsyDay != line.dateRegionalLNDissectionDay)
    return line.rxSummScopeRegLnSur == '7'
else
    return line.rxSummScopeRegLnSur == '6'

return true]]></expression>
            <message>RX Summ--Scope Reg LN Sur conflicts with Date Regional Lymph Node Dissection and Date of Sentinel Lymph Node Biopsy</message>
            <description><![CDATA[1. This edit is skipped for any of the following conditions:
    a. Schema ID is not 00470 (Melanoma of Skin) or 00480 (Breast)
    b. Date of diagnosis is pre2023, blank (unknown), or invalid.
    c. Date of Sentinel Lymph Node Biopsy is blank
    d. Date Regional Lymph Node Dissection is blank
    d. RX Summ--Scope Reg LN Sur is blank
    e. Type of Reporting Source = 7 (death certificate only)

2. If Date of Sentinel Node Biopsy and Date Regional Lymph Node Dissection are not
    the same RX Summ--Scope Reg LN Sur must = 7 (sentinel node biopsy and regional
    nodes removed at different times)

3. If Date of Sentinel Node Biopsy and Date Regional Lymph Node Dissection are the
    same, RX Summ--Scope Reg LN Sur must = 6 (sentinel node biopsy and regional
    nodes removed at the same time)


   STORE Manual: This data item documents the date of sentinel node biopsy;
    do not record the date of lymph node aspiration, fine needle aspiration, fine
    needle aspiration biopsy, core needle biopsy, or core biopsy.]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-26" ref="69241">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN6844" name="Grade, Unknown Primary (NAACCR)" tag="N6844" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.primarySite == null || line.primarySite != 'C809'
            || (line.gradeClinical == null && line.gradePathological == null) || line.typeOfReportingSource == '7')
    return true
if (['00790','00795','00811','00821','00822','00830'].contains(line.schemaId))
    return true

return line.gradeClinical == '9' && line.gradePathological == '9' && (line.gradePostTherapyClin == null || line.gradePostTherapyClin == '9')
    && (line.gradePostTherapy == null || line.gradePostTherapy == '9')]]></expression>
            <message>Grade conflicts for Unknown Primary Site</message>
            <description><![CDATA[This edit checks that grade is coded as unknown for unknown primary, C809.

1. This edit is skipped for
    a. Diagnosis date blank (unknown), invalid, or before 2023.
    b. Primary Site is blank or not C809
    c. Grade Clinical and Grade Pathological are both blank
    d. Schema ID is 00790, 00795, 00811, 00821, 00822, 00830 (Schemas where grade  = 8)
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. If Primary Site = C809 (unknown primary)
    Grade Clinical must = 9
    Grade Pathological must = 9
    Grade Post Therapy Clin (yc) if not empty must = 9
    Grade Post Therapy Path (yp) if not empty must = 9]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-26" ref="69241">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN6846" name="Mets at DX, Medulloblastoma, EOD Mets (SEER)" tag="N6846" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2024' || line.schemaId == null || line.schemaId != '09724' || line.eodMets == null
            || line.typeOfReportingSource == '7')
    return true

if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true

String eodMets = line.eodMets
if (line.metsAtDxBrain == '1' && !Functions.matches(eodMets, /^[1-4]5$/))
    return false
if (line.metsAtDxBone == '1' && !Functions.matches(eodMets, /^[2-4]5$/))
    return false
if ((line.metsAtDxDistantLn == '1' || line.metsAtDxLiver == '1' || line.metsAtDxLung == '1' || line.metsAtDxOther == '2') && eodMets != '45')
    return false

if (eodMets == '15' )
    return line.metsAtDxBrain == '1' || line.metsAtDxOther == '1'
else if (eodMets == '35')
    return line.metsAtDxBone == '1' || line.metsAtDxBrain == '1' || line.metsAtDxOther == '1'
else if (eodMets == '45')
    return line.metsAtDxBone == '1' || line.metsAtDxDistantLn == '1' || line.metsAtDxLiver == '1' || line.metsAtDxLung == '1' || line.metsAtDxOther == '1' || line.metsAtDxOther == '2'

return true]]></expression>
            <message>Mets at DX data items conflict with EOD Mets</message>
            <description><![CDATA[This edit verifies that Mets at DX-Bone, Mets at DX-Brain,
Mets at DX-Distant LN, Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other
are coded consistently with EOD Mets for Schema ID 09724, Medulloblastoma.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2024, blank (unknown), or invalid.
    b. Schema ID is blank or not 09724
    c. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN,
        Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other are all blank
    d. EOD Mets is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)


2. If Mets at DX-Brain = 1
    then EOD Mets must = 15, 25, 35, 45

3. If Mets at DX-Bone = 1
    then EOD Mets must = 25, 35, 45

4. If Mets at DX-Distant LN = 1, Mets at DX-Liver = 1, Mets at DX-Lung = 1, or Mets at DX-Other = 2
    then EOD Mets must = 45.

5. If EOD Mets = 15
    Mets at DX-Brain must = 1 or Mets at DX-Other must = 1

6. If EOD Mets = 35
    Mets at DX-Bone, Mets at DX-Brain, or Mets at DX-Other must = 1

7 If EOD Mets = 45
    Mets at DX-Bone must = 1 or Mets at DX-Distant LN must = 1 or Mets at DX-Liver must = 1 or Mets
    at DX-Lung must = 1 or Mets at DX-Other must = 1, 2]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-15" ref="69242">Edit Created.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-02" ref="69498">Updated edit based on v24A logic.</event>
            </history>
        </rule>
        <rule id="IFN6847" name="Brain Molecular Markers, Version 9 (NAACCR)" tag="N6847" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.brainMolecularMarkers == null || line.brainMolecularMarkers == '88'
            || (line.schemaId != '09721' && line.schemaId != '09724') || line.typeOfReportingSource == '7')
    return true

if (line.brainMolecularMarkers == '08' || line.brainMolecularMarkers == '09')
    return line.schemaId == '09724'

if (Functions.matches(line.brainMolecularMarkers, /^(0[1-7]|1\d|2[0-3])$/))
    return line.schemaId != '09724'

return true]]></expression>
            <message>Brain Molecular Markers not valid for Schema ID</message>
            <description><![CDATA[This edit verifies that the brain molecular marker SSDI is coded consistently
with Brain Schema ID for Version 9.

1. The edit is skipped for the following conditions:
    a. Diagnosis date is before 2023, blank (unknown), or invalid.
    b. Schema ID not = 09721 or 09724
    c. Brain Molecular Markers is blank or 88 (not applicable).
    d. Type of Reporting Source = 7 (Death Certificate Only)

2. The edit verifies that if Brain Molecular Markers is coded 08 or 09,
    Schema ID is 09724

    08: Medulloblastoma, SHH-activated and TP53-wildtype (9471/3)
    09: Embryonal tumor with multilayered rosettes, C19MC-altered (9478/3)

3. The edit verifies that if Brain Molecular Markers is coded 01-07, or 10-23,
    Schema ID is not 09724]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-15" ref="69242">Edit Created.</event>
                <event version="SE24-024-01" user="cooki" date="2024-03-15" ref="69392">ICD-O-3 skip condition removed and codes 10-23 added.</event>
            </history>
        </rule>
        <rule id="IFN6879" name="EOD Prostate Pathologic Extension, RX Summ--Treatment Status (SEER)" tag="N6879" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId == null || line.schemaId != '00580' || line.rxSummTreatmentStatus == null
            || line.prostatePathologicalExtension == null || line.typeOfReportingSource == '7')
    return true

if (line.rxSummTreatmentStatus == '2')
    return line.prostatePathologicalExtension == '900' || line.prostatePathologicalExtension == '950'

return true]]></expression>
            <message>Conflict between RX Summ--Treatment Status and EOD Prostate Pathologic Extension</message>
            <description><![CDATA[This edit verifies that EOD Prostate Pathologic Extension is coded consistently
with RX Summ--Treatment Status for Schema ID 00580, Prostate.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2023, blank (unknown), or invalid.
    b. Schema ID is blank or not 00580
    c. EOD Prostate Pathologic Extension is blank
    d. RX Summ--Treatment Status is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If RX Summ--Treatment Status = 2 (Active surveillance)
    EOD Prostate Pathologic Extension must = 900 (no prostatectomy performed) or
    950 (Radical prostatectomy performed but not first course of treatment)]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-15" ref="69242">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN6880" name="EOD Primary Tumor, Prostate, RX Summ--Surg Prim Site 03-2022 (SEER)" tag="N6880" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || (line.dateOfDiagnosisYear != '2021' && line.dateOfDiagnosisYear != '2022') || line.schemaId == null || line.schemaId != '00580'
            || line.eodPrimaryTumor == null || line.rxSummSurgPrimSite == null || line.typeOfReportingSource == '7')
    return true

if (['100','110','150'].contains(line.eodPrimaryTumor) && Functions.matches(line.prostatePathologicalExtension, /^[89]\d\d$/))
    return Functions.matches(line.rxSummSurgPrimSite, /^2[012456]|30$/)

return true]]></expression>
            <message>Conflict among EOD Primary Tumor, RX Summ--Surg Prim Site 03-2022, EOD Prostate Pathologic Extension</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor is coded consistently
with RX Summ--Surg Prim Site 03-2022 for Schema ID 00580, Prostate.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis = blank (unknown), invalid, or not 2021 or 2022.
    b. Schema ID is blank or not 00580
    c. EOD Primary Tumor is blank
    d. RX Summ--Surg Prim Site 03-2022 is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If EOD Primary Tumor = 100, 110, or 150 (incidental finding for example on
    TURP)
    if EOD Prostate Pathologic Extension = 800-999 (no tumor at prostatectomy or
    no prostatectomy or unknown if prostatectomy done)
    RX Summ--Surg Prim Site 03-2022 must = 20-22, 24-26 (TURP), 30 (simple prostatectomy)]]></description>
            <history>
                <event version="SE23-023-05" user="shearerw" date="2023-06-15" ref="69242">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN6882" name="Fibrosis Score, Schema ID, Required (SEER)" tag="N6882" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true

return (line.schemaId != '00220' && line.schemaId != '00230') || (line.fibrosisScore != null && line.fibrosisScore != '8')]]></expression>
            <message>Fibrosis Score must not be blank or not applicable for Schema ID cases diagnosed 2023 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2023, blank (unknown), or invalid
    b. Schema ID is blank
    c. Type of Reporting Source = 7 (death certificate only)

Fibrosis Score is required by SEER from all reporting sources 2023+


2. This edit verifies that Fibrosis Score is not "8" (not applicable) and not
   blank for the Schema IDs for which it is required by a standard setter.

    Required for Schema ID:

    00220: Liver
    00230: Intrahepatic Bile Ducts
]]></description>
            <history>
                <event version="SE23-023-02" user="cooki" date="2023-05-03" ref="69237">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6883" name="Gleason Score Clinical, Schema ID, Required (SEER)" tag="N6883" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true

return line.schemaId != '00580' || (line.gleasonScoreClinical != null && line.gleasonScoreClinical != 'X8')]]></expression>
            <message>Gleason Score Clinical must not be blank or not applicable for Schema ID cases diagnosed 2023 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2023, blank (unknown), or invalid
    b. Schema ID is blank
    c. Type of Reporting Source = 7 (death Certificate only)

Gleason Score Clinical is required by SEER from all reporting
sources 2023+.


2. This edit verifies that Gleason Score Clinical is not "X8" (not
applicable)
   and not blank for the Schema IDs for which it is required by a
standard setter.

    Required for Schema ID:

    00580: Prostate

]]></description>
            <history>
                <event version="SE23-023-02" user="cooki" date="2023-05-03" ref="69237">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6884" name="Gleason Score Pathological, Schema ID, Required (SEER)" tag="N6884" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true

return line.schemaId != '00580' || (line.gleasonScorePathological != null && line.gleasonScorePathological != 'X8')]]></expression>
            <message>Gleason Score Pathological must not be blank or not applicable for Schema ID cases diagnosed 2023 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Diagnosis date before 2023, blank (unknown), or invalid
    b. Schema ID is blank
    c. Type of Reporting Source = 7 (death certificate only)

Gleason Score Pathological is required by SEER from all reporting
sources 2023+.


2. This edit verifies that Gleason Score Pathological is not "X8"
(not
   applicable) and not blank for the Schema IDs for which it is
required by a
   standard setter.

    Required for Schema ID:

    00580: Prostate

]]></description>
            <history>
                <event version="SE23-023-02" user="cooki" date="2023-05-03" ref="69237">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6886" name="p16, Schema ID, Required (SEER)" tag="N6886" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true

return (!['09210','09520','09500'].contains(line.schemaId)) || (line.p16 != null && line.p16 != '8')]]></expression>
            <message>p16 must not be blank or not applicable for Schema ID cases diagnosed 2023 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2023, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)

p16 is required by SEER for cases reported from all sources 2023+

2. This edit verifies that p16 is not "8" (not applicable) and not
   blank for the Schema IDs for which it is required by a standard
setter.

    Required for Schema ID:

    09210: Anus, V9
    09520: Cervix, V9
    09500: Vulva, V9

]]></description>
            <history>
                <event version="SE23-023-02" user="cooki" date="2023-05-03" ref="69237">Edit created.</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-04" ref="69403">Added logic for Schema ID 09500.</event>
            </history>
        </rule>
        <rule id="IFN6902" name="Grade Clin, Grade Path 2023 (NAACCR)" tag="N6902" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.gradePathological == null || line.gradePathological == '9'
            || line.gradeClinical == null || line.gradeClinical == '8' || line.gradeClinical == '9' || ['00721','00722','00723','09721','09722','09723','09724'].contains(line.schemaId))
    return true

boolean isGradeClinValid = Functions.matches(line.gradeClinical, /^[0-9]$/)
boolean isGradePathValid = Functions.matches(line.gradePathological, /^[0-9]$/)

if (Functions.matches(line.rxSummSurgPrimSite2023, /^A[3-8]\d\d|A900|B[3-8]\d\d|B900$/)) {
    if (line.gradePostTherapy == null && isGradeClinValid && isGradePathValid)
        return line.gradeClinical <= line.gradePathological && line.gradePathological != '8'
}

return true]]></expression>
            <message>Grade Pathological must not be less than Grade Clinical and not = 8 if Grade Clinical = 1-5, Grade Post Therapy Path (yp) is blank, and RX Summ--Surg Prim Site 2023 = A300-A900</message>
            <description><![CDATA[This edit checks that Grade Clinical is used to code Grade Pathological if the
grade on clinical pathology is higher than the grade on surgical pathology.

From the Grade Manual:
"Record the highest grade documented from any microscopic specimen of the primary
site whether from the clinical workup or the surgical resection."

1. This edit is skipped under the following conditions:
    a. Date of diagnosis = before 2023, blank (unknown) or invalid.
    b. Grade Pathological is blank or = 9.
    c. Grade Clinical is blank or = 8 or 9.
    d. Schema ID = 00721, 00722, 00723, 09721, 09722, 09723, 09724

2. If surgery is performed (RX Summ--Surg Prim Site 2023 = A300-A900, B300-B900),
   if Grade Clinical and Grade Pathological are numeric and Grade Post Therapy
   Path (yp) = blank,
    Grade Pathological must not be less than Grade Clinical and must not = 8
    (not applicable)]]></description>
            <history>
                <event version="SE23-023-05" user="cooki" date="2023-06-26" ref="69247">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN6904" name="Macroscopic Evaluation of Mesorectum, Rectum, Surgery 2023 (SEER)" tag="N6904" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.primarySite != 'C209' || line.macroscopicEvalOfTheMesorectum == null ||
            line.rxSummSurgPrimSite2023 == null || line.typeOfReportingSource == '6' || line.typeOfReportingSource == '7')
    return true

if (Functions.matches(line.rxSummSurgPrimSite2023, /^A000|A1[0-4]\d|A150|A2[0-7]\d|A280$/))
    return line.macroscopicEvalOfTheMesorectum == '00'

if (line.rxSummSurgPrimSite2023 == 'A990')
    return line.macroscopicEvalOfTheMesorectum == '99'

return true]]></expression>
            <message>Conflict between Macroscopic Evaluation of Mesorectum and Type of Reporting Source</message>
            <description><![CDATA[Purpose: This edit verifies that Macroscopic Evaluation of
Mesorectum is coded consistently with RX Summ--Surg Prim Site 2023 for Rectum.

1. This edit is skipped if any of the following conditions is true:

    a. Year of Date of Diagnosis is less than 2023, blank (unknown),
or invalid
    b. Primary Site is not C209
    c. Macroscopic Evaluation of Mesorectum is blank
    d. RX Summ--Surg Prim Site 2023 is blank
    e. Type of Reporting Source = 6 (Autopsy Only) or 7 (Death Certificate Only)


2. If RX Summ--Surg Prim Site 2023 = A000 (no surgery), A100-A150 (tumor
    destruction without pathology specimen), or A200-A280 (local excision)
    Macroscopic Evaluation of Mesorectum must = 00 (Patient did not
    receive TME)

3. If RX Summ-Surg Prim Site 2023 = A990 (unknown if surgery performed),
    Macroscopic Evaluation of Mesorectum must = 99 (Unknown if TME performed)]]></description>
            <history>
                <event version="SE23-023-05" user="cooki" date="2023-06-21" ref="69232">Edit created.</event>
                <event version="SE24-024-01" user="shearerw" date="2024-02-06" ref="69362">Add logic for code A990 for RX Summ-Surg Prim Site 2023.</event>
                <event version="SE24-024-04" user="beverung" date="2024-04-12" ref="69450">Don&apos;t allow Macroscopic Evaluation of Mesorectum must = 99 for condition 2.</event>
            </history>
        </rule>
        <rule id="IFN7016" name="RX Summ--Surg Prim Site 2023, Breast, Recon Breast (NAACCR)" tag="N7016" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2024' || line.typeOfReportingSource == '7')
    return true
if (line.primarySite == null || !Functions.matches(line.primarySite, /^C50\d$/))
    return true
if (line.rxSummSurgPrimSite2023 == null && line.rxSummReconBreast == null)
    return true

if (line.rxSummSurgPrimSite2023 == 'B000' && line.rxSummReconBreast != 'A000')
    return false
if (line.rxSummSurgPrimSite2023 == 'B990' && line.rxSummReconBreast != 'A990')
    return false
if (Functions.matches(line.rxSummReconBreast, /^A6[0-4]0$/))
    return Functions.matches(line.rxSummSurgPrimSite2023, /^B([3-7]\d\d|800)$/)
return true
]]></expression>
            <message>RX Summ--Surg Prim Site 2023 conflicts with RX Summ--Recon Breast</message>
            <description><![CDATA[This edit verifies that RX Summ--Surg Prim Site 2023 for breast and RX Summ--Recon Breast are coded consistently with each other.

1. This edit is skipped if any of the following conditions are true:
    a. Diagnosis date is blank (unknown), invalid, or before 2024
    b. Primary Site is blank or not C500-C509
    c. RX Summ--Surg Prim Site 2023 and RX Summ--Recon Breast are both blank
    d. Type of Reporting Source = 7 (Death Certificate Only)


2. If RX Summ--Surg Prim Site 2023 = B000 (no procedure performed),
    RX Summ--Recon Breast must = A000 (no reconstruction)

3. If RX Summ--Surg Prim Site 2023 = B990 (unknown if surgery performed)
    RX Summ--Recon Breast must = A990 (unknown if reconstruction performed)

4. If RX Summ--Recon Breast = A600, A610, A620, A630, or A640 (mastectomy reconstruction)
    RX Summ--Surg Surg Prim Site 2023 must = B300 through B800 (mastectomy procedures)
]]></description>
            <history>
                <event version="SE24-024-01" user="beverung" date="2024-03-11" ref="69434">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN7022" name="RX Summ--Recon Breast, Date DX (NAACCR)" tag="N7022" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.primarySite == null || !Functions.matches(line.primarySite, /^C50\d$/))
    return true

if (line.dateOfDiagnosisYear < '2022')
    return line.rxSummReconBreast == null
else
    return line.rxSummReconBreast == null || ((List)Context.IF7022_List1).contains(line.rxSummReconBreast)
]]></expression>
            <message>RX Summ--Recon Breast is not a valid code.</message>
            <description><![CDATA[1.  The edit is skipped for the following:
    a. Date of Diagnosis is blank (unknown), or invalid.
    b. Primary Site is blank or not C500-C509.

2. This data item must be blank for pre-2022 diagnoses.

3. Must be a valid RX Summ--Recon Breast code or blank:

    A000    No Reconstruction
            No immediate reconstruction was performed at any facility
    A100    Tissue expander placement
            Tissue expanders were placed without implant or tissue placement
    A200    Direct to implant placement
            Permanent implant is placed immediately following resection
    A300    Oncoplastic tissue rearrangement (not a formal mastopexy/reduction)
            Reconstruction performed with parenchymal flap or adjacent tissue transfer
    A400    Oncoplastic reduction and/or mastopexy
            Breast conserving resection and a breast reduction/lift is performed
    A500    Oncoplastic reconstruction with regional tissue flaps
            Breast conserving resection and reconstruction is performed with skin flaps
    A600    Mastectomy reconstruction with autologous tissue, source not specified
            Autologous tissue source is unknown or not specified
    A610    Mastectomy reconstruction with abdominal tissue
    A620    Mastectomy reconstruction with thigh tissue
    A630    Mastectomy reconstruction with gluteal tissue
    A640    Mastectomy reconstruction with back tissue
    A900    Reconstruction performed, method unknown
    A970    Implant based reconstruction, NOS
    A980    Autologous tissue-based reconstruction, NOS
    A990    Unknown if reconstruction performed
]]></description>
            <history>
                <event version="SE24-024-01" user="beverung" date="2024-03-11" ref="69434">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN7023" name="RX Summ--Recon Breast, Required (NAACCR)" tag="N7023" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2024' || line.typeOfReportingSource == '7')
    return true
if (line.primarySite == null || !Functions.matches(line.primarySite, /^C50\d$/))
    return true

return line.rxSummReconBreast != null
]]></expression>
            <message>RX Summ--Recon Breast must not be blank or not applicable for this Primary Site for cases diagnosed 2024 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2024, blank (unknown), or invalid.
    b. Primary site is blank or not = C500-C509.
    c. Type of Reporting Source = 7 (Death Certificate Only)

2. This edit verifies that RX Summ--Recon Breast is coded (not blank) for breast as required by a standard setter.

    Required for Primary Site C500-C509
]]></description>
            <history>
                <event version="SE24-024-01" user="beverung" date="2024-03-11" ref="69434">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN7027" name="Brain Primary Tumor Location, Date DX (NAACCR)" tag="N7027" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear < '2024' || line.primarySite != 'C717')
    return line.brainPrimaryTumorLocation == null

if (!['1','2','8','9'].contains(line.brainPrimaryTumorLocation) && line.brainPrimaryTumorLocation != null)
    return false

return true]]></expression>
            <message>Invalid code for Brain Primary Tumor Location</message>
            <description><![CDATA[The edit is skipped if Date of Diagnosis is blank (unknown), or invalid.

1. This data item must be blank for pre-2024 diagnoses.

2. Must be a valid Brain Primary Tumor Location code or blank:

    1: Pons
    2: Subsite other than Pons:
        Basis peduncle
        Cerebral peduncle
        Choroid plexus of fourth ventricle
        Fourth ventricle, NOS
        Infratentorial brain, NOS
        Medulla oblongata
        Mid brain
        Olive
        Pyramid
    8: Not applicable, information not collected for this case
    9: Brain stem, NOS
        Unknown subsite of Brain Stem
    Blank: Primary Site is NOT C717
              Diagnosis year is prior to 2024

3. This data item must be blank if Primary Site not = C717.


Another edit, Brain Primary Tumor Location, Schema ID, Required (NAACCR), checks that the item is coded by Schema ID if required by a standard setter.
]]></description>
            <history>
                <event version="SE24-024-03" user="cooki" date="2024-03-21" ref="69436">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN7028" name="Brain Primary Tumor Location, Schema ID, Required (NAACCR)" tag="N7028" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2024' || line.schemaId == null || line.typeOfReportingSource == '7')
    return true

if (line.primarySite == 'C717' && line.schemaId == '09721')
    return line.brainPrimaryTumorLocation != '8' && line.brainPrimaryTumorLocation != null

return true]]></expression>
            <message>Brain Primary Tumor Location must not be blank or not applicable for cases diagnosed 2024 and later</message>
            <description><![CDATA[1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2024, blank (unknown), or invalid.
    b. Schema ID is blank.
    c. Type of Reporting Source = 7 (Death Certificate Only)

2. This edit verifies that Brain Primary Tumor Location is not "8" and not blank for the Schema IDs for which it is required by a standard setter.

    Required for Schema ID:

    09721: Brain [V9: 2023+], primary site C717
]]></description>
            <history>
                <event version="SE24-024-03" user="cooki" date="2024-03-21" ref="69436">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN7038" name="S Category Clin/Path, Testis (NAACCR)" tag="N7038" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.schemaId == null || line.schemaId != '00590')
    return true
if (line.sCategoryClinical == null || line.sCategoryPathological == null)
    return true

if (line.sCategoryPathological == '5')
    return line.sCategoryClinical == '0'
return true
]]></expression>
            <message>Conflict between S Category Clinical and S Category Pathological</message>
            <description><![CDATA[This edit verifies that S Category Clinical and S Category Pathological SSDIs are coded consistently with each other for Schema ID 00590, Testis.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2021, blank (unknown), or invalid.
    b. Schema ID is blank or not 00590
    c. S Category Clinical or S Category Pathological is blank
    d. Type of Reporting Source is 7 (Death Certificate Only)


2. If S Category Pathological = 5 (Post-Orchiectomy serum tumor markers not done or unknown but Pre-Orchiectomy serum tumor markers within normal limits)
    S Category Clinical must = 0 (within normal limits)
]]></description>
            <history>
                <event version="SE24-024-03" user="beverung" date="2024-03-12" ref="69438">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN7039" name="Circumferential Resection Margin, Colon, RX Summ--Surgical Margins (NAACCR)" tag="N7039" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2024' || line.typeOfReportingSource == '7')
    return true
if (line.schemaId != '00200' || line.behaviorCodeIcdO3 == '2' || line.rxSummSurgicalMargins == null)
    return true
if (line.circumferentialResectionMargin == null || line.circumferentialResectionMargin == 'XX.8')
    return true

if (line.circumferentialResectionMargin == '0.0')
    if (!['0', '1', '2', '3'].contains(line.rxSummSurgicalMargins))
        return false

if (line.rxSummSurgicalMargins == '0')
    if (!Functions.matches(line.circumferentialResectionMargin, /^(\d\.\d|[1-9]\d\.\d|XX\.[0-79])$/))
        return false

if (line.rxSummSurgicalMargins == '7')
    if (!Functions.matches(line.circumferentialResectionMargin, /^XX\.[279]$/))
        return false

if (line.rxSummSurgicalMargins == '8')
    if (line.circumferentialResectionMargin != 'XX.7')
        return false

return true
]]></expression>
            <message>Conflict between RX Summ--Surgical Margins and Circumferential Resection Margin (CRM)</message>
            <description><![CDATA[This edit verifies that the Circumferential Resection Margin (CRM) SSDI is coded consistently with RX Summ--Surgical Margins.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2024, blank (unknown), or invalid.
    b. Schema ID is not 00200
    c. Behavior Code = 2
    d. Circumferential Resection Margin (CRM) is blank or XX.8 (not applicable).
    e. RX Summ--Surgical Margins is blank
    f. Type of Reporting Source = 7 (Death Certificate Only)

2. If the Circumferential Resection Margin is coded 0.0 (positive circumferential resection margin),
    then RX Summ--Surgical Margins must be coded 0 (margin stated as negative), 1, 2, or 3 (residual tumor)

3. If RX Summ--Surgical Margins is coded 0 (negative margins)
    Circumferential Resection Margin must be coded 0.0-99.9, XX.0-XX.7, XX.9
    
4. If RX Summ--Surgical Margins is coded 7 (Margins not evaluable)
    Circumferential Resection Margin must be coded XX.2 (margins cannot be assessed), XX.7 (enough tissue available to assess margins),
    or XX.9 (Circumferential or radial resection margin not assessed or unknown if assessed)

5. If RX Summ--Surgical Margins is coded 8 (no primary site surgery)
    Circumferential Resection Margin must be coded XX.7 (no resection of primary site)
]]></description>
            <history>
                <event version="SE24-024-03" user="beverung" date="2024-03-12" ref="69438">Edit created.</event>
                <event version="SE24-024-06" user="shearerw" date="2024-06-21" ref="69492">Updated name and logic.</event>
                <event version="SE24-024-08" user="beverung" date="2024-08-20" ref="69529">Fix logic for RX Summ--Surgical Margins negative.</event>
            </history>
        </rule>
        <rule id="IFN7040" name="Primary Site, Morphology-Type, Beh ICDO3, 2024 (SEER)" tag="N7040" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2024')
    return true
if (line.primarySite == null || line.histologicTypeIcdO3 == null || line.behaviorCodeIcdO3 == null)
    return true

Integer siteNum = Functions.asInt(line.primarySite.substring(1))
Integer histNum = Functions.asInt(line.histologicTypeIcdO3)
Integer behNum = Functions.asInt(line.behaviorCodeIcdO3)

Map<String, Map<String, Map<String, String>>> naaccrPathChartTable = (Map<String, Map<String, Map<String, String>>>)Context.IFN7040_NAACCR_PathCHART_Table
Map<String, Map<String, String>> siteMap = (Map<String, Map<String, String>>)naaccrPathChartTable.get(siteNum);
Map<String, String> histMap = (Map<String, String>)siteMap?.get(histNum)
String status = histMap?.get(behNum)

if (status == null || status == '2')
    return line.overRideSiteType == '1'
else if (status == '1')
    return line.overRideSiteType == null
else if (status == '3')
    return false
return true
]]></expression>
            <message>Conflict between Primary Site, Histologic Type, and Behavior</message>
            <description><![CDATA[This edit checks on primary site, histologic type, and behavior combinations based on the PathCHART tables starting with 2024.  The edit checks for valid, unlikely, and impossible combinations.

1. This edit is skipped for any of the following:
    a. Diagnosis date blank (unknown), invalid, or before 2024.
    b. Any of Primary Site, Histologic Type ICD-O-3, or Behavior Code ICD-O-3 is blank


The SEER Site/Histology Validation List (see SEER web site) has traditionally designated all histologies/behaviors that do not require review for each site.
Any site/histology/behavior combination not in the Site/Histology Validation List was accepted only if the case was reviewed, accepted as coded, and
Over-ride Site/Type set to 1. Beginning with 2024, the SEER Site/Histology Validation List has been replaced by PathCHART, a database designating the status
for each site/type/behavior combination as valid ("1") or biologically impossible ("3"). The status for any site/histology/behavior combination not in PathCHART
is considered unlikely ("2"). The PathCHART database resulted from an extensive pathologic review of sites and histologies undertaken by NCI SEER, implemented
over the 2024 and 2025 diagnosis years.

The PathCHART table is imported into EditWriter from the PathCHART database.  The table includes all site/type/behavior combinations as they were evaluated in
existing edits through 2023, plus any site/type combinations with a change in status based on the PathCHART review beginning with 2024.  This edit will pass all
site/type/behavior combinations designated as "valid" ("1") in the corresponding table. This edit will fail all site/type/behavior combinations designated as
"impossible" ("3"). This edit will fail all site/type/behavior combinations not included in the table ("2"); Over-Ride Site/Type can be set for these cases to
allow them to pass the edit. Over-ride Site/Type should not be set for status "1" cases; Over-ride Site/Type cannot be set for status "3" cases.

Review of unlikely or rare combinations often results in changes to the primary site and/or morphology and/or behavior, rather than a decision that the
combination is correct.  The over-ride flag should not be set to 1 if the primary site, histologic type, and behavior is changed to a combination that will pass
the edit.  However, if upon review the site/type/behavior combination is found to be accurate and in conformance with coding rules, it may be left as coded and
the Over-ride Site/Type flag coded to 1.


Additional Information:

This edit forces review of atypical site/type/behavior combinations.  Combinations not requiring review are presented, by primary site, in the PathCHART database.
This edit does not imply that there are errors but rather that the combination of  site,histology, and behavior is so unusual that it should be checked to ensure
that it correctly reflects what is in the medical record.  Resolution of discrepancies may require inspection of the abstracted text, review of the original
medical record, or consultation with the pathologist or diagnosing physician.

Review of these cases requires investigating whether a) the combination is biologically implausible or unlikely, or b) there are cancer registry coding
conventions that would dictate different codes for the diagnosis.  The following resources can be checked:

    SEER PathCHART database
    Current oncology and pathology textbooks
    Current medical journal articles, e.g., via MEDLINE
    Pathologist advisors to the registry
]]></description>
            <history>
                <event version="SE24-024-03" user="beverung" date="2024-04-04" ref="69439">Edit created.</event>
                <event version="SE24-024-06" user="beverung" date="2024-06-21" ref="69477">Updated PathCHART table.</event>
            </history>
        </rule>
        <rule id="IFN7042" name="EOD Primary Tumor, Lung, Tumor Size Summary (SEER)" tag="N7042" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear < '2024' || line.dateOfDiagnosisYear == null || line.schemaId != '00360' || line.schemaId == null
            || line.eodPrimaryTumor == null || line.tumorSizeSummary == null || line.typeOfReportingSource == '7')
    return true

if (line.eodPrimaryTumor == '100')
    return Functions.matches(line.tumorSizeSummary, /^00[1-9]|0[12]\d|030|990$/)

return true]]></expression>
            <message>Tumor Size Summary is inconsistent with EOD Primary Tumor.</message>
            <description><![CDATA[This edit checks consistency of coding between EOD Primary Tumor code 100 and Tumor Size Summary for Schema ID 00360, Lung.

1. This edit is skipped if any of the following conditions is true:
    a. Diagnosis date is invalid, blank (unknown), before 2024.
    b. Schema ID is blank or not = 00360
    c. EOD Primary Tumor is blank
    d. Tumor Size Summary is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If EOD Primary Tumor = 100 (Minimally invasive adenocarcinoma: Adenocarcinoma tumor WITH predominantly lepidic pattern measuring less than or equal to 3 cm in greatest dimension WITH invasive component measuring less than or equal to 5 mm in greatest dimension)
    Tumor Size Summary must = 001-030, 990]]></description>
            <history>
                <event version="SE24-024-03" user="kirbyk" date="2024-03-20" ref="69435">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN7043" name="EOD Primary Tumor, NET Duodenum, Tumor Size Summary (SEER)" tag="N7043" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear < '2024' || line.dateOfDiagnosisYear == null || line.schemaId != '09301' || line.schemaId == null
            || line.eodPrimaryTumor == null || line.tumorSizeSummary == null || line.typeOfReportingSource == '7')
    return true

if (line.eodPrimaryTumor == '100')
    return Functions.matches(line.tumorSizeSummary, /^00[1-9]|010|99[09]$/)

return true]]></expression>
            <message>Tumor Size Summary is inconsistent with EOD Primary Tumor.</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor code 100 is coded consistently with Tumor Size Summary for Schema ID 09301 NET Duodenum

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2024, blank (unknown), or invalid.
    b. Schema ID is blank or not 09301
    c. Tumor Size Summary is blank
    d. EOD Primary Tumor is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If EOD Primary Tumor = 100 (Tumor less than or equal to 1cm AND confined to Intramucosal NOS, lamina propria, Mucosa NOS, Muscularis mucosae, Submucosa; Localized NOS)
    Tumor Size Summary must = 001-010, 990, 999
]]></description>
            <history>
                <event version="SE24-024-03" user="kirbyk" date="2024-03-20" ref="69435">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN7044" name="EOD Primary Tumor, NET Jejunum and Ileum, Tumor Size Summary (SEER)" tag="N7044" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear < '2024' || line.dateOfDiagnosisYear == null || line.schemaId != '09310' || line.schemaId == null
            || line.eodPrimaryTumor == null || line.tumorSizeSummary == null || line.typeOfReportingSource == '7')
    return true

if (line.eodPrimaryTumor == '100')
    return Functions.matches(line.tumorSizeSummary, /^00[1-9]|010|99[09]$/)

return true]]></expression>
            <message>Tumor Size Summary is inconsistent with EOD Primary Tumor.</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor code 100 is coded consistently with Tumor Size Summary for Schema ID 09310 NET Jejunum and Ileum.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2024, blank (unknown), or invalid.
    b. Schema ID is blank or not 09310
    c. Tumor Size Summary is blank
    d. EOD Primary Tumor is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If EOD Primary Tumor = 100 (Tumor less than or equal to 1cm AND confined to Intramucosal NOS, lamina propria, Mucosa NOS, Muscularis mucosae, Submucosa; Localized NOS)
    Tumor Size Summary must = 001-010, 990, 999
]]></description>
            <history>
                <event version="SE24-024-03" user="kirbyk" date="2024-03-20" ref="69435">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN7045" name="EOD Primary Tumor, Testis, Morphology, Tumor Size Summary (SEER)" tag="N7045" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear < '2024' || line.dateOfDiagnosisYear == null || line.schemaId != '00590' || line.schemaId == null
            || line.typeOfReportingSource == '7')
    return true
if  (line.eodPrimaryTumor == null || line.tumorSizeSummary == null || line.histologicTypeIcdO3 == null || line.behaviorCodeIcdO3 == null)
    return true

if (line.eodPrimaryTumor == '100') {
    if (line.histologicTypeIcdO3 != '9061' || line.behaviorCodeIcdO3 != '3')
        return false
    if (!Functions.matches(line.tumorSizeSummary, /^00[1-9]|0[12]\d|99[09]$/))
        return false
}

if (line.eodPrimaryTumor == '150') {
    if (line.histologicTypeIcdO3 != '9061' || line.behaviorCodeIcdO3 != '3')
        return false
    if (!Functions.matches(line.tumorSizeSummary, /^0[3-9]\d|[1-8]\d\d|9[0-8]\d|999$/))
        return false
}

return true]]></expression>
            <message>Conflict between Tumor Size Summary and EOD Primary Tumor.</message>
            <description><![CDATA[This edit checks consistency of coding between EOD Primary Tumor code 100 and Histologic Type ICD-O-3, Behavior Code ICD-O-3, and Tumor Size Summary for Schema ID 00590, Testis

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2024, blank (unknown), or invalid.
    b. Schema ID is blank or not 00590
    c. EOD Primary Tumor is blank
    d. Histologic Type ICD-O-3 or Behavior Code ICD-O-3 is blank
    e. Tumor Size Summary is blank
    f. Type of Reporting Source is 7 (Death Certificate Only)


2. If EOD Primary Tumor = 100 (tumor size < 3cm limited to testis):
    a. Histologic Type ICD-O-3 and Behavior Code ICD-O-3 must = 90613 (pure seminoma)
    b. Tumor Size Summary must = 001-029, 990, 999


3. If EOD Primary Tumor = 150 (tumor >= 3cm limited to testis):
    a. Histologic Type ICD-O-3 and Behavior Code ICD-O-3 must = 90613 (pure seminoma)
    b. Tumor Size Summary must = 030-989 or 999
]]></description>
            <history>
                <event version="SE24-024-03" user="kirbyk" date="2024-03-20" ref="69435">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN7046" name="Tumor Size Summary 998, Schema ID (SEER)" tag="N7046" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2024' || line.typeOfReportingSource == '7')
    return true

if (line.tumorSizeSummary == '998')
    return ((List)Context.IFN7046_SchemaId_List).contains(line.schemaId)

return true]]></expression>
            <message>Tumor Size Summary is not valid for Schema ID</message>
            <description><![CDATA[This edit is skipped if Diagnosis date < 2024, empty (unknown), or in error.
This edit is skipped if Type of Reporting Source = 7 (Death Certificate Only)

1. If Tumor Size Summary is coded 998,
    Schema ID must =

    00161 - Esophagus (including GE junction) Squamous
    00169 - Esophagus (including GE junction) (excluding Squamous)
    00170 - Stomach
    00200 - Colon and Rectum
    00290 - NET Stomach (8th: 2018-2023)
    09290 - NET Stomach (V9: 2024+)
    00330 - NET Colon and Rectum (8th: 2018-2023)
    09330 - NET Colon and Rectum (V9: 2024+)
    00360 - Lung
    00370 - Pleural Mesothelioma
    00400 - Soft Tissue Head and Neck
    00410 - Soft Tissue Trunk and Extremities
    00421 - Soft Tissue Abdomen and Thoracic
    00430 - GIST
    00450 - Soft Tissue Rare
    00459 - Soft Tissue Other
    00470 - Melanoma Skin
    00480 - Breast]]></description>
            <history>
                <event version="SE24-024-03" user="shearerw" date="2024-03-21" ref="69433">Edit Created.</event>
                <event version="SE24-024-06" user="cooki" date="2024-06-27" ref="69491">Schemas 00290, 00330 updated, 09290, 09330 added.</event>
            </history>
        </rule>
        <rule id="IFN7047" name="Tumor Size Summary 999, Schema ID, Primary Site (SEER)" tag="N7047" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2024' || line.schemaId == null || line.tumorSizeSummary == null)
    return true

if (line.primarySite == null || line.primarySite == 'C422')
    return true

if (['00458','00671','00672','00790','00795','00821','00822','00830'].contains(line.schemaId) || Functions.matches(line.primarySite, /^C(42[0134]|77\d|809)$/))
    return line.tumorSizeSummary == '999' || line.tumorSizeSummary == null

return true]]></expression>
            <message>Tumor Size Summary is not valid for Schema ID or Primary Site</message>
            <description><![CDATA[1. This edit is skipped for any of the following:
    a. if Diagnosis date < 2024, empty (unknown), or in error.
    b. Schema ID is blank
    c. Primary Site is blank or C422
    d. Tumor Size Summary is blank


1. Tumor Size Summary must be 999 or blank
    if Schema ID =

    00458  Kaposi Sarcoma
    00671  Melanoma Iris
    00672  Melanoma Choroid and Ciliary Body
    00790  Lymphoma
    00795  Lymphoma-CLL/SLL
    00821  Plasma Cell Myeloma
    00822  Plasma Cell Disorders
    00830  HemeRetic
    Any with Primary Site code = C420, C421, C423, C424, C770-C779, C809]]></description>
            <history>
                <event version="SE24-024-03" user="shearerw" date="2024-03-21" ref="69433">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN7048" name="Tumor Size Summary, EOD Primary Tumor, Schema ID (SEER)" tag="N7048" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2024' || line.tumorSizeSummary == null || line.typeOfReportingSource == '7' || line.eodPrimaryTumor == null)
    return true

if (line.schemaId == null || ['00458','00671','00672','00790','00795','00821','00822','00830'].contains(line.schemaId))
    return true

if (((List)Context.IFN7048_SchemaId_List).contains(line.schemaId))
    return line.tumorSizeSummary != '000'

if (line.schemaId == '00060')
    return line.tumorSizeSummary == '000'

if (line.schemaId == '00360') {
    if (line.tumorSizeSummary == '000')
        return line.eodPrimaryTumor == '800' || line.eodPrimaryTumor == '980'
    if (line.eodPrimaryTumor == '800' || line.eodPrimaryTumor == '980')
        return line.tumorSizeSummary == '000' || line.tumorSizeSummary == '999'
}
else if (line.schemaId == '00580') {
    if (line.tumorSizeSummary == '000')
        return line.eodPrimaryTumor == '800' && ['800','900','950','999'].contains(line.prostatePathologicalExtension)
    if (line.eodPrimaryTumor == '800' && line.prostatePathologicalExtension == '800')
        return line.tumorSizeSummary == '000' || line.tumorSizeSummary == '999'
}
else {
    if (line.tumorSizeSummary == '000' && line.schemaId != '99999')
        return line.eodPrimaryTumor == '800'
    if (line.eodPrimaryTumor == '800')
        return line.tumorSizeSummary == '000' || line.tumorSizeSummary == '999'
}

return true]]></expression>
            <message>Tumor Size Summary is not valid for Schema ID</message>
            <description><![CDATA[This edit checks consistency of coding between Tumor Size codes (000)
and EOD Primary Tumor code (800) indicating no evidence of primary tumor.  For the listed head and neck schemas,
there is no EOD Primary Tumor code of 800, as cases with no evidence of primary tumor are assigned to Schema ID 00060,
Cervical Lymph Nodes, Occult Head and Neck. For 000360, Lung, EOD Primary Tumor is coded 980 for an occult primary tumor.
For 00580, Prostate, EOD Primary Tumor and EOD Prostate Pathologic Extension codes are checked,
as presence of primary tumor could be coded in either data item.

1. This edit is skipped if any of the following conditions is true:
    a. Diagnosis date is invalid, blank (unknown), before 2024.
    b. Schema ID is blank or = 00458, 00671, 00672, 00790, 00795, 00821, 00822, 00830
        (Schema IDs where Tumor Size must = 999)
    c. Tumor Size Summary is blank
    d. Type of Reporting Source is 7 (Death Certificate Only)
    e. EOD Primary Tumor is blank

2. For the Schema IDs in the list below,
    Tumor Size Summary must not = 000.

    00071   Lip
    00072   Tongue Anterior
    00073   Gum
    00074   Floor of Mouth
    00075   Palate Hard
    00076   Buccal Mucosa
    00077   Mouth Other
    00111   Oropharynx
    00112   Hypopharynx
    00118   Pharynx Other
    00119   Middle Ear
    00121   Maxillary Sinus
    00122   Nasal Cavity and Ethmoid Sinus
    00128   Sinus Other
    00131   Larynx Supraglottic
    00132   Larynx Glottic
    00133   Larynx Subglottic
    00140   Melanoma Head and Neck
    00150   Cutaneous Carcinoma Head and Neck

3. If Schema ID = 00060, Cervical Nodes, Unknown Primary
    Tumor Size Summary must = 000

4. If Schema ID = 00360, Lung
    a. If Tumor Size Summary = 000,
        EOD Primary Tumor must =800 or 980
    bc. If EOD Primary Tumor = 800 or 980:
        Tumor Size Summary must = 000, 999

5. If Schema ID = 00580, Prostate,
    a. If Tumor Size Summary = 000
        EOD Primary Tumor must = 800 and EOD Prostate Pathologic Extension must = 800, 900. 950, or 999
    b. If EOD Primary Tumor = 800 and EOD Prostate Pathologic Extension = 800
        Tumor Size Summary must = 000 or 999

6. For all other Schema IDs:
    a. If Tumor Size Summary = 000 and Schema ID not 99999,
        EOD Primary Tumor must = 800
    b. If EOD Primary Tumor = 800:
        Tumor Size Summary must = 000 or 999]]></description>
            <history>
                <event version="SE24-024-03" user="shearerw" date="2024-03-21" ref="69433">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN7049" name="Tumor Size Summary, EOD Regional Nodes, Mets (SEER)" tag="N7049" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2024' || (line.eodRegionalNodes == null && line.eodMets == null) || line.tumorSizeSummary == null
            || line.typeOfReportingSource == '7')
    return true

if (line.schemaId == null || ['00458','00671','00672','00790','00795','00821','00822','00830'].contains(line.schemaId))
    return true

if (line.tumorSizeSummary == '000') {
    if (line.schemaId == '00480')
        return !['000','030','050','070'].contains(line.eodRegionalNodes) || !['00','05'].contains(line.eodMets)

    if (['00500','09500','00510','00520','00528','09520','00530','00541','00542','00551','00552','00553'].contains(line.schemaId))
        return !['000','040','050'].contains(line.eodRegionalNodes) || line.eodMets != '00'

    return line.eodRegionalNodes != '000' || line.eodMets != '00'
}

return true]]></expression>
            <message>EOD Regional Nodes and EOD Mets must not both indicate no involvement if Tumor Size Summary = 000</message>
            <description><![CDATA[This edit checks consistency of coding between Tumor Size codes of 000
and EOD Regional Nodes and EOD Mets data items.  If all Tumor Size codes indicate 000 (no primary tumor),
tumor must be identified in either regional nodes or metastases.

1. This edit is skipped if any of the following conditions is true:
    a. Diagnosis date is invalid, blank (unknown), before 2024.
    b. Schema ID is blank or = 00458, 00671, 00672, 00790, 00795, 00821, 00822, 00830
        (Schema IDs where Tumor Size must = 999)
    c. EOD Regional Nodes and EOD Mets are both blank.
    d. Tumor Size Summary is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)


2. If Tumor Size Summary = 000 (no evidence of primary tumor),
    a. If Schema ID = 00480 (Breast),
        EOD Regional Nodes must not = 000, 030, 050, or 070 or EOD Mets must not = 00 or 05
    b. If Schema ID = 00500, 09500, 00510, 00520, 00528, 09520, 00530, 00541, 00542, 00551, 00552, or 00553,
        EOD Regional Nodes must not = 000 or 040 or 050 or EOD Mets must not = 00
    c. For all other Schema IDs,
       EOD Regional Nodes must not = 000 or EOD Mets must not = 00]]></description>
            <history>
                <event version="SE24-024-03" user="shearerw" date="2024-03-21" ref="69433">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN7050" name="Tumor Size Summary, Date of Diagnosis (SEER)" tag="N7050" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2024')
    return true

return line.tumorSizeSummary != null]]></expression>
            <message>Tumor Size Summary must not be blank for cases diagnosed 2024+</message>
            <description><![CDATA[If year of Date of Diagnosis is blank (unknown), invalid, or < 2024, this edit is skipped.

If year of Date of Diagnosis is 2024 or later,
    then Tumor Size Summary cannot be blank.]]></description>
            <history>
                <event version="SE24-024-03" user="shearerw" date="2024-03-21" ref="69433">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN7052" name="RX Summ--Surg Prim Site 2023, Breast, Laterality (NAACCR)" tag="N7052" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2024' || line.primarySite == null || !Functions.matches(line.primarySite, /^C50\d$/) ||
            line.rxSummSurgPrimSite2023 == null || line.typeOfReportingSource == '7')
    return true

if (Functions.matches(line.rxSummSurgPrimSite2023, /^A(4[2789]0|5[2789]0|6[2389]0|7[2345]0)|B[3467]20$/))
    return line.laterality != '4'

return true]]></expression>
            <message>Laterality must = 4 for RX Summ--Surg Prim Site 2023</message>
            <description><![CDATA[This edit verifies that Laterality and RX Summ--Surg Prim Site 2023 are coded consistently for Breast.

1. This edit is skipped for any of the following:
    a. Diagnosis date before 2024, blank (unknown), or invalid.
    b. Primary Site is blank or not C500-C509
    c. RX Summ--Surg Prim Site 2023 is blank
    d. Type of Reporting Source = 7 (Death Certificate Only)

2. If RX Summ--Surg Prim Site 2023 = A420, A470, A480, A490, A750, A520, A570, A580, A590, A630, A620, A680, A690, A730, A740, A720, B320, B420, B620, or B720 (surgery with removal of uninvolved contralateral breast)
    Laterality must not = 4]]></description>
            <history>
                <event version="SE24-024-06" user="cooki" date="2024-07-24" ref="69486">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN7056" name="AFP Pre-Orchiectomy Lab Value, Range, Testis (NAACCR)" tag="N7056" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2024' || line.schemaId == null || line.schemaId != '00590' || line.typeOfReportingSource == '7')
    return true

if (line.afpPreOrchiectomyLabValue == null || line.afpPreOrchiectomyRange == null || line.afpPreOrchiectomyLabValue == 'XXXXX.8' || line.afpPreOrchiectomyRange == '8')
    return true

if (Functions.matches(line.afpPreOrchiectomyLabValue, /^[1-9]\d\d\d\.\d|10000\.0$/))
    return line.afpPreOrchiectomyRange == '2'

if (Functions.matches(line.afpPreOrchiectomyLabValue, /^[1-9]\d\d\d\d\.\d|XXXXX\.1$/) && line.afpPreOrchiectomyLabValue != '10000.0')
    return line.afpPreOrchiectomyRange == '3'

return true]]></expression>
            <message>Conflict between AFP Pre-Orchiectomy Lab Value and AFP Pre-Orchiectomy Range</message>
            <description><![CDATA[This edit verifies that AFP Pre-Orchiectomy Lab Value and AFP Pre-Orchiectomy Range SSDIs are coded consistently with each other

1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2024, blank (unknown), or invalid.
    b. Schema ID is blank or not 00590
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. AFP Pre-Orchiectomy Lab Value or AFP Pre-Orchiectomy Range is blank or coded not applicable

2. If AFP Pre-Orchiectomy Lab Value= 1,000.0 - 10,000.0 ng/mL
    AFP Pre-Orchiectomy Range must = 2 (1,000-10,000 ng/mL)

3. If AFP Pre-Orchiectomy Lab Value = 10,000.1 - 99,999.9 ng/mL or XXXXX.1 (100,000 ng/ml or greater)
    AFP Pre-Orchiectomy Range must = 3 (greater than 10,000 ng/ml)]]></description>
            <history>
                <event version="SE24-024-06" user="cooki" date="2024-07-22" ref="69503">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN7057" name="AFP Post-Orchiectomy Lab Value, Range, Testis (NAACCR)" tag="N7057" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2024' || line.schemaId == null || line.schemaId != '00590' || line.typeOfReportingSource == '7')
    return true

if (line.afpPostOrchiectomyLabValue == null || line.afpPostOrchiectomyRange == null || line.afpPreOrchiectomyLabValue == 'XXXXX.8' || line.afpPreOrchiectomyRange == '8')
    return true

if (Functions.matches(line.afpPostOrchiectomyLabValue, /^[1-9]\d\d\d\.\d|10000\.0$/))
    return line.afpPostOrchiectomyRange == '2'

if (Functions.matches(line.afpPostOrchiectomyLabValue, /^[1-9]\d\d\d\d\.\d|XXXXX\.1$/) && line.afpPreOrchiectomyLabValue != '10000.0')
    return line.afpPostOrchiectomyRange == '3'

if (line.afpPostOrchiectomyRange == '5')
    return line.afpPostOrchiectomyLabValue == 'XXXXX.9'

return true]]></expression>
            <message>Conflict between AFP Post-Orchiectomy Lab Value and AFP Post-Orchiectomy Range</message>
            <description><![CDATA[This edit verifies that AFP Post-Orchiectomy Lab Value and AFP Post-Orchiectomy Range SSDIs are coded consistently with each other

1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis Pre-2024, blank (unknown), or invalid.
    b. Schema ID is blank or not 00590
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. AFP Post-Orchiectomy Lab Value or AFP Post-Orchiectomy Range is blank or coded not applicable

2. If AFP Post-Orchiectomy Lab Value= 1,000.0 - 10,000.0 ng/mL
    AFP Post-Orchiectomy Range must = 2 (1,000-10,000 ng/mL)

3. If AFP Post-Orchiectomy Lab Value  10,000.1-99,999.9 ng/mL or XXXXX.1 (100,000 ng/ml or greater)
    AFP Post-Orchiectomy Range must = 3 (greater than 10,000 ng/ml)

4.  If AFP Post-Orchiectomy Range = 5 (unknown or not done, pre-orchiectomy normal)
    AFP Post-Orchiectomy Lab Value must = XXXXX.9 (not assessed or unknown)]]></description>
            <history>
                <event version="SE24-024-06" user="cooki" date="2024-07-22" ref="69503">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN7058" name="hCG Pre-Orchiectomy Lab Value, Range, Testis (NAACCR)" tag="N7058" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2024' || line.schemaId != '00590' || line.typeOfReportingSource == '7')
    return true

if (line.hcgPreOrchiectomyLabValue == null || line.hcgPreOrchiectomyLabValue == 'XXXXX.8')
    return true

if (line.hcgPreOrchiectomyRange == null || line.hcgPreOrchiectomyRange == '8')
    return true

if (Functions.matches(line.hcgPreOrchiectomyLabValue, /^([5-9]\d\d\d\.\d)|([1-4]\d\d\d\d\.\d)$/) || line.hcgPreOrchiectomyLabValue == '50000.0')
    return line.hcgPreOrchiectomyRange == '2'

if (line.hcgPreOrchiectomyLabValue != '50000.0' && (Functions.matches(line.hcgPreOrchiectomyLabValue, /^[5-9]\d\d\d\d\.\d$/) || line.hcgPreOrchiectomyLabValue == 'XXXXX.1'))
    return line.hcgPreOrchiectomyRange == '3'

return true]]></expression>
            <message>Conflict between hCG Pre-Orchiectomy Lab Value and hCG Pre-Orchiectomy Range</message>
            <description><![CDATA[This edit verifies that hCG Pre-Orchiectomy Lab Value and hCGPre-Orchiectomy Range SSDIs are coded consistently with each other

1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2024, blank (unknown), or invalid.
    b. Schema ID is blank or not 00590
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. hCG Pre-Orchiectomy Lab Value or hCG Pre-Orchiectomy Range is blank or coded not applicable


2. If hCG Pre-Orchiectomy Lab Value = 5,000.0 - 50,000.0 mIU/mL
    hCG Pre-Orchiectomy Range must = 2 (5,000-50,000 mIU/mL)

3. If hCG Pre-Orchiectomy Lab Value = 50,000.1-99,999.9 ng/mL or XXXXX.1 (100,000 mIU/mL or greater)
    hCG Pre-Orchiectomy Range must = 3 (greater than 50,000 mIU/mL)]]></description>
            <history>
                <event version="SE24-024-06" user="shearerw" date="2024-07-23" ref="69502">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN7059" name="hCG Post-Orchiectomy Lab Value, Range, Testis (NAACCR)" tag="N7059" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2024' || line.schemaId != '00590' || line.typeOfReportingSource == '7')
    return true

if (line.hcgPostOrchiectomyLabValue == null || line.hcgPostOrchiectomyLabValue == 'XXXXX.8')
    return true

if (line.hcgPostOrchiectomyRange == null || line.hcgPostOrchiectomyRange == '8')
    return true

if (Functions.matches(line.hcgPostOrchiectomyLabValue, /^([5-9]\d\d\d\.\d)|([1-4]\d\d\d\d\.\d)$/) || line.hcgPostOrchiectomyLabValue == '50000.0')
    return line.hcgPostOrchiectomyRange == '2'

if (line.hcgPostOrchiectomyLabValue != '50000.0' && (Functions.matches(line.hcgPostOrchiectomyLabValue, /^[5-9]\d\d\d\d\.\d$/) || line.hcgPostOrchiectomyLabValue == 'XXXXX.1'))
    return line.hcgPostOrchiectomyRange == '3'

if (line.hcgPostOrchiectomyRange == '5')
    return line.hcgPostOrchiectomyLabValue == 'XXXXX.9'

return true]]></expression>
            <message>Conflict between hCG Post-Orchiectomy Lab Value and hCG Post-Orchiectomy Range</message>
            <description><![CDATA[This edit verifies that hCG Post-Orchiectomy Lab Value and hCG Post-Orchiectomy Range SSDIs are coded consistently with each other

1. The edit is skipped for any of the following conditions:
    a. Date of Diagnosis pre-2024, blank (unknown), or invalid.
    b. Schema ID is blank or not 00590
    c. Type of Reporting Source = 7 (Death Certificate Only)
    d. hCG Post-Orchiectomy Lab Value or hCG Post-Orchiectomy Range is blank or coded not applicable


2. If hCG Post-Orchiectomy Lab Value = 5,000.0 - 50,000.0 mIU/mL
    hCG Post-Orchiectomy Range must = 2 (5,000-50,000 mIU/mL)

3. If hCG Post-Orchiectomy Lab Value = 50,000.1-99,999.9 ng/mL or XXXXX.1(100,000 mIU/mL or greater)
    hCG Post-Orchiectomy Range must = 3 (greater than 50,000 mIU/mL)

4. If hCG Post-Orchiectomy Range = 5 (unknown or not done, pre-orchiectomy normal)
    hCG Post-Orchiectomy Lab Value must = XXXXX.9 (not assessed or unknown)]]></description>
            <history>
                <event version="SE24-024-06" user="shearerw" date="2024-07-23" ref="69502">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN7061" name="Neoadjuvant Therapy, Clinical Response (SEER)" tag="N7061" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2024' || line.neoadjuvantTherapy == null || line.neoadjuvTherapyClinicalResponse == null)
    return true

if (line.neoadjuvantTherapy == '0' || line.neoadjuvantTherapy == '3')
    return line.neoadjuvTherapyClinicalResponse == '0'
if (line.neoadjuvantTherapy == '1' || line.neoadjuvantTherapy == '2')
    return Functions.matches(line.neoadjuvTherapyClinicalResponse, /^[1-8]$/)
if (line.neoadjuvantTherapy == '9')
    return line.neoadjuvTherapyClinicalResponse == '9'

return true]]></expression>
            <message>Neoadjuvant Therapy conflicts with Neoadjuvant Therapy-Clinical Response</message>
            <description><![CDATA[This edit enforces consistency of coding between Neoadjuvant Therapy and Neoadjuvant Therapy-Clinical Response

1. The edit is skipped for any of the following:
    a. Diagnosis date blank (unknown), invalid, or pre-2024.
    b. Neoadjuvant Therapy is blank.
    c. Neoadjuvant Therapy-Clinical Response is blank
    
2. If Neoadjuvant Therapy = 0 (no neoadjuvant therapy) or 3 (limited, no neoadjuvant intent), 
    Neoadjuvant Therapy-Clinical Response must = 0 (Neoadjuvant therapy not given)

3. If Neoadjuvant Therapy = 1 (therapy completed) or 2 (therapy started but not completed),
    Neoadjuvant Therapy- Clinical Response must = 1-8 (therapy done, levels of response described or unknown)

4. If Neoadjuvant Therapy = 9 (unknown if performed),
    Neoadjuvant Therapy-Clinical Response must = 9 (unknown if performed)]]></description>
            <history>
                <event version="SE24-024-03" user="cooki" date="2024-03-18" ref="69437">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN7062" name="Neoadjuvant Therapy, Treatment Effect, Surgery 2023 (SEER)" tag="N7062" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2024' || line.neoadjuvantTherapy == null || line.neoadjuvTherapyTreatmentEffect == null)
    return true

if ((line.neoadjuvantTherapy == '0' || line.neoadjuvantTherapy == '3') && line.neoadjuvTherapyTreatmentEffect != '0')
    return false

if ((line.neoadjuvantTherapy == '1' || line.neoadjuvantTherapy == '2') && !Functions.matches(line.neoadjuvTherapyTreatmentEffect, /^[1-4679]$/))
    return false

if (Functions.matches(line.neoadjuvTherapyTreatmentEffect, /^[1-46]$/) && Functions.matches(line.rxSummSurgPrimSite2023, /^(A0\d\d|A1[0-8]\d|A[19]90|B000|B990)$/))
    return false

if (line.neoadjuvantTherapy == '9' && line.neoadjuvTherapyTreatmentEffect != '9')
    return false

return true]]></expression>
            <message>Conflict between Neoadjuvant Therapy and Neoadjuvant Therapy-Treatment Effect</message>
            <description><![CDATA[This edit enforces consistency of coding between Neoadjuvant Therapy and Neoadjuvant Therapy-Treatment Effect.

1. The edit is skipped for any of the following:
    a. Diagnosis date blank (unknown), invalid, or pre-2024
    b. Neoadjuvant Therapy is blank.
    c. Neoadjuvant Therapy-Treatment Effect is blank

2. If Neoadjuvant Therapy = 0 (no neoadjuvant therapy) or 3 (limited systemic exposure when intent not neoadjuvant)
    Neoadjuvant Therapy-Treatment Effect must = 0 (Neoadjuvant therapy not given)

3. If Neoadjuvant Therapy = 1 (therapy completed) or 2 (therapy started but not completed),
    Neoadjuvant Therapy-Treatment Effect must = 1-4, 6 (therapy done,response described), or 7, 9 (planned surgical resection not performed or unknown if performed)

4. If Neoadjuvant Therapy Treatment Effect = 1-4 (response types) or 6 (therapy completed and surgical resection performed)
    RX Summ--Surg Prim Site 2023 must not = A000-A190, A990, B000, or B990

5. If Neoadjuvant Therapy = 9 (unknown if performed),
    Neoadjuvant Therapy-Treatment Effect must = 9 (unknown if neoadjuvant therapy performed)]]></description>
            <history>
                <event version="SE24-024-03" user="cooki" date="2024-03-18" ref="69437">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN7063" name="Response to Neoadjuvant Therapy, Breast, Neoadjuvant (NAACCR)" tag="N7063" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2024' || line.schemaId != '00480' || line.responseToNeoadjuvantTherapy == null || line.responseToNeoadjuvantTherapy == '8'
            || line.neoadjuvTherapyTreatmentEffect == null || line.neoadjuvTherapyTreatmentEffect == '8' || line.typeOfReportingSource == '7')
    return true

if (line.neoadjuvTherapyTreatmentEffect == '0')
    return line.responseToNeoadjuvantTherapy == '0'

if (line.responseToNeoadjuvantTherapy == '0')
    return line.neoadjuvTherapyTreatmentEffect == '0'

if (line.neoadjuvTherapyTreatmentEffect == '9')
    return line.responseToNeoadjuvantTherapy == '9'

return true]]></expression>
            <message>Conflict between Response to Neoadjuvant Therapy and Neoadjuvant Therapy-Treatment Effect</message>
            <description><![CDATA[This edit verifies that the Response to Neoadjuvant Therapy SSDI is coded consistently with Neoadjuvant Therapy.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2024, blank (unknown), or invalid.
    b. Schema ID is not 00480
    c. Response to Neoadjuvant Therapy is blank or 8 (not applicable).
    d. Neoadjuvant Therapy Treatment Effect is blank or 8 (not applicable).
    e. Type of Reporting Source = 7 (death certificate only)

2. If Neoadjuvant Therapy Treatment Effect = 0 (no neoadjuvant therapy)
    then Response to Neoadjuvant Therapy must be coded 0 (no neoadjuvant therapy)

3. If Response to Neoadjuvant Therapy = 0 (no neoadjuvant therapy)
    Neoadjuvant Therapy Treatment Effect must = 0 (no neoadjuvant therapy)

4. If Neoadjuvant Therapy Treatment Effect coded 9 (unknown if neoadjuvant therapy performed)
    Response to Neoadjuvant Therapy must be coded 9 (not documented in medical record)]]></description>
            <history>
                <event version="SE24-024-03" user="cooki" date="2024-03-19" ref="69437">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN7068" name="EOD Primary Tumor, Bladder, RX Summ--Surg Prim Site 2023 (SEER)" tag="N7068" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId != '00620' ||
            line.eodPrimaryTumor == null || line.rxSummSurgPrimSite2023 == null || line.typeOfReportingSource == '7')
    return true

if (['200', '250', '300', '350'].contains(line.eodPrimaryTumor) && !Functions.matches(line.rxSummSurgPrimSite2023, /^A([3-7]\d|80)0$/))
    return false

return !Functions.matches(line.rxSummSurgPrimSite2023, /^A([01]\d|2[0-7]|9\d)0$/) || !['200', '250', '300', '350'].contains(line.eodPrimaryTumor)]]></expression>
            <message>Surgery code conflicts with EOD Primary Tumor for Bladder</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor is coded consistently with RX Summ--Surg Prim Site 2023 for Schema ID 00620, Bladder. 
 
1. The edit is skipped for the following conditions: 
    a. Date of Diagnosis before 2023, blank (unknown), or invalid. 
    b. Schema ID is blank or not 00620 
    c. EOD Primary Tumor is blank 
    d. RX Summ--Surg Prim Site 2023 is blank 
    e. Type of Reporting Source is 7 (Death Certificate Only) 
 
 
2. If EOD Primary Tumor = 200, 250, 300, or 350 (codes requiring cystectomy) 
    then RX Summ--Surg Prim Site 2023 must = A300-A800 (cystectomy) 
 
 
3. If RX Summ--Surg Prim Site 2023 = A000-A270 or A900-A990  
    a. EOD Primary Tumor must not = 200 or 300 (370 should be used) 
    b. EOD Primary Tumor must not = 250 or 350 (400 should be used)]]></description>
            <history>
                <event version="SE23-023-10" user="beverung" date="2024-01-22" ref="69327">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN7070" name="Prostate, RX Summ--Surg Prim Site 2023, Histologic Type (NAACCR)" tag="N7070" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2024' || line.primarySite == null || line.primarySite != 'C619' || line.histologicTypeIcdO3 == null ||
            line.behaviorCodeIcdO3 == null || line.rxSummSurgPrimSite2023 == null || line.typeOfReportingSource == '7')
    return true

if (line.histologicTypeIcdO3 == '8500' && line.behaviorCodeIcdO3 == '3')
    return Functions.matches(line.rxSummSurgPrimSite2023, /^A([56]\d\d|700)$/)

return true]]></expression>
            <message>Conflict between Histologic Type ICD-O-3 and RX Summ--Surg Prim Site 2023</message>
            <description><![CDATA[This edit checks consistency between Histologic Type ICD-O-3 and RX Summ--Surg Prim Site 2023 for Prostate

1. This edit is skipped for any of the following:
    a. Diagnosis date before 2024, blank (unknown), or invalid
    b. Primary Site is blank or not C619
    c. Histologic Type ICD-O-3 is blank
    d. Behavior Code ICD-O-3 is blank
    e. RX Summ--Surg Prim Site 2023 is blank
    f. Type of Reporting Source = 7 (death certificate only)

2. If Histologic Type ICD-O-3 = 8500/3 (ductal component > 50% of tumor)
    then RX Summ--Surg Prim Site 2023 must = A500-A700, radical prostatectomy


SOLID TUMOR RULES:
- Ductal adenocarcinoma 8500/3: In prostate biopsies, the term "adenocarcinoma of prostate with ductal features" should be used in the pathology report and is coded 8140/3.
In order to code ductal adenocarcinoma 8500/3, the ductal component must comprise > 50% of the tumor with the percentage reported and from a radical prostatectomy specimen.]]></description>
            <history>
                <event version="SE24-024-06" user="cooki" date="2024-07-23" ref="69505">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN7084" name="SEER SSF1, Schema Discriminator 2, Head and Neck (SEER)" tag="N7084" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2024' || line.primarySite == null || line.histologicTypeIcdO3 == null ||
            (line.schemaId != '00100' && line.schemaId != '00111') || line.schemaDiscriminator2 == null || line.typeOfReportingSource == '7')
    return true

if (line.seerSiteSpecificFact1 == '10')
    return line.schemaDiscriminator2 == '1'

if (line.seerSiteSpecificFact1 == '11')
    return line.schemaDiscriminator2 == '2'

return true]]></expression>
            <message>Conflict between SEER Site-Specific Fact 1 and Schema Discriminator 2</message>
            <description><![CDATA[This edit checks coding consistency among SEER Site-Specific Factor 1, p16, and Schema Discriminator 2 for primary sites of Head and Neck.

1. The edit is skipped for the following;
    a. Date of diagnosis blank (unknown), invalid, or before 2024
    b. Primary Site is blank
    c. Histologic Type ICD-O-3 is blank
    d. Schema ID is not 00100 or 00111
    d. Schema Discriminator 2 is blank
    e. Type of Reporting Source = 7 (death certificate only)

2. If SEER SSF1 = 10 (HPV negative by p16 test)
    Schema Discriminator 2 must = 1 (p16 negative, nonreactive)

3. If SEER SSF1 = 11 (HPV positive by p16 test)
    Schema Discriminator 2 must = 2 (p16 positive, HPV positive)]]></description>
            <history>
                <event version="SE24-024-06" user="cooki" date="2024-07-23" ref="69505">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN7089" name="EOD Primary Tumor, Bladder, RX Summ--Surg Prim Site 03-2022 (SEER)" tag="N7089" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.dateOfDiagnosisYear > '2022' || line.schemaId != '00620' ||
            line.eodPrimaryTumor == null || line.rxSummSurgPrimSite == null || line.typeOfReportingSource == '7')
    return true

if (['200', '250', '300', '350'].contains(line.eodPrimaryTumor) && !Functions.matches(line.rxSummSurgPrimSite, /^[3-7]\d|80$/))
    return false

return !Functions.matches(line.rxSummSurgPrimSite, /^[01]\d|2[0-7]|9\d$/) || !['200', '250', '300', '350'].contains(line.eodPrimaryTumor)]]></expression>
            <message>Surgery code conflicts with EOD Primary Tumor for Bladder</message>
            <description><![CDATA[This edit verifies that EOD Primary Tumor is coded consistently with RX Summ--Surg Prim Site 03-2022 for Schema ID 00620, Bladder. 
 
1. The edit is skipped for the following conditions: 
    a. Date of Diagnosis before 2018 or after 2022, blank (unknown), or invalid. 
    b. Schema ID is blank or not 00620 
    c. EOD Primary Tumor is blank 
    d. RX Summ--Surg Prim Site 03-2022 is blank 
    e. Type of Reporting Source is 7 (Death Certificate Only) 
 
 
2. If EOD Primary Tumor = 200, 250, 300, or 350 (codes requiring cystectomy) 
    then RX Summ--Surg Prim Site 03-2022 must = 30-80 (cystectomy)

3. If RX Summ--Surg Prim Site 03-2022 = 00-27 or 90-99
    a. EOD Primary Tumor must not = 200 or 300 (370 should be used)
    b. EOD Primary Tumor must not = 250 or 350 (400 should be used)]]></description>
            <history>
                <event version="SE23-023-10" user="beverung" date="2024-01-22" ref="69327">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN7090" name="Grade, Bladder, Morphology (SEER)" tag="N7090" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.schemaId != '00620' || line.typeOfReportingSource == '7')
    return true
if (line.gradeClinical == null && line.gradePathological == null && line.gradePostTherapyClin == null && line.gradePostTherapy == null)
    return true

if (['8020', '8031', '8082', '8120', '8122', '8130', '8131'].contains(line.histologicTypeIcdO3)) {
    String[] gradeList = ['L', 'H', '9']
    if (line.gradeClinical != null && !gradeList.contains(line.gradeClinical))
        return false
    if (line.gradePathological != null && !gradeList.contains(line.gradePathological))
        return false
    if (line.gradePostTherapyClin != null && !gradeList.contains(line.gradePostTherapyClin))
        return false
    if (line.gradePostTherapy != null && !gradeList.contains(line.gradePostTherapy))
        return false
}
else {
    String[] gradeList = ['1', '2', '3', '9']
    if (line.gradeClinical != null && !gradeList.contains(line.gradeClinical))
        return false
    if (line.gradePathological != null && !gradeList.contains(line.gradePathological))
        return false
    if (line.gradePostTherapyClin != null && !gradeList.contains(line.gradePostTherapyClin))
        return false
    if (line.gradePostTherapy != null && !gradeList.contains(line.gradePostTherapy))
        return false
}

return true
]]></expression>
            <message>Grade and Histology conflict for Bladder</message>
            <description><![CDATA[This edit verifies that Grade Clinical, Grade Pathological, Grade Post Therapy Clin (yc), and Grade Post Therapy Path (yp) are coded consistently with histologic Type ICD-O-3 for Bladder. 
 
1. The edit is skipped for the following conditions: 
    a. Date of Diagnosis before 2018, blank (unknown), or invalid. 
    b. Schema ID is blank or not 00620 
    c. Grade Clinical, Grade Pathological, Grade Post Therapy Clinical, and Grade Post Therapy Pathological are all blank 
    d. Type of Reporting Source = 7 (Death Certificate Only) 
 
2. If Histologic Type ICD-O-3 = 8020, 8031, 8082, 8120, 8122, 8130, or 8131 
    Grade Clinical if not empty must = L, H or 9 
    Grade Pathological if not empty must = L, H, or 9 
    Grade Post Therapy Clin (yc) if not empty must = L, H, or 9 
    Grade Post Therapy Path (yp) if not empty must = L, H, or 9 
 
3. If Histologic Type ICD-O-3 not = 8020, 8031, 8082, 8120, 8122, 8130, or 8131 
    Grade Clinical if not empty must = 1, 2, 3, or 9 
    Grade Pathological if not empty must = 1, 2, 3, or 9 
    Grade Post Therapy Clin (yc) if not empty must = 1, 2, 3, or 9 
    Grade Post Therapy Path (yp) if not empty must = 1, 2, 3, or 9]]></description>
            <history>
                <event version="SE23-023-10" user="beverung" date="2024-01-22" ref="69327">Edit created.</event>
                <event version="SE24-024-06" user="beverung" date="2024-07-10" ref="69514">Edit name changed.</event>
            </history>
        </rule>
        <rule id="IFN7091" name="Grade, Bladder, RX Summ--Surg Prim Site 2023 (SEER)" tag="N7091" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023' || line.schemaId != '00620' ||
            line.gradePathological == null || line.rxSummSurgPrimSite2023 == null || line.typeOfReportingSource == '7')
    return true

if (Functions.matches(line.rxSummSurgPrimSite2023, /^A([01]\d|2[0-7]|9\d)0$/) && ['00', '99'].contains(line.eodMets))
    return line.gradePathological == '9'
return true]]></expression>
            <message>Grade and Surgery 2023+ conflict for Bladder</message>
            <description><![CDATA[This edit verifies that Grade Pathological is coded consistently with RX Summ--Surg Prim Site 2023 for Bladder. Transurethral Resection of Bladder (TURB) (or less severe surgeries) is not sufficient to assign Grade Pathological without presence of metastasis.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2023, blank (unknown), or invalid.
    b. Schema ID is not 00620
    c. Grade Pathological is blank
    d. RX Summ--Surg Prim Site 2023 is blank
    e. Type of Reporting Source = 7 (Death Certificate Only)

2. If RX Summ--Surg Prim Site 2023 = A000-A270, A900-A990 and EOD Mets = 00, 99
    Grade Pathological must = 9]]></description>
            <history>
                <event version="SE23-023-10" user="beverung" date="2024-01-22" ref="69327">Edit created.</event>
                <event version="SE24-024-06" user="beverung" date="2024-07-10" ref="69514">Edit name changed.</event>
            </history>
        </rule>
        <rule id="IFN7092" name="Grade, Bladder, RX Summ--Surg Prim Site 03-2022 (SEER)" tag="N7092" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.dateOfDiagnosisYear > '2022' || line.schemaId != '00620' ||
            line.gradePathological == null || line.rxSummSurgPrimSite == null || line.typeOfReportingSource == '7')
    return true

if (Functions.matches(line.rxSummSurgPrimSite, /^[01]\d|2[0-7]|9\d$/) && ['00', '99'].contains(line.eodMets))
    return line.gradePathological == '9'
return true]]></expression>
            <message>Grade and Surgery 03-22 conflict for Bladder</message>
            <description><![CDATA[This edit verifies that Grade Pathological is coded consistently with RX Summ--Surg Prim Site 03-2022 for Bladder. Transurethral Resection of Bladder (TURB) (or less severe surgeries) is not sufficient to assign Grade Pathological without presence of metastasis.    
 
1. The edit is skipped for the following conditions: 
    a. Date of Diagnosis before 2018 or after 2022, blank (unknown), or invalid. 
    b. Schema ID is not 00620 
    c. Grade Pathological is blank 
    d. RX Summ--Surg Prim Site 03-2022 is blank 
    e. Type of Reporting Source = 7 (Death Certificate Only) 
 
2. If RX Summ--Surg Prim Site 03-2022 = 00-27 or 90-99 and EOD Mets = 00, 99 
    Grade Pathological must = 9]]></description>
            <history>
                <event version="SE23-023-10" user="beverung" date="2024-01-22" ref="69327">Edit created.</event>
            </history>
        </rule>
        <rule id="IFN7093" name="Grade, Lymphoma, Brain/CNS (NAACCR)" tag="N7093" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2024' || line.histologicTypeIcdO3 == null)
    return true

if (!['09721', '09722', '09723'].contains(line.schemaId))
    return true

if (line.gradeClinical == null && line.gradePathological == null && line.gradePostTherapyClin == null && line.gradePostTherapy == null)
    return true

if (Functions.between(line.histologicTypeIcdO3, '9590', '9993'))
    return (line.gradeClinical == null || line.gradeClinical == '9') && (line.gradePathological == null || line.gradePathological == '9')
    && (line.gradePostTherapyClin == null || line.gradePostTherapyClin == '9') && (line.gradePostTherapy == null || line.gradePostTherapy == '9')

return true]]></expression>
            <message>Grade must = 9 for Lymphoma of Brain/CNS</message>
            <description><![CDATA[This edit verifies that WHO grade is not assigned for lymphoma of Brain/CNS.

1. The edit is skipped for the following conditions:
    a. Date of Diagnosis before 2024, blank (unknown), or invalid.
    b. Schema ID is not 09721, 09722, 09723.
    c. All grade fields are blank
    d. Histologic Type ICD-O-3 is blank

2. The edit verifies that if Histologic Type ICD-O-3 = 9590-9993 (Lymphoma),
    Grade Clinical, Grade Pathological, Grade Post Therapy Clin (yc), and Grade Post Therapy Path (yp) are coded 9 (unknown)  if not empty ]]></description>
            <history>
                <event version="SE24-024-06" user="shearerw" date="2024-07-11" ref="69501">Edit Created.</event>
            </history>
        </rule>
        <rule id="IFN7100" name="Grade at Autopsy (SEER)" tag="N7100" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2024' || line.schemaId == '00580')
    return true
if (line.gradeClinical == null && line.gradePathological == null)
    return true

if (line.typeOfReportingSource == '6') {
    if (line.gradeClinical != null && !['8', '9'].contains(line.gradeClinical))
        return false
    if (line.gradePathological != null && !['8', '9'].contains(line.gradePathological))
        return false
    if (line.gradePostTherapyClin != null || line.gradePostTherapy != null)
        return false
}
return true
]]></expression>
            <message>Grade Clinical and Grade Pathological must = 8 or 9 for cases diagnosed at autopsy</message>
            <description><![CDATA[This edit is skipped for date of diagnosis blank (unknown), invalid, or pre-2024.
This edit is skipped for Schema ID 00580, Prostate.

This edit is skipped if Grade Clinical and Grade Pathological are both blank.

If case is diagnosed at autopsy (Type of Reporting Source = 6)
Grade Clinical if not blank must = 8 or 9
Grade Pathological if not blank must = 8 or 9
Grade Post Therapy Clin (yc) and Grade Post Therapy Path (yp) must both be blank
]]></description>
            <history>
                <event version="SE24-024-03" user="beverung" date="2024-03-12" ref="69438">Edit created.</event>
                <event version="SE24-024-04" user="beverung" date="2024-04-24" ref="69454">Edit id and tag changed.</event>
                <event version="SE24-024-06" user="beverung" date="2024-07-10" ref="69514">Edit name changed.</event>
            </history>
        </rule>
        <rule id="IFN7103" name="Gleason Patterns Pathological, Grade Pathological (SEER)" tag="N7103" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.schemaId != '00580' || line.typeOfReportingSource == '6')
    return true

String gleason = line.gleasonPatternsPathological
if (gleason == null || gleason == 'X8')
    return true
if (line.gradePathological == null || Functions.matches(line.gradePathological, /^[ABCDE]$/))
    return true

Integer gradeClinInt = Functions.asInt(line.gradeClinical)
Integer gradePathInt = Functions.asInt(line.gradePathological)
if (gradeClinInt != null && gradePathInt != null && gradeClinInt >= gradePathInt && gradeClinInt != 9)
    return true

Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)
if (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5))
    return true

if (Functions.matches(gleason, /^[123][123]$/))
    return line.gradePathological == '1' 
else if (gleason == '34')
    return line.gradePathological == '2'
else if (gleason == '43')
    return line.gradePathological == '3'
else if (gleason == '44' || gleason == '35' || gleason == '53')
    return line.gradePathological == '4'
else if (gleason == '45' || gleason == '54' || gleason == '55')
    return line.gradePathological == '5'

return true]]></expression>
            <message>Gleason Patterns Pathological and Grade Pathological conflict.</message>
            <description><![CDATA[This edit verifies that Grade Pathological is coded consistently with Gleason
Patterns Pathological SSDI.


1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or invalid.
   b. Schema ID is not 00580
   c. Gleason Patterns Pathological is blank or not applicable.
   d. Grade Pathological is blank or = A, B, C, D, or E.
   e. Grade Clinical is numeric and >= Grade Pathological and Grade Clinical Not = 9.
   f. Type of Reporting Source = 6
   g. Vital Status = 0 and Date of Last Contact within 5 months of Date of Diagnosis

2. If Gleason Patterns Pathological = 11, 12, 13, 21, 22, 23, 31, 32, or 33
   Then Grade Pathological must = 1

3. If Gleason Patterns Pathological = 34
   Then Grade Pathological must = 2

4. If Gleason Patterns Pathological = 43
   Then Grade Pathological must = 3

5. If Gleason Patterns Pathological = 44, 35, or 53
   Then Grade Pathological must = 4

6. If Gleason Patterns Pathological = 45, 54, or 55
   Then Grade Pathological must = 5]]></description>
            <history>
                <event version="SE18-019-01" user="kirbyk" date="2019-04-05" ref="68155">Edit created.</event>
                <event version="SE18-019-03" user="beverung" date="2019-07-18" ref="68216">Edit modified to skip when grade clinical &gt;= grade pathological and grade clinical != 9</event>
                <event version="SE24-024-06" user="beverung" date="2024-07-23" ref="69455">Updated edit name/id/tag and updated skip conditions.</event>
            </history>
        </rule>
        <rule id="IFN7104" name="Gleason Score Pathological, Grade Pathological (SEER)" tag="N7104" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2019' || line.schemaId != '00580' || line.typeOfReportingSource == '6')
    return true

String gleason = line.gleasonScorePathological
if (gleason == null || gleason == 'X8' || gleason == 'X9')
    return true
if (line.gradePathological == null || Functions.matches(line.gradePathological, /^[ABCD]$/))
    return true

Integer gradeClinInt = Functions.asInt(line.gradeClinical)
Integer gradePathInt = Functions.asInt(line.gradePathological)
if (gradeClinInt != null && gradePathInt != null && gradeClinInt >= gradePathInt && gradeClinInt != 9)
    return true

Integer dolcYear = Functions.asInt(line.dateOfLastContactYear)
Integer dolcMonth = Functions.asInt(line.dateOfLastContactMonth)
Integer dolcDay = Functions.asInt(line.dateOfLastContactDay)
Integer dxYear = Functions.asInt(line.dateOfDiagnosisYear)
Integer dxMonth = Functions.asInt(line.dateOfDiagnosisMonth)
Integer dxDay = Functions.asInt(line.dateOfDiagnosisDay)
if (line.vitalStatus == '0' && (Boolean)((Closure)Context.compareDatesWithinMonths).call(dolcYear, dolcMonth, dolcDay, dxYear, dxMonth, dxDay, 5))
    return true

if (Functions.matches(gleason, /^0[1-6]$/))
    return line.gradePathological == '1'
else if (gleason == '07')
    return line.gradePathological == '2' || line.gradePathological == '3' || line.gradePathological == 'E'
else if (gleason == '08')
    return line.gradePathological == '4'
else if (gleason == '09' || gleason == '10')
    return line.gradePathological == '5'

return true]]></expression>
            <message>Gleason Score Pathological conflicts with Grade Pathological.</message>
            <description><![CDATA[This edit verifies that Grade Pathological is coded consistently with Gleason Score Pathological SSDI.

1. The edit is skipped for the following conditions:
   a. Date of Diagnosis before 2019, blank (unknown), or invalid.
   b. Schema ID is not 00580
   c. Gleason Score Pathological is blank, X8, or X9.
   d. Grade Pathological is blank or = A, B, C, or D.
   e. Grade Clinical is numeric and >= Grade Pathological and Grade Clinical Not = 9
   f. Type of Reporting Source = 6
   g. Vital Status = 0 and Date of Last Contact within 5 months of Date of Diagnosis

2. If Gleason Score Pathological = 1, 2, 3, 4, 5, or 6,
   Then Grade Pathological must = 1

3. If Gleason Score Pathological = 7
   Then Grade Pathological must = 2, 3 or E

4. If Gleason Score Pathological = 8
   Then Grade Pathological must = 4

5. If Gleason Score Pathological = 9 or 10
   Then Grade Pathological must = 5]]></description>
            <history>
                <event version="SE22-022-05" user="secristc" date="2022-05-04" ref="68938">Edit created.</event>
                <event version="SE24-024-06" user="beverung" date="2024-07-23" ref="69455">Updated edit name/id/tag and updated skip conditions.</event>
            </history>
        </rule>
        <rule id="IFN7162" name="Cancer Items, Type Reporting Source-DCO (SEER)" tag="N7162" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2018' || line.typeOfReportingSource != '7' || line.schemaId == null)
    return true

if (line.behaviorCodeIcdO3 == '2' || ((line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1') && !Functions.matches(line.schemaId, /^0072[123]|0972[1-4]$/)))
    return true

if ((line.gradeClinical != null && line.gradeClinical != '8' && line.gradeClinical != '9'))
     return false
if (line.gradePathological != null && line.gradePathological != '8' && line.gradePathological != '9')
    return false
if (line.gradePostTherapy != null || line.gradePostTherapyClin != null)
    return false
if ((line.metsAtDxBone != null && line.metsAtDxBone != '8' && line.metsAtDxBone != '9') || (line.metsAtDxBrain != null && line.metsAtDxBrain != '8' && line.metsAtDxBrain != '9'))
    return false
if ((line.metsAtDxDistantLn != null && line.metsAtDxDistantLn != '8' && line.metsAtDxDistantLn != '9') || (line.metsAtDxLiver != null && line.metsAtDxLiver != '8' && line.metsAtDxLiver != '9'))
    return false
if ((line.metsAtDxLung != null && line.metsAtDxLung != '8' && line.metsAtDxLung != '9') || (line.metsAtDxOther != null && line.metsAtDxOther != '8' && line.metsAtDxOther != '9'))
    return false
if (line.lymphVascularInvasion != null && line.lymphVascularInvasion != '8' && line.lymphVascularInvasion != '9')
    return false
if ((line.neoadjuvantTherapy != null && line.neoadjuvantTherapy != '9') || (line.neoadjuvTherapyTreatmentEffect != null && line.neoadjuvTherapyTreatmentEffect != '9'))
    return false
if (line.neoadjuvTherapyClinicalResponse != null && line.neoadjuvTherapyClinicalResponse != '9')
    return false
if ((line.regionalNodesPositive != null && line.regionalNodesPositive != '99') || (line.regionalNodesExamined != null && line.regionalNodesExamined != '99'))
    return false
if ((line.tumorSizeClinical != null && line.tumorSizeClinical != '999') || (line.tumorSizePathologic != null && line.tumorSizePathologic != '999'))
    return false
if (line.tumorSizeSummary != null && line.tumorSizeSummary != '999')
    return false
if (line.vitalStatus == null || line.vitalStatus != '0')
    return false
if (line.icdRevisionNumber == null || !Functions.matches(line.icdRevisionNumber, /^[1789]$/))
    return false
if (line.diagnosticConfirmation != null && !['3','9'].contains(line.diagnosticConfirmation))
    return false

if (line.dateOfDiagnosisYear >= '2023' && line.summaryStage2018 != null && line.summaryStage2018 != '9')
    return false

return true]]></expression>
            <message>One or more fields contain incorrect codes for DCO cases.</message>
            <description><![CDATA[The purpose of this edit is to verify that cancer data items, when
populated, are correctly coded for Death Certificate Only cases (Type of Reporting Source = 7).

This edit is skipped if:
1. Year of Date of Diagnosis is less than 2018, blank, or invalid.
2. Type of Reporting Source is not = 7 (Death Certificate Only)
3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) and Schema ID is not 00721
   or 09721 (Brain), 00722 or 09722 (CNSOther), 00723 or 09723 (Intracranial Gland),
   or 09724 (Medulloblastoma)
4. Behavior Code ICD-O-3 is 2 (in situ)
5. Schema ID is blank


The following data items must be equal to one of the values specified below or may
be left blank.  [Please note that although this edit sometimes allows more than one
"correct" code or blanks for DCO cases, there are other edits that will only allow
codes (for instance, 888 OR 999) based on valid codes for the Schema ID.

This edit allows blanks for all of the fields except Vital Status and ICD Code.
There are other edits that check for allowable blanks based on standard setter requirements.


  Grade Clinical: 8, 9, or blank
  Grade Pathological: 8, 9, or blank
  Grade Post Therapy Clin (yc): Blank
  Grade Post Therapy Path (yp): blank

  Mets at DX-Bone: 8, 9, or blank
  Mets at DX-Brain: 8, 9, or blank
  Mets at DX-Distant LN: 8, 9, or blank
  Mets at DX-Liver: 8, 9, or blank
  Mets at DX-Lung: 8, 9, or blank
  Mets at DX-Other: 8, 9, or blank

  Lymphovascular Invasion: 8, 9, or blank

  Neoadjuvant Therapy: 9 or blank
  Neoadjuvant Therapy-Clinical Response: 9 or blank
  Neoadjuvant Therapy-Treatment Effect: 9 or blank

  Regional Nodes Positive: 99 or blank
  Regional Nodes Examined: 99 or blank

  Tumor Size Clinical: 999, or blank
  Tumor Size Pathological: 999, or blank
  Tumor Size Summary: 999, or blank

  Diagnostic Confirmation: 3, 9 or blank

  Vital Status: 0
  ICD Revision Number: 1, 7, 8, 9

For diagnosis year 2023+, Summary Stage 2018 must = 9 or blank]]></description>
            <history>
                <event version="SE24-024-06" user="shearerw" date="2024-07-05" ref="69511">Edit created.</event>
            </history>
        </rule>
        <rule id="IHS_Link" name="IHS Link (NPCR)" tag="N0753" java-path="lines.line" category="field">
            <expression><![CDATA[return  line.ihsLink == null || Functions.matches(line.ihsLink, /^([01])$/)]]></expression>
            <message>IHS Link not valid.</message>
            <description><![CDATA[Valid values for IHS[192] are 0-1 and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-11">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Laterality" name="Laterality (SEER LATERAL)" tag="N0005" java-path="lines.line" category="field">
            <expression><![CDATA[return  Functions.matches(line.laterality, /^[0123459]$/)]]></expression>
            <message>Laterality is not valid.</message>
            <description><![CDATA[Valid codes for Laterality[410] are 0-5,9.

0 = Not a paired  site
1 = Right - origin of primary
2 = Left - origin of primary
3 = Only one side - side unspecified
4 = Bilateral, single primary
5 = Paired site: midline tumor
9 = Paired site, but no information concerning laterality; midline tumor]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2009-12-22">Code 5 added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Lymph_vascular_invasion" name="Lymphovascular Invasion (SEER)" tag="N4909" java-path="lines.line" category="field">
            <expression><![CDATA[return  line.lymphVascularInvasion == null || Functions.matches(line.lymphVascularInvasion, /^[0-489\s]$/)]]></expression>
            <message>LymphoVascular Invasion is not valid.</message>
            <description><![CDATA[Must be a valid Lymphovascular Invasion code or blank:

0:    Lymphovascular Invasion stated as Not Present
1:    Lymphovascular Invasion present/identified (NOT used for thyroid and adrenal)
2:    Lymphatic and small vessel invasion only (L)
      OR Lymphatic invasion only (thyroid and adrenal only)
3:    Venous (large vessel) invasion only (V)
      OR Angioinvasion (thyroid and adrenal gland only)
4:    BOTH lymphatic and small vessel AND venous (large vessel) invasion
      OR BOTH Lymphatic AND angioinvasion (thyroid and adrenal only)
8:    Not applicable
9:    Unknown/Indeterminate/Not mentioned in pathology report]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-24" ref="67724">Added valid code values.</event>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-25" ref="67939">Changed edit name.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-24" ref="68025">Changed &apos;Lymph-vascular Invasion&apos; to &apos;Lymphovascular Invasion&apos; in name and documentation.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit tag changed.</event>
                <event version="SE22-022-01" user="secristc" date="2022-02-18" ref="68877">Updated description for Lymphovascular Invasion codes 1-4.</event>
            </history>
        </rule>
        <rule id="Marital_Status_at_DX" name="Marital Status at DX (SEER MARITAL)" tag="N0219" java-path="lines.line" category="field">
            <expression><![CDATA[return line.maritalStatusAtDx == null || Functions.matches(line.maritalStatusAtDx, /^[1234569]$/)]]></expression>
            <message>Marital status at DX is not valid.</message>
            <description><![CDATA[Valid codes for Marital status at DX[150] are 1-6,9 or blank.

        1 = Single (never married)
        2 = Married (including common law)
        3 = Separated
        4 = Divorced
        5 = Widowed
        6 = Unmarried or Domestic Partner (same sex or opposite sex, registered or unregistered)
        9 = Unknown]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-09-22">Blank is now a valid value.</event>
                <event version="SE12-003-01" user="murphy" date="2010-12-07">Code 6 is now a valid value (NAACCR 12.1).</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Marital_Status_DX_Submission" name="SEER Submission Edit 02 (SEER)" tag="N0850" java-path="lines.line" category="submission">
            <expression><![CDATA[if (line.registryId == '0000001542' && (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2000'))
    return true
if (line.registryId == '0000001565' && (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2023'))
    return true
if (line.registryId == '0000001566' && (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2022'))
    return true
return line.maritalStatusAtDx != null]]></expression>
            <message>Marital Status at DX can not be blank</message>
            <description><![CDATA[Marital status at DX must not be blank except for:
    a. Kentucky cases diagnosed prior to 2000
    b. Texas cases diagnosed prior to 2022
    c. Illinois cases diagnosed prior to 2023]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2009-12-22">Edit created.</event>
                <event version="SE21-021-07" user="kirbyk" date="2021-07-15" ref="68689">Added exception for Texas cases.</event>
                <event version="SE21-021-09" user="beverung" date="2021-09-09" ref="68741">Edit is skipped for IL and TX for Date of DX Year before 2021.</event>
                <event version="SE22-022-03" user="secristc" date="2022-04-20" ref="68957">Edit is skipped for IL for DX year before 2023, for TX before 2022.</event>
            </history>
        </rule>
        <rule id="Mets_at_DX_Bone" name="Mets at DX-Bone (SEER)" tag="N2126" java-path="lines.line" category="field">
            <expression><![CDATA[return line.metsAtDxBone == null || Functions.matches(line.metsAtDxBone, /^[0189]$/)]]></expression>
            <message>Must be a valid Mets at DX-Bone code: 0,1,8,9 or blank</message>
            <description><![CDATA[Must be a valid Mets at DX-Bone code: 0,1,8,9 or blank.
0 (none: no bone metastases),
1 (yes),
8 (not applicable),
9 (unknown whether bone is involved metastatic site)
blank]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-08" ref="67270">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Mets_at_DX_Brain" name="Mets at DX-Brain (SEER)" tag="N2128" java-path="lines.line" category="field">
            <expression><![CDATA[return line.metsAtDxBrain == null || Functions.matches(line.metsAtDxBrain, /^[0189]$/)]]></expression>
            <message>Must be a valid Mets at DX-Brain code: 0,1,8,9 or blank</message>
            <description><![CDATA[Must be a valid Mets at DX-Brain code: 0,1,8,9 or blank
Codes
0 None; no brain metastases
1 Yes; distant brain metastases
8 Not applicable
9 Unknown whether brain is involved metastatic site. Not documented in patient record.
blank]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-08" ref="67271">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Mets_at_DX_Distant_LN" name="Mets at DX-Distant LN (SEER)" tag="N2130" java-path="lines.line" category="field">
            <expression><![CDATA[return line.metsAtDxDistantLn == null || Functions.matches(line.metsAtDxDistantLn, /^[0189]$/)]]></expression>
            <message>Must be a valid Mets at DX-Distant LN code: 0,1,8,9 or blank</message>
            <description><![CDATA[Must be a valid Mets at DX-Distant LN code: 0,1,8,9 or blank
Codes
0 None; no distant lymph node metastases
1 Yes; distant lymph node metastases
8 Not applicable
9 Unknown whether distant lymph node(s) are involved metastatic site. Not documented in patient record.
blank]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-08" ref="67272">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Mets_at_DX_Liver" name="Mets at DX-Liver (SEER)" tag="N2132" java-path="lines.line" category="field">
            <expression><![CDATA[return line.metsAtDxLiver == null || Functions.matches(line.metsAtDxLiver, /^[0189]$/)]]></expression>
            <message>Must be a valid Mets at DX-Liver code: 0,1,8,9 or blank.</message>
            <description><![CDATA[Must be a valid Mets at DX-Liver code: 0,1,8,9 or blank.
Codes
0 None; no liver metastases
1 Yes; distant liver metastases
8 Not applicable
9 Unknown whether liver is involved metastatic site. Not documented in patient record.
blank]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-08" ref="67273">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Mets_at_DX_Lung" name="Mets at DX-Lung (SEER)" tag="N2134" java-path="lines.line" category="field">
            <expression><![CDATA[return line.metsAtDxLung == null || Functions.matches(line.metsAtDxLung, /^[0189]$/)]]></expression>
            <message>Must be a valid Mets at DX-Lung code: 0,1,8,9 or blank.</message>
            <description><![CDATA[Must be a valid Mets at DX-Lung code: 0,1,8,9 or blank.
Codes
0 None; no lung metastases
1 Yes; distant lung metastases
8 Not applicable
9 Unknown whether lung is involved metastatic site. Not documented in patient record.
blank]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-08" ref="67274">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Mets_at_DX_Other" name="Mets at DX-Other (SEER)" tag="N2136" java-path="lines.line" category="field">
            <expression><![CDATA[return line.metsAtDxOther == null || Functions.matches(line.metsAtDxOther, /^[01289]$/)]]></expression>
            <message>Must be a valid Mets at DX-Other code: 0,1,2,8,9 or blank.</message>
            <description><![CDATA[Must be a valid Mets at DX-Other code: 0,1,2,8,9 or blank.
Codes
0 None; no other metastases
1 Yes; distant metastases in known site(s) other than bone, brain, liver, lung or distant lymph nodes
2 Generalized metastases such as carcinomatosis
8 Not applicable
9 Unknown whether any other metastatic site. Not documented in patient record.
blank]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-08" ref="67275">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Month_BRM" name="RX Date BRM (COC)" tag="N0071" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxDateBrmMonth == null || line.rxDateBrmMonth  ==~ /^(0[1-9]|1[0-2])$/]]></expression>
            <message>Month of BRM is not valid.</message>
            <description><![CDATA[Valid values for Month of BRM[1240] are 01-12 and blank.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-14" ref="67141">Edit created.</event>
            </history>
        </rule>
        <rule id="Month_Chemo" name="RX Date Chemo (COC)" tag="N1046" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxDateChemoMonth == null || line.rxDateChemoMonth  ==~ /^(0[1-9]|1[0-2])$/]]></expression>
            <message>Month of Chemo is not valid.</message>
            <description><![CDATA[Valid codes for Month of Chemo[1220] are 01-12 or blanks.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-12" ref="67142">Edit created.</event>
            </history>
        </rule>
        <rule id="Month_Hormone" name="RX Date Hormone (COC)" tag="N0073" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxDateHormoneMonth == null || line.rxDateHormoneMonth  ==~ /^(0[1-9]|1[0-2])$/]]></expression>
            <message>Month of Hormone is not valid.</message>
            <description><![CDATA[Valid codes for Month of Hormone[1230] are 01-12 or blanks.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-14" ref="67143">Edit created.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="Month_Most_Defin_Surg" name="RX Date Mst Defn Srg (COC)" tag="N0510" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxDateMostDefinSurgMonth == null || Functions.matches(line.rxDateMostDefinSurgMonth, /^(0[1-9]|1[0-2])$/)]]></expression>
            <message>Month of Mst Defn Srg is not valid.</message>
            <description><![CDATA[Valid codes for Month of Mst Defn Srg[3170] are 01-12 or blank.]]></description>
            <history>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-12" ref="67577">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Month_of_Birth" name="Date of Birth (NAACCR)" tag="N1034" java-path="lines.line" category="field">
            <expression><![CDATA[return  line.dateOfBirthMonth == null || Functions.matches(line.dateOfBirthMonth, /^(0[1-9]|1[0-2])$/)]]></expression>
            <message>Month of birth is not valid.</message>
            <description><![CDATA[Valid codes for Month of Birth[240] are 01-12 and blanks.  Blanks allowed prior to submission.]]></description>
            <history>
                <event version="SE11-001-19" user="greend" date="2005-06-30">Blanks are allowed prior to submission.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-29">99 months removed.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-06">Blanks added.</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-20" ref="66804">Fixed edit to not allow a one digit month.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Month_of_Diagnosis" name="Date of Diagnosis (NAACCR DATEEDIT)" tag="N0021" java-path="lines.line" category="field">
            <expression><![CDATA[return line.dateOfDiagnosisMonth == null || Functions.matches(line.dateOfDiagnosisMonth, /^(0[1-9]|1[0-2])$/)]]></expression>
            <message>Month of diagnosis is not valid.</message>
            <description><![CDATA[Valid codes for Month of diagnosis[390] are 01-12 and blanks.]]></description>
            <history>
                <event version="SE11-001-19" user="greend" date="2005-06-30">Blanks are allowed prior to submission.</event>
                <event version="SE12-002-01" user="greend" date="2009-12-29">99 removed.</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-20" ref="66804">Fixed edit to not allow a one digit month.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Month_of_Initial_RX-SEER" name="Date Initial RX SEER (NAACCR)" tag="N0075" java-path="lines.line" category="field">
            <expression><![CDATA[return line.dateInitialRxSeerMonth == null || line.dateInitialRxSeerMonth  ==~ /^(0[1-9]|1[0-2])$/]]></expression>
            <message>Month of initial RX--SEER is not valid.</message>
            <description><![CDATA[Valid codes for Month of initial rx--SEER[1260] are 01-12 or blanks. Blanks allowed prior to submission.]]></description>
            <history>
                <event version="SE11-001-19" user="greend" date="2005-06-30">Blanks are allowed prior to submission.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-29">99 removed and range changed from 00-12 to 01-12.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Month_of_Last_Contact" name="Date of Last Contact (NAACCR DATEEDIT)" tag="N0022" java-path="lines.line" category="field">
            <expression><![CDATA[return line.dateOfLastContactMonth == null || Functions.matches(line.dateOfLastContactMonth, /^(0[1-9]|1[0-2])$/)]]></expression>
            <message>Month of last contact is not valid.</message>
            <description><![CDATA[Valid codes for Month of last contact[1750] are 01-12 or blanks.]]></description>
            <history>
                <event version="SE11-001-19" user="greend" date="2005-06-30">Blanks are allowed prior to submission.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-29">99 removed.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-05">Added blank check.</event>
                <event version="SE13-009-01" user="murphyr" date="2012-12-20" ref="66804">Fixed edit to not allow a one digit month.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Month_Other" name="RX Date Other (COC)" tag="N0074" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxDateOtherMonth == null || line.rxDateOtherMonth  ==~ /^(0[1-9]|1[0-2])$/]]></expression>
            <message>RX Month Other is not valid.</message>
            <description><![CDATA[Valid values for RX Month Other[1250] are 01-12 and blank.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-14" ref="67144">Edit created.</event>
            </history>
        </rule>
        <rule id="Month_Radiation" name="RX Date Radiation (COC)" tag="N0549" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxDateRadiationMonth == null || line.rxDateRadiationMonth  ==~ /^(0[1-9]|1[0-2])$/]]></expression>
            <message>Month of Radiation is not valid.</message>
            <description><![CDATA[Valid codes for Month of Radiation[1210] are 01-12 or blanks.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-09" ref="67145">Edit created.</event>
            </history>
        </rule>
        <rule id="Month_Recurrence_Date_1st" name="Recurrence Date--1st (COC)" tag="N0063" java-path="lines.line" category="field">
            <expression><![CDATA[return line.recurrenceDate1stMonth == null || line.recurrenceDate1stMonth  ==~ /^(0[1-9]|1[0-2])$/]]></expression>
            <message>Month of Recurrence Date--1st is not valid.</message>
            <description><![CDATA[Valid codes for Month of Recurrence Date--1st are 01-12 or blanks.]]></description>
            <history>
                <event version="SE21-021-01" user="kirbyk" date="2021-01-15" ref="68551">Edit created.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
                <event version="SE22-022-05" user="kirbyk" date="2022-05-17" ref="68995">Replaced non-ASCII characters in message and description.</event>
            </history>
        </rule>
        <rule id="Month_Regional_Lymph_Node_Dissection" name="Date Regional Lymph Node Dissection (COC)" tag="N2518" java-path="lines.line" category="field">
            <expression><![CDATA[return line.dateRegionalLNDissectionMonth == null || line.dateRegionalLNDissectionMonth  ==~ /^(0[1-9]|1[0-2])$/]]></expression>
            <message>Month of Regional Lymph Node Dissection is not valid.</message>
            <description><![CDATA[Valid codes for Month of Regional Lymph Node Dissection[682] are 01-12 or blanks.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-08" ref="67779">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Month_Sentinel_Lymph_Node_Biopsy" name="Date of Sentinel Lymph Node Biopsy (COC)" tag="N2512" java-path="lines.line" category="field">
            <expression><![CDATA[return line.dateSentinelLymphNodeBiopsyMonth == null || line.dateSentinelLymphNodeBiopsyMonth  ==~ /^(0[1-9]|1[0-2])$/]]></expression>
            <message>Month of Sentinel Lymph Node Biopsy is not valid.</message>
            <description><![CDATA[Valid codes for Month of Sentinel Lymph Node Biopsy[832] are 01-12 or blanks.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-08" ref="67779">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Month_Surgery" name="RX Date Surgery (COC)" tag="N0356" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxDateSurgeryMonth == null || Functions.matches(line.rxDateSurgeryMonth, /^(0[1-9]|1[0-2])$/)]]></expression>
            <message>Month of Surgery is not valid.</message>
            <description><![CDATA[Valid codes for Month of Surgery[1200] are 01-12 or blank.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-12" ref="67146">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-31" ref="68451">Changed edit name.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="Month_SurvDateActiveFollowup" name="Surv-Date Active Followup (SEER)" tag="N1979" java-path="lines.line" category="field">
            <expression><![CDATA[return line.survDateActiveFollowupMonth == null || Functions.matches(line.survDateActiveFollowupMonth, /^(0[1-9]|1[0-2])$/)]]></expression>
            <message>Month of Surv-Date Active Followup is not valid.</message>
            <description><![CDATA[Valid values for Month of Surv-Date Active Followup[1782] are 01-12 and blank.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-20" ref="67147">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Month_SurvDateDXRecode" name="Surv-Date DX Recode (SEER)" tag="N1981" java-path="lines.line" category="field">
            <expression><![CDATA[return line.survDateDxRecodeMonth == null || Functions.matches(line.survDateDxRecodeMonth, /^(0[1-9]|1[0-2])$/)]]></expression>
            <message>Month of Surv-Date DX Recode is not valid.</message>
            <description><![CDATA[Valid values for Month of Surv-Date DX Recode[1788] are 01-12 and blank.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-14" ref="67148">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Month_SurvDatePresumedAlive" name="Surv-Date Presumed Alive (SEER)" tag="N1980" java-path="lines.line" category="field">
            <expression><![CDATA[return line.survDatePresumedAliveMonth == null || Functions.matches(line.survDatePresumedAliveMonth, /^(0[1-9]|1[0-2])$/)]]></expression>
            <message>Month of Surv-Date Presumed Alive is not valid.</message>
            <description><![CDATA[Valid values for Month of Surv-Date Presumed Alive[1785] are 01-12 and blank.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-20" ref="67149">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Month_Systemic" name="RX Date Systemic (COC)" tag="N0567" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxDateSystemicMonth == null || Functions.matches(line.rxDateSystemicMonth, /^(0[1-9]|1[0-2])$/)]]></expression>
            <message>RX Date Systemic Month is not valid.</message>
            <description><![CDATA[Valid values for RX Date Systemic Month[3230] are 01-12 or blank.]]></description>
            <history>
                <event version="SE16-016-10" user="kirbyk" date="2018-01-16" ref="67682">Edit created.</event>
            </history>
        </rule>
        <rule id="MorphICDO3_P1" name="Morphology--Type/Behavior ICDO3 (SEER MORPH)" tag="N0472" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Histologic_Type_ICD-O-3,Year_of_Diagnosis">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null && line.behaviorCodeIcdO3 == null)
    return true

if (line.dateOfDiagnosisYear < '2010' && [9751,9831,9975].contains(Functions.asInt(line.histologicTypeIcdO3)) && (line.behaviorCodeIcdO3 == '3' || line.behaviorCodeIcdO3 == '2'))
    return line.overRideHistology == '1' || line.overRideHistology == '3'
if (line.dateOfDiagnosisYear > '2009' && [9751,9831,9975].contains(Functions.asInt(line.histologicTypeIcdO3)) && (line.behaviorCodeIcdO3 == '3' || line.behaviorCodeIcdO3 == '2'))
     return line.overRideHistology == null
if (line.dateOfDiagnosisYear < '2010' && ((List)Context.Morph_ICDO3_2010).contains(Functions.asInt(line.histologicTypeIcdO3)))
    return false

if (line.dateOfDiagnosisYear < '2018' && [8213,8311,8825,8842,8983,9302,9341].contains(Functions.asInt(line.histologicTypeIcdO3)) && line.behaviorCodeIcdO3 == '3')
    return line.overRideHistology == '1' || line.overRideHistology == '3'
if (line.dateOfDiagnosisYear > '2017' && [8213,8311,8825,8842,8983,9302,9341].contains(Functions.asInt(line.histologicTypeIcdO3)) && line.behaviorCodeIcdO3 == '3')
     return line.overRideHistology == null
if (line.dateOfDiagnosisYear < '2018' && ((List)Context.Morph_ICDO3_2018).contains(Functions.asInt(line.histologicTypeIcdO3)))
    return false

if (line.dateOfDiagnosisYear < '2021' && [8158,8681,8682,8690,9766].contains(Functions.asInt(line.histologicTypeIcdO3)) && line.behaviorCodeIcdO3 == '3')
    return line.overRideHistology == '1' || line.overRideHistology == '3'
if (line.dateOfDiagnosisYear > '2020' && [8158,8681,8682,8690,9766].contains(Functions.asInt(line.histologicTypeIcdO3)) && line.behaviorCodeIcdO3 == '3')
     return line.overRideHistology == null
if (line.dateOfDiagnosisYear < '2021' && ((List)Context.Morph_ICDO3_2021).contains(Functions.asInt(line.histologicTypeIcdO3)))
    return false

if (line.dateOfDiagnosisYear < '2022' && line.histologicTypeIcdO3 == '9222' && line.behaviorCodeIcdO3 == '3')
    return line.overRideHistology == '1' || line.overRideHistology == '3'
if (line.dateOfDiagnosisYear > '2021' && line.histologicTypeIcdO3 == '9222' && line.behaviorCodeIcdO3 == '3')
     return line.overRideHistology == null
if (line.dateOfDiagnosisYear < '2022' && ((List)Context.Morph_ICDO3_2022).contains(Functions.asInt(line.histologicTypeIcdO3)))
    return false

if (line.dateOfDiagnosisYear < '2023' && [9174,9509].contains(Functions.asInt(line.histologicTypeIcdO3)) && line.behaviorCodeIcdO3 == '3')
    return line.overRideHistology == '1' || line.overRideHistology == '3' || line.overRideSiteType == '1'
if (line.dateOfDiagnosisYear > '2022' && [9174,9509].contains(Functions.asInt(line.histologicTypeIcdO3)) && line.behaviorCodeIcdO3 == '3')
    return line.overRideHistology == null
if (line.dateOfDiagnosisYear < '2023' && ((line.histologicTypeIcdO3 == '9509' && line.behaviorCodeIcdO3 == '0') || (line.histologicTypeIcdO3 == '9749' && line.behaviorCodeIcdO3 == '1')))
    return false

if (line.dateOfDiagnosisYear < '2024' && line.histologicTypeIcdO3 == '9104' && line.behaviorCodeIcdO3 == '3')
    return line.overRideHistology == '1' || line.overRideHistology == '3' || line.overRideSiteType == '1'
if (line.dateOfDiagnosisYear > '2023' && line.histologicTypeIcdO3 == '9104' && line.behaviorCodeIcdO3 == '3')
    return line.overRideHistology == null

return true]]></expression>
            <message>Histologic Type ICD-O-3 and Date of Diagnosis conflict</message>
            <description><![CDATA[This edit is skipped if any of the following fields are blank
1.  Histologic Type ICD-O-3
2.  Behavior ICD-O-3

The valid values of Histologic Type ICD-O-3 are checked in a different edit.

To accommodate the new Hematopoietic and Lymphoid Neoplasm Rules effective for cases diagnosed 1/1/2010 and later:
The following Histologic Type ICD-O-3 codes are allowed only for cases with a year of Date of Diagnosis of 2010 and later:
9597, 9688, 9712, 9724, 9725, 9726, 9735, 9737, 9738, **9751, 9759, 9806, 9807, 9808, 9809, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, **9831, 9865, 9869, 9898, 9911, 9965, 9966, 9967, 9971, **9975, 9991, 9992
** Considered benign and/or borderline prior to 2010 and, if coded with Behavior ICD-O-3 code of 3, required an over-ride.  For cases diagnosed 2010 or later, these histologies are now reportable (with Behavior ICD-O-3 code of 3) and an over-ride should not be used.

To accommodate the ICD-O-3 codes effective for cases diagnosed 1/1/2018 and later:
The following Histologic Type ICD-O-3 codes are allowed only for cases with a year of Date of Diagnosis of 2018 and later:
8023, 8054, 8085, 8086, 8158, 8163, **8213, 8257, 8256, 8265, **8311, 8339, 8474, 8509, 8519, 8552, 8594, 8714, **8825,**8842, 8975, **8983, 9045, 9086, 9137, **9302, **9341, 9385, 9395, 9396, 9425, 9431, 9432, 9445, 9475, 9476, 9477, 9478, 9509, 9542
** Considered benign and/or borderline prior to 2018 and, if coded with Behavior ICD-O-3 code of 3, required an over-ride. For cases diagnosed 2018 or later, these histologies are now reportable (with Behavior ICD-O-3 code of 3) and an over-ride should not be used.

To accommodate the ICD-O-3.2 codes effective for cases diagnosed 1/1/2021 and later:
The following Histologic Type ICD-O-3 codes are allowed only for cases with a year of Date of Diagnosis of 2021 and later:
8104, **8158, 8273, 8348, 8349, 8483, 8484, 8563, 8643,**8681,**8682, **8690, &amp;&amp;8691, &amp;&amp;8692, 8816, 8817,8818, 8828, 8992, 9126, 9138, 9211, 9212, 9213, 9222, 9563, 9715, 9749, **9766, 9819, 9877, 9878, 9879, 9912, 9968, 9993
**considered benign and/or borderline prior to 2021 and, if coded with Behavior ICD-O-3 code of 3, required an over-ride. For cases diagnosed 2021 or later, these histologies are now reportable (with Behavior ICD-O-3 code of 3) and an over-ride should not be used.
&amp;&amp;considered borderline prior to 2021 but no over-ride was required if coded with /3

To accommodate the ICD-O-3.2 codes effective for cases diagnosed 1/1/2022 and later:
The following Histologic Type ICD-O-3 codes are allowed only for cases with a year of Date of Diagnosis of 2022 and later:
8455, 8859, 8976, 9111, **9222, 9366, 9367, 9368
**considered borderline prior to 2022 and, if coded with Behavior ICD-O-3 code of 3, required an over-ride. For cases diagnosed 2022 or later, this histology is now reportable (with Behavior ICD-O-3 code of 3) and an over-ride should not be used.

To accommodate the ICD-O-3.2 codes effective for cases diagnosed 1/1/2023 and later:
The following Histologic Type ICD-O-3 codes and behaviors are allowed only for cases with a year of Date of Diagnosis 2023 and later. Over-ride Site/Type may be required with some primary sites.
**9174/3, 9509/0, **9509/3, 9749/1
** considered borderline prior to 2023 and, if coded with Behavior ICD-O-3 code of 3, required an over-ride (Over-ride Histology or Over-ride Site/Type). For cases diagnosed 2023 or later, this histology is now reportable (with Behavior ICD-O-3 code of 3). Over-ride Site/Type may be required with some primary sites.

To accommodate the ICD-O-3.2 codes effective for cases diagnosed 1/1/2024 and later:
The following Histologic Type ICD-O-3 codes and behaviors are allowed only for cases with a year of Date of Diagnosis 2024 and later. Over-ride Site/Type may be required with some primary sites.
**9104/3
** considered borderline prior to 2024 and, if coded with Behavior ICD-O-3 code of 3, required an over-ride (Over-ride Histology or Over-ride Site/Type). For cases diagnosed 2024 or later, this histology is now reportable (with Behavior ICD-O-3 code of 3). Over-ride Site/Type may be required with some primary sites.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-02">Added 2 conditions for cases 2010+.</event>
                <event version="SE12-003-03" user="murphyr" date="2011-02-11">Changed range of histologies allowed for grades 5-8 from &quot;9590-9948&quot; to &quot;9590-9992&quot;.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-17">Removed some unnecessary code.  Removed unnecessary grade dependency for parts 1, 2, and 4.</event>
                <event version="SE12-008-05" user="murphyr" date="2012-11-30" ref="66769">Added &quot;Cases that have a behavior of &apos;3&apos; with histologies 9751,9831 or 9975 prior to 2010 must have the over-ride set.&quot; to the code.  It was in the documentation but not the code.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-04-30" ref="67698">Removed logic duplicated in MorphICDO3_P2-4 edits.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-05-01" ref="67778">Added logic to accomodate ICD-O-3 codes for 2018+ cases.</event>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-13" ref="67800">Changes to valid 2018+ histologies and &lt;2010 histologies.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-09-19" ref="68035">Fixed list of histologies for 2018+ in description.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-01" user="beverung" date="2022-03-07" ref="68817">Update logic with new Histologies for 2021+ and 2022+ cases.</event>
                <event version="SE22-022-03" user="kirbyk" date="2022-04-05" ref="68920">Fixed list of 2021+ histologies with the &amp;&amp; exception.</event>
                <event version="SE22-022-09" user="beverung" date="2022-07-22" ref="69017">Fixed failures for benign and/or borderline histologies.</event>
                <event version="SE23-023-03" user="shearerw" date="2023-05-23" ref="69270">Add logic for 2023+ cases. Change valid years for 8213, 8483, 8484</event>
                <event version="SE24-024-01" user="beverung" date="2024-03-08" ref="69410">Added logic for 2024+ cases.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-16" ref="69326">Removed several dependencies.</event>
            </history>
        </rule>
        <rule id="MorphICDO3_P3" name="Histologic Type ICD-O-3, Behavior, Grade (SEER)" tag="N1784" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Grade,Histologic_Type_ICD-O-3,MorphICDO3_P1,Primary_Site,Year_of_Diagnosis">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null || line.behaviorCodeIcdO3 == null || line.grade == null || (line.dateOfDiagnosisYear != null && line.dateOfDiagnosisYear > '2017'))
    return true

if (Functions.between(line.grade, '5', '8') && !Functions.between(line.histologicTypeIcdO3, '9590', '9992'))
    return false

// Grade of 9 is allowed for some histologies with unknown primary site
if (['8020', '8021', '9082', '9083'].contains(line.histologicTypeIcdO3) && '3' == line.behaviorCodeIcdO3 && 'C809' == line.primarySite && '9' == line.grade)
    return true

if (line.behaviorCodeIcdO3 == '3' && ((Map)Context.Morph_ICD03_Grade_Hists).containsKey(line.histologicTypeIcdO3))
    if (line.grade != (String)((Map)Context.Morph_ICD03_Grade_Hists).getOrDefault(line.histologicTypeIcdO3, ''))
        return false

return true]]></expression>
            <message>Grade and ICD-O-3 Histology conflict</message>
            <description><![CDATA[This edit is skipped if any of the following conditions are true:
1. Histologic Type ICD-O-3 is blank
2. Behavior Code ICD-O-3 is blank
3. Grade is blank
4. Diagnosis year > 2017

1. The following histology/grade combinations are impossible:
    Grades 5-8 with histologies not in the range 9590-9992

2. Some terms in ICD-O-3 carry an implied statement of grade.
   These histologies must be reported with the correct grade
   as stated below in format of histology/behavior & grade:

           *8020/34    Carcinoma, undifferentiated
           *8021/34    Carcinoma, anaplastic
            8331/31    Follicular adenocarcinoma, well differentiated
           *9082/34    Malignant teratoma, undifferentiated
           *9083/32    Malignant teratoma, intermediate type
            9511/31    Retinoblastoma, differentiated
            9512/34    Retinoblastoma, undifferentiated

* Edit allows grade of 9 where primary site is coded as unknown, C809 for these histologies]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-02">Added 2 conditions for cases 2010+.</event>
                <event version="SE12-003-03" user="murphyr" date="2011-02-11">Changed range of histologies allowed for grades 5-8 from &quot;9590-9948&quot; to &quot;9590-9992&quot;.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-17">Removed some unnecessary code.  Removed unnecessary grade dependency for parts 1, 2, and 4.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-05-10" ref="66871">Updated doc and edit name to reflect the new edit in the meta file that this edit is now referencing.  Logic changed only slightly.</event>
                <event version="SE16-016-04" user="kirbyk" date="2017-06-20" ref="67654">Updated logic to allow grade 9 for specific site/histology combinations.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-26" ref="67727">Restrict to cases before 2018.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE23-023-06" user="cooki" date="2023-08-30" ref="69304">Removed histologies 9401 and 9451.</event>
            </history>
        </rule>
        <rule id="MorphICDO3_P4" name="Morphology--Type/Behavior ICDO3 (SEER MORPH)" tag="N0472" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,Histologic_Type_ICD-O-3,MorphICDO3_P1">
            <expression><![CDATA[if (line.histologicTypeIcdO3 == null && line.behaviorCodeIcdO3 == null)
   return true

if (line.histologicTypeIcdO3 == '9421') {
    if (line.behaviorCodeIcdO3 == '1')
        return line.dateOfDiagnosisYear >= '2023' || (line.primarySite == 'C723' && line.dateOfDiagnosisYear >= '2018')
    return line.behaviorCodeIcdO3 == '3'
}

if (line.histologicTypeIcdO3 == '8077')
    return line.behaviorCodeIcdO3 != '3'

if (line.histologicTypeIcdO3 == '8343' && line.behaviorCodeIcdO3 == '2' && line.dateOfDiagnosisYear < '2017')
    return line.overRideHistology == '1' || line.overRideHistology == '3'

if (line.histologicTypeIcdO3 == '8519')
    return line.behaviorCodeIcdO3 == '2'

if (line.histologicTypeIcdO3 == '9540' && line.dateOfDiagnosisYear > '2017')
    return line.behaviorCodeIcdO3 != '1'

if (line.behaviorCodeIcdO3 == '2') {
    if (line.dateOfDiagnosisYear >= '2023' && line.histologicTypeIcdO3 == '9050')
        return true
    else if (line.overRideHistology != '1' && line.overRideHistology != '3')
        return !((List)((Map)Context.SpecInSituEdit).getOrDefault('Invalid_ICD_O_3_Histology_for_In_Situ_(Morph_3)', [])).contains(Functions.asInt(line.histologicTypeIcdO3))
}

if (line.behaviorCodeIcdO3 == '3' && line.dateOfDiagnosisYear >= '2021' && line.overRideHistology != '1' && line.overRideHistology != '3')
   return ![8833, 9725, 9260, 9971].contains(Functions.asInt(line.histologicTypeIcdO3))

return true]]></expression>
            <message>Histologic Type ICD-O-3 and Behavior conflict</message>
            <description><![CDATA[This edit is skipped for the following conditions:
1.  Histologic Type ICD-O-3[522] is blank
2.  Behavior ICD-O-3 is blank

Histology code 9421 (juvenile astrocytoma), although moving from behavior code 3 in ICD-O-2 to 1 in ICD-O-3, will CONTINUE to be collected with a behavior of 3 and it cannot be over-ridden for diagnosis years prior to 2023.

Histology code 9421 is accepted with behavior code '1' for DX year 2023+.

Histology code 9421 is accepted with behavior code '1' for DX year 2018+ and primary site = C723.

Histology code 8077 is NOT accepted with a behavior code '3' (malignant) and it cannot be over-ridden.

Histology code 8343 with a behavior code of '2' is not valid prior to 2017. Upon review, this can be over-ridden using Over-ride Histology.

Histology code 8519 is accepted with behavior code '2' and it cannot be over-ridden.

Histology code 9540 is NOT accepted with behavior code '1' for DX year 2018+ and cannot be over-ridden.

The following histology codes are not accepted with behavior code '2' in situ:  8000-8005, 8020, 8021, 8331, 8332, 8800-9055, 9062, 9082, 9083, 9110-9493, 9501-9992.  Upon review, these cases can be over-ridden using Over-ride Histology. For 2023 and later cases, 9050/2 is accepted.

The following histology codes are not accepted with behavior code '3' (malignant) for 2021+ cases: 8833, 9725, 9971. Upon review, these cases can be over-ridden using Over-ride Histology.

The malignant histology 9260 has been removed from the following code and transferred to another existing code. This code requires an over-ride if used for cases diagnosed 2021+.

Note:  Over-ride Histology is also used for SEER edit IF31.  Code 3 in Over-ride Histology indicates that both SEER's MORPH edit and IF31 are being over-ridden.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-02-02">Added 2 conditions for cases 2010+.</event>
                <event version="SE12-003-03" user="murphyr" date="2011-02-11">Changed range of histologies allowed for grades 5-8 from &quot;9590-9948&quot; to &quot;9590-9992&quot;.</event>
                <event version="SE12-004-01" user="murphyr" date="2011-02-17">Removed some unnecessary code.  Removed unnecessary grade dependency for parts 1, 2, and 4.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-04-30" ref="67698">Added checks for histology &apos;9421&apos; and &apos;8077&apos;.</event>
                <event version="SE18-018-08" user="kirbyk" date="2018-10-30" ref="68048">Added condition for histology &apos;8343&apos; with DX Year &lt; 2017.</event>
                <event version="SE18-018-11" user="kirbyk" date="2019-01-08" ref="68084">Edit now allows 9421/1 with site C723 for DX year 2018+.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-30" ref="68192">Updated description to match logic.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-04" user="beverung" date="2020-07-01" ref="68364">Added condition for &apos;9540&apos; with DX Year 2018+</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-12" ref="68501">Histology &apos;9540&apos; with Behavior &apos;0&apos; is now valid.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-13" ref="68818">Added Histology restrictions for 2021+ cases with Behavior &apos;3&apos;</event>
                <event version="SE22-022-01" user="beverung" date="2022-03-07" ref="68817">Add logic for Histology 9260 for 2021+ cases.</event>
                <event version="SE23-023-03" user="shearerw" date="2023-05-17" ref="69271">Add logic for 2023+ cases and Histology 8519.</event>
                <event version="SE24-024-04" user="kirbyk" date="2024-04-16" ref="69326">Removed several dependencies.</event>
            </history>
        </rule>
        <rule id="NCDB--COVID19--Tx_Impact" name="NCDB--COVID19--Tx Impact (COC)" tag="N6406" java-path="lines.line" category="field">
            <expression><![CDATA[return line.ncdbCovid19TxImpact == null || Functions.matches(line.ncdbCovid19TxImpact, /^[1-59]$/)]]></expression>
            <message>Not a valid value for NCDB--COVID19--Tx_Impact</message>
            <description><![CDATA[This edit checks valid values for NCDB--COVID19--Tx_Impact. The
data item may be blank.

Valid values:
   1: Treatment not affected; active surveillance, no change
    2: First Course of Treatment timeline delayed
    3: First Course of Treatment plan altered
    4: Cancelled First Course of Treatment
    5: Patient refused treatment due to COVID-19
    9: Not known if treatment affected]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-04-21" ref="68617">Edit created.</event>
            </history>
        </rule>
        <rule id="NCDB--SARSCoV2--Pos" name="NCDB--SARSCoV2--Pos (COC)" tag="N6404" java-path="lines.line" category="field">
            <expression><![CDATA[return line.ncdbSarsCov2Pos == null || line.ncdbSarsCov2Pos == '0' || line.ncdbSarsCov2Pos == '1' || line.ncdbSarsCov2Pos == '9']]></expression>
            <message>Not a valid value for NCDB--SARSCoV2--Pos</message>
            <description><![CDATA[This edit checks valid values for NCDB--SARSCoV2--Pos.  The data
item may be blank.

Valid values:
    0   Patient did not test positive for active SARS-CoV-2; no
positive test
   1    Patient tested positive for active SARS-CoV-2; test
positive on at least one test
    9   Unknown if tested, test done, results unknown]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-04-21" ref="68617">Edit created.</event>
            </history>
        </rule>
        <rule id="NCDB--SARSCoV2--Pos_Date" name="NCDB--SARSCoV2--Pos Date (COC)" tag="N6405" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.ncdbSarsCov2PosDateYear== null)
   return (line.ncdbSarsCov2PosDateMonth == null && line.ncdbSarsCov2PosDateDay == null)

if (line.ncdbSarsCov2PosDateYear < '2019')
    return false

Integer year = Functions.asInt(line.ncdbSarsCov2PosDateYear)
Integer month = Functions.asInt(line.ncdbSarsCov2PosDateMonth)
Integer day = Functions.asInt(line.ncdbSarsCov2PosDateDay)

Integer yearCur  = Functions.getCurrentYear()
Integer monthCur = Functions.getCurrentMonth()
Integer dayCur = Functions.getCurrentDay()

if ((line.ncdbSarsCov2PosDateMonth == null && line.ncdbSarsCov2PosDateDay != null) || (month > 12 || (line.ncdbSarsCov2PosDateMonth != null && month < 1)))
   return false

if (!Functions.between(year, 1930, yearCur))
    return false

if (line.ncdbSarsCov2PosDateMonth == null) //by now year fits and day is null if month is null
    return true

if (year == yearCur && month > monthCur)
    return false

if (line.ncdbSarsCov2PosDateDay == null) //by now year and month fit
    return true

if (year == yearCur && month == monthCur && day > dayCur)
    return false

Calendar cal = new GregorianCalendar(year, month - 1, 1)
return cal != null && day <= cal.getActualMaximum(Calendar.DAY_OF_MONTH)]]></expression>
            <message>Not a valid value for NCDB--SARSCoV2--Pos_Date</message>
            <description><![CDATA[This edit checks valid values for NCDB--SARSCoV2--Pos_Date.  The
data item may be blank.
The date must not be invalid or before 2019.

Valid values:
  CCYYMMDD  Date the patient had a positive test for SARS-CoV-2, the virus that causes
                the novel coronavirus disease (COVID-19), as documented by a medical provider.
  Blank -   Date of test is unknown or the date of a positive (diagnostic or serologic) test
             is unknown for SARS-CoV-2.]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-04-21" ref="68617">Edit created.</event>
                <event version="SE22-022-13" user="kirbyk" date="2022-10-18" ref="69045">Fixing edit behavior for future dates.</event>
            </history>
        </rule>
        <rule id="NCDB--SARSCoV2--Test" name="NCDB--SARSCoV2--Test (COC)" tag="N6403" java-path="lines.line" category="field">
            <expression><![CDATA[return line.ncdbSarsCov2Test == null || line.ncdbSarsCov2Test == '0' || line.ncdbSarsCov2Test == '1' || line.ncdbSarsCov2Test == '9']]></expression>
            <message>Not a valid value for NCDB--SARSCoV2--Test</message>
            <description><![CDATA[This edit checks valid values for NCDB--SARSCoV2--Test.  The
data item may be blank.

Valid values:
    0   Patient not tested for SARS-CoV-2; facility records support that patient did not undergo
pre-admit or in-hospital testing
   1    Patient tested for active SARS-CoV-2
    9   Unknown if patient tested for SARS-CoV-2
        No facility record of preadmit hospital testing of SARS-CoV-2]]></description>
            <history>
                <event version="SE21-021-04" user="smithm" date="2021-04-21" ref="68617">Edit created.</event>
            </history>
        </rule>
        <rule id="NHIA_Data_Element" name="NHIA Derived Hisp Origin (NAACCR)" tag="N0739" java-path="lines.line" category="field">
            <expression><![CDATA[return line.nhiaDerivedHispOrigin == null || Functions.matches(line.nhiaDerivedHispOrigin, /^[0-8]$/)]]></expression>
            <message>NHIA Derived Hisp origin is not valid.</message>
            <description><![CDATA[Valid codes for NHIA Derived Hisp Origin are 0-8, or blank.

0 = Non-Hispanic
1 = Mexican, by birthplace or other specific identifier
2 = Puerto Rican, by birthplace or other specific identifier
3 = Cuban, by birthplace or other specific dentifier
4 = South or Central American (except Brazil), by birthplace or other specific identifier
5 = Other specified Spanish/Hispanic origin (includes European; exludes Dominican Republic),
    by birthplace or other specific identifier
6 = Spanish, NOS; Hispanic, NOS; Latino, NOS
7 = NHIA surname match only
8 = Dominican Republic
Blank = Algorithm has not been run]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="NHIA_Derived_Hisp_Origin_Submission" name="SEER Submission Edit 01 (SEER)" tag="N0810" java-path="lines.line" category="submission">
            <expression><![CDATA[return line.nhiaDerivedHispOrigin != null]]></expression>
            <message>NHIA Derived Hisp Origin is required.</message>
            <history>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Number_of_Phases_of_Rad_Treament_to_This_Volume" name="Number of Phases of Rad Treatment to This Volume (COC)" tag="N2559" java-path="lines.line" category="inter-field">
            <expression><![CDATA[if (line.numberPhasesOfRadTxToVolume == null || line.dateOfDiagnosisYear == null)
    return true

if (line.dateOfDiagnosisYear >= '2021')
    return Functions.matches(line.numberPhasesOfRadTxToVolume, /^[0-9][0-9]$/)

return Functions.matches(line.numberPhasesOfRadTxToVolume, /^0[0-4]|99$/)]]></expression>
            <message>Number of Phases of Rad Treatment to This Volume is not valid.</message>
            <description><![CDATA[This data item identifies the total number of phases administered to the patient
during the first course of treatment. A "phase" consists of one or more
consecutive treatments delivered to the same anatomic volume with no change in
the treatment technique. Although the majority of courses of radiation therapy
are completed in one or two phases (historically the "regional" and "boost"
treatments), there are occasions in which three or more phases are used, most
typically with head and neck malignancies.

1. The data item may be blank. Other edits check that the item is recorded
   according to standard setter requirements by date.

2. Must be right-justified, zero-filled, no blanks within the code.

3. Must be a valid code for Number of Phases of Rad Treatment to This Volume:
    00-04, 99.

    00:  No radiation treatment
    01:  1 phase
    02:  2 phases
    03:  3 phases
    04:  4 or more phases
    99:  Unknown number of phases
         Unknown if radiation therapy administered

4. For 2021 and forward:
    00:     No radiation treatment
    01-98:  Actual number of phases of radiation
    99:     Unknown number of phases
            Unknown if radiation therapy administered]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-04" ref="67779">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE23-023-01" user="shearerw" date="2023-02-22" ref="69165">Add codes for 2021 and after. Add blank check for DX year.</event>
            </history>
        </rule>
        <rule id="Over-ride_Age-Site-Morph" name="Edit Over-rides (SEER REVIEWFL)" tag="N0027" java-path="lines.line" category="field">
            <expression><![CDATA[return  line.overRideAgeSiteMorph == null || Functions.matches(line.overRideAgeSiteMorph, /^[123\s]$/)]]></expression>
            <message>Over-ride age/site/morph is not valid.</message>
            <description><![CDATA[1 = Reviewed:  An unusual occurrence of a particular age/site/histology combination for a given age group has been reviewed.
2 = Reviewed:  Case was diagnosed in utero.
3 = Reviewed:  Conditions 1 and 2 above both apply.
Blanks are also allowed]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Over-ride_Histology" name="Edit Over-rides (SEER REVIEWFL)" tag="N0027" java-path="lines.line" category="field">
            <expression><![CDATA[return line.overRideHistology == null || Functions.matches(line.overRideHistology, /^[123\s]$/)]]></expression>
            <message>Over-ride histology is not valid.</message>
            <description><![CDATA[Valid codes for Over-ride histology[2040] are 1-3 or blank.

1 = Reviewed: failed histology edit
2 = Reviewed: failed behavior/diagnostic confirmation edit
3 = Reviewed: failed both hist and beh/diag confirmation edit]]></description>
            <history>
                <event version="SE11-001-08" user="greend" date="1992-07-15">The Histology/Behavior Interfield Review flag is now being used with IF31.  If the flag is &apos;1&apos; the histology edit caused the override, if the flag is &apos;2&apos; then IF31 caused the override and if the flag is &apos;3&apos; both edits caused the override.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Over-ride_Ill-defined_Site" name="Edit Over-rides (SEER REVIEWFL)" tag="N0027" java-path="lines.line" category="field">
            <expression><![CDATA[return line.overRideIllDefineSite == null || Functions.matches(line.overRideIllDefineSite, /^[1\s]$/)]]></expression>
            <message>Over-ride ill-defined site is not valid.</message>
            <description><![CDATA[Valid codes for Over-rid ill-defined site[2060] are 1 ("Reviewed") or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Over-ride_Leuk_Lymphoma" name="Edit Over-rides (SEER REVIEWFL)" tag="N0027" java-path="lines.line" category="field">
            <expression><![CDATA[return line.overRideLeukLymphoma == null || Functions.matches(line.overRideLeukLymphoma, /^[1\s]$/)]]></expression>
            <message>Over-ride leuk,lymphoma is not valid.</message>
            <description><![CDATA[Valid codes for Over-ride leuk, lymphoma[2070] are 1 ("Reviewed") or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Over-ride_Report_Source" name="Edit Over-rides (SEER REVIEWFL)" tag="N0027" java-path="lines.line" category="field">
            <expression><![CDATA[return line.overRideReportSource == null || Functions.matches(line.overRideReportSource, /^[1\s]$/)]]></expression>
            <message>Over-ride report source is not valid.</message>
            <description><![CDATA[Valid codes for Over-ride report source[2050] are 1 ("Reviewed") or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Over-ride_Seqno-Dxconf" name="Edit Over-rides (SEER REVIEWFL)" tag="N0027" java-path="lines.line" category="field">
            <expression><![CDATA[return line.overRideSeqnoDxconf == null || Functions.matches(line.overRideSeqnoDxconf, /^[1]$/)]]></expression>
            <message>Over-ride seqno/dxconf is not valid.</message>
            <description><![CDATA[Valid codes for Over-ride seqno/dxconf[2000] are 1 ("Reviewed") or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Over-ride_Site-Behavior" name="Edit Over-rides (SEER REVIEWFL)" tag="N0027" java-path="lines.line" category="field">
            <expression><![CDATA[return  line.overRideSiteBehavior == null || Functions.matches(line.overRideSiteBehavior, /^[1\s]$/)]]></expression>
            <message>Over-ride site/behavior is not valid.</message>
            <description><![CDATA[Valid codes for Over-ride site/behavior[2071] are 1 ("Reviewed") or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Over-ride_Site-EOD-DX_Dt" name="Edit Over-rides (SEER REVIEWFL)" tag="N0027" java-path="lines.line" category="field">
            <expression><![CDATA[return line.overRideSiteEodDxDt == null || Functions.matches(line.overRideSiteEodDxDt, /^[1\s]$/)]]></expression>
            <message>Over-ride site/eod/dx dt is not valid.</message>
            <description><![CDATA[Valid codes for Over-ride site/eod/dx dt[2072] are 1 ("Reviewed") or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Over-ride_Site-Lat-EOD" name="Edit Over-rides (SEER REVIEWFL)" tag="N0027" java-path="lines.line" category="field">
            <expression><![CDATA[return line.overRideSiteLatEod == null || Functions.matches(line.overRideSiteLatEod, /^[1\s]$/)]]></expression>
            <message>Over-ride site/lat/eod is not valid.</message>
            <description><![CDATA[Valid codes for Over-ride site/lat/eod[2073] are 1 ("Reviewed") or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Over-ride_Site-Lat-Morph" name="Edit Over-rides (SEER REVIEWFL)" tag="N0027" java-path="lines.line" category="field">
            <expression><![CDATA[return line.overRideSiteLatMorph == null || Functions.matches(line.overRideSiteLatMorph, /^[1\s]$/)]]></expression>
            <message>Over-ride site/lat/morph is not valid.</message>
            <description><![CDATA[Valid codes for Over-ride site/lat/morph[2074] are 1 ("Reviewed") or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Over-ride_Site-Lat-Seqno" name="Edit Over-rides (SEER REVIEWFL)" tag="N0027" java-path="lines.line" category="field">
            <expression><![CDATA[return line.overRideSiteLatSeqno == null || Functions.matches(line.overRideSiteLatSeqno, /^[1\s]$/)]]></expression>
            <message>Over-ride site/lat/seqno is not valid.</message>
            <description><![CDATA[Valid codes for Over-rid site/lat/seqno[2010] are 1 ("Reviewed") or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Over-ride_Site-Type" name="Edit Over-rides (SEER REVIEWFL)" tag="N0027" java-path="lines.line" category="field">
            <expression><![CDATA[return line.overRideSiteType == null || Functions.matches(line.overRideSiteType, /^[1\s]$/)]]></expression>
            <message>Over-ride site/type is not valid.</message>
            <description><![CDATA[Valid codes for Over-ride site/type[2030] are 1 ("Reviewed") or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Over-ride_Surg-Dxconf" name="Edit Over-rides (SEER REVIEWFL)" tag="N0027" java-path="lines.line" category="field">
            <expression><![CDATA[return line.overRideSurgDxconf == null || Functions.matches(line.overRideSurgDxconf, /^[1\s]$/)]]></expression>
            <message>Over-ride surg/dxconf is not valid.</message>
            <description><![CDATA[Valid codes for Over-ride surg/dxconf[2020] are 1 ("Reviewed") or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Patient_ID_Number" name="Patient ID Number (SEER CASENUM)" tag="N0058" java-path="lines.line" category="field">
            <expression><![CDATA[return line.patientIdNumber != null && Functions.matches(line.patientIdNumber, /^[0-9]{8}$/)]]></expression>
            <message>Patient ID number is not valid.</message>
            <description><![CDATA[The Patient ID number[20] is a unique number assigned to the patient by SEER participant (00000000-99999999).]]></description>
            <history>
                <event version="SE11-001-01" user="greend" date="1985-11-29">The length of the Patient ID number field has been expanded from seven to eight characters.</event>
                <event version="SE11-001-04" user="greend" date="1988-05-25">All eight characters must be numeric (i.e. the last position may not be blank).</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="PhIII_Dose_per_Fraction" name="PhIII Dose per Fraction (COC)" tag="N2552" java-path="lines.line" category="field">
            <expression><![CDATA[return line.phase3DosePerFraction == null || Functions.matches(line.phase3DosePerFraction, /^\d{5}$/)]]></expression>
            <message>Phase III Dose per Fraction is not valid.</message>
            <description><![CDATA[This data item records the dose per fraction (treatment session) delivered to
the patient in the third phase of radiation during the first course of treatment.
The unit of measure is centiGray (cGy).

1. The data item may be blank. Another edit checks consistency with radiation
   phases.

2. Must be right-justified, zero-filled.

3. Must be a valid code for Phase III Dose per Fraction: 00000-99999.

        00000:  Radiation therapy not administered
        00001-99997:  Actual Phase III dose delivered in cGy
        99998:  Not applicable, radioisotopes administered to the patient
        99999:  Phase III radiation therapy was administered but dose is unknown
               Unknown whether Phase III radiation therapy was administered.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit created.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-03" ref="68440">Updated description for code &apos;99998&apos;.</event>
            </history>
        </rule>
        <rule id="PhIII_Number_of_Fractions" name="PhIII Number of Fractions (COC)" tag="N2553" java-path="lines.line" category="field">
            <expression><![CDATA[return line.phase3NumberOfFractions == null || Functions.matches(line.phase3NumberOfFractions, /^\d{3}$/)]]></expression>
            <message>Phase III Number of Fractions is not valid.</message>
            <description><![CDATA[Records the total number of fractions (treatment sessions) delivered to the
patient in the third phase of radiation during the first course of treatment.

1. The data item may be blank. Another edit checks consistency with radiation
   phases.

2. Must be right-justified, zero-filled.

3. Must be a valid code for Phase III Number of Fractions: 000-999.

    000: Radiation therapy was not administered
    001-998: Number of fractions administered during third phase of radiation
             therapy
    999: Radiation therapy administerd but number of fractions unknown;
         Unknown if radiation therapy administered]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit created.</event>
            </history>
        </rule>
        <rule id="PhIII_Radiation_External_Beam_Planning_Tech" name="PhIII Radiation External Beam Planning Tech (COC)" tag="N2555" java-path="lines.line" category="field">
            <expression><![CDATA[return line.phase3RadiationExternalBeamTech == null || Functions.matches(line.phase3RadiationExternalBeamTech, /^0\d|10|88|98|99$/)]]></expression>
            <message>Phase III Radiation External Beam Planning Tech is not valid.</message>
            <description><![CDATA[This field Identifies the external beam radiation planning Tech used to
administer the third phase of radiation treatment during the first course of
treatment.

1. The data item may be blank. Another edit checks consistency with radiation
   phases.

2. Must be right-justified, zero-filled.

3. Must be a valid code for Phase III Radiation External Beam Planning Tech:
    00-10, 88, 98, 99.

    00: Radiation therapy not administered
    01: External beam, NOS
    02: Low energy x-ray/photon therapy
    03: 2-D therapy
    04: Conformal or 3-D conformal therapy
    05: Intensity modulated therapy
    06: Stereotactic radiotherapy or radiosurgery, NOS
    07: Stereotactic radiotherapy or radiosurgery, robotic
    08: Stereotactic radiotherapy or radiosurgery, Gamma Knife(R)
    09: CT-guided online adaptive therapy
    10: MR-guided online adaptive therapy
    88: Not applicable
    98: Other, NOS
    99: Unknown whether radiation therapy administered]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="PhIII_Radiation_Primary_Treatment_Volume" name="PhIII Radiation Primary Treatment Volume (COC)" tag="N2557" java-path="lines.line" category="field">
            <expression><![CDATA[return line.phase3RadiationPrimaryTxVolume == null || Functions.matches(line.phase3RadiationPrimaryTxVolume, /^0[0-79]|1[0-4]|2[0-69]|3[0-29]|4[0-2]|5\d|6[0-8]|7[0-3]|8[0-68]|9[0-689]$/)]]></expression>
            <message>Phase III Radiation Primary Treatment Volume is not valid.</message>
            <description><![CDATA[This data item identifies the primary treatment volume or primary anatomic target
treated during the third phase of radiation therapy during the first course of
treatment.

1. The data item may be blank. Another edit checks consistency with radiation
   phases.

2. Must be right-justified, zero-filled.

3. Must be a valid code for Phase III Radiation Primary Treatment Volume:
    00-07, 09-14, 20-26, 29-32, 39-42, 50-68, 70-73, 80-86, 88, 90-96, 98-99.

        00: No radiation treatment
        01: Neck lymph node regions
        02: Thoracic lymph node regions
        03: Neck and thoracic lymph node regions
        04: Breast/ Chestwall lymph node regions
        05: Abdominal lymph nodes
        06: Pelvic lymph nodes
        07: Abdominal and pelvic lymph nodes
        09: Lymph node region, NOS
        10: Eye/orbit/optic nerve
        11: Pituitary
        12: Brain
        13: Brain (Limited)
        14: Spinal cord
        20: Nasopharynx
        21: Oral Cavity
        22: Oropharynx
        23: Larynx (glottis) or hypopharynx
        24: Sinuses/Nasal tract
        25: Parotid or other salivary glands
        26: Thyroid
        29: Head and neck (NOS)
        30: Lung or bronchus
        31: Mesothelium
        32: Thymus
        39: Chest/lung (NOS)
        40; Breast - whole
        41: Breast - partial
        42: Chest wall
        50: Esophagus
        51: Stomach
        52: Small bowel
        53: Colon
        54: Rectum
        55: Anus
        56: Liver
        57: Biliary tree or gallbladder
        58: Pancreas or hepatopancreatic ampulla
        59: Abdomen (NOS)
        60: Bladder - whole
        61: Bladder - partial
        62: Kidney
        63: Ureter
        64: Prostate - whole
        65: Prostate - partial
        66: Urethra
        67: Penis
        68: Testicle or scrotum
        70: Ovaries or fallopian tubes
        71: Uterus or Cervix
        72: Vagina
        73: Vulva
        80: Skull
        81: Spine/vertebral bodies
        82: Shoulder
        83: Ribs
        84: Hip
        85: Pelvic bones
        86: Pelvis (NOS, non-visceral)
        88: Extremity bone, NOS
        90: Skin
        91: Soft tissue
        92: Hemibody
        93: Whole body
        94: Mantle, mini-mantle (obsolete after 2017)
        95: Lower extended field (obsolete after 2017)
        96: Inverted Y (obsolete after 2017)
        98: Other
        99: Unknown]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="PhIII_Radiation_to_Draining_Lymph_Nodes" name="PhIII Radiation to Draining Lymph Nodes (COC)" tag="N2554" java-path="lines.line" category="field">
            <expression><![CDATA[return line.phase3RadiationToDrainingLN == null || Functions.matches(line.phase3RadiationToDrainingLN, /^0[0-8]|88|99$/)]]></expression>
            <message>Phase III Radiation to Draining Lymph Nodes is not valid.</message>
            <description><![CDATA[This data item identifies the draining lymph nodes treated (if any) during the
third phase of radiation therapy delivered to the patient during the first
course of treatment.

1. The data item may be blank. Another edit checks consistency with radiation
   phases.

2. Must be right-justified, zero-filled.

3. Must be a valid code for Phase III Radiation to Draining Lymph Nodes:
    00-08, 88, 99.

    00: No radiation treatment
    01: Neck Lymph Node Regions
    02: Thoracic Lymph Node Regions
    03: Neck and Thoracic Lymph Node Regions
    04: Breast/Chest wall Lymph Node Regions
    05: Abdominal Lymph Nodes
    06: Pelvic Lymph Nodes
    07: Abdominal and Pelvic Lymph Nodes
    08: Lymph Node Region, NOS
    88: Not Applicable; No Radiation Treatment to Draining Lymph Nodes
    99: Unknown if any Radiation Treatment to Draining Lymph Nodes;
         Unknown if radiation treatment administered]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="PhIII_Radiation_Treatment_Modality" name="PhIII Radiation Treatment Modality (COC)" tag="N2556" java-path="lines.line" category="field">
            <expression><![CDATA[return line.phase3RadiationTreatmentModality == null || Functions.matches(line.phase3RadiationTreatmentModality, /^0\d|1[0-6]|98|99$/)]]></expression>
            <message>Phase III Radiation Treatment Modality is not valid.</message>
            <description><![CDATA[This data item identifies the radiation modality administered during the third
phase of radiation treatment delivered during the first course of treatment.

1. The data item may be blank. Another edit checks consistency with radiation
   phases.

2. Must be right-justified, zero-filled.

3. Must be a valid code for Phase III Radiation Treatment Modality: 00-16, 99.

    00: No radiation treatment
    01: External beam, NOS
    02: External beam, photons
    03: External beam, protons
    04: External beam, electrons
    05: External beam, neutrons
    06: External beam, carbon ions
    07: Brachytherapy, NOS
    08: Brachytherapy, intracavitary, LDR
    09: Brachytherapy, intracavitary, HDR
    10: Brachytherapy, Interstitial, LDR
    11: Brachytherapy, Interstitial, HDR
    12: Brachytherapy, electronic
    13: Radioisotopes, NOS
    14: Radioisotopes, Radium-232
    15: Radioisotopes, Strontium-89
    16: Radioisotopes, Strontium-90
    98: Radiation treatment administered, modality unknown
    99: Radiation treatment modality unknown
         Unknown if radiation treatment administered]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit created.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-04" ref="68442">Added code &apos;98&apos;.</event>
            </history>
        </rule>
        <rule id="PhIII_Total_Dose" name="PhIII Total Dose (COC)" tag="N2558" java-path="lines.line" category="field">
            <expression><![CDATA[return line.phase3TotalDose == null || Functions.matches(line.phase3TotalDose, /^\d{6}$/)]]></expression>
            <message>Phase III Total Dose is not valid.</message>
            <description><![CDATA[This data item identifies the total radiation dose delivered to the patient in
the third phase of radiation treatment during the first course of treatment.
The unit of measure is centiGray (cGy).

1. The data item may be blank. Another edit checks consistency with radiation
   phases.

2. Must be right-justified, zero-filled.

3. Must be a valid code for Phase III Total Dose: 000000-999999.

        000000: No therapy administered
        000001-999997: Actual total dose delivered in cGy
        999998: Not applicable, radioisotopes administered to the patient
        999999: Radiation therapy was administered, but the dose is unknown;
               Unknown whether radiation therapy was administered]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit created.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-03" ref="68440">Updated description for code &apos;99998&apos;.</event>
            </history>
        </rule>
        <rule id="PhII_Dose_per_Fraction" name="PhII Dose per Fraction (COC)" tag="N2545" java-path="lines.line" category="field">
            <expression><![CDATA[return line.phase2DosePerFraction == null || Functions.matches(line.phase2DosePerFraction, /^\d{5}$/)]]></expression>
            <message>Phase II Dose per Fraction is not valid.</message>
            <description><![CDATA[This data item records the dose per fraction (treatment session) delivered to
the patient in the second phase of radiation during the first course of
treatment. The unit of measure is centiGray (cGy).

1. The data item may be blank. Another edit checks consistency with radiation
   phases.

2. Must be right-justified, zero-filled.

3. Must be a valid code for Phase II Dose per Fraction: 00000-99999.

        00000:  Radiation therapy not administered
        00001-99997:  Actual Phase II dose delivered in cGy
        99998:  Not applicable, radioisotopes administered to the patient
        99999:  Phase II radiation therapy was administered but dose is unknown;
               Unknown whether Phase II radiation therapy was administered.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit created.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-03" ref="68440">Updated description for code &apos;99998&apos;.</event>
            </history>
        </rule>
        <rule id="PhII_Number_of_Fractions" name="PhII Number of Fractions (COC)" tag="N2546" java-path="lines.line" category="field">
            <expression><![CDATA[return line.phase2NumberOfFractions == null || Functions.matches(line.phase2NumberOfFractions, /^\d{3}$/)]]></expression>
            <message>Phase II Number of Fractions is not valid.</message>
            <description><![CDATA[Records the total number of fractions (treatment sessions) delivered to the
patient in the second phase of radiation during the first course of treatment.

1. The data item may be blank. Another edit checks consistency with radiation
   phases.

2. Must be right-justified, zero-filled.

3. Must be a valid code for Phase II Number of Fractions: 000-999.

    000: Radiation therapy was not administered
    001-998: Number of fractions administered during second phase of radiation
             therapy
    999: Radiation therapy administerd but number of fractions unknown;
         Unknown if radiation therapy administered]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit created.</event>
            </history>
        </rule>
        <rule id="PhII_Radiation_External_Beam_Planning_Tech" name="PhII Radiation External Beam Planning Tech (COC)" tag="N2548" java-path="lines.line" category="field">
            <expression><![CDATA[return line.phase2RadiationExternalBeamTech == null || Functions.matches(line.phase2RadiationExternalBeamTech, /^0\d|10|88|98|99$/)]]></expression>
            <message>Phase II Radiation External Beam Planning Tech is not valid.</message>
            <description><![CDATA[This field Identifies the external beam radiation planning technique used to
administer the second phase of radiation treatment during the first course of
treatment.

1. The data item may be blank. Another edit checks consistency with radiation
   phases.

2. Must be right-justified, zero-filled.

3. Must be a valid code for Phase II Radiation External Beam Planning Tech:
    00-10, 88, 98, 99.

        00: No radiation treatment
        01: External beam, NOS
        02: Low energy x-ray/photon therapy
        03: 2-D therapy
        04: Conformal or 3-D conformal therapy
        05: Intensity modulated therapy
        06: Stereotactic radiotherapy or radiosurgery, NOS
        07: Stereotactic radiotherapy or radiosurgery, robotic
        08: Stereotactic radiotherapy or radiosurgery, Gamma Knife(R)
        09: CT-guided online adaptive therapy
        10: MR-guided online adaptive therapy
        88: Not applicable
        98: Other, NOS
        99: Unknown whether radiation therapy administered]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="PhII_Radiation_Primary_Treatment_Volume" name="PhII Radiation Primary Treatment Volume (COC)" tag="N2550" java-path="lines.line" category="field">
            <expression><![CDATA[return line.phase2RadiationPrimaryTxVolume == null || Functions.matches(line.phase2RadiationPrimaryTxVolume, /^0[0-79]|1[0-4]|2[0-69]|3[0-29]|4[0-2]|[59]\d|6[0-8]|7[0-3]|8[0-68]$/)]]></expression>
            <message>Phase II Radiation Primary Treatment Volume is not valid.</message>
            <description><![CDATA[This data item identifies the primary treatment volume or primary anatomic target
treated during the second phase of radiation therapy during the first course of
treatment.

1. The data item may be blank. Another edit checks consistency with radiation
   phases.

2. Must be right-justified, zero-filled.

3. Must be a valid code for Phase II Radiation Primary Treatment Volume:
    00-07, 09-14, 20-26, 29-32, 39-42, 50-68, 70-73, 80-86, 88, 90-99.

        00: No radiation treatment
        01: Neck lymph node regions
        02: Thoracic lymph node regions
        03: Neck and thoracic lymph node regions
        04: Breast/ Chestwall lymph node regions
        05: Abdominal lymph nodes
        06: Pelvic lymph nodes
        07: Abdominal and pelvic lymph nodes
        09: Lymph node region, NOS
        10: Eye/orbit/optic nerve
        11: Pituitary
        12: Brain
        13: Brain (Limited)
        14: Spinal cord
        20: Nasopharynx
        21: Oral Cavity
        22: Oropharynx
        23: Larynx (glottis) or hypopharynx
        24: Sinuses/Nasal tract
        25: Parotid or other salivary glands
        26: Thyroid
        29: Head and neck (NOS)
        30: Lung or bronchus
        31: Mesothelium
        32: Thymus
        39: Chest/lung (NOS)
        40; Breast - whole
        41: Breast - partial
        42: Chest wall
        50: Esophagus
        51: Stomach
        52: Small bowel
        53: Colon
        54: Rectum
        55: Anus
        56: Liver
        57: Biliary tree or gallbladder
        58: Pancreas or hepatopancreatic ampulla
        59: Abdomen (NOS)
        60: Bladder - whole
        61: Bladder - partial
        62: Kidney
        63: Ureter
        64: Prostate - whole
        65: Prostate - partial
        66: Urethra
        67: Penis
        68: Testicle or scrotum
        70: Ovaries or fallopian tubes
        71: Uterus or Cervix
        72: Vagina
        73: Vulva
        80: Skull
        81: Spine/vertebral bodies
        82: Shoulder
        83: Ribs
        84: Hip
        85: Pelvic bones
        86: Pelvis (NOS, non-visceral)
        88: Extremity bone, NOS
        90: Skin
        91: Soft tissue
        92: Hemibody
        93: Whole body
        94: Mantle, mini-mantle (obsolete after 2017)
        95: Lower extended field (obsolete after 2017)
        96: Inverted Y (obsolete after 2017)
        97:   Invalid historical FORDS value
        98: Other
        99: Unknown]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="PhII_Radiation_to_Draining_Lymph_Nodes" name="PhII Radiation to Draining Lymph Nodes (COC)" tag="N2547" java-path="lines.line" category="field">
            <expression><![CDATA[return line.phase2RadiationToDrainingLN == null || Functions.matches(line.phase2RadiationToDrainingLN, /^0[0-8]|88|99$/)]]></expression>
            <message>Phase II Radiation to Draining Lymph Nodes is not valid.</message>
            <description><![CDATA[This data item identifies the draining lymph nodes treated (if any) during the
second phase of radiation therapy delivered to the patient during the first
course of treatment.

1. The data item may be blank. Another edit checks consistency with radiation
   phases.

2. Must be right-justified, zero-filled.

3. Must be a valid code for Phase II Radiation to Draining Lymph Nodes:
    00-08, 88, 99.

    00: No radiation treatment
    01: Neck Lymph Node Regions
    02: Thoracic Lymph Node Regions
    03: Neck and Thoracic Lymph Node Regions
    04: Breast/Chest wall Lymph Node Regions
    05: Abdominal Lymph Nodes
    06: Pelvic Lymph Nodes
    07: Abdominal and Pelvic Lymph Nodes
    08: Lymph Node Region, NOS
    88: Not Applicable; No Radiation Treatment to Draining Lymph Nodes
    99: Unknown if any Radiation Treatment to Draining Lymph Nodes;
         Unknown if radiation treatment administered]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="PhII_Radiation_Treatment_Modality" name="PhII Radiation Treatment Modality (COC)" tag="N2549" java-path="lines.line" category="field">
            <expression><![CDATA[return line.phase2RadiationTreatmentModality == null || Functions.matches(line.phase2RadiationTreatmentModality, /^0\d|1[0-6]|98|99$/)]]></expression>
            <message>Phase II Radiation Treatment Modality is not valid.</message>
            <description><![CDATA[This data item identifies the radiation modality administered during the second
phase of radiation treatment delivered during the first course of treatment.

1. The data item may be blank. Another edit checks consistency with radiation
   phases.

2. Must be right-justified, zero-filled.

3. Must be a valid code for Phase II Radiation Treatment Modality: 00-16, 99.

    00: No radiation treatment
    01: External beam, NOS
    02: External beam, photons
    03: External beam, protons
    04: External beam, electrons
    05: External beam, neutrons
    06: External beam, carbon ions
    07: Brachytherapy, NOS
    08: Brachytherapy, intracavitary, LDR
    09: Brachytherapy, intracavitary, HDR
    10: Brachytherapy, Interstitial, LDR
    11: Brachytherapy, Interstitial, HDR
    12: Brachytherapy, electronic
    13: Radioisotopes, NOS
    14: Radioisotopes, Radium-232
    15: Radioisotopes, Strontium-89
    16: Radioisotopes, Strontium-90
    98: Radiation treatment administered, modality unknown
    99: Radiation treatment modality unknown;
         Unknown if radiation treatment administered]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit created.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-04" ref="68442">Added code &apos;98&apos;.</event>
            </history>
        </rule>
        <rule id="PhII_Total_Dose" name="PhII Total Dose (COC)" tag="N2551" java-path="lines.line" category="field">
            <expression><![CDATA[return line.phase2TotalDose == null || Functions.matches(line.phase2TotalDose, /^\d{6}$/)]]></expression>
            <message>Phase II Total Dose is not valid.</message>
            <description><![CDATA[This data item identifies the total radiation dose delivered to the patient in
the second phase of radiation treatment during the first course of treatment.
The unit of measure is centiGray (cGy).

1. The data item may be blank. Another edit checks consistency with radiation
   phases.

2. Must be right-justified, zero-filled.

3. Must be a valid code for Phase II Total Dose: 000000-999999.

        000000: No therapy administered
        000001-999997: Actual total dose delivered in cGy
        999998: Not applicable, radioisotopes administered to the patient
        999999: Radiation therapy was administered, but the dose is unknown
               Unknown whether radiation therapy was administered]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit created.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-03" ref="68440">Updated description for code &apos;99998&apos;.</event>
            </history>
        </rule>
        <rule id="PhI_Dose_per_Fraction" name="PhI Dose per Fraction (COC)" tag="N2542" java-path="lines.line" category="field">
            <expression><![CDATA[return line.phase1DosePerFraction == null || Functions.matches(line.phase1DosePerFraction, /^\d{5}$/)]]></expression>
            <message>Phase I Dose per Fraction is not valid.</message>
            <description><![CDATA[This data item records the dose per fraction (treatment session) delivered to
the patient in the first phase of radiation during the first course of treatment.
The unit of measure is centiGray (cGy).

1. The data item may be blank. Other edits check that the item is recorded
    according to standard setter requirements by date.

2. Must be right-justified, zero-filled.

3. Must be a valid code for Phase I Dose per Fraction: 00000-99999.

    00000:  Radiation therapy not administered
    00001-99997:  Actual Phase I dose delivered in cGy
    99998:  Not applicable, radioisotopes administered to the patient
    99999:  Phase I radiation therapy was administered but dose is unknown;
            Unknown whether Phase I radiation therapy was administered.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit created.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-03" ref="68440">Updated description for code &apos;99998&apos;.</event>
            </history>
        </rule>
        <rule id="PhI_Number_of_Fractions" name="PhI Number of Fractions (COC)" tag="N2543" java-path="lines.line" category="field">
            <expression><![CDATA[return line.phase1NumberOfFractions == null || Functions.matches(line.phase1NumberOfFractions, /^\d{3}$/)]]></expression>
            <message>Phase I Number of Fractions is not valid.</message>
            <description><![CDATA[Records the total number of fractions (treatment sessions) delivered to the
patient in the first phase of radiation during the first course of treatment.

1. The data item may be blank. Other edits check that the item is recorded
    according to standard setter requirements by date.


2. Must be right-justified, zero-filled.

3. Must be a valid code for Phase I Number of Fractions: 000-999.

    000: Radiation therapy was not administered
    001-998: Number of fractions administered during third phase of radiation
             therapy
    999: Radiation therapy administerd but number of fractions unknown;
         Unknown if radiation therapy administered]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit created.</event>
            </history>
        </rule>
        <rule id="PhI_Radiation_External_Beam_Planning_Tech" name="PhI Radiation External Beam Planning Tech (COC)" tag="N2541" java-path="lines.line" category="field">
            <expression><![CDATA[return line.phase1RadiationExternalBeamTech == null || Functions.matches(line.phase1RadiationExternalBeamTech, /^0\d|10|88|98|99$/)]]></expression>
            <message>Phase I Radiation External Beam Planning Tech is not valid.</message>
            <description><![CDATA[This field Identifies the external beam radiation planning Tech used to
administer the first phase of radiation treatment during the first course of
treatment.

1. The data item may be blank. Other edits check that the item is recorded
    according to standard setter requirements by date.

2. Must be right-justified, zero-filled.

3. Must be a valid code for Phase I Radiation External Beam Planning Tech:
    00-10, 88, 98, 99.

        00: No radiation treatment
        01: External beam, NOS
        02: Low energy x-ray/photon therapy
        03: 2-D therapy
        04: Conformal or 3-D conformal therapy
        05: Intensity modulated therapy
        06: Stereotactic radiotherapy or radiosurgery, NOS
        07: Stereotactic radiotherapy or radiosurgery, robotic
        08: Stereotactic radiotherapy or radiosurgery, Gamma Knife(R)
        09: CT-guided online adaptive therapy
        10: MR-guided online adaptive therapy
        88: Not applicable
        98: Other, NOS
        99: Unknown whether radiation therapy administered]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="PhI_Radiation_Primary_Treatment_Volume" name="PhI Radiation Primary Treatment Volume (COC)" tag="N2538" java-path="lines.line" category="field">
            <expression><![CDATA[return line.phase1RadiationPrimaryTxVolume == null || Functions.matches(line.phase1RadiationPrimaryTxVolume, /^0[0-79]|1[0-4]|2[0-69]|3[0-29]|4[0-2]|[59]\d|6[0-8]|7[0-3]|8[0-68]$/)]]></expression>
            <message>Phase I Radiation Primary Treatment Volume is not valid.</message>
            <description><![CDATA[This data item identifies the primary treatment volume or primary anatomic
target treated during the first phase of radiation therapy during the first
course of treatment.

1. The data item may be blank. Other edits check that the item is recorded
    according to standard setter requirements by date.

2. Must be right-justified, zero-filled.

3. Must be a valid code for Phase I Radiation Primary Treatment Volume:
    00-07, 09-14, 20-26, 29-32, 39-42, 50-68, 70-73, 80-86, 88, 90-99.

        00: No radiation treatment
        01: Neck lymph node regions
        02: Thoracic lymph node regions
        03: Neck and thoracic lymph node regions
        04: Breast/ Chestwall lymph node regions
        05: Abdominal lymph nodes
        06: Pelvic lymph nodes
        07: Abdominal and pelvic lymph nodes
        09: Lymph node region, NOS
        10: Eye/orbit/optic nerve
        11: Pituitary
        12: Brain
        13: Brain (Limited)
        14: Spinal cord
        20: Nasopharynx
        21: Oral Cavity
        22: Oropharynx
        23: Larynx (glottis) or hypopharynx
        24: Sinuses/Nasal tract
        25: Parotid or other salivary glands
        26: Thyroid
        29: Head and neck (NOS)
        30: Lung or bronchus
        31: Mesothelium
        32: Thymus
        39: Chest/lung (NOS)
        40; Breast - whole
        41: Breast - partial
        42: Chest wall
        50: Esophagus
        51: Stomach
        52: Small bowel
        53: Colon
        54: Rectum
        55: Anus
        56: Liver
        57: Biliary tree or gallbladder
        58: Pancreas or hepatopancreatic ampulla
        59: Abdomen (NOS)
        60: Bladder - whole
        61: Bladder - partial
        62: Kidney
        63: Ureter
        64: Prostate - whole
        65: Prostate - partial
        66: Urethra
        67: Penis
        68: Testicle or scrotum
        70: Ovaries or fallopian tubes
        71: Uterus or Cervix
        72: Vagina
        73: Vulva
        80: Skull
        81: Spine/vertebral bodies
        82: Shoulder
        83: Ribs
        84: Hip
        85: Pelvic bones
        86: Pelvis (NOS, non-visceral)
        88: Extremity bone, NOS
        90: Skin
        91: Soft tissue
        92: Hemibody
        93: Whole body
        94: Mantle, mini-mantle (obsolete after 2017)
        95: Lower extended field (obsolete after 2017)
        96: Inverted Y (obsolete after 2017)
        97:   Invalid historical FORDS value
        98: Other
        99: Unknown]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="PhI_Radiation_to_Draining_Lymph_Nodes" name="PhI Radiation to Draining Lymph Nodes (COC)" tag="N2539" java-path="lines.line" category="field">
            <expression><![CDATA[return line.phase1RadiationToDrainingLN == null || Functions.matches(line.phase1RadiationToDrainingLN, /^0[0-8]|88|99$/)]]></expression>
            <message>Phase I Radiation to Draining Lymph Nodes is not valid.</message>
            <description><![CDATA[This data item identifies the draining lymph nodes treated (if any) during the
first phase of radiation therapy delivered to the patient during the first
course of treatment.

1. The data item may be blank. Other edits check that the item is recorded
    according to standard setter requirements by date.

2. Must be right-justified, zero-filled.

3. Must be a valid code for Phase I Radiation to Draining Lymph Nodes:
    00-08, 88, 99.

    00: No radiation treatment
    01: Neck Lymph Node Regions
    02: Thoracic Lymph Node Regions
    03: Neck and Thoracic Lymph Node Regions
    04: Breast/Chest wall Lymph Node Regions
    05: Abdominal Lymph Nodes
    06: Pelvic Lymph Nodes
    07: Abdominal and Pelvic Lymph Nodes
    08: Lymph Node Region, NOS
    88: Not Applicable; No Radiation Treatment to Draining Lymph Nodes
    99: Unknown if any Radiation Treatment to Draining Lymph Nodes;
         Unknown if radiation treatment administered]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="PhI_Radiation_Treatment_Modality" name="PhI Radiation Treatment Modality (COC)" tag="N2540" java-path="lines.line" category="field">
            <expression><![CDATA[return line.phase1RadiationTreatmentModality == null || Functions.matches(line.phase1RadiationTreatmentModality, /^0\d|1[0-6]|98|99$/)]]></expression>
            <message>Phase I Radiation Treatment Modality is not valid.</message>
            <description><![CDATA[This data item identifies the radiation modality administered during the first
phase of radiation treatment delivered during the first course of treatment.

1. The data item may be blank. Other edits check that the item is recorded
    according to standard setter requirements by date.

2. Must be right-justified, zero-filled.

3. Must be a valid code for Phase I Radiation Treatment Modality: 00-16, 99.

        00: No radiation treatment
        01: External beam, NOS
        02: External beam, photons
        03: External beam, protons
        04: External beam, electrons
        05: External beam, neutrons
        06: External beam, carbon ions
        07: Brachytherapy, NOS
        08: Brachytherapy, intracavitary, LDR
        09: Brachytherapy, intracavitary, HDR
        10: Brachytherapy, Interstitial, LDR
        11: Brachytherapy, Interstitial, HDR
        12: Brachytherapy, electronic
        13: Radioisotopes, NOS
        14: Radioisotopes, Radium-232
        15: Radioisotopes, Strontium-89
        16: Radioisotopes, Strontium-90
        98: Radiation treatment administered, modality unknown
        99: Radiation treatment modality unknown;
            Unknown if radiation treatment administered]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit created.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-04" ref="68442">Added code &apos;98&apos;.</event>
            </history>
        </rule>
        <rule id="PhI_Total_Dose" name="PhI Total Dose (COC)" tag="N2544" java-path="lines.line" category="field">
            <expression><![CDATA[return line.phase1TotalDose == null || Functions.matches(line.phase1TotalDose, /^\d{6}$/)]]></expression>
            <message>Phase I Total Dose is not valid.</message>
            <description><![CDATA[This data item identifies the total radiation dose delivered to the patient in
the first phase of radiation treatment during the first course of treatment.
The unit of measure is centiGray (cGy).

1. The data item may be blank. Other edits check that the item is recorded
    according to standard setter requirements by date.

2. Must be right-justified, zero-filled..

3. Must be a valid code for Phase I Total Dose: 000000-999999.

        000000: No therapy administered
        000001-999997: Actual total dose delivered in cGy
        999998: Not applicable, radioisotopes administered to the patient
        999999: Radiation therapy was administered, but the dose is unknown;
               Unknown whether radiation therapy was administered]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit created.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-03" ref="68440">Updated description for code &apos;99998&apos;.</event>
            </history>
        </rule>
        <rule id="Place_of_Death_Country" name="Place of Death--Country (NAACCR)" tag="N1670" java-path="lines.line" category="field">
            <expression><![CDATA[return line.placeOfDeathCountry == null || ((Map)Context.Country_State).containsKey(line.placeOfDeathCountry)]]></expression>
            <message>Place of Death--Country is not valid</message>
            <description><![CDATA[Place of Death--Country must contain a valid ISO code or standard custom code for country. May be blank.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-04" ref="67779">Edit created.</event>
            </history>
        </rule>
        <rule id="Place_of_Death_State" name="Place of Death--State (NAACCR)" tag="N1674" java-path="lines.line" category="field">
            <expression><![CDATA[return line.placeOfDeathState == null || ((Map)Context.State).containsKey(line.placeOfDeathState)]]></expression>
            <message>Place of Death--State is not valid</message>
            <description><![CDATA[Place of Death--State must contain a valid ISO code or standard custom code for state. May be blank.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2012-05-04" ref="67779">Edit created.</event>
            </history>
        </rule>
        <rule id="Primary_Payer_at_DX" name="Primary Payer at DX (NPCR)" tag="N0811" java-path="lines.line" category="field">
            <expression><![CDATA[return line.primaryPayerAtDx == null || Functions.matches(line.primaryPayerAtDx, /(^0[12]$)|(^10$)|(^2[01]$)|(^3[15]$)|(^6[0-8]$)|(^99$)/)]]></expression>
            <message>Primary Payer at DX is not valid.</message>
            <description><![CDATA[Must be a valid code for Primary Payer at DX (01,02,10,20,21,31,35,60-68,99) or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Primary_Site" name="Primary Site (SEER SITE)" tag="N0007" java-path="lines.line" category="field">
            <expression><![CDATA[if (Functions.matches(line.primarySite, /^C\d\d\d$/))
    return ((List)Context.Primary_Site_Table).contains(Functions.asInt(line.primarySite.substring(1)))

return false]]></expression>
            <message>Primary site is not valid.</message>
            <description><![CDATA[Must be one of the topography codes defined by the "International Classification of Diseases for Oncology, Second Edition."  (The decimal point is dropped and the 'C' is required.)]]></description>
            <history>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of topography codes from ICD-O-1 to ICD-O-2.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Race_1" name="Race 1 (SEER RACE)" tag="N0011" java-path="lines.line" category="field">
            <expression><![CDATA[return line.race1 != null && Functions.matches(line.race1, /(^0[1-8]$)|(^1[0-7]$)|(^2[0125678]$)|(^3[012]$)|(^9[6789]$)/)]]></expression>
            <message>Race 1 is not valid.</message>
            <description><![CDATA[Valid codes for Race 1[160] are 01-08,10-17,20-22,25-28,30-32,96-99.

        01 = White
        02 = Black or African American
        03 = American Indian or Alaska Native
        04 = Chinese
        05 = Japanese
        06 = Filipino
        07 = Native Hawaiian
        08 = Korean
        10 = Vietnamese
        11 = Laotian
        12 = Hmong
        13 = Cambodian
        14 = Thai (1994+)
        15 = Asian Indian, NOS or Pakistani, NOS
        16 = Asian Indian
        17 = Pakistani
        20 = Micronesian, NOS (1991+)
        21 = Chamorro
        22 = Guamanian, NOS (1991+)
        25 = Polynesian, NOS (1991+)
        26 = Tahitian (1991+)
        27 = Samoan (1991+)
        28 = Tongan (1991+)
        30 = Melanesian, NOS (1991+)
        31 = Fiji Islander (1991+)
        32 = Papua New Guinean
        96 = Other Asian (1991+)
        97 = Pacific Islander, NOS (1991+)
        98 = Some other race
        99 = Unknown by patient]]></description>
            <history>
                <event version="SE11-001-04" user="greend" date="1988-05-25">Additional codes made valid due to 1988 SEER coding system.</event>
                <event version="SE11-001-08" user="greend" date="1992-04-23">Additional codes made valid due to 1991 SEER coding system.</event>
                <event version="SE11-001-10" user="greend" date="1994-07-01">Additional code &apos;14&apos; made valid due to SEER Code Manual changes in 1994.</event>
                <event version="SE12-002-01" user="greend" date="2009-12-16">Code 9 removed.  Codes 15,16, and 17 added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68883">Update description for code 3.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-15" ref="69155">Update description for codes 2, 3, 7, 13, 15, 21, 32, 98, and 99.</event>
            </history>
        </rule>
        <rule id="Race_2" name="Race 2 (NAACCR)" tag="N0409" java-path="lines.line" category="field">
            <expression><![CDATA[return line.race2 == null || Functions.matches(line.race2, /(^0[1-8]$)|(^1[0-7]$)|(^2[0125678]$)|(^3[012]$)|(^88$)|(^9[6789]$)|(^\s\s$)/)]]></expression>
            <message>Race 2 is not valid.</message>
            <description><![CDATA[Valid codes for Race 2[161] are are 01-08,10-17,20-22,25-28,30-32,88,96-99 or blank.

        01 = White
        02 = Black or African American
        03 = American Indian or Alaska Native
        04 = Chinese
        05 = Japanese
        06 = Filipino
        07 = Native Hawaiian
        08 = Korean
        10 = Vietnamese
        11 = Laotian
        12 = Hmong
        13 = Cambodian
        14 = Thai (1994+)
        15 = Asian Indian, NOS or Pakistani, NOS
        16 = Asian Indian
        17 = Pakistani
        20 = Micronesian, NOS (1991+)
        21 = Chamorro
        22 = Guamanian, NOS (1991+)
        25 = Polynesian, NOS (1991+)
        26 = Tahitian (1991+)
        27 = Samoan (1991+)
        28 = Tongan (1991+)
        30 = Melanesian, NOS (1991+)
        31 = Fiji Islander (1991+)
        32 = Papua New Guinean
        96 = Other Asian (1991+)
        97 = Pacific Islander, NOS (1991+)
        98 = Some other race
        99 = Unknown by patient]]></description>
            <history>
                <event version="SE12-002-01" user="greend" date="2009-12-16">Code 9 removed.  Codes 15,16, and 17 added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68883">Update description for code 3.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-15" ref="69155">Update description for codes 2, 3, 7, 13, 15, 21, 32, 98, and 99.</event>
            </history>
        </rule>
        <rule id="Race_3" name="Race 3 (NAACCR)" tag="N0410" java-path="lines.line" category="field">
            <expression><![CDATA[return  line.race3 == null || Functions.matches(line.race3, /(^0[1-8]$)|(^1[0-7]$)|(^2[0125678]$)|(^3[012]$)|(^88$)|(^9[6789]$)|(^\s\s$)/)]]></expression>
            <message>Race 3 is not valid.</message>
            <description><![CDATA[Valid codes for Race 3[162] are 01-08,10-17,20-22,25-28,30-32,88,96-99 or blank.

        01 = White
        02 = Black or African American
        03 = American Indian or Alaska Native
        04 = Chinese
        05 = Japanese
        06 = Filipino
        07 = Native Hawaiian
        08 = Korean
        10 = Vietnamese
        11 = Laotian
        12 = Hmong
        13 = Cambodian
        14 = Thai (1994+)
        15 = Asian Indian, NOS or Pakistani, NOS
        16 = Asian Indian
        17 = Pakistani
        20 = Micronesian, NOS (1991+)
        21 = Chamorro
        22 = Guamanian, NOS (1991+)
        25 = Polynesian, NOS (1991+)
        26 = Tahitian (1991+)
        27 = Samoan (1991+)
        28 = Tongan (1991+)
        30 = Melanesian, NOS (1991+)
        31 = Fiji Islander (1991+)
        32 = Papua New Guinean
        96 = Other Asian (1991+)
        97 = Pacific Islander, NOS (1991+)
        98 = Some other race
        99 = Unknown by patient]]></description>
            <history>
                <event version="SE12-002-01" user="greend" date="2009-12-16">Code 9 removed.  Codes 15,16, and 17 added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68883">Update description for code 3.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-15" ref="69155">Update description for codes 2, 3, 7, 13, 15, 21, 32, 98, and 99.</event>
            </history>
        </rule>
        <rule id="Race_4" name="Race 4 (NAACCR)" tag="N0411" java-path="lines.line" category="field">
            <expression><![CDATA[return line.race4 == null || Functions.matches(line.race4, /(^0[1-8]$)|(^1[0-7]$)|(^2[0125678]$)|(^3[012]$)|(^88$)|(^9[6789]$)|(^\s\s$)/)]]></expression>
            <message>Race 4 is not valid.</message>
            <description><![CDATA[Valid codes for Race 4[163] are 01-08,10-17,20-22,25-28,30-32,88,96-99 or blank.

        01 = White
        02 = Black or African American
        03 = American Indian or Alaska Native
        04 = Chinese
        05 = Japanese
        06 = Filipino
        07 = Native Hawaiian
        08 = Korean
        10 = Vietnamese
        11 = Laotian
        12 = Hmong
        13 = Cambodian
        14 = Thai (1994+)
        15 = Asian Indian, NOS or Pakistani, NOS
        16 = Asian Indian
        17 = Pakistani
        20 = Micronesian, NOS (1991+)
        21 = Chamorro
        22 = Guamanian, NOS (1991+)
        25 = Polynesian, NOS (1991+)
        26 = Tahitian (1991+)
        27 = Samoan (1991+)
        28 = Tongan (1991+)
        30 = Melanesian, NOS (1991+)
        31 = Fiji Islander (1991+)
        32 = Papua New Guinean
        96 = Other Asian (1991+)
        97 = Pacific Islander, NOS (1991+)
        98 = Some other race
        99 = Unknown by patient]]></description>
            <history>
                <event version="SE12-002-01" user="greend" date="2009-12-16">Code 9 removed.  Codes 15,16, and 17 added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68883">Update description for code 3.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-15" ref="69155">Update description for codes 2, 3, 7, 13, 15, 21, 32, 98, and 99.</event>
            </history>
        </rule>
        <rule id="Race_5" name="Race 5 (NAACCR)" tag="N0412" java-path="lines.line" category="field">
            <expression><![CDATA[return  line.race5 == null || Functions.matches(line.race5, /(^0[1-8]$)|(^1[0-7]$)|(^2[0125678]$)|(^3[012]$)|(^88$)|(^9[6789]$)|(^\s\s$)/)]]></expression>
            <message>Race 5 is not valid.</message>
            <description><![CDATA[Valid codes for Race 5[164] are 01-08,10-17,20-22,25-28,30-32,88,96-99 or blank.

        01 = White
        02 = Black or African American
        03 = American Indian or Alaska Native
        04 = Chinese
        05 = Japanese
        06 = Filipino
        07 = Native Hawaiian
        08 = Korean
        10 = Vietnamese
        11 = Laotian
        12 = Hmong
        13 = Cambodian
        14 = Thai (1994+)
        15 = Asian Indian, NOS or Pakistani, NOS
        16 = Asian Indian
        17 = Pakistani
        20 = Micronesian, NOS (1991+)
        21 = Chamorro
        22 = Guamanian, NOS (1991+)
        25 = Polynesian, NOS (1991+)
        26 = Tahitian (1991+)
        27 = Samoan (1991+)
        28 = Tongan (1991+)
        30 = Melanesian, NOS (1991+)
        31 = Fiji Islander (1991+)
        32 = Papua New Guinean
        96 = Other Asian (1991+)
        97 = Pacific Islander, NOS (1991+)
        98 = Some other race
        99 = Unknown by patient]]></description>
            <history>
                <event version="SE12-002-01" user="greend" date="2009-12-16">Code 9 removed.  Codes 15,16, and 17 added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-20" ref="68883">Update description for code 3.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-15" ref="69155">Update description for codes 2, 3, 7, 13, 15, 21, 32, 98, and 99.</event>
            </history>
        </rule>
        <rule id="Race_NAPIIA" name="Race--NAPIIA(derived API) (NAACCR)" tag="N0958" java-path="lines.line" category="field">
            <expression><![CDATA[return line.raceNapiia == null || Functions.matches(line.raceNapiia, /(^0[1-8]$)|(^1[0-7]$)|(^2[0125678]$)|(^3[012]$)|(^9[6789]$)/)]]></expression>
            <message>Race--NAPIIA(derived API) is not valid</message>
            <description><![CDATA[Must be a valid Race--NAPIIA code (01-08, 10-17,20-22,25-28,30-32,96-99) or blank (if algorithm has not been run).

01  White
02  Black or African American
03  American Indian or Alaska Native
04  Chinese
05  Japanese
06  Filipino
07  Native Hawaiian
08  Korean
10  Vietnaese
11  Laotian
12  Hmong
13  Cambodian
14  Thai
15  Asian Indian, NOS or Pakistani, NOS
16  Asian Indian
17  Pakistani
20  Mironesian, NOS
21  Chamorro
22  Guamanian, NOS
25  Polynesian, NOS
26  Tahitian
27  Samoan
28  Tongan
30  Melanesian, NOS
31  Fiji Islander
32  Papua New Guinean
88  No additional races (Race 2 - Race 5)
96  Other Asian including Asian, NOS and Oriental, NOS
97  Pacific Islander, NOS
98  Some other race
99  Unknown by patient]]></description>
            <history>
                <event version="SE24-024-06" user="beverung" date="2024-07-26" ref="69517">Edit created.</event>
            </history>
        </rule>
        <rule id="Radiation_Treatment_Discontinued_Early" name="Radiation Treatment Discontinued Early (COC)" tag="N2560" java-path="lines.line" category="field">
            <expression><![CDATA[return line.radiationTxDiscontinuedEarly == null || Functions.matches(line.radiationTxDiscontinuedEarly, /^0[0-7]|99$/)]]></expression>
            <message>Radiation Treatment Discontinued Early is not valid.</message>
            <description><![CDATA[This data item is used to identify patients/tumors whose radiation treatment
course was discontinued earlier than initially planned. That is the patient/
tumor received fewer treatment fractions (sessions) than originally intended by
the treating physician.

1. The data item may be blank. Other edits check that the item is recorded
   according to standard setter requirements by date.

2. Must be right-justified, zero-filled.

3. Must be a valid code for Radiation Treatment Discontinued Early: 00-07, 99.

    00:  No radiation treatment
    01:  Radiation treatment completed as prescribed
    02:  Radiation treatment discontinued early - toxicity
    03:  Radiation treatment discontinued early - contraindicated due to other
         patient risk factors(comorbid conditions, advanced age, progression of
         tumor prior to planned radiation etc.)
    04:  Radiation treatment discontinued early - patient decision
    05:  Radiation discontinued early - family decision
    06:  Radiation discontinued early - patient expired
    07:  Radiation discontinued early - reason not documented
    99:  Unknown if radiation treatment discontinued;
         Unknown whether radiation therapy administered]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Reason_for_No_Radiation" name="Reason for No Radiation (NAACCR)" tag="N1234" java-path="lines.line" category="field">
            <expression><![CDATA[return line.reasonForNoRadiation == null || Functions.matches(line.reasonForNoRadiation, /^[0-25-9]$/)]]></expression>
            <message>Reason for No Radiation is not valid.</message>
            <description><![CDATA[Must be a valid code for Reason for No Radiation (0-2,5-9) or blank.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit created.</event>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-09" ref="67963">Added blank as a valid value.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit tag changed.</event>
            </history>
        </rule>
        <rule id="Reason_for_No_Surgery" name="Reason for No Surgery (NPCR)" tag="N0814" java-path="lines.line" category="field">
            <expression><![CDATA[return line.reasonForNoSurgery == null || Functions.matches(line.reasonForNoSurgery, /^[0125-9]$/)]]></expression>
            <message>Reason for no surgery is not valid.</message>
            <description><![CDATA[Valid codes for Reason for no surgery[1340] are 0-2,5-9 or blank.

0 = surgery performed
1 = surgery not recommended
2 = Contraindicated due to other conditions
5 = Patient died before recommended surgery
6 = Unknown
7 = Refused
8 = Recommended, unknown if done
9 = Unknown; death certificate only case]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-06-04">Code 5 is now a valid code.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-06" ref="68178">Added blank as a valid value and changed edit name.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit tag changed.</event>
            </history>
        </rule>
        <rule id="Record_Number_Recode" name="Record Number Recode (NAACCR)" tag="N2845" java-path="lines.line" category="field">
            <expression><![CDATA[return line.recordNumberRecode == null || Functions.matches(line.recordNumberRecode, /^[1-9]\d|0[1-9]$/)]]></expression>
            <message>Record Number Recode is not valid.</message>
            <description><![CDATA[Must be a valid Record Number Recode value, 01-99 or blank. This is a calculated
value. This field is allowed to be blank because it was not collected as a
standard NAACCR data item before 2018.

    01: Record number 01 for patient in database
    02: Record number 02 for patient in database
    03-98: Record number 03 to 98 for patient in database
    99: Record number 99 for patient in database]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-04" ref="67779">Edit created.</event>
            </history>
        </rule>
        <rule id="Record_Number_Recode_Submission" name="Record Number Recode Submission" tag="S019" java-path="lines.line" category="submission">
            <expression><![CDATA[return  line.recordNumberRecode != null]]></expression>
            <message>SEER Record Number Recode is required.</message>
            <history>
                <event version="SE18-020-04" user="beverung" date="2020-06-18" ref="68350">Edit created.</event>
            </history>
        </rule>
        <rule id="Record_Type" name="Record Type (NAACCR)" tag="N0062" java-path="lines.line" category="field">
            <expression><![CDATA[return Functions.matches(line.recordType, /^[ICAUM]$/)]]></expression>
            <message>Record Type is not valid.</message>
            <description><![CDATA[Valid values for Record Type[10] are 'I', 'C', 'A', 'U', 'M'.

            I = Incidence-only record type
            C = Confidential record type
            A = Full case Abstract record type
            U = Correction/Update record type
            M = Record modified since previous submission to central registry]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2009-12-30">Added codes &apos;U&apos;, &apos;M&apos;, and &apos;L&apos;.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Recurrence_Type_1st" name="Recurrence Type--1st (NAACCR)" tag="N1235" java-path="lines.line" category="field">
            <expression><![CDATA[if (line.recurrenceType1st == null)
    return true
return Functions.matches(line.recurrenceType1st, /^0[046]|1[03-7]|2[0-25-7]|[34][06]|5[1-9]|60|62|70|88|99$/)]]></expression>
            <message>Recurrence Type--1st value is invalid.</message>
            <description><![CDATA[Must be a valid code for Recurrence Type--1st (00,04,06,10,13-17,20-22,25-27,30,36,40,46,51-60,62,70,88,99) or blank.]]></description>
            <history>
                <event version="SE21-021-01" user="kirbyk" date="2021-01-15" ref="68551">Edit created.</event>
            </history>
        </rule>
        <rule id="RecurrenceDate1stEdit" name="Recurrence Date--1st (COC)" tag="N0063" java-path="lines.line" category="inter-field" depends="Day_Recurrence_Date_1st,Month_Recurrence_Date_1st,Year_Recurrence_Date_1st">
            <expression><![CDATA[Integer year = Functions.asInt(line.recurrenceDate1stYear)
Integer month = Functions.asInt(line.recurrenceDate1stMonth)
Integer day = Functions.asInt(line.recurrenceDate1stDay)

Integer yearCur  = Functions.getCurrentYear()
Integer monthCur = Functions.getCurrentMonth()
Integer dayCur = Functions.getCurrentDay()

if (line.recurrenceDate1stYear == null)
   return (line.recurrenceDate1stMonth == null && line.recurrenceDate1stDay == null)

if ((line.recurrenceDate1stMonth == null && line.recurrenceDate1stDay != null) || (month > 12 || (line.recurrenceDate1stMonth != null && month < 1)))
   return false

if (!Functions.between(year, 1930, yearCur))
    return false

if (line.recurrenceDate1stMonth == null) //by now year fits and day is null if month is null
    return true

if (year == yearCur && month > monthCur)
    return false

if (line.recurrenceDate1stDay == null) //by now year and month fit
    return true

if (year == yearCur && month == monthCur && day > dayCur)
    return false

Calendar cal = new GregorianCalendar(year, month - 1, 1)
return cal != null && day <= cal.getActualMaximum(Calendar.DAY_OF_MONTH)]]></expression>
            <message>Recurrence Date--1st is not valid.</message>
            <description><![CDATA[This edit is skipped if Recurrence Date--1st is empty.

The Recurrence Date--1st checks are performed in this order:

A) If the year is blank, month and day must also be blank.

B) Year of Recurrence Date--1st must be between 1930 and the current system year.

C) If the month is blank, the day must be blank.

D) If day of Recurrence Date--1st is blank, the year of Recurrence Date--1st and month of Recurrence Date--1st can not be greater than the current system year/month.

E) If day is known, then entire Recurrence Date--1st is verified. The date must be a valid date (leap years checked) and must be less than or equal to the current system date.]]></description>
            <history>
                <event version="SE21-021-01" user="kirbyk" date="2021-01-15" ref="68551">Edit created.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
                <event version="SE22-022-05" user="kirbyk" date="2022-05-17" ref="68995">Replaced non-ASCII characters in message and description.</event>
                <event version="SE22-022-13" user="kirbyk" date="2022-10-18" ref="69045">Fixing edit behavior for future dates.</event>
            </history>
        </rule>
        <rule id="RegCounty" name="County (SEER IFCOUNTY)" tag="N0311" java-path="lines.line" category="inter-field">
            <expression><![CDATA[return ((List)((Map)Context.registry_county).getOrDefault(Functions.asInt(line.registryId), [])).contains(Functions.asInt(line.countyAtDxAnalysis))]]></expression>
            <message>Registry and County conflict</message>
            <description><![CDATA[This edit verifies valid County at DX Analysis[89] within each Registry ID[40].  See Appendix A of SEER Program Code Manual for valid counties.]]></description>
            <history>
                <event version="SE11-001-01" user="greend" date="1985-06-15">Added the county code for the Puerto Rico registry to the table COUNTIES.</event>
                <event version="SE11-001-03" user="greend" date="1987-03-01">New Jersey county codes restricted to Passaic, Hudson, Union, or Essex counties only.</event>
                <event version="SE11-001-03" user="greend" date="1987-10-01">County code of 999 is not acceptable.</event>
                <event version="SE11-001-07" user="greend" date="1991-09-15">For Arizona Indians the county 028 has been added.</event>
                <event version="SE11-001-08" user="greend" date="1992-01-15">For Arizona Indians the county 012 has been added and the counties 028 and 029 have been removed.</event>
                <event version="SE11-001-08" user="greend" date="1992-02-03">For all areas the county code of 999 (unknown) is acceptable.</event>
                <event version="SE11-001-10" user="greend" date="1994-01-10">Added county codes for the two new SEER registries.  For San Jose - Monterey (31), the valid county codes are 053, 069, 085, 087, and 999.  For Los Angeles (35), the only valid county code is 037.</event>
                <event version="SE11-001-15" user="greend" date="2001-07-01">Added County codes for the new SEER registries;  CA, KY, NJ, Louisiana.</event>
                <event version="SE11-001-22" user="greend" date="2007-11-20">Added the following county codes for Alaska: 13, 16, 20, 50, 60, 68, 70, 90, 100, 110, 122, 130, 150, 164, 170, 180, 185, 188, 201, 220, 232, 240,261,270,280,282,290</event>
                <event version="SE12-003-02" user="depryf" date="2011-01-10">Added county codes for Greater Georgia (see registry_county context table).</event>
                <event version="SE13-010-06" user="murphyr" date="2013-09-27" ref="66935">Added county codes 105, 195, 198, 230 and 275 for Alaska (see registry_county context table).</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-25" ref="67756">Update County at DX[90] to County at DX Reported[90] in description.</event>
                <event version="SE18-018-03" user="schadega" date="2018-07-20" ref="67964">Added County codes for the new SEER registries;  ID, NY, MA, WI.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-07" user="beverung" date="2021-07-16" ref="68685">Added County codes for registries IL and TX.</event>
                <event version="SE22-022-16" user="kirbyk" date="2022-10-24" ref="69052">Added County codes for Alaska: 63, 66, 158.</event>
                <event version="SE23-023-06" user="cooki" date="2023-07-31" ref="69294">Updated countyAtDx to countyAtDxAnalysis.</event>
                <event version="SE24-024-06" user="kirbyk" date="2024-07-22" ref="69326">Removed some edit dependencies.</event>
            </history>
        </rule>
        <rule id="Regional_Nodes_Examined" name="Regional Nodes Examined (NAACCR)" tag="N1247" java-path="lines.line" category="field">
            <expression><![CDATA[return line.regionalNodesExamined == null || Functions.matches(line.regionalNodesExamined, /(^[0-8][0-9]|9[05-9]$)/)]]></expression>
            <message>Regional Nodes Examined must be numeric (00-90, 95-99).</message>
            <description><![CDATA[Regional Nodes Examined must be a two-digit number with values of 00-90, 95-99, or blank.
                00      No nodes examined
                01-89   1-89 nodes examined
                90      90 or more nodes examined
                95      No regional nodes removed but aspiration of regional nodes performed
                96      Regional lymph node removal documented as sampleing, number of nodes is unknown/not stated
                97      Regional lymph node removal documented as dissection, number of nodes is unknown/not stated
                98      Regional lymph nodes surgically removed but number of lymph nodes unknown/not stated and not documented as
                        sampling or dissection; nodes examined but number unknown
                99      Unknown whether nodes examined; not applicable; no stated in patient record]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-06-26">The valid range was changed from 00-99 to 00-90,95-99.</event>
                <event version="SE11-001-18" user="greend" date="2004-02-04">Valid range changed from 00-90,95-99 to 00-99.</event>
                <event version="SE21-021-03" user="secristm" date="2012-02-25" ref="68581">Replace edit with NAACCR version, valid rage changed from 00-99 to 00-90,95-99</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Regional_Nodes_Positive" name="Regional Nodes Positive (NAACCR)" tag="N1248" java-path="lines.line" category="field">
            <expression><![CDATA[return line.regionalNodesPositive == null || Functions.matches(line.regionalNodesPositive, /^[0-8][0-9]|9[057-9]$/)]]></expression>
            <message>Regional Nodes Positive must be numeric (00-90, 95, 97-99)</message>
            <description><![CDATA[Regional Nodes Positive must be a two-digit number with values
of 00-90, 95, 97-99, or blank.

00      All nodes examined are negative
01-89   1-89 nodes are positive
90      90 or more nodes are positive
95      Positive aspiration of lymph node(s) was performed
97      Positive nodes are documented, but the number is
unspecified
98      No nodes were examined
99      Unknown whether nodes are positive; not applicable; no
stated in patient record]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE21-021-03" user="smithm" date="2021-03-01" ref="68582">Name, tag, and logic was changed to the NAACCR version</event>
            </history>
        </rule>
        <rule id="Registry_ID" name="Registry ID (NAACCR)" tag="N0067" java-path="lines.line" category="field">
            <expression><![CDATA[return ((List)Context.Registry_ID_Table).contains(Functions.asInt(line.registryId))]]></expression>
            <message>Registry ID is not valid.</message>
            <description><![CDATA[A specific 10-digit identification of each participant in the SEER Program:

0000001501 = San Francisco-Oakland SMSA
0000001502 = Connecticut
0000001520 = Metropolitan Detroit
0000001521 = Hawaii
0000001522 = Iowa
0000001523 = New Mexico
0000001525 = Seattle-Puget Sound
0000001526 = Utah
0000001527 = Metropolitan Atlanta
0000001529 = Alaska
0000001530 = California
0000001531 = San Jose-Monterey
0000001532 = Greater Bay
0000001533 = Arizona Indians
0000001535 = Los Angeles
0000001537 = Rural Georgia
0000001540 = Georgia
0000001541 = California excluding LA,SJ&SF
0000001542 = Kentucky
0000001543 = Louisiana
0000001544 = New Jersey
0000001547 = Greater Georgia
0000001551 = Cherokee Nation (NCI Funded)
0000001561 = Idaho
0000001562 = New York
0000001563 = Massachusetts
0000001564 = Wisconsin
0000001565 = Illinois
0000001566 = Texas
0000001567 = Arkansas
0000001568 = California Department of Public Health (CDPH)
0000001569 = Colorado
0000001570 = Michigan
0000001571 = Oregon
0000001572 = Tennessee
0000001573 = Missouri
0000001574 = Dartmouth ]]></description>
            <history>
                <event version="SE11-001-10" user="greend" date="1994-01-10">Program updated to include two new registries (31-San Jose-Monterey, 35-Los Angeles).</event>
                <event version="SE11-001-17" user="greend" date="2003-03-06">Documentation updated to include new registries (29, 41-44,51).</event>
                <event version="SE12-002-05" user="murphy" date="2010-10-08">Added Greater Georgia.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-06" ref="67849">Added California, Greater Bay, Georgia, Idaho, New York, Massachusetts, and Wisconsin.</event>
                <event version="SE21-021-06" user="kirbyk" date="2021-06-03" ref="68676">Added IL, TX, AR, CDPH, CO, MI, OR, TN, MO, and Dartmouth.</event>
            </history>
        </rule>
        <rule id="RUCA_2000" name="RUCA 2000 (NAACCR)" tag="N2851" java-path="lines.line" category="field">
            <expression><![CDATA[return line.ruca2000 == null || Functions.matches(line.ruca2000, /^[129ABCD]$/)]]></expression>
            <message>RUCA 2000 is not valid.</message>
            <description><![CDATA[Must be a valid RUCA (Rural Urban Commuting Area) 2000 value, 1,2,9,A,B,C,D. This is a
derived value. This field is allowed to be blank because it was not collected
as a standard NAACCR data item before 2018.

    1: Urban commuting area
    2: Not an urban commuting area
    9: Unknown, not applicable
    A: State, county, or tract are invalid
    B: State and tract are valid, but county was not reported
    C: State + county + tract combination was not found
    D: State, county, or tract are blank or unknown]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-04" ref="67779">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-29" ref="68029">Added valid codes A-D, changed labels in description.</event>
            </history>
        </rule>
        <rule id="RUCA_2010" name="RUCA 2010 (NAACCR)" tag="N2852" java-path="lines.line" category="field">
            <expression><![CDATA[return line.ruca2010 == null || Functions.matches(line.ruca2010, /^[129ABCD]$/)]]></expression>
            <message>RUCA 2010 is not valid.</message>
            <description><![CDATA[Must be a valid RUCA (Rural Urban Commuting Area) 2010 value, 1,2,9,A,B,C,D. This is a
derived value. This field is allowed to be blank because it was not collected
as a standard NAACCR data item before 2018.

    1: Urban commuting area
    2: Not an urban commuting area
    9: Unknown, not applicable
    A: State, county, or tract are invalid
    B: State and tract are valid, but county was not reported
    C: State + county + tract combination was not found
    D: State, county, or tract are blank or unknown]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-04" ref="67779">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-29" ref="68029">Added valid codes A-D, changed labels in description.</event>
            </history>
        </rule>
        <rule id="RuralUrban_Continuum_2013" name="RuralUrban Continuum 2013 (NAACCR)" tag="N2056" java-path="lines.line" category="field">
            <expression><![CDATA[line.ruralurbanContinuum2013 == null || Functions.matches(line.ruralurbanContinuum2013, /^0[1-9]|98|99$/)]]></expression>
            <message>RuralUrban Continuum 2013 is not valid.</message>
            <description><![CDATA[Must be a valid RuralUrban Continuum 2013 code (01-09, 98, 99) or blank.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-05-12" ref="67387">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="RXDateBRMEdit" name="RX Date BRM (COC)" tag="N0071" java-path="lines.line" category="inter-field" depends="Day_BRM,Month_BRM,Year_BRM">
            <expression><![CDATA[Integer year = Functions.asInt(line.rxDateBrmYear)
Integer month = Functions.asInt(line.rxDateBrmMonth)
Integer day = Functions.asInt(line.rxDateBrmDay)

Integer yearCur = Functions.getCurrentYear()
Integer monthCur = Functions.getCurrentMonth()
Integer dayCur = Functions.getCurrentDay()

if (line.rxDateBrmYear == null)
    return (line.rxDateBrmMonth == null && line.rxDateBrmDay == null)

if ((line.rxDateBrmMonth == null && line.rxDateBrmDay != null) || (month > 12 || (line.rxDateBrmMonth != null && month < 1)))
    return false

if (!Functions.between(year, 1930, yearCur))
    return false

if (line.rxDateBrmMonth == null) //by now year fits and day is null if month is null
    return true

if (year == yearCur && month > monthCur)
    return false

if (line.rxDateBrmDay == null) //by now year and month fit
    return true

if (year == yearCur && month == monthCur && day > dayCur)
    return false

Calendar cal = new GregorianCalendar(year, month - 1, 1)
return cal != null && day <= cal.getActualMaximum(Calendar.DAY_OF_MONTH)]]></expression>
            <message>RX Date BRM is not valid.</message>
            <description><![CDATA[This edit is skipped if RX Date BRM is empty.

The RX Date BRM[1240] checks are performed in this order:

A) If the year is blank, month and day must also be blank.

B) Year of BRM must be between 1930 and the current system year.

C) If the month is blank, the day must be blank.

D) If day of BRM is blank, the year of BRM and month of BRM can not be greater than the current system year/month.

E) If day is known, then entire RX Date BRM is verified. The date must be a valid date (leap years checked) and must be less than or equal to the current system date.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-14" ref="67141">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-20" ref="67425">Fixed documentation.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE22-022-13" user="kirbyk" date="2022-10-18" ref="69045">Fixing edit behavior for future dates.</event>
            </history>
        </rule>
        <rule id="RXDateChemoEdit" name="RX Date Chemo (COC)" tag="N1046" java-path="lines.line" category="inter-field" depends="Day_Chemo,Month_Chemo,Year_Chemo">
            <expression><![CDATA[Integer year = Functions.asInt(line.rxDateChemoYear)
Integer month = Functions.asInt(line.rxDateChemoMonth)
Integer day = Functions.asInt(line.rxDateChemoDay)

Integer yearCur = Functions.getCurrentYear()
Integer monthCur = Functions.getCurrentMonth()
Integer dayCur = Functions.getCurrentDay()

if (line.rxDateChemoYear == null)
 return (line.rxDateChemoMonth == null && line.rxDateChemoDay == null)

if ((line.rxDateChemoMonth == null && line.rxDateChemoDay != null) || (month > 12 || (line.rxDateChemoMonth != null && month < 1)))
 return false

if (!Functions.between(year, 1930, yearCur))
    return false

if (line.rxDateChemoMonth == null) //by now year fits and day is null if month is null
    return true

if (year == yearCur && month > monthCur)
    return false

if (line.rxDateChemoDay == null) //by now year and month fit
    return true

if (year == yearCur && month == monthCur && day > dayCur)
    return false

Calendar cal = new GregorianCalendar(year, month - 1, 1)
return cal != null && day <= cal.getActualMaximum(Calendar.DAY_OF_MONTH)]]></expression>
            <message>RX Date Chemo is not valid.</message>
            <description><![CDATA[This edit is skipped if RX Date Chemo empty.

The RX Date Chemo[1220] checks are performed in this order:

A) If the year is blank, month and day must also be blank.

B) Year of Chemo must be between 1930 and the current system year.

C) If the month is blank, the day must be blank.

D) If day of Chemo is blank, the year of Chemo and month of Chemo can not be greater than the current system year/month.

E) If day is known, then entire RX Date Chemo is verified. The date must be a valid date (leap years checked) and must be less than or equal to the current system date.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-12" ref="67142">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-20" ref="67425">Fixed documentation.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE22-022-13" user="kirbyk" date="2022-10-18" ref="69045">Fixing edit behavior for future dates.</event>
            </history>
        </rule>
        <rule id="RXDateHormoneEdit" name="RX Date Hormone (COC)" tag="N0073" java-path="lines.line" category="inter-field" depends="Day_Hormone,Month_Hormone,Year_Hormone">
            <expression><![CDATA[Integer year = Functions.asInt(line.rxDateHormoneYear)
Integer month = Functions.asInt(line.rxDateHormoneMonth)
Integer day = Functions.asInt(line.rxDateHormoneDay)

Integer yearCur = Functions.getCurrentYear()
Integer monthCur = Functions.getCurrentMonth()
Integer dayCur = Functions.getCurrentDay()

if (line.rxDateHormoneYear == null)
     return (line.rxDateHormoneMonth == null && line.rxDateHormoneDay == null)

if ((line.rxDateHormoneMonth == null && line.rxDateHormoneDay != null) || (month > 12 || (line.rxDateHormoneMonth != null && month < 1)))
     return false

if (!Functions.between(year, 1930, yearCur))
    return false

if (line.rxDateHormoneMonth == null) //by now year fits and day is null if month is null
    return true

if (year == yearCur && month > monthCur)
    return false

if (line.rxDateHormoneDay == null) //by now year and month fit
    return true

if (year == yearCur && month == monthCur && day > dayCur)
    return false

Calendar cal = new GregorianCalendar(year, month - 1, 1)
return cal != null && day <= cal.getActualMaximum(Calendar.DAY_OF_MONTH)]]></expression>
            <message>RX Date Hormone is not valid.</message>
            <description><![CDATA[This edit is skipped if RX Date Hormone is empty.

The RX Date Hormone[1230] checks are performed in this order:

A) If the year is blank, month and day must also be blank.

B) Year of Hormone must be between 1930 and the current system year.

C) If the month is blank, the day must be blank.

D) If day of Hormone is blank, the year of Hormone and month of Hormone can not be greater than the current system year/month.

E) If day is known, then entire RX Date Hormone is verified. The date must be a valid date (leap years checked) and must be less than or equal to the current system date.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-14" ref="67143">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-20" ref="67425">Fixed documentation.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67740">Edit name change.</event>
                <event version="SE22-022-13" user="kirbyk" date="2022-10-18" ref="69045">Fixing edit behavior for future dates.</event>
            </history>
        </rule>
        <rule id="RXDateMostDefinSurgEdit" name="RX Date Mst Defn Srg (COC)" tag="N0510" java-path="lines.line" category="inter-field" depends="Day_Most_Defin_Surg,Month_Most_Defin_Surg,Year_Most_Defin_Surg">
            <expression><![CDATA[Integer year = Functions.asInt(line.rxDateMostDefinSurgYear)
Integer month = Functions.asInt(line.rxDateMostDefinSurgMonth)
Integer day = Functions.asInt(line.rxDateMostDefinSurgDay)

Integer yearCur = Functions.getCurrentYear()
Integer monthCur = Functions.getCurrentMonth()
Integer dayCur = Functions.getCurrentDay()

if (line.rxDateMostDefinSurgYear == null)
    return (line.rxDateMostDefinSurgMonth == null && line.rxDateMostDefinSurgDay == null)

if ((line.rxDateMostDefinSurgMonth == null && line.rxDateMostDefinSurgDay != null) || (month > 12 || (line.rxDateMostDefinSurgMonth != null && month < 1)))
    return false

if (!Functions.between(year, 1930, yearCur))
    return false

if (line.rxDateMostDefinSurgMonth == null) //by now year fits and day is null if month is null
    return true

if (year == yearCur && month > monthCur)
    return false

if (line.rxDateMostDefinSurgDay == null) //by now year and month fit
    return true

if (year == yearCur && month == monthCur && day > dayCur)
    return false

Calendar cal = new GregorianCalendar(year, month - 1, 1)
return cal != null && day <= cal.getActualMaximum(Calendar.DAY_OF_MONTH)]]></expression>
            <message>RX Date Mst Defn Srg is not valid.</message>
            <description><![CDATA[This edit is skipped if RX Date Mst Defn Srg is empty.

The RX Date Mst Defn Srg[3170] checks are performed in this order:

A) If the year is blank, month and day must also be blank.

B) Year of Most Defin Surg must be between 1930 and the current system year.

C) If the month is blank, the day must be blank.

D) If day of Most Defin Surg is blank, the year of Most Defin Surg and month of Most Defin Surg can not be greater than the current system year/month.

E) If day is known, then entire RX Date Mst Defn Srg is verified. The date must be a valid date (leap years checked) and must be less than or equal to the current system date.]]></description>
            <history>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-12" ref="67577">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE22-022-13" user="kirbyk" date="2022-10-18" ref="69045">Fixing edit behavior for future dates.</event>
            </history>
        </rule>
        <rule id="RXDateOtherEdit" name="RX Date Other (COC)" tag="N0074" java-path="lines.line" category="inter-field" depends="Day_Other,Month_Other,Year_Other">
            <expression><![CDATA[Integer year = Functions.asInt(line.rxDateOtherYear)
Integer month = Functions.asInt(line.rxDateOtherMonth)
Integer day = Functions.asInt(line.rxDateOtherDay)

Integer yearCur = Functions.getCurrentYear()
Integer monthCur = Functions.getCurrentMonth()
Integer dayCur = Functions.getCurrentDay()

if (line.rxDateOtherYear == null)
    return (line.rxDateOtherMonth == null && line.rxDateOtherDay == null)

if ((line.rxDateOtherMonth == null && line.rxDateOtherDay != null) || (month > 12 || (line.rxDateOtherMonth != null && month < 1)))
     return false
 
if (!Functions.between(year, 1930, yearCur))
    return false

if (line.rxDateOtherMonth == null) //by now year fits and day is null if month is null
    return true

if (year == yearCur && month > monthCur)
    return false

if (line.rxDateOtherDay == null) //by now year and month fit
    return true

if (year == yearCur && month == monthCur && day > dayCur)
    return false

Calendar cal = new GregorianCalendar(year, month - 1, 1)
return cal != null && day <= cal.getActualMaximum(Calendar.DAY_OF_MONTH)]]></expression>
            <message>RX Date Other is not valid.</message>
            <description><![CDATA[This edit is skipped if RX Date Other is empty.

The RX Date Other[1250] checks are performed in this order:

A) If the year is blank, month and day must also be blank.

B) Year of Other must be between 1930 and the current system year.

C) If the month is blank, the day must be blank.

D) If day of Other is blank, the year of Other and month of Other can not be greater than the current system year/month.

E) If day is known, then entire RX Date Other is verified. The date must be a valid date (leap years checked) and must be less than or equal to the current system date.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-14" ref="67144">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-20" ref="67425">Fixed documentation.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE22-022-13" user="kirbyk" date="2022-10-18" ref="69045">Fixing edit behavior for future dates.</event>
            </history>
        </rule>
        <rule id="RXDateRadiationEdit" name="RX Date Radiation (COC)" tag="N0549" java-path="lines.line" category="inter-field" depends="Day_Radiation,Month_Radiation,Year_Radiation">
            <expression><![CDATA[Integer year = Functions.asInt(line.rxDateRadiationYear)
Integer month = Functions.asInt(line.rxDateRadiationMonth)
Integer day = Functions.asInt(line.rxDateRadiationDay)

Integer yearCur  = Functions.getCurrentYear()
Integer monthCur = Functions.getCurrentMonth()
Integer dayCur = Functions.getCurrentDay()

if (line.rxDateRadiationYear == null)
   return (line.rxDateRadiationMonth == null && line.rxDateRadiationDay == null)

if ((line.rxDateRadiationMonth == null && line.rxDateRadiationDay != null) || (month > 12 || (line.rxDateRadiationMonth != null && month < 1)))
   return false

if (!Functions.between(year, 1930, yearCur))
    return false

if (line.rxDateRadiationMonth == null) //by now year fits and day is null if month is null
    return true

if (year == yearCur && month > monthCur)
    return false

if (line.rxDateRadiationDay == null) //by now year and month fit
    return true

if (year == yearCur && month == monthCur && day > dayCur)
    return false

Calendar cal = new GregorianCalendar(year, month - 1, 1)
return cal != null && day <= cal.getActualMaximum(Calendar.DAY_OF_MONTH)]]></expression>
            <message>RX Date Radiation is not valid.</message>
            <description><![CDATA[This edit is skipped if RX Date Radiation is empty.

The RX Date Radiation checks are performed in this order:

A) If the year is blank, month and day must also be blank.

B) Year of Radiation must be between 1930 and the current system year.

C) If the month is blank, the day must be blank.

D) If day of Radiation is blank, the year of Radiation and month of Radiation can not be greater than the current system year/month.

E) If day is known, then entire RX Date Radiation is verified. The date must be a valid date (leap years checked) and must be less than or equal to the current system date.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-12" ref="67145">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-20" ref="67425">Fixed documentation.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE22-022-13" user="kirbyk" date="2022-10-18" ref="69045">Fixing edit behavior for future dates.</event>
            </history>
        </rule>
        <rule id="RXDateSurgeryEdit" name="RX Date Surgery (COC)" tag="N0356" java-path="lines.line" category="inter-field" depends="Day_Surgery,Month_Surgery,Year_Surgery">
            <expression><![CDATA[Integer year = Functions.asInt(line.rxDateSurgeryYear)
Integer month = Functions.asInt(line.rxDateSurgeryMonth)
Integer day = Functions.asInt(line.rxDateSurgeryDay)

Integer yearCur = Functions.getCurrentYear()
Integer monthCur = Functions.getCurrentMonth()
Integer dayCur = Functions.getCurrentDay()

if (line.rxDateSurgeryYear == null)
    return (line.rxDateSurgeryMonth == null && line.rxDateSurgeryDay == null)

if ((line.rxDateSurgeryMonth == null && line.rxDateSurgeryDay != null) || (month > 12 || (line.rxDateSurgeryMonth != null && month < 1)))
    return false

if (!Functions.between(year, 1930, yearCur))
    return false

if (line.rxDateSurgeryMonth == null) //by now year fits and day is null if month is null
    return true

if (year == yearCur && month > monthCur)
    return false

if (line.rxDateSurgeryDay == null) //by now year and month fit
    return true

if (year == yearCur && month == monthCur && day > dayCur)
    return false

Calendar cal = new GregorianCalendar(year, month - 1, 1)
return cal != null && day <= cal.getActualMaximum(Calendar.DAY_OF_MONTH)]]></expression>
            <message>RX Date Surgery is not valid.</message>
            <description><![CDATA[This edit is skipped if RX Date Surgery is empty.

The RX Date Surgery[1200] checks are performed in this order:

A) If the year is blank, month and day must also be blank.

B) Year of Surgery must be between 1930 and the current system year.

C) If the month is blank, the day must be blank.

D) If day of Surgery is blank, the year of Surgery and month of Surgery can not be greater than the current system year/month.

E) If day is known, then entire RX Date Surgery is verified. The date must be a valid date (leap years checked) and must be less than or equal to the current system date.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-12" ref="67146">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-20" ref="67425">Fixed documentation.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-31" ref="68451">Changed edit name.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
                <event version="SE22-022-13" user="kirbyk" date="2022-10-18" ref="69045">Fixing edit behavior for future dates.</event>
            </history>
        </rule>
        <rule id="RXDateSystemicEdit" name="RX Date Systemic (COC)" tag="N0567" java-path="lines.line" category="inter-field" depends="Day_Systemic,Month_Systemic,Year_Systemic">
            <expression><![CDATA[Integer year = Functions.asInt(line.rxDateSystemicYear)
Integer month = Functions.asInt(line.rxDateSystemicMonth)
Integer day = Functions.asInt(line.rxDateSystemicDay)

Integer yearCur = Functions.getCurrentYear()
Integer monthCur = Functions.getCurrentMonth()
Integer dayCur = Functions.getCurrentDay()

if (line.rxDateSystemicYear == null)
    return (line.rxDateSystemicMonth == null && line.rxDateSystemicDay == null)

if ((line.rxDateSystemicMonth == null && line.rxDateSystemicDay != null) || (month > 12 || (line.rxDateSystemicMonth != null && month < 1)))
    return false

if (!Functions.between(year, 1930, yearCur))
    return false

if (line.rxDateSystemicMonth == null) //by now year fits and day is null if month is null
    return true

if (year == yearCur && month > monthCur)
    return false

if (line.rxDateSystemicDay == null) //by now year and month fit
    return true

if (year == yearCur && month == monthCur && day > dayCur)
    return false

Calendar cal = new GregorianCalendar(year, month - 1, 1)
return cal != null && day <= cal.getActualMaximum(Calendar.DAY_OF_MONTH)]]></expression>
            <message>RX Date Systemic is not valid.</message>
            <description><![CDATA[This edit is skipped if RX Date Systemic is empty.

The RX Date Systemic[3230] checks are performed in this order:

A) If the year is blank, month and day must also be blank.

B) Year of Systemic must be between 1930 and the current system year.

C) If the month is blank, the day must be blank.

D) If day of Systemic is blank, the year of Systemic and month of Systemic can not be greater than the current system year/month.

E) If day is known, then entire RX Date Systemic is verified. The date must be a valid date (leap years checked) and must be less than or equal to the current system date.]]></description>
            <history>
                <event version="SE16-016-10" user="kirbyk" date="2018-01-16" ref="67682">Edit created.</event>
                <event version="SE22-022-13" user="kirbyk" date="2022-10-18" ref="69045">Fixing edit behavior for future dates.</event>
            </history>
        </rule>
        <rule id="RX_Summ--BRM" name="RX Summ--BRM (NPCR)" tag="N0822" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxSummBrm == null || Functions.matches(line.rxSummBrm, /(^0[01]$)|(^8[25678]$)|(^99$)/)]]></expression>
            <message>RX summ--BRM is not valid.</message>
            <description><![CDATA[Valid codes for RX summ--BRM[1410] are 00,01,82,85-88,99 or blank.

00 = None
01 = Immunotherapy administered as first course therapy
82 = Immunotherapy was not recommended/admin due to patient risk
85 = Recommended/not administered - patient died
86 = Recommended/not administered - no reason
87 = Recommended/not administered - patient refused
88 = Recommended, unknown if administered
99 = Unknown if recommended or administered]]></description>
            <history>
                <event version="SE11-001-04" user="greend" date="1988-05-25">Additional codes made valid due to 1988 SEER record changes.</event>
                <event version="SE11-001-13" user="greend" date="1997-07-15">Codes 2-5 now valid.</event>
                <event version="SE11-001-14" user="greend" date="1998-01-29">All codes 0-9 are now valid.</event>
                <event version="SE11-001-17" user="greend" date="2003-03-14">RX summ--BRM updated from 1 to 2 characters.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-06" ref="68178">Added blank as valid value and changed edit name.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit tag changed.</event>
            </history>
        </rule>
        <rule id="RX_Summ--Chemo" name="RX Summ--Chemo (NPCR)" tag="N0823" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxSummChemo == null || Functions.matches(line.rxSummChemo, /(^0[0-3]$)|(^8[25678]$)|(^99$)/)]]></expression>
            <message>RX summ--chemo is not valid.</message>
            <description><![CDATA[Valid codes for RX summ--chemo[1390] are 00-03,82,85-88,99 or blank.

00 = None
01 = Chemotherapy, NOS
02 = Chemotherapy, single-agent
03 = Chemotherapy, multiple agents
82 = Recommended/not administered - patient risk
85 = Recommended/not administered - patient died
86 = Recommended/not administered - no reason
87 = Recommended/not administered - patient refused
88 = Recommended, unknown if administered
99 = Unknown if recommended or administered]]></description>
            <history>
                <event version="SE11-001-04" user="greend" date="1988-05-25">Additional codes made valid due to 1988 SEER coding changes.</event>
                <event version="SE11-001-17" user="greend" date="2003-03-14">RX summ--chemo updated from 1 to 2 characters.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-06" ref="68178">Added blank as valid value and changed edit name.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit tag changed.</event>
            </history>
        </rule>
        <rule id="RX_Summ--Hormone" name="RX Summ--Hormone (NPCR)" tag="N0824" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxSummHormone == null || Functions.matches(line.rxSummHormone, /(^0[01]$)|(^8[25678]$)|(^99$)/)]]></expression>
            <message>RX summ--hormone is not valid.</message>
            <description><![CDATA[Valid codes for RX Summ--hormone[1400] are 00,01,82,85-88,99 or blank.

00 = None
01 = Hormone therapy
82 = Recommended/not administered - patient risk
85 = Recommended/not administered - patient died
86 = Recommended/not administered - no reason
87 = Recommended/not administered - patient refused
88 = Recommended, unknown if administered
99 = Unknown if recommended or administered]]></description>
            <history>
                <event version="SE11-001-04" user="greend" date="1988-05-25">Additional codes made valid due to 1988 SEER record changes.</event>
                <event version="SE11-001-17" user="greend" date="2003-03-14">RX summ-hormone changed from 1 to 2 characters.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-06" ref="68178">Added blank as valid value and changed edit name.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit tag changed.</event>
            </history>
        </rule>
        <rule id="RX_Summ--Other" name="RX Summ--Other (NPCR)" tag="N0825" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxSummOther == null || Functions.matches(line.rxSummOther, /^[01236789]$/)]]></expression>
            <message>RX summ--other is not valid.</message>
            <description><![CDATA[Valid codes for RX summ--other[1410] are 0-3,6-9 or blank.

0 = No other cancer-directed therapy
1 = Other cancer-directed therapy
2 = Other experimental cancer-directed therapy
3 = Double blind study, code not yet broken
6 = Unproven therapy (including Laetrile, Krebiozen, etc)
7 = Refused therapy 1-3 above
8 = Recommended, unknown if administered
9 = Unknown]]></description>
            <history>
                <event version="SE11-001-04" user="greend" date="1988-05-25">Additional codes made valid due to 1988 SEER record changes.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-06" ref="68178">Added blank as valid value and changed edit name.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit tag changed.</event>
            </history>
        </rule>
        <rule id="RX_Summ--Radiation" name="RX Summ--Radiation (SEER RADIATN)" tag="N0296" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxSummRadiation == null || Functions.matches(line.rxSummRadiation, /^[0-9]$/)]]></expression>
            <message>RX summ--radiation is not valid.</message>
            <description><![CDATA[Valid codes for RX summ--radiation[1360] are 0-9 or blank.

0 = None
1 = Beam radiation
2 = Radioactive implants
3 = Radioisotopes
4 = Combination of beam with implants or isotopes
5 = Radiation, NOS  method or source not specified
6 = Other radiation (1973-1987 cases only)
7 = Refused
8 = Recommended, unknown if administered
9 = Unknown]]></description>
            <history>
                <event version="SE11-001-04" user="greend" date="1988-05-25">Additional codes made valid due to 1988 SEER record changes.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-17" ref="67799">Allow blank values.</event>
            </history>
        </rule>
        <rule id="RX_Summ--Rad_to_CNS" name="RX Summ--Rad to CNS (SEER RBCNSYS)" tag="N0223" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxSummRadToCns == null || Functions.matches(line.rxSummRadToCns, /^[01789]$/)]]></expression>
            <message>RX summ--rad to CNS is not valid.</message>
            <description><![CDATA[Valid codes for RX summ--rad to CNS[1370] are 0,1,7-9 or blank.

0 = None
1 = Radiation
7 = Refused
8 = Recommended, unknown if administered
9 = Unknown]]></description>
            <history>
                <event version="SE11-001-05" user="greend" date="1989-10-02">Site and histology fields no longer sent to this edit.  Edit now performs only a field-value check.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-04" user="kirbyk" date="2018-08-03" ref="67960">Added blank as a valid value.</event>
            </history>
        </rule>
        <rule id="RX_Summ--Reg_LN_Examined" name="RX Summ--Reg LN Examined (SEER SURGNODE)" tag="N0299" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxSummRegLnExamined == null || Functions.matches(line.rxSummRegLnExamined, /(^[0-8][0-9]$)|(^9[05-9]$)|(^\s\s$)/)]]></expression>
            <message>RX summ--reg LN examined is not valid.</message>
            <description><![CDATA[Valid codes for RX summ--reg LN examined[1296] are 00-90,95-99 or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="RX_Summ--Scope_Reg_98-02" name="RX Summ--Scope Reg 98-02 (COC)" tag="N0554" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxSummScopeReg9802 == null || Functions.matches(line.rxSummScopeReg9802, /^[0-9\s]$/)]]></expression>
            <message>RX summ--scope reg 98-02 is not valid.</message>
            <description><![CDATA[Valid codes for RX summ--scope reg 98-02[1647] are 0-9 or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="RX_Summ--Scope_Reg_LN_Sur" name="RX Summ--Scope Reg LN Sur (SEER SCOPE)" tag="N0300" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxSummScopeRegLnSur == null || Functions.matches(line.rxSummScopeRegLnSur, /^[0-79\s]$/)]]></expression>
            <message>RX summ--scope reg LN sur is not valid.</message>
            <description><![CDATA[Valid codes for RX summ--scope reg LN sur[1292] are 0-7,9 or blank.

0 = No regional lymph nodes removed or aspirated;diagnosed at autopsy
1 = Biopsy or aspiration of regional lymph node, NOS
2 = Sentinel lymph node biopsy
3 = Number of regional lymph nodes removed unknown, not stated;regional lymph nodes removed, NOS
4 = 1 to 3 regional lymph nodes removed
5 = 4 or more regional lymph nodes removed
6 = Sentinel node biopsy and code 3,4 or 5 at same time or timing not noted
7 = Sentinel node biopsy and code 3,4 or 5 at different times
9 = Unknown or not applicable;death certificate only]]></description>
            <history>
                <event version="SE11-001-20" user="greend" date="2006-01-19">Value 8 was removed as a valid value.</event>
                <event version="SE12-005-08" user="murphyr" date="2011-12-16" ref="66607">Fixed an issue where 8 was still a valid value</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="RX_Summ--Surg-Rad_Seq" name="RX Summ--Surg/Rad Seq (NPCR)" tag="N0815" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxSummSurgRadSeq == null || Functions.matches(line.rxSummSurgRadSeq, /^[02345679]$/)]]></expression>
            <message>RX summ--surg/rad seq is not valid.</message>
            <description><![CDATA[Valid codes for RX summ--surg/rad seq[1380] are 0,2-7,9 or blank.

0 = No radiation and/or cancer-directed surgery
2 = Radiation prior to surgery
3 = Radiation after surgery
4 = Radiation before and after surgery
5 = Intraoperative radiation
6 = Intraoperative rad with other rad before/after surgery
7 = Surgery both before and after radiation
9 = Sequence unknown, but both were given]]></description>
            <history>
                <event version="SE11-001-04" user="greend" date="1988-05-25">Additional codes made valid due to 1988 SEER record changes.</event>
                <event version="SE12-006-01" user="murphyr" date="2011-12-16" ref="66633">Added code 7.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-06" ref="68178">Added blank as valid value and changed edit name.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit tag changed.</event>
            </history>
        </rule>
        <rule id="RX_Summ--Surgery_Type" name="RX Summ--Surgery Type (SEER SURGRX)" tag="N0225" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxSummSurgeryType == null  || Functions.matches(line.rxSummSurgeryType, /(^[0-9][0-9]$)|(^\s\s$)/)]]></expression>
            <message>RX summ--surgery type is not valid.</message>
            <description><![CDATA[Valid codes for RX summ--surgery type[1640] are 00-99 or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="RX_Summ--Surgical_Margins" name="RX Summ--Surgical Margins (NAACCR)" tag="N1246" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxSummSurgicalMargins == null || Functions.matches(line.rxSummSurgicalMargins, /^[0123789]$/)]]></expression>
            <message>RX Summ--Surgical Margins is not valid.</message>
            <description><![CDATA[Must be a valid code for RX Summ--Surgical Margins (0-3,7-9) or blank.]]></description>
            <history>
                <event version="SE16-016-05" user="kirbyk" date="2017-07-28" ref="67659">Edit created.</event>
                <event version="SE16-016-06" user="kirbyk" date="2017-09-13" ref="67666">Disabled edit (it will always return true).</event>
                <event version="SE18-017-01" user="schadega" date="2018-03-15" ref="67714">Re-enabled edit.</event>
            </history>
        </rule>
        <rule id="RX_Summ--Surg_Oth_98-02" name="RX Summ--Surg Oth 98-02 (COC)" tag="N0558" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxSummSurgOth9802 == null || Functions.matches(line.rxSummSurgOth9802, /^[0-9\s]$/)]]></expression>
            <message>RX summ--surg oth 98-02 is not valid.</message>
            <description><![CDATA[Valid codes for RX summ--surg oth 98-02[1648] are 0-9 or blank.]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="RX_Summ--Surg_Oth_Reg-Dis" name="RX Summ--Surg Oth Reg/Dis (SEER SURGOTH)" tag="N0301" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxSummSurgOthRegDis == null || Functions.matches(line.rxSummSurgOthRegDis, /^[0-59\s]$/)]]></expression>
            <message>RX summ--surg oth reg/dis is not valid.</message>
            <description><![CDATA[Valid codes for RX summ--surg oth reg/dis[1294] are 0-5,9 or blank.

0 = None;diagnosed at autopsy
1 = Nonprimary surgical procedure performed
2 = Nonprimary surgical procedure to other regional sites
3 = Non-primary surgical procedure to distant lymph node(s)
4 = Nonprimary surgical procedure to distant site
5 = Combination of codes 2,3 or 4
9 = Unknown;death certificate only]]></description>
            <history>
                <event version="SE11-001-20" user="greend" date="2006-01-19">Values 6-8 were removed as valid values.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="RX_Summ--Surg_Prim_Site" name="RX Summ--Surg Prim Site 03-2022 (SEER SURGPRIM)" tag="N0302" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxSummSurgPrimSite == null || Functions.matches(line.rxSummSurgPrimSite, /(^00$)|(^[1-8][0-9]$)|(^9[089]$)|(^\s\s$)/)]]></expression>
            <message>RX summ--surg prim site 03-2022 is not valid.</message>
            <description><![CDATA[Valid codes for RX summ--surg prim site 03-2022 are 00,10-90,98,99 or blank.]]></description>
            <history>
                <event version="SE11-001-17" user="greend" date="2003-03-14">Code 98 is now valid.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE23-023-01" user="secristc" date="2023-01-27" ref="69110">Updated name and description to use RX Summ--Surg Prim Site 03-2022.</event>
            </history>
        </rule>
        <rule id="RX_Summ--Systemic_Sur_Seq" name="RX Summ--Systemic/Sur Seq (COC)" tag="N0757" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxSummSystemicSurSeq == null  || Functions.matches(line.rxSummSystemicSurSeq, /^[02345679]$/)]]></expression>
            <message>RX Summ--Systemic Sur Seq is not valid.</message>
            <description><![CDATA[Must be a valid RX Summ-Systemic Sur seq code (0, 2-6,9) or blank.

0 = No systemic thearapy and/or surgical procedures.
2 = Systemic therapy before surgery
3 = Systemic therapy after surgery
4 = Systemic therapy both before and after surgery
5 = Intraoperative systemic therapy
6 = Intraoperative systemic therapy with other therapy administered before or after surgery
7 = Surgery both before and after systemic therapy
9 = Sequence unknown]]></description>
            <history>
                <event version="SE12-006-01" user="murphyr" date="2011-12-16" ref="66636">Added code 7.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="RX_Summ--Transplnt-Endocr" name="RX Summ--Transplnt/Endocr (NPCR)" tag="N0835" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxSummTransplntEndocr == null || Functions.matches(line.rxSummTransplntEndocr, /(^00$)|(^1[012]$)|(^[234]0$)|(^8[25678]$)|(^99$)/)]]></expression>
            <message>RX summ--transplnt/endocr is not valid.</message>
            <description><![CDATA[Valid codes for RX Summ--transplnt/endocr[3250] are 00,10-12,20,30,40,82,85-88, 99, or blank.

00 = No transplant
10 = Bone marrow transplant-type not specified
11 = Bone marrow transplant-autologous
12 = Bone marrow transplant-allogeneic
20 = Stem cell harvest
30 = Endocrine surgery and/or endocrine radiation therapy
40 = Combo of endocrine surgery and/or radiation with a transplant procedure
82 = Hematologic transplant and/or endocrine surg/rad not recommended/admin
     due to patient risk factor
85 = Hematologic transplant and/or endocrine surg/rad not recommended/admin due to patient death
86 = Hematologic transplant and/or endocrine surg/rad recommeneded but not administered.
     Reason Unknonw
87 = Hematologic transplant and/or endocrine surg/rad recommended but not administered.
     Patient refused
88 = Hematologic transplant and/or endocrine surg/rad recommended.  Unknown if administered
99 = Unknown whether hematologic transplant and/or endocrine surg/rad recomm/admin
      because death cert only]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-02" user="kirbyk" date="2019-05-06" ref="68178">Changed edit name.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit tag changed.</event>
            </history>
        </rule>
        <rule id="RX_Summ--Treatment_Status" name="RX Summ--Treatment Status (COC)" tag="N0985" java-path="lines.line" category="field">
            <expression><![CDATA[return line.rxSummTreatmentStatus == null || Functions.matches(line.rxSummTreatmentStatus, /(^[0129]$)/)]]></expression>
            <message>RX Summ--Treatment Status is not valid.</message>
            <description><![CDATA[Valid codes for RX Summ--Treatment Status[1285] are 0,1,2,9 or blank.

    0=No treatment given
    1=Treatment given
    2=Active surveillance (watchful waiting)
    9=Unknown if treatment was given
    Blanks="  Blank(s)"]]></description>
            <history>
                <event version="SE12-002-01" user="murphy7" date="2010-01-07">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="SEER_Cause-Specific_COD" name="SEER Cause-Specific COD (NAACCR)" tag="N2846" java-path="lines.line" category="field">
            <expression><![CDATA[return line.seerCauseSpecificCod == null || Functions.matches(line.seerCauseSpecificCod, /^[0189]$/)]]></expression>
            <message>SEER Cause-Specific COD is not valid.</message>
            <description><![CDATA[Must be a valid SEER Cause-Specific COD value, 0, 1, 8, or 9. This is a calculated value.
This field is allowed to be blank because it was not collected as a standard
NAACCR data item before 2018.

    0: Alive or dead of other cause
    1: Dead, attributable to this cancer diagnosis
    8: Missing/Unknown Cause of Death
    9: Not applicable/not first tumor]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-07" ref="67779">Edit created.</event>
            </history>
        </rule>
        <rule id="SEER_IR01A" name="Verify Birthplace-State Same on All Records for a Patient" tag="S020" java-path="lines" category="inter-record">
            <expression><![CDATA[if (lines.isEmpty())
    return true

String birthPlaceState = lines[0].birthplaceState
for (line in lines) {
    if (birthPlaceState != line.birthplaceState) {
        Functions.forceFailureOnEntity(binding, lines[0])
        Functions.forceFailureOnEntity(binding, line)
        return false
    }
}

return true]]></expression>
            <message>Birthplace-State Inter-Record Error</message>
            <description><![CDATA[SEER_IR01A compares each Birthplace-State entry for a given patient to determine if they are all the same. If they are not, the patient fails the edit.]]></description>
            <history>
                <event version="SE13-010-03" user="murphyr" date="2013-08-13" ref="66921">Edit created.</event>
                <event version="SE14-011-04" user="depryf" date="2014-04-21" ref="67077">Now reporting all the tumors when this edit fails.</event>
                <event version="SE16-016-07" user="kirbyk" date="2017-11-09" ref="67672">Now reporting only the two tumors that fail the edit.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-12" user="kirbyk" date="2019-01-28" ref="68104">Changed error message.</event>
            </history>
        </rule>
        <rule id="SEER_IR01B" name="Verify Birthplace-Country Same on All Records for a Patient" tag="S021" java-path="lines" category="inter-record">
            <expression><![CDATA[if (lines.isEmpty())
    return true

String birthPlaceCountry = lines[0].birthplaceCountry
for (line in lines) {
    if (birthPlaceCountry != line.birthplaceCountry) {
        Functions.forceFailureOnEntity(binding, lines[0])
        Functions.forceFailureOnEntity(binding, line)
        return false
    }
}

return true]]></expression>
            <message>Birthplace-Country Inter-Record Error</message>
            <description><![CDATA[SEER_IR01B compares each Birthplace-Country entry for a given patient to determine if they are all the same. If they are not, the patient fails the edit.]]></description>
            <history>
                <event version="SE13-010-03" user="murphyr" date="2013-08-13" ref="66922">Edit created.</event>
                <event version="SE14-011-04" user="depryf" date="2014-04-21" ref="67077">Now reporting all the tumors when this edit fails.</event>
                <event version="SE16-016-07" user="kirbyk" date="2017-11-09" ref="67672">Now reporting only the two tumors that fail the edit.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-12" user="kirbyk" date="2019-01-28" ref="68104">Changed error message.</event>
            </history>
        </rule>
        <rule id="SEER_IR02" name="Birth Date not Consistent for Patient (SEER IR02)" tag="S022" java-path="lines" category="inter-record">
            <expression><![CDATA[if (lines.isEmpty())
    return true

for (line in lines) {
    if (line.dateOfBirthYear != null && !Functions.between(line.dateOfBirthYear, 1800, Functions.getCurrentYear() ) )
        return true
    if (line.dateOfBirthMonth != null && !(Functions.matches(line.dateOfBirthMonth, /^(0?[1-9]|1[0-2])$/) ) )
        return true
    if (line.dateOfBirthDay != null && !(line.dateOfBirthDay  ==~ /^(0?[1-9]|[12][0-9]|3[01]|\s\s)$/) )
        return true
}

String day = lines[0].dateOfBirthDay
String month = lines[0].dateOfBirthMonth
String year = lines[0].dateOfBirthYear

for (line in lines) {
    if (day != line.dateOfBirthDay || month != line.dateOfBirthMonth || year != line.dateOfBirthYear) {
        Functions.forceFailureOnEntity(binding, lines[0])
        Functions.forceFailureOnEntity(binding, line)
        return false
    }
}

return true]]></expression>
            <message>Birth Date Inter-Record Error</message>
            <description><![CDATA[Birth Date[240] must be equal on all records.

This edit is skipped if any record for the person has the "Date of Birth is not valid." inter-field edit flag triggered.]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2008-01-21">Edit now uses Day of Birth.</event>
                <event version="SE14-011-04" user="depryf" date="2014-04-21" ref="67077">Now reporting all the tumors when this edit fails.</event>
                <event version="SE16-016-07" user="kirbyk" date="2017-11-09" ref="67672">Now reporting only the two tumors that fail the edit.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="SEER_IR03A" name="Age at DX and Sequence Number 00 to 59 not Consistent for Patient (SEER IR03A)" tag="S023" java-path="lines" category="inter-record">
            <expression><![CDATA[List<Map> filteredLines = (List)((Closure)Context.SEER_IR03A_Filter).call(lines)

if (filteredLines.size() < 2)
    return true

// sort tumors by sequence number (null seq go to the end of the list)
filteredLines.sort(true, (Comparator)Context.seqComparator)

int index = 1
Map currLine = filteredLines.get(0)
Integer currAge = Functions.asInt(currLine.ageAtDiagnosis)
while (index < filteredLines.size()) {
    Map line = filteredLines.get(index)
    Integer nextAge = Functions.asInt(line.ageAtDiagnosis)

    if (currAge > nextAge) {
        Functions.forceFailureOnEntity(binding, currLine, 'line.sequenceNumberCentral', 'line.ageAtDiagnosis')
        Functions.forceFailureOnEntity(binding, line, 'line.sequenceNumberCentral', 'line.ageAtDiagnosis')
        return false
    }

    currLine = line
    currAge = nextAge
    index += 1
}

return true]]></expression>
            <message>Age at Diagnosis (Seq Number 00 to 59) Inter-Record Error</message>
            <description><![CDATA[Records with sequence number 00-59 for a patient are sorted into ascending sequence using Sequence number--central[380] as the key.  The Age at diagnosis[230] on each succeeding record must be greater than or equal to the Age at diagnosis[230] on the previous record.

Records with Age at diagnosis[230] equal to 999 are skipped.]]></description>
            <history>
                <event version="SE11-001-19" user="greend" date="2005-05-26">Edit modified to ignore cases with sequence numbers greater than 59.</event>
                <event version="SE11-001-20" user="greend" date="2006-07-19">Changed edit name from IR003 to IR003A.</event>
                <event version="SE11-001-22" user="greend" date="2007-12-30">Records with age at diagnosis = 999 are skipped.</event>
                <event version="SE14-011-04" user="depryf" date="2014-04-21" ref="67077">Now reporting all the tumors when this edit fails.</event>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-26" ref="67112">Reports only the two tumors that fail the edit.</event>
                <event version="SE15-014-01" user="depryf" date="2015-06-25" ref="67203">Fixed syntax of the Groovy &apos;sort&apos; method, they added a boolean parameter to it.</event>
                <event version="SE16-016-07" user="kirbyk" date="2017-11-16" ref="67672">Moved filtering logic to context SEER_IR03A_Filter.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="SEER_IR03B" name="Age at Dx and Sequence Number 60 to 87 not Consistent for Patient (SEER IR03B)" tag="S024" java-path="lines" category="inter-record">
            <expression><![CDATA[List<Map> filteredLines = (List)((Closure)Context.SEER_IR03B_Filter).call(lines)

if (filteredLines.size() < 2)
    return true

// sort tumors by sequence number (null seq go to the end of the list)
filteredLines.sort(true, (Comparator)Context.seqComparator)

int index = 1
Map currLine = filteredLines.get(0)
Integer currAge = Functions.asInt(currLine.ageAtDiagnosis)
while (index < filteredLines.size()) {
    Map line = filteredLines.get(index)
    Integer nextAge = Functions.asInt(line.ageAtDiagnosis)

    if (currAge > nextAge) {
        Functions.forceFailureOnEntity(binding, currLine, 'line.sequenceNumberCentral', 'line.ageAtDiagnosis')
        Functions.forceFailureOnEntity(binding, line, 'line.sequenceNumberCentral', 'line.ageAtDiagnosis')
        return false
    }

    currLine = line
    currAge = nextAge
    index += 1
}

return true]]></expression>
            <message>Age at Diagnosis (Seq Number 60 to 87) Inter-Record Error</message>
            <description><![CDATA[Records with sequence number 60-87 for a patient are sorted into ascending sequence using Sequence number--central[380] as the key.  The Age at diagnosis[230] on each succeeding record must be greater than or equal to the Age at diagnosis[230] on the previous record.

Records with Age at diagnosis[230] equal to 999 are skipped.]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2007-12-30">Records with age at diagnosis = 999 are skipped.</event>
                <event version="SE14-011-04" user="depryf" date="2014-04-21" ref="67077">Now reporting all the tumors when this edit fails.</event>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-26" ref="67112">Reports only the two tumors that fail the edit.</event>
                <event version="SE15-014-01" user="depryf" date="2015-06-25" ref="67203">Fixed syntax of the Groovy &apos;sort&apos; method, they added a boolean parameter to it.</event>
                <event version="SE16-016-07" user="kirbyk" date="2017-11-16" ref="67672">Moved filtering logic to context SEER_IR03B_Filter.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="SEER_IR04" name="Race 1 thru 5 not Consistent for Patient (SEER IR04)" tag="S025" java-path="lines" category="inter-record">
            <expression><![CDATA[if (lines.isEmpty())
    return true

String race1 = lines[0].race1
String race2 = lines[0].race2
String race3 = lines[0].race3
String race4 = lines[0].race4
String race5 = lines[0].race5

for (line in lines) {
    if (line.race1 != race1 || line.race2 != race2 || line.race3 != race3 || line.race4 != race4 || line.race5 != race5) {
        Functions.forceFailureOnEntity(binding, lines[0])
        Functions.forceFailureOnEntity(binding, line)
        return false
    }
}

return true]]></expression>
            <message>Race Inter-Record Error</message>
            <description><![CDATA[Race 1[160] thru Race 5[164] must be equal on all records.]]></description>
            <history>
                <event version="SE11-001-18" user="greend" date="2004-05-25">The edit now checks that Race 2 thru Race 5 are also consistent on each record for a patient.</event>
                <event version="SE14-011-04" user="depryf" date="2014-04-21" ref="67077">Now reporting all the tumors when this edit fails.</event>
                <event version="SE16-016-07" user="kirbyk" date="2017-11-09" ref="67672">Now reporting only the two tumors that fail the edit.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="SEER_IR05" name="Sex not Consistent for Patient (SEER IR05)" tag="S026" java-path="lines" category="inter-record">
            <expression><![CDATA[if (lines.isEmpty())
    return true

String sex = lines[0].sex
for (line in lines) {
    if (sex != line.sex) {
        Functions.forceFailureOnEntity(binding, lines[0])
        Functions.forceFailureOnEntity(binding, line)
        return false
    }
}

return true]]></expression>
            <message>Sex Inter-Record Error</message>
            <description><![CDATA[Sex[220] must be equal on all records.]]></description>
            <history>
                <event version="SE16-016-07" user="kirbyk" date="2017-11-09" ref="67672">Now reporting only the two tumors that fail the edit.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="SEER_IR06A" name="Seq-num (00 to 59) and Date Dx not Consistent for Patient (SEER IR06)" tag="S027" java-path="lines" category="inter-record">
            <expression><![CDATA[List<Map> filteredLines = (List<Map>)((Closure)Context.SEER_IR06A_Filter).call(lines)

if (filteredLines.size() < 2)
    return true

for (line in filteredLines) {
    if ( line.dateOfDiagnosisYear != null && !(Functions.matches(line.dateOfDiagnosisYear, /^[12]\d\d\d$/)) && !Functions.between(line.dateOfDiagnosisYear, 1930, Functions.getCurrentYear()) )
         return true
    if ( line.dateOfDiagnosisMonth != null && !(Functions.matches(line.dateOfDiagnosisMonth, /^(0?[1-9]|1[0-2])$/) ) )
         return true
    if ( line.dateOfDiagnosisDay != null && !(Functions.matches(line.dateOfDiagnosisDay, /^(0[1-9]|[12][0-9]|3[01]|\s\s)$/)) )
         return true
}

// sort tumors by sequence number (null seq go to the end of the list)
filteredLines.sort(true, (Comparator)Context.seqComparator)

int index = 1
Map currLine = filteredLines.get(0)
Integer currYearDx = Functions.asInt(currLine.dateOfDiagnosisYear)
Integer currMonthDx = Functions.asInt(currLine.dateOfDiagnosisMonth)
Integer currDayDx = Functions.asInt(currLine.dateOfDiagnosisDay)
while (index < filteredLines.size()) {
    Map line = filteredLines.get(index)
    Integer nextYearDx = Functions.asInt(line.dateOfDiagnosisYear)
    Integer nextMonthDx = Functions.asInt(line.dateOfDiagnosisMonth)
    Integer nextDayDx = Functions.asInt(line.dateOfDiagnosisDay)

    if (((Integer)((Closure)Context.compareDate).call(currYearDx, currMonthDx, currDayDx, nextYearDx, nextMonthDx, nextDayDx)) > 0) {
        Functions.forceFailureOnEntity(binding, currLine, 'line.sequenceNumberCentral', 'line.dateOfDiagnosisYear', 'line.dateOfDiagnosisMonth', 'line.dateOfDiagnosisDay')
        Functions.forceFailureOnEntity(binding, line, 'line.sequenceNumberCentral', 'line.dateOfDiagnosisYear', 'line.dateOfDiagnosisMonth', 'line.dateOfDiagnosisDay')
        return false
    }

    currLine = line
    if (nextDayDx != '99' && nextDayDx != null) {
        currYearDx = nextYearDx
        currMonthDx = nextMonthDx
        currDayDx = nextDayDx
    }
    else if (nextMonthDx != 99 && nextMonthDx != null) {
        if (nextMonthDx > currMonthDx || nextYearDx > currYearDx) {
            currYearDx = nextYearDx
            currMonthDx = nextMonthDx
            currDayDx = 0
        }
    }
    else if (nextYearDx != 99 && nextYearDx != null) {
        if (nextYearDx > currYearDx) {
            currYearDx = nextYearDx
            currMonthDx = 0
            currDayDx = 0
        }
    }
    index += 1
}

return true]]></expression>
            <message>Seq_num (00 to 59) and Date_dx Inter-Record Error</message>
            <description><![CDATA[This edit is skipped if any record for the person has the "Date of Diagnosis is invalid" inter-field edit flag triggered.

IR06A compares the records for a patient where sequence number is between 00 and 59.  This edit determines whether Sequence number--central[380] and Date of diagnosis[390] are in logical sequence (i.e., the tumor with Sequence number--central[380]= 01 must have a Diagnosis date[390] prior or equal to the diagnosis date[390] of the tumor with Sequence number--central[380]= 02, etc.).

When this edit compares two dates, if either Month of Diagnosis [390] is blank, then only the years are compared.  If either day is blank, then the years and months are compared.  Otherwise, the entire dates are compared.

Records with a blank Year of Diagnosis [390] are skipped.]]></description>
            <history>
                <event version="SE11-001-19" user="greend" date="2005-05-25">Edit modified to ignore cases with sequence numbers 60-88.</event>
                <event version="SE11-001-20" user="greend" date="2006-07-19">Changed name from iIR006 to iIR006A.</event>
                <event version="SE11-001-22" user="greend" date="2007-12-30">Records with a Year of Diagnosis [390] equal to 9999 or blank are skipped.</event>
                <event version="SE11-001-22" user="greend" date="2008-01-21">Edit now uses Day of Diagnosis.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-22">Edit no longer recognizes 9 filled year of diagnosis.</event>
                <event version="SE14-011-04" user="depryf" date="2014-04-21" ref="67077">Now reporting all the tumors when this edit fails.</event>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-26" ref="67112">Reports only the two tumors that fail the edit.</event>
                <event version="SE15-014-01" user="depryf" date="2015-06-25" ref="67203">Fixed syntax of the Groovy &apos;sort&apos; method, they added a boolean parameter to it.</event>
                <event version="SE16-016-07" user="kirbyk" date="2017-11-16" ref="67672">Moved filtering logic to context SEER_IR06A_Filter.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-03" user="kirbyk" date="2019-08-07" ref="68207">Changed how edit compares dates with unknown parts.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-24" ref="68782">Update edit to use compareDate context entry.</event>
            </history>
        </rule>
        <rule id="SEER_IR06B" name="Seq-num (60 to 87) and Date Dx not Consistent for Patient (SEER IR06)" tag="S028" java-path="lines" category="inter-record">
            <expression><![CDATA[List<Map> filteredLines = (List<Map>)((Closure)Context.SEER_IR06B_Filter).call(lines)

if (filteredLines.size() < 2)
    return true

// sort tumors by sequence number (null seq go to the end of the list)
filteredLines.sort(true, (Comparator)Context.seqComparator)

int index = 1
Map currLine = filteredLines.get(0)
Integer currYearDx = Functions.asInt(currLine.dateOfDiagnosisYear)
Integer currMonthDx = Functions.asInt(currLine.dateOfDiagnosisMonth)
Integer currDayDx = Functions.asInt(currLine.dateOfDiagnosisDay)
while (index < filteredLines.size()) {
    Map line = filteredLines.get(index)
    Integer nextYearDx = Functions.asInt(line.dateOfDiagnosisYear)
    Integer nextMonthDx = Functions.asInt(line.dateOfDiagnosisMonth)
    Integer nextDayDx = Functions.asInt(line.dateOfDiagnosisDay)

    if (((Integer)((Closure)Context.compareDate).call(currYearDx, currMonthDx, currDayDx, nextYearDx, nextMonthDx, nextDayDx)) > 0) {
        Functions.forceFailureOnEntity(binding, currLine, 'line.sequenceNumberCentral', 'line.dateOfDiagnosisYear', 'line.dateOfDiagnosisMonth', 'line.dateOfDiagnosisDay')
        Functions.forceFailureOnEntity(binding, line, 'line.sequenceNumberCentral', 'line.dateOfDiagnosisYear', 'line.dateOfDiagnosisMonth', 'line.dateOfDiagnosisDay')
        return false
    }

    currLine = line
    if (nextDayDx != '99' && nextDayDx != null) {
        currYearDx = nextYearDx
        currMonthDx = nextMonthDx
        currDayDx = nextDayDx
    }
    else if (nextMonthDx != 99 || nextMonthDx != null) {
        if (nextMonthDx > currMonthDx || nextYearDx > currYearDx) {
            currYearDx = nextYearDx
            currMonthDx = nextMonthDx
            currDayDx = 0
        }
    }
    else if (nextYearDx != 99 || nextYearDx != null) {
        if (nextYearDx > currYearDx) {
            currYearDx = nextYearDx
            currMonthDx = 0
            currDayDx = 0
        }
    }
    index += 1
}

return true]]></expression>
            <message>Seq_num (60 to 87) and Date_dx Inter-Record Error</message>
            <description><![CDATA[This edit is skipped if any record for the person has the "Date of Diagnosis is invalid" inter-field edit flag triggered.

IR06B compares the records for a patient where sequence number is between 60 and 87.  This edit determines whether Sequence number--central[380] and Date of diagnosis[390] are in logical sequence (i.e., the tumor with Sequence number--central[380]= 61 must have a Diagnosis date[390] prior or equal to the diagnosis date[390] of the tumor with Sequence number--central[380]= 62, etc.).

When this edit compares two dates, if either Month of Diagnosis [390] is blank then only the years are compared.  If either day is blank, then the years and months are compared.  Otherwise, the entire dates are compared.

Records with a blank Year of Diagnosis [390] are skipped.]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2007-12-30">Records with a blank Year of Diagnosis [390] are skipped.</event>
                <event version="SE11-001-22" user="greend" date="2008-01-21">Edit now uses Day of Diagnosis.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-22">Edit no longer recognizes 9 filled year of diagnosis.</event>
                <event version="SE14-011-04" user="depryf" date="2014-04-21" ref="67077">Now reporting all the tumors when this edit fails.</event>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-26" ref="67112">Reports only the two tumors that fail the edit.</event>
                <event version="SE15-014-01" user="depryf" date="2015-06-25" ref="67203">Fixed syntax of the Groovy &apos;sort&apos; method, they added a boolean parameter to it.</event>
                <event version="SE16-016-07" user="kirbyk" date="2017-11-16" ref="67672">Moved filtering logic to context SEER_IR06B_Filter.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-03" user="kirbyk" date="2019-08-07" ref="68207">Changed how edit compares dates with unknown parts.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-24" ref="68782">Update edit to use compareDate context entry.</event>
            </history>
        </rule>
        <rule id="SEER_IR07A" name="Sequence Number 00 to 59 not Consistent for Patient (SEER IR07)" tag="S029" java-path="lines" category="inter-record">
            <expression><![CDATA[List<Map> filteredLines = (List<Map>)((Closure)Context.SEER_IR07A_Filter).call(lines)

if (filteredLines.size() < 2)
    return true

// sort tumors by sequence number (null seq go to the end of the list)
filteredLines.sort(true, (Comparator)Context.seqComparator)

int outerIndex = 0
while (outerIndex < filteredLines.size()) {
    int innerIndex = outerIndex + 1

    if (filteredLines.get(outerIndex).sequenceNumberCentral == '00' || filteredLines.get(outerIndex).sequenceNumberCentral == '99') {
        Functions.forceFailureOnEntity(binding, filteredLines.get(outerIndex), 'line.sequenceNumberCentral')
        Functions.forceFailureOnEntity(binding, filteredLines.get(outerIndex == 0 ? 1 : 0), 'line.sequenceNumberCentral')
        return false
    }

    while (innerIndex < filteredLines.size()) {
        if (filteredLines.get(innerIndex).sequenceNumberCentral == filteredLines.get(outerIndex).sequenceNumberCentral) {
            Functions.forceFailureOnEntity(binding, filteredLines.get(innerIndex), 'line.sequenceNumberCentral')
            Functions.forceFailureOnEntity(binding, filteredLines.get(outerIndex), 'line.sequenceNumberCentral')
            return false
        }

        innerIndex += 1
    }

    outerIndex += 1
}

return true]]></expression>
            <message>Sequence Number 00 to 59 Inter-Record Error</message>
            <description><![CDATA[IR07A compares the records for a patient with sequence numbers 00-59 and 99.

All Cervix in situ cases diagnosed between 1995 and 2003 were sequenced as code 98.  These records are not reviewed by this edit.

When there is more than one record for a patient within the range 00-59 or 99, no record may contain a 00 or 99 as the Sequence number--central [380]; and the sequence numbers must also be unique for each record of a patient.]]></description>
            <history>
                <event version="SE11-001-01" user="greend" date="1985-11-29">This subroutine has been changed because the sequence number is now a two digit number and can reflect the actual sequence of the records for the patient.  It also checks that no sequence number is repeated for a person.  There is no longer a need to check multiple uses of the value &quot;8&quot; for sequence number.</event>
                <event version="SE11-001-02" user="greend" date="1986-12-10">The array which checks to see that a sequence number is not repeated has been increased from 20 to 100.</event>
                <event version="SE11-001-19" user="greend" date="2005-05-26">Edit modified to ignore cases with sequence numbers 60-88.</event>
                <event version="SE11-001-20" user="greend" date="2006-07-19">Changed name from IR007 to IR007A.</event>
                <event version="SE14-011-04" user="depryf" date="2014-04-21" ref="67077">Now reporting all the tumors when this edit fails.</event>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-26" ref="67112">Reports only the tumors with sequence number 00-59 when this edit fails.</event>
                <event version="SE15-014-01" user="depryf" date="2015-06-25" ref="67203">Fixed syntax of the Groovy &apos;sort&apos; method, they added a boolean parameter to it.</event>
                <event version="SE16-016-07" user="kirbyk" date="2017-11-09" ref="67672">Now reporting only the two tumors that fail the edit; Moved filtering logic to context SEER_IR07A_Filter</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE16-016-09" user="kirbyk" date="2017-12-19" ref="67675">Now reporting 2 tumors when edit fails for 00/99 sequence number.</event>
            </history>
        </rule>
        <rule id="SEER_IR07B" name="Sequence Number 60 to 88 not Consistent for Patient (SEER IR07)" tag="S030" java-path="lines" category="inter-record">
            <expression><![CDATA[List<Map> filteredLines = (List<Map>)((Closure)Context.SEER_IR07B_Filter).call(lines)

if (filteredLines.size() < 2)
    return true

// sort tumors by sequence number (null seq go to the end of the list)
filteredLines.sort(true, (Comparator)Context.seqComparator)

int outerIndex = 0
while (outerIndex < filteredLines.size()) {
    int innerIndex = outerIndex + 1

    if (filteredLines.get(outerIndex).sequenceNumberCentral == '60' || filteredLines.get(outerIndex).sequenceNumberCentral == '88') {
        Functions.forceFailureOnEntity(binding, filteredLines.get(outerIndex), 'line.sequenceNumberCentral')
        Functions.forceFailureOnEntity(binding, filteredLines.get(outerIndex == 0 ? 1 : 0), 'line.sequenceNumberCentral')
        return false
    }

    while (innerIndex < filteredLines.size()) {
        if (filteredLines.get(innerIndex).sequenceNumberCentral == filteredLines.get(outerIndex).sequenceNumberCentral) {
            Functions.forceFailureOnEntity(binding, filteredLines.get(innerIndex), 'line.sequenceNumberCentral')
            Functions.forceFailureOnEntity(binding, filteredLines.get(outerIndex), 'line.sequenceNumberCentral')
            return false
        }

        innerIndex += 1
    }

    outerIndex += 1
}

return true]]></expression>
            <message>Sequence Number 60 to 88 Inter-Record Error</message>
            <description><![CDATA[IR07B compares the records for a patient with sequence numbers 60-88.

When there is more than one record for a patient within the range 60-88, no record may contain a 60 or 88 as the Sequence number--central [380]; and the sequence numbers must also be unique for each record of a patient.]]></description>
            <history>
                <event version="SE14-011-04" user="depryf" date="2014-04-21" ref="67077">Now reporting all the tumors when this edit fails.</event>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-26" ref="67112">Reports only the tumors with sequence number 60-88 when this edit fails.</event>
                <event version="SE15-014-01" user="depryf" date="2015-06-25" ref="67203">Fixed syntax of the Groovy &apos;sort&apos; method, they added a boolean parameter to it.</event>
                <event version="SE16-016-07" user="kirbyk" date="2017-11-09" ref="67672">Now reporting only the two tumors that fail the edit; Moved filtering logic to context SEER_IR07B_Filter</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE16-016-09" user="kirbyk" date="2017-12-19" ref="67675">Now reporting 2 tumors when edit fails for 60/88 sequence number.</event>
            </history>
        </rule>
        <rule id="SEER_IR08" name="Date of Last Contact not Consistent for Patient (SEER IR08)" tag="S031" java-path="lines" category="inter-record">
            <expression><![CDATA[if (lines.isEmpty())
    return true

for (line in lines) {
    if ( line.dateOfLastContactYear != null && !(Functions.matches(line.dateOfLastContactYear, /^[12]\d\d\d$/)) && !Functions.between(line.dateOfLastContactYear, 1930, Functions.getCurrentYear()) )
         return true
    if ( line.dateOfLastContactMonth != null && !(Functions.matches(line.dateOfLastContactMonth, /^(0?[1-9]|1[0-2])$/) ) )
         return true
    if ( line.dateOfLastContactDay != null && !(line.dateOfLastContactDay  ==~ /^(0?[1-9]|[12][0-9]|3[01]|\s\s)$/) )
         return true
}

String day = lines[0].dateOfLastContactDay
String month = lines[0].dateOfLastContactMonth
String year = lines[0].dateOfLastContactYear

for (line in lines) {
    if (day != line.dateOfLastContactDay || month != line.dateOfLastContactMonth || year != line.dateOfLastContactYear) {
        Functions.forceFailureOnEntity(binding, lines[0])
        Functions.forceFailureOnEntity(binding, line)
        return false
    }
}

return true]]></expression>
            <message>Date of Last Contact Inter-Record Error</message>
            <description><![CDATA[This edit is skipped if any record for the person has the "Date of Last Contact is not valid." inter-field edit flag triggered.

Date of Last Contact[1750] must be equal on all records.]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2008-01-21">Edit now uses Day of Last Contact.</event>
                <event version="SE14-011-04" user="depryf" date="2014-04-21" ref="67077">Now reporting all the tumors when this edit fails.</event>
                <event version="SE16-016-07" user="kirbyk" date="2017-11-09" ref="67672">Now reporting only the two tumors that fail the edit.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="SEER_IR09_3" name="Site and Laterality ICD-O-3 not Consistent for Patient (SEER IR09_3)" tag="S033" java-path="lines" category="inter-record">
            <expression><![CDATA[if (lines.size() < 2)
    return true

for (line in lines)
    if (line.histologicTypeIcdO3 == null)
         return true

//Define the properties we want to report
//We don't always want to report laterality and ignoring properties doesn't work when forcing entity failures
Closure<String[]> getPropertiesToFail = { String site1, String site2 ->
    if (!((List)Context.IR09_PAIRED_ORGAN_Table).contains(Functions.asInt(site1.substring(1,4))) && !((List)Context.IR09_PAIRED_ORGAN_Table).contains(Functions.asInt(site2.substring(1,4))))
        return ['line.histologicTypeIcdO3', 'line.primarySite', 'line.behaviorCodeIcdO3', 'line.overRideSiteLatSeqno'] as String[]
    else
        return ['line.histologicTypeIcdO3', 'line.primarySite', 'line.behaviorCodeIcdO3', 'line.overRideSiteLatSeqno', 'line.laterality'] as String[]
}

int index1 = 0
while ( index1 < lines.size() ) {
    Map line1 = lines.get(index1)
    int index2 = index1 + 1
    String site1 = line1.primarySite
    String hist1 = line1.histologicTypeIcdO3
    String behav1 = line1.behaviorCodeIcdO3
    String lat1 = line1.laterality

    if (line1.overRideSiteLatSeqno != '1' && site1 != null && behav1 != null &&
        site1.length() == 4 && hist1.length() == 4 && hist1 < '9590') {
        while ( index2 < lines.size() ) {
            Map line2 = lines.get(index2)
            String site2 = line2.primarySite
            String hist2 = line2.histologicTypeIcdO3
            String behav2 = line2.behaviorCodeIcdO3
            String lat2 = line2.laterality

            if (line2.overRideSiteLatSeqno != '1' && site2 != null && hist2 != null && behav2 != null &&
               site2.length() == 4 && hist2.length() == 4 && hist2 < '9590') {
                if (     hist2.startsWith(hist1.substring(0,3))
                    && (behav1 == '3' && behav1 == behav2)
                    &&!(((List)Context.IR09_PAIRED_ORGAN_Table).contains(Functions.asInt(site1.substring(1,4)))
                    &&  ((List)Context.IR09_PAIRED_ORGAN_Table).contains(Functions.asInt(site2.substring(1,4)))
                    &&  lat1 != lat2 &&  lat1 != '9' &&  lat2 != '9' && lat1 != '5' && lat2 != '5')) {
                    Integer year1 = Functions.asInt(line1.dateOfDiagnosisYear) ?: 9999
                    Integer month1 = Functions.asInt(line1.dateOfDiagnosisMonth) ?: 99
                    Integer day1 = Functions.asInt(line1.dateOfDiagnosisDay) ?: 99
                    Integer year2 = Functions.asInt(line2.dateOfDiagnosisYear) ?: 9999
                    Integer month2 = Functions.asInt(line2.dateOfDiagnosisMonth) ?: 99
                    Integer day2 = Functions.asInt(line2.dateOfDiagnosisDay) ?: 99
                    boolean fiveYearsApart = !((((Integer)((Closure)Context.compareDate).call(year1 +5, month1, day1, year2, month2, day2)) >= 0) && (((Integer)((Closure)Context.compareDate).call(year1 -5, month1, day1, year2, month2, day2)) <= 0))
                    boolean oneYearApart = !((((Integer)((Closure)Context.compareDate).call(year1 + 1, month1, day1, year2, month2, day2)) >= 0) && (((Integer)((Closure)Context.compareDate).call(year1 - 1, month1, day1, year2, month2, day2)) <= 0))
                    boolean siteExceptionBreast = (site1 ==~ /^C50\d$/ && site2 ==~ /^C50\d$/ && fiveYearsApart)
                    boolean siteExceptionColon = (site1 ==~ /^C18[0-8]$/ && site2 ==~ /^C18[0-8]$/ && oneYearApart)
                    boolean siteExceptionHeadNeck = (site1 ==~ /^C(0\d\d|1[0-3]\d|14[0-8]|3[012]\d)$/ && site2 ==~ /^C(0\d\d|1[0-3]\d|14[0-8]|3[012]\d)$/ && fiveYearsApart)

                    if (!((siteExceptionBreast || siteExceptionColon || siteExceptionHeadNeck) && (year1 > 2006 || year2 > 2006))) {
                        if ((  site1 ==~ /^C\d\d(8)$/ || site2 ==~ /^C\d\d(8)$/)
                            && !(site1 ==~ /^C(168|538|718)$/) && !(site2 ==~ /^C(16|53|71)\d$/)
                            && !(site2 ==~ /^C(168|538|718)$/) && !(site1 ==~ /^C(16|53|71)\d$/)
                            && site2.startsWith(site1.substring(0,3))) {
                                Functions.forceFailureOnEntity(binding, line1, getPropertiesToFail(site1, site2))
                                Functions.forceFailureOnEntity(binding, line2, getPropertiesToFail(site1, site2))
                                return false
                        }
                        if ((  site1 ==~ /^C\d\d9$/ || site2 ==~ /^C\d\d9$/)
                            && site2.startsWith(site1.substring(0,3))) {
                                Functions.forceFailureOnEntity(binding, line1, getPropertiesToFail(site1, site2))
                                Functions.forceFailureOnEntity(binding, line2, getPropertiesToFail(site1, site2))
                                return false
                        }
                        if (((Map)Context.IR09_NOS_SPEC_Table).containsKey(site1)
                            && ((List)((Map)Context.IR09_NOS_SPEC_Table).getOrDefault(site1, [])).contains(Functions.asInt(site2.substring(1,4)))) {
                                Functions.forceFailureOnEntity(binding, line1, getPropertiesToFail(site1, site2))
                                Functions.forceFailureOnEntity(binding, line2, getPropertiesToFail(site1, site2))
                                return false
                        }
                        if (((Map)Context.IR09_NOS_SPEC_Table).containsKey(site2)
                            && ((List)((Map)Context.IR09_NOS_SPEC_Table).getOrDefault(site2, [])).contains(Functions.asInt(site1.substring(1,4)))) {
                                Functions.forceFailureOnEntity(binding, line1, getPropertiesToFail(site1, site2))
                                Functions.forceFailureOnEntity(binding, line2, getPropertiesToFail(site1, site2))
                                return false
                        }
                    }
                }
            }
            index2++
        }
    }
    index1++
}
return true]]></expression>
            <message>Site and Laterality ICD-O-3 Inter-Record Error</message>
            <description><![CDATA[IR09 is performed only for invasive diagnoses (Behavior Code ICD-O-3 = 3) and histologies (Histologic Type ICD-O-3) less than 9590.

This edit compares records for a patient that have the same three-digit histology code. The records are not compared if both are paired organs (see Table 2), their lateralities are not the same, and neither has a Laterality of 5 (paired site, midline) or 9 (paired site, but no information concerning laterality).

For the records that are compared, there must be no ambiguity of primary site between specified and NOS. That is, if the site code in one of the records appears in the left column of Table 1 below then the site in the other record must not occur in the same line on the right side of the table.

The 2007 Multiple Primary Rules that incorporate extended timing rules apply only to tumors diagnosed in 2007 and later. Therefore a date test for exemption should only be applied to tumors diagnosed on or after 2007, and only for breast, colon, and head and neck cancers. (See Table 3 for site-specific groups and timing rules.) If there were multiple tumors with diagnosis dates prior to 2007, they should be reviewed.

If there were multiple tumors with diagnosis in 2007 or later, review should be based on the site-specific timing rules. For example: 2 breast cancers diagnosed 2 years apart (2007 and 2009) should be reviewed because breast cancers diagnosed less than 5 years apart are to be abstracted only once, whereas 2 colon cancers diagnosed 2 years apart should not be reviewed because colon cancers diagnosed more than one year apart are abstracted separately.

If there were multiple tumors that span January 1, 2007: If the absolute value of any of the time differences is within the site-specific timing rule, the tumors should be reviewed. For example: two breast cancers diagnosed in 2001 and 2007 should not be reviewed. Two colon cancers diagnosed in December 2006 and March 2007 should be reviewed. If there were breast cancers diagnosed in 2001, 2003, and 2007, they should all be reviewed because 2001 and 2003 will have to be reviewed and if 2003 is determined to be a primary, then 2003 and 2007 will have to be reviewed.

To calculate time differences when one or both records have a partial diagnosis date:

If the diagnosis date in one record has more information than the diagnosis date in the other record, set the missing portion of the partial date to the known portion of the other date. For example, if the first diagnosis date is 200605__ and the second date is 20071020, set the first diagnosis date to 20060520 before calculating whether the second tumor was diagnosed more than 1 year (or 5 years) after the first. If the first date is 200512__ and the second is 2008____, set the value of the second date to 200812__.
For patients whose records have been previously reviewed (Over-ride Site/Lat/SeqNo = 1), no further checking is done.


If one record contains an NOS site code, the records require review as follows: if the site code in one of the records appears in the left column of Table 1 then the site in the other record must not occur in the same line on the right side of the table.

Table 1

NOS       Specified
CAA8*       CAAx
CBB9**       CBBx
C260       C150-C259, C480-C488
C268       C150-C259, C480-C488
C269       C150-C259, C480-C488
C390       C300-C349, C384
C398       C300-C349, C380-C388
C399       C300-C349, C384
C579       C510-C578, C589
C639       C600-C638
C689       C649-C688
C758       C379, C739-C749
C759       C379, C739-C749

* AA represents any two-digit number except 16, 53, 71 (that is, site exceptions = C168, C538, C718)

** BB represents any two-digit number and x represents any one-digit number

Table 2

C079     C080     C081     C090     C091     C099     C301     C310     C312     C341     C342     C343
C344     C345     C346     C347     C348     C349     C384     C400     C401     C402     C403     C441
C442     C443     C445     C446     C447     C471     C472     C491     C492     C500     C501     C502
C503     C504     C505     C506     C507     C508     C509     C569     C570     C620     C621     C622
C623     C624     C625     C626     C627     C628     C629     C630     C631     C649     C659     C669
C690     C691     C692     C693     C694     C695     C696     C697     C698     C699     C740     C741
C742     C743     C744     C745     C746     C747     C748     C749     C754

Table 3

Group Primary Site Review Not Required
Breast C500-C509 Diagnosed more than 5 years apart
Colon C180-C188 Diagnosed more than 1 years apart
Head and Neck C000-C148, C300-C329 Diagnosed more than 5 years apart]]></description>
            <history>
                <event version="SE12-002-04" user="murphyr" date="2010-07-29">Fixed an issue where edit compared laterality to an int when it&apos;s a character.</event>
                <event version="SE14-011-04" user="depryf" date="2014-04-21" ref="67077">Now reporting all the tumors when this edit fails.</event>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-26" ref="67112">Reports only the two tumors that fail the edit.</event>
                <event version="SE15-014-01" user="kirbyk" date="2015-06-25" ref="67202">Changed the error reporting to not always report laterality.</event>
                <event version="SE15-014-03" user="kirbyk" date="2015-09-17" ref="67211">Fixed the reported properties to include the entity prefix.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE21-021-04" user="kirbyk" date="2021-05-20" ref="68647">Updating edit to match the NPCR logic.</event>
                <event version="SE21-021-08" user="beverung" date="2021-08-06" ref="68700">Fix date exemption logic.</event>
                <event version="SE22-022-01" user="beverung" date="2022-01-24" ref="68782">Update edit to use compareDate context entry.</event>
            </history>
        </rule>
        <rule id="SEER_IR10" name="Vital Status not Consistent for Patient (SEER IR10)" tag="S034" java-path="lines" category="inter-record">
            <expression><![CDATA[if (lines.isEmpty())
    return true

String vitalStatus = lines[0].vitalStatus
for (line in lines) {
    if (vitalStatus != line.vitalStatus) {
        Functions.forceFailureOnEntity(binding, lines[0])
        Functions.forceFailureOnEntity(binding, line)
        return false
    }
}

return true]]></expression>
            <message>Vital Status Inter-Record Error</message>
            <description><![CDATA[Vital Status[1760] must be equal on all records.]]></description>
            <history>
                <event version="SE14-011-04" user="depryf" date="2014-04-21" ref="67077">Now reporting all the tumors when this edit fails.</event>
                <event version="SE16-016-07" user="kirbyk" date="2017-11-09" ref="67672">Now reporting only the two tumors that fail the edit.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="SEER_IR11" name="Cause of Death not Consistent for Patient (SEER IR11)" tag="S035" java-path="lines" category="inter-record">
            <expression><![CDATA[if (lines.isEmpty())
    return true

String causeOfDeath = lines[0].causeOfDeath
for (line in lines) {
    if (causeOfDeath != line.causeOfDeath) {
        Functions.forceFailureOnEntity(binding, lines[0])
        Functions.forceFailureOnEntity(binding, line)
        return false
    }
}

return true]]></expression>
            <message>Cause of Death Inter-Record Error</message>
            <description><![CDATA[Cause of Death[1910] must be equal on all records.]]></description>
            <history>
                <event version="SE14-011-04" user="depryf" date="2014-04-21" ref="67077">Now reporting all the tumors when this edit fails.</event>
                <event version="SE16-016-07" user="kirbyk" date="2017-11-09" ref="67672">Now reporting only the two tumors that fail the edit.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="SEER_IR12" name="Record Number not Consistent for Patient (SEER IR12)" tag="S036" java-path="lines" category="inter-record">
            <expression><![CDATA[
if (lines.isEmpty() || lines.size() < 2)
    return true

// Check to see if any records have the same Record Number Recode. Fail all records that have duplicates.
Map<String, List> linesByRecordNumberRecode = [:].withDefault{[]}
lines.each { line ->
    linesByRecordNumberRecode.get(line.recordNumberRecode) << line
}

Boolean containsDuplicates = false
linesByRecordNumberRecode.each { recordNumberRecode, duplicates ->
    if (duplicates.size() > 1) {
        duplicates.each { line ->
            Functions.forceFailureOnEntity(binding, line)
        }
        containsDuplicates = true
    }
}
return !containsDuplicates
]]></expression>
            <message>Record Number Inter-Record Error.</message>
            <description><![CDATA[Record Number Recode [1775] must be unique.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2010-01-07">Edit created.</event>
                <event version="SE12-003-01" user="murphyr" date="2010-11-10">Changes the edit so it always returns true. There are issues with the records sort order and the blank months of Dx; the edits will be ignored until those issues are resolved.</event>
                <event version="SE14-011-04" user="depryf" date="2014-04-21" ref="67077">Now reporting all the tumors when this edit fails.</event>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-26" ref="67112">Reports only the tumors with sequence number 00-59 when this edit fails.</event>
                <event version="SE15-014-01" user="depryf" date="2015-06-25" ref="67203">Fixed syntax of the Groovy &apos;sort&apos; method, they added a boolean parameter to it.</event>
                <event version="SE16-016-07" user="kirbyk" date="2017-11-09" ref="67672">Now reporting only the two tumors that fail the edit.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE22-022-09" user="beverung" date="2022-06-24" ref="69012">Updated edit to use Record Number Recode instead of SEER Record Number.</event>
                <event version="SE22-022-10" user="beverung" date="2022-08-25" ref="69025">Updated edit to only check that Record Number Recode is unique. Removed logic to check for ascending order.</event>
                <event version="SE22-022-11" user="beverung" date="2022-09-09" ref="69028">Updated description to remove reference to increasing order.</event>
            </history>
        </rule>
        <rule id="SEER_IR13A" name="Duplicate Bladder Primaries for Patient (SEER IR13A)" tag="S037" java-path="lines" category="inter-record">
            <expression><![CDATA[if (lines.size() < 2)
    return true

List<Integer> allHist = (List<Integer>)Context.IR13A_Histologies
List<Integer> group1Hist = (List)[8020,8022,8031,8120,8122,8130]

int outerIndex = 0
while ( outerIndex < lines.size() ) {
    int innerIndex = outerIndex + 1
    Map outerLine = lines.get(outerIndex)
    Integer outerHistInt = Functions.asInt(outerLine.histologicTypeIcdO3)

    if ( allHist.contains(outerHistInt) && Functions.between(outerLine.primarySite, 'C670', 'C679') ) {
        while (innerIndex < lines.size() ) {
            Map innerLine = lines.get(innerIndex)
            Integer innerHistInt = Functions.asInt(innerLine.histologicTypeIcdO3)

            if ( allHist.contains(innerHistInt) && Functions.between(innerLine.primarySite, 'C670', 'C679')
                    &&  (    (outerLine.behaviorCodeIcdO3 == innerLine.behaviorCodeIcdO3)
                          || (outerLine.behaviorCodeIcdO3 == '2' && innerLine.behaviorCodeIcdO3 == '3' && innerLine.dateOfDiagnosisYear < '1995'))
               ) {
                boolean innerGroup1 = group1Hist.contains(innerHistInt) || (innerHistInt == 8082 && innerLine.dateOfDiagnosisYear > '2017')
                boolean innerGroup2 = innerLine.histologicTypeIcdO3 == '8131'
                boolean outerGroup1 = group1Hist.contains(outerHistInt) || (outerHistInt == 8082 && outerLine.dateOfDiagnosisYear > '2017')
                boolean outerGroup2 = outerLine.histologicTypeIcdO3 == '8131'
                if ((innerLine.dateOfDiagnosisYear < '2018' && outerLine.dateOfDiagnosisYear < '2018') || !((innerGroup1 && outerGroup2) || (innerGroup2 && outerGroup1))) {
                    Functions.forceFailureOnEntity(binding, innerLine)
                    Functions.forceFailureOnEntity(binding, outerLine)
                    return false
                }
            }

            innerIndex += 1
        }
    }

    outerIndex += 1
}

return true]]></expression>
            <message>Duplicate Bladder Primaries Inter-Record Error</message>
            <description><![CDATA[A person may not have two bladder cancers (Primary site[400] = C670-C679) with the same behavior code, with histologies of transitional cell carcinoma or papillary transitional cell carcinoma (8120-8139) or histology 8022, 8031, or 8082.

In addition, a person may not have an in situ and invasive bladder cancer record (in that order) with histologies of transitional cell carcinoma or papillary transitional cell carcnioma (8120-8139) or histology 8022, 8031, or 8082 unless the invasive cancer was diagnosed after 1994.

Patients are allowed to have 2 bladder cancers that fall into both groups if one is diagnosed in 2018+ (with either behavior /2 or /3)
Group 1: 8020,8022,8031,8120,8122,8130 (or 8082 for diagnosis year 2018+)
Group 2: 8131]]></description>
            <history>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Conversion of morphology and topography codes from ICD-O-1 to ICD-O-2.</event>
                <event version="SE11-001-18" user="greend" date="2004-10-05">Histology range expanded from 8120-8131 for ICD-O-3 histology.  Program modified to look at ICD-O-2 histology/behavior fields when all records are diagnosed before 2001.  If any records are diagnosed 2001+ then the ICD-O-3 histology/behavior fields are used for all records.</event>
                <event version="SE11-001-20" user="greend" date="2006-07-19">Changed name from IR013 to IR013A.</event>
                <event version="SE14-011-04" user="depryf" date="2014-04-21" ref="67077">Now reporting all the tumors when this edit fails.</event>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-26" ref="67112">Reports only the two tumors that fail the edit.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-019-07" user="kirbyk" date="2020-01-08" ref="68272">Updated edit with exceptions for cases diagnosed in 2018+.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE18-020-01" user="beverung" date="2020-02-25" ref="68286">Updated to only allow histology 8082 for dx year 2018+.</event>
                <event version="SE22-022-09" user="beverung" date="2022-07-13" ref="69016">Added code 8020 to Group 1 histology list.</event>
            </history>
        </rule>
        <rule id="SEER_IR13B" name="Duplicate Prostate Primaries for Patient (SEER IR13B)" tag="S038" java-path="lines" category="inter-record">
            <expression><![CDATA[if (lines.size() < 2)
    return true

for (line in lines) {
    if ( line.dateOfDiagnosisYear != null && !(Functions.matches(line.dateOfDiagnosisYear, /^[12]\d\d\d$/)) && !Functions.between(line.dateOfDiagnosisYear, 1930, Functions.getCurrentYear()) )
         return true
}

int outerIndex = 0
while ( outerIndex < lines.size() ) {
    int innerIndex = outerIndex + 1
    Map outerLine = lines.get(outerIndex)

    if (outerLine.histologicTypeIcdO3 == '8140' && outerLine.primarySite == 'C619' && outerLine.behaviorCodeIcdO3 == '3') {
        while (innerIndex < lines.size() ) {
            Map innerLine = lines.get(innerIndex)

            if (innerLine.histologicTypeIcdO3 == '8140' && innerLine.primarySite == 'C619' && innerLine.behaviorCodeIcdO3 == '3' && innerLine.dateOfDiagnosisYear > '1987') {
                Functions.forceFailureOnEntity(binding, innerLine)
                Functions.forceFailureOnEntity(binding, outerLine)
                return false
            }

            innerIndex += 1
        }
    }

    outerIndex += 1
}

return true]]></expression>
            <message>Duplicate Prostate Primaries Inter-Record Error</message>
            <description><![CDATA[This edit is skipped if any record for the person has the "Date of Diagnosis is invalid" inter-field edit flag triggered.

IR13B compares each of the primary site, behavior code, and histology entries for a given patient to determine whether or not there are multiple prostate (primary site=C619) primaries with histologies of adenocarcinoma (histology = 8140).  If this condition is true and more than one has a behavior code of 3 and the second malignancy has a Year of Diagnosis [390] greater than 1987, the patient fails the edit.]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2007-12-31">Edit now skips second malignancy comparison if year of diagnosis = 9999.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-22">Edit no longer checks for 9-filled year of diagnosis.</event>
                <event version="SE14-011-04" user="depryf" date="2014-04-21" ref="67077">Now reporting all the tumors when this edit fails.</event>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-26" ref="67112">Reports only the two tumors that fail the edit.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="SEER_IR13C" name="Duplicate Kaposi Sarcoma Primaries for Patient (SEER IR13C)" tag="S039" java-path="lines" category="inter-record">
            <expression><![CDATA[if (lines.size() < 2)
    return true

for (line in lines) {
    if ( line.dateOfDiagnosisYear != null && !(Functions.matches(line.dateOfDiagnosisYear, /^[12]\d\d\d$/)) && !Functions.between(line.dateOfDiagnosisYear, 1930, Functions.getCurrentYear()) )
         return true
}

int outerIndex = 0
while ( outerIndex < lines.size() ) {
    int innerIndex = outerIndex + 1
    Map outerLine = lines.get(outerIndex)

    if (outerLine.histologicTypeIcdO3 == '9140' && outerLine.behaviorCodeIcdO3 == '3') {
        while (innerIndex < lines.size() ) {
            Map innerLine = lines.get(innerIndex)

            if (innerLine.histologicTypeIcdO3 == '9140' && innerLine.behaviorCodeIcdO3 == '3' && innerLine.dateOfDiagnosisYear > '1987') {
                Functions.forceFailureOnEntity(binding, innerLine)
                Functions.forceFailureOnEntity(binding, outerLine)
                return false
            }

            innerIndex += 1
        }
    }

    outerIndex += 1
}

return true]]></expression>
            <message>Duplicate Kaposi Sarcoma Primaries Inter-Record Error</message>
            <description><![CDATA[This edit is skipped if any record for the person has the "Date of Diagnosis is invalid" inter-field edit flag triggered.

IR13C compares each of the histology entries for a given patient to determine whether or not there are multiple Kaposi Sarcoma(histology=9140) primaries.  If this condition is true and more than one has a behavior code of 3 and the second malignancy has a Year of Diagnosis [390] greater than 1987, the patient fails the edit.]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2007-12-31">Edit now skips second malignancy comparison if year of diagnosis = 9999.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-22">Edit no longer checks for 9-filled year of diagnosis.</event>
                <event version="SE14-011-04" user="depryf" date="2014-04-21" ref="67077">Now reporting all the tumors when this edit fails.</event>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-26" ref="67112">Reports only the two tumors that fail the edit.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="SEER_IR15" name="NHIA Derived Hisp Origin not Consistent for Patient (SEER IR15)" tag="S040" java-path="lines" category="inter-record">
            <expression><![CDATA[if (lines.isEmpty())
    return true

String nhia = lines[0].nhiaDerivedHispOrigin
for (line in lines) {
    if (nhia != line.nhiaDerivedHispOrigin) {
        Functions.forceFailureOnEntity(binding, lines[0])
        Functions.forceFailureOnEntity(binding, line)
        return false
    }
}

return true]]></expression>
            <message>NHIA Derived Hisp origin Inter-Record Error</message>
            <description><![CDATA[NHIA Derived Hisp Origin[191] must be equal on all records.]]></description>
            <history>
                <event version="SE11-001-07" user="greend" date="1991-09-15">Edit verifies each record for both valid pre 88 race and spanish surname codes and post 87 race and spanish surname codes.</event>
                <event version="SE11-001-08" user="greend" date="1992-12-15">Edit now checks only pre 88 records for valid race and Spanish surname codes.</event>
                <event version="SE11-001-10" user="greend" date="1994-07-01">Edit does not check patients with diagnoses in 1987 for SF, SJ, and LA.  Known Spanish surname code is allowed with unknown race code.</event>
                <event version="SE11-001-21" user="greend" date="2007-02-01">The original logic of this edit was deleted due to changes over time.  The updated logic requires that the NHIA Derived Hisp Origin be the same on all records for a patient.</event>
                <event version="SE14-011-04" user="depryf" date="2014-04-21" ref="67077">Now reporting all the tumors when this edit fails.</event>
                <event version="SE16-016-07" user="kirbyk" date="2017-11-09" ref="67672">Now reporting only the two tumors that fail the edit.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="SEER_IR16" name="Duplicate Heme Cases for Patient (SEER IR16)" tag="S041" java-path="lines" category="inter-record">
            <expression><![CDATA[if (lines.size() < 2)
    return true

for (line in lines) {
    if (line.dateOfDiagnosisYear != null && !(Functions.matches(line.dateOfDiagnosisYear, /^[12]\d\d\d$/) && Functions.between(line.dateOfDiagnosisYear, 1930, Functions.getCurrentYear())))
         return true
}

int outerIndex = 0
while (outerIndex < lines.size()) {
    int innerIndex = outerIndex + 1
    Map outerLine = lines.get(outerIndex)

    Integer outerHistInt = Functions.asInt(outerLine.histologicTypeIcdO3)
    boolean outerHeme95909993 = Functions.between(outerHistInt, 9590, 9993) && outerHistInt != 9699;
    boolean outerHeme9699group1 = outerHistInt == 9699 && Functions.matches(outerLine.primarySite, /^C(024|09\d|111|142|379|422|77\d)$/)
    boolean outerHeme9699group2 = outerHistInt == 9699 && !outerHeme9699group1

    if (outerHeme95909993 || outerHeme9699group1 || outerHeme9699group2) {
        while (innerIndex < lines.size()) {
            Map innerLine = lines.get(innerIndex)
            if (outerLine.dateOfDiagnosisYear > '2009' || innerLine.dateOfDiagnosisYear > '2009') {

                Integer innerHistInt = Functions.asInt(innerLine.histologicTypeIcdO3)
                boolean innerHeme95909993 = Functions.between(innerHistInt, 9590, 9993) && innerHistInt != 9699;
                boolean innerHeme9699group1 = innerHistInt == 9699 && Functions.matches(innerLine.primarySite, /^C(024|09\d|111|142|379|422|77\d)$/)
                boolean innerHeme9699group2 = innerHistInt == 9699 && !innerHeme9699group1

                if ((outerHeme9699group1 && innerHeme9699group1) || (innerHeme9699group2 && outerHeme9699group2) || (outerHistInt == innerHistInt && outerHistInt != 9699)) {
                    Functions.forceFailureOnEntity(binding, innerLine)
                    Functions.forceFailureOnEntity(binding, outerLine)
                    return false
                }
            }

            innerIndex += 1
        }
    }

    outerIndex += 1
}

return true]]></expression>
            <message>Duplicate Heme Inter-Record Error</message>
            <description><![CDATA[This edit is skipped if any record for the person has the "Date of Diagnosis is invalid" inter-field edit flag triggered.

IR16 compares each of the histology entries for a given patient to determine whether or not there are multiple Heme cases.

This edit fails if two cases have 9590-9993 (except 9699) there cannot be two cases with the same histology with at least one case diagnosed in 2010+.

For example - there cannot be two cases with 9590 but there could be one case with 9590 and one case with 9993.

For histology 9699 there cannot be two cases with 9699 within the same site group defined below with at least one case diagnosed in 2010+
group1: C024, C111, C142, C379, C422, C090-C099, C770-C779
group2: all other sites]]></description>
            <history>
                <event version="SE18-020-05" user="beverung" date="2020-09-02" ref="68360">Edit created.</event>
            </history>
        </rule>
        <rule id="SEER_Other_COD" name="SEER Other COD (NAACCR)" tag="N2847" java-path="lines.line" category="field">
            <expression><![CDATA[return line.seerOtherCod == null || Functions.matches(line.seerOtherCod, /^[0189]$/)]]></expression>
            <message>SEER Other COD is not valid.</message>
            <description><![CDATA[Must be a valid SEER Other COD value, 0, 1, 8, or 9. This is a calculated value.
This field is allowed to be blank because it was not collected as a standard
NAACCR data item before 2018.

    0: Alive or dead due to cancer
    1: Dead, attributable to causes other than this cancer diagnosis
    8: Missing/Unknown Cause of Death
    9: Not applicable/not first tumor]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-07" ref="67779">Edit created.</event>
            </history>
        </rule>
        <rule id="Sentinel_Lymph_Nodes_Examined" name="Sentinel Lymph Nodes Examined (COC)" tag="N2531" java-path="lines.line" category="field">
            <expression><![CDATA[return  line.sentinelLymphNodesExamined == null || line.sentinelLymphNodesExamined ==~ /^[0-8]\d|9[0589]$/]]></expression>
            <message>Sentinel Lymph Nodes Examined must be numeric (00-90, 95, 98, 99)</message>
            <description><![CDATA[This data item records the total number of lymph nodes sampled during the
sentinel node biopsy and examined by the pathologist.  This data item is
collected for Melanoma of Skin and Breast cases only (Schema IDs 00470 and 00480).

This edit checks only for valid code values.  Another edit checks that the item
is recorded according to standard setter requirements by date of diagnosis and
primary site.

1. The item may be blank.

2. Sentinel Lymph Nodes Examined must be a two-digit number with values of 00-90,
   95, 98, and 99.

    00: No sentinel nodes examined
    01-90: Sentinel nodes examined (exact number of sentinel lymph nodes
          examined)
    95: No sentinel nodes removed, but aspiration of sentinel node(s)
         performed
    98: Sentinel lymph nodes biopsied, but number unknown
    99: Unknown whether sentinel nodes examined
         Not stated in patient record]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit created.</event>
            </history>
        </rule>
        <rule id="Sentinel_Lymph_Nodes_Positive" name="Sentinel Lymph Nodes Positive (COC)" tag="N2533" java-path="lines.line" category="field">
            <expression><![CDATA[return  line.sentinelLymphNodesPositive == null || line.sentinelLymphNodesPositive ==~ /^[0-8]\d|9[05789]$/]]></expression>
            <message>Sentinel Lymph Nodes Positive must be numeric (00-90, 95, 97-99)</message>
            <description><![CDATA[This data item records the exact number of sentinel lymph nodes biopsied by the
pathologist and found to contain metastases. This data item is collected for
Melanoma of Skin and Breast cases only (Schema IDs 00470 and 00480).

This edit checks only for valid code values.  Another edit checks that the item
is recorded according to standard setter requirements by date of diagnosis and
primary site.

1. The item may be blank.

2. Sentinel Lymph Nodes Positive must be a two-digit number with values of 00-90,
   95, 97, 98, and 99.

    00: All sentinel nodes examined are negative
    01-90: Sentinel nodes are positive (exact number of nodes positive)
    95: Positive aspiration of sentinel lymph node(s) performed
    97: Positive sentinel nodes documented, but number unspecified
         For breast ONLY: SLN and RLND occurred during the same procedure
    98: No sentinel nodes were biopsied
    99: Unknown whether sentinel nodes are positive
         Not applicable
         Not stated in patient record]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit created.</event>
            </history>
        </rule>
        <rule id="Sequence_Number--central" name="Sequence Number--Central (SEER SEQUENC)" tag="N0228" java-path="lines.line" category="field">
            <expression><![CDATA[return  line.sequenceNumberCentral != null && Functions.matches(line.sequenceNumberCentral, /(^[0-7][0-9]$)|(^8[0-8]$)|(^9[89]$)/)]]></expression>
            <message>Sequence number--central is not valid.</message>
            <description><![CDATA[Valid codes for Sequence number--central[380] are 00-59,60-88,98,99.

00 = One primary only in the patient's lifetime
01 = First of two or more primaries
02 = Second of two or more primaries
 etc. (Actual number of this primary)
59 = Fifty-nineth of fifty-nine or more primaries
99 = Unspecified or unknown sequence number


60 = Only one non-malignant tumor or central registry-defined neoplasm
61 = First of two or more non-malignant tumor or central registry-defined neoplasms
62 = Second of tow or more non-malignant tumor or central registry-defined neoplasms
etc.
87 = Twenty-seventh of twenty-seven
88 = Unspecified or unknown sequence number of non-malignant tumor or
     central registry-defined neoplasms
98 = Cervix carcinoma in situ (CIS/CIN III, Diagnosis Years 1996-2002)]]></description>
            <history>
                <event version="SE11-001-02" user="greend" date="1986-12-10">The sequence number must be between 0 and 15 or 99.</event>
                <event version="SE11-001-10" user="greend" date="1994-02-04">The sequence number range was expanded from 15 to 20.</event>
                <event version="SE11-001-13" user="greend" date="1997-08-12">The sequence number range was expanded from 20 to 25.</event>
                <event version="SE11-001-14" user="greend" date="1998-08-26">Program modified to allow 98 for cervix in situ cases.</event>
                <event version="SE11-001-17" user="greend" date="2003-03-07">Codes 60-88 now valid.</event>
                <event version="SE11-001-20" user="greend" date="2006-03-23">Codes 00-35 were expanded to 00-59.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Sex" name="Sex (SEER Sex)" tag="N0012" java-path="lines.line" category="field">
            <expression><![CDATA[return line.sex != null && Functions.matches(line.sex, /^[1234569]$/)]]></expression>
            <message>Sex is not valid.</message>
            <description><![CDATA[Valid codes for Sex[220] are 1-6,9.

        1 = Male
        2 = Female
        3 = Other (intersex, disorders of sexual development/DSD)
        4 = Transsexual, NOS
        5 = Transsexual, natal male
        6 = Transsexual, natal female
        9 = Not stated (unknown)]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-07" ref="67134">Added code 5 and 6. Updated code 4.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-03-29" ref="67232">Updated description for code 3.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="State_at_DX_Geocode_1970-80-90" name="State at DX Geocode 1970/80/90 (NAACCR)" tag="N2570" java-path="lines.line" category="field">
            <expression><![CDATA[return line.stateAtDxGeocode19708090 == null || ((List)Context.FIPS_CODES).contains(line.stateAtDxGeocode19708090)]]></expression>
            <message>State at DX Geocode 1970/80/90 must = valid FIPS code or blank</message>
            <description><![CDATA[Must be a valid two-digit FIPS code, as shown in the first column of the following list or blank:

01  AL  Alabama
02  AK  Alaska
04  AZ  Arizona
05  AR  Arkansas
06  CA  California
08  CO  Colorado
09  CT  Connecticut
10  DE  Delaware
11  DC  District of Columbia
12  FL  Florida
13  GA  Georgia
15  HI  Hawaii
16  ID  Idaho
17  IL  Illinois
18  IN  Indiana
19  IA  Iowa
20  KS  Kansas
21  KY  Kentucky
22  LA  Louisiana
23  ME  Maine
24  MD  Maryland
25  MA  Massachusetts
26  MI  Michigan
27  MN  Minnesota
28  MS  Mississippi
29  MO  Missouri
30  MT  Montana
31  NE  Nebraska
32  NV  Nevada
33  NH  New Hampshire
34  NJ  New Jersey
35  NM  New Mexico
36  NY  New York
37  NC  North Carolina
38  ND  North Dakota
39  OH  Ohio
40  OK  Oklahoma
41  OR  Oregon
42  PA  Pennsylvania
44  RI  Rhode Island
45  SC  South Carolina
46  SD  South Dakota
47  TN  Tennessee
48  TX  Texas
49  UT  Utah
50  VT  Vermont
51  VA  Virginia
53  WA  Washington
54  WV  West Virginia
55  WI  Wisconsin
56  WY  Wyoming
60  AS  American Samoa
66  GU  Guam
69  MP  Commonwealth of the Northern Mariana Islands
72  PR  Puerto Rico
74  UM  U.S. Minor Outlying Islands
78  VI  United States Virgin Islands]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-04" ref="67779">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-09-10" ref="68030">Removed CD, US, XX, YY as valid values.</event>
                <event version="SE24-024-06" user="beverung" date="2024-07-18" ref="69500">Updated to use NAACCR_FIPS_CODES context table.</event>
                <event version="SE24-024-07" user="beverung" date="2024-08-01" ref="69520">Context table renamed to FIPS_CODES.</event>
            </history>
        </rule>
        <rule id="State_at_DX_Geocode_2000" name="State at DX Geocode 2000 (NAACCR)" tag="N2571" java-path="lines.line" category="field">
            <expression><![CDATA[return line.stateAtDxGeocode2000 == null || ((List)Context.FIPS_CODES).contains(line.stateAtDxGeocode2000)]]></expression>
            <message>State at DX Geocode 2000 must = valid FIPS code or blank</message>
            <description><![CDATA[Must be a valid two-digit FIPS code, as shown in the first column of the following list or blank:

01  AL  Alabama
02  AK  Alaska
04  AZ  Arizona
05  AR  Arkansas
06  CA  California
08  CO  Colorado
09  CT  Connecticut
10  DE  Delaware
11  DC  District of Columbia
12  FL  Florida
13  GA  Georgia
15  HI  Hawaii
16  ID  Idaho
17  IL  Illinois
18  IN  Indiana
19  IA  Iowa
20  KS  Kansas
21  KY  Kentucky
22  LA  Louisiana
23  ME  Maine
24  MD  Maryland
25  MA  Massachusetts
26  MI  Michigan
27  MN  Minnesota
28  MS  Mississippi
29  MO  Missouri
30  MT  Montana
31  NE  Nebraska
32  NV  Nevada
33  NH  New Hampshire
34  NJ  New Jersey
35  NM  New Mexico
36  NY  New York
37  NC  North Carolina
38  ND  North Dakota
39  OH  Ohio
40  OK  Oklahoma
41  OR  Oregon
42  PA  Pennsylvania
44  RI  Rhode Island
45  SC  South Carolina
46  SD  South Dakota
47  TN  Tennessee
48  TX  Texas
49  UT  Utah
50  VT  Vermont
51  VA  Virginia
53  WA  Washington
54  WV  West Virginia
55  WI  Wisconsin
56  WY  Wyoming
60  AS  American Samoa
66  GU  Guam
69  MP  Commonwealth of the Northern Mariana Islands
72  PR  Puerto Rico
74  UM  U.S. Minor Outlying Islands
78  VI  United States Virgin Islands]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-04" ref="67779">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-09-10" ref="68030">Removed CD, US, XX, YY as valid values.</event>
                <event version="SE24-024-06" user="beverung" date="2024-07-18" ref="69500">Updated to use NAACCR_FIPS_CODES context table.</event>
                <event version="SE24-024-07" user="beverung" date="2024-08-01" ref="69520">Context table renamed to FIPS_CODES.</event>
            </history>
        </rule>
        <rule id="State_at_DX_Geocode_2010" name="State at DX Geocode 2010 (NAACCR)" tag="N2572" java-path="lines.line" category="field">
            <expression><![CDATA[return line.stateAtDxGeocode2010 == null || ((List)Context.FIPS_CODES).contains(line.stateAtDxGeocode2010)]]></expression>
            <message>State at DX Geocode 2010 must = valid FIPS code or blank</message>
            <description><![CDATA[Must be a valid two-digit FIPS code, as shown in the first column of the following list or blank:

01  AL  Alabama
02  AK  Alaska
04  AZ  Arizona
05  AR  Arkansas
06  CA  California
08  CO  Colorado
09  CT  Connecticut
10  DE  Delaware
11  DC  District of Columbia
12  FL  Florida
13  GA  Georgia
15  HI  Hawaii
16  ID  Idaho
17  IL  Illinois
18  IN  Indiana
19  IA  Iowa
20  KS  Kansas
21  KY  Kentucky
22  LA  Louisiana
23  ME  Maine
24  MD  Maryland
25  MA  Massachusetts
26  MI  Michigan
27  MN  Minnesota
28  MS  Mississippi
29  MO  Missouri
30  MT  Montana
31  NE  Nebraska
32  NV  Nevada
33  NH  New Hampshire
34  NJ  New Jersey
35  NM  New Mexico
36  NY  New York
37  NC  North Carolina
38  ND  North Dakota
39  OH  Ohio
40  OK  Oklahoma
41  OR  Oregon
42  PA  Pennsylvania
44  RI  Rhode Island
45  SC  South Carolina
46  SD  South Dakota
47  TN  Tennessee
48  TX  Texas
49  UT  Utah
50  VT  Vermont
51  VA  Virginia
53  WA  Washington
54  WV  West Virginia
55  WI  Wisconsin
56  WY  Wyoming
60  AS  American Samoa
66  GU  Guam
69  MP  Commonwealth of the Northern Mariana Islands
72  PR  Puerto Rico
74  UM  U.S. Minor Outlying Islands
78  VI  United States Virgin Islands]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-04" ref="67779">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-09-10" ref="68030">Removed CD, US, XX, YY as valid values.</event>
                <event version="SE24-024-06" user="beverung" date="2024-07-18" ref="69500">Updated to use NAACCR_FIPS_CODES context table.</event>
                <event version="SE24-024-07" user="beverung" date="2024-08-01" ref="69520">Context table renamed to FIPS_CODES.</event>
            </history>
        </rule>
        <rule id="State_at_DX_Geocode_2020" name="State at DX Geocode 2020 (NAACCR)" tag="N2573" java-path="lines.line" category="field">
            <expression><![CDATA[return line.stateAtDxGeocode2020 == null || ((List)Context.FIPS_CODES).contains(line.stateAtDxGeocode2020)]]></expression>
            <message>State at DX Geocode 2020 must = valid FIPS code or blank</message>
            <description><![CDATA[Must be a valid two-digit FIPS code, as shown in the first column of the following list or blank:

01  AL  Alabama
02  AK  Alaska
04  AZ  Arizona
05  AR  Arkansas
06  CA  California
08  CO  Colorado
09  CT  Connecticut
10  DE  Delaware
11  DC  District of Columbia
12  FL  Florida
13  GA  Georgia
15  HI  Hawaii
16  ID  Idaho
17  IL  Illinois
18  IN  Indiana
19  IA  Iowa
20  KS  Kansas
21  KY  Kentucky
22  LA  Louisiana
23  ME  Maine
24  MD  Maryland
25  MA  Massachusetts
26  MI  Michigan
27  MN  Minnesota
28  MS  Mississippi
29  MO  Missouri
30  MT  Montana
31  NE  Nebraska
32  NV  Nevada
33  NH  New Hampshire
34  NJ  New Jersey
35  NM  New Mexico
36  NY  New York
37  NC  North Carolina
38  ND  North Dakota
39  OH  Ohio
40  OK  Oklahoma
41  OR  Oregon
42  PA  Pennsylvania
44  RI  Rhode Island
45  SC  South Carolina
46  SD  South Dakota
47  TN  Tennessee
48  TX  Texas
49  UT  Utah
50  VT  Vermont
51  VA  Virginia
53  WA  Washington
54  WV  West Virginia
55  WI  Wisconsin
56  WY  Wyoming
60  AS  American Samoa
66  GU  Guam
69  MP  Commonwealth of the Northern Mariana Islands
72  PR  Puerto Rico
74  UM  U.S. Minor Outlying Islands
78  VI  United States Virgin Islands]]></description>
            <history>
                <event version="SE23-023-04" user="cooki" date="2023-05-31" ref="69277">Edit created.</event>
                <event version="SE24-024-06" user="beverung" date="2024-07-18" ref="69500">Updated to use NAACCR_FIPS_CODES context table.</event>
                <event version="SE24-024-07" user="beverung" date="2024-08-01" ref="69520">Context table renamed to FIPS_CODES.</event>
            </history>
        </rule>
        <rule id="Summary_Stage_1977" name="Summary Stage 1977 (NAACCR)" tag="N0202" java-path="lines.line" category="field">
            <expression><![CDATA[return line.seerSummaryStage1977 == null || Functions.matches(line.seerSummaryStage1977, /^[012345789\s]$/)]]></expression>
            <message>Summary Stage 1977 is not valid.</message>
            <description><![CDATA[Valid values for Summary Stage 1977[760] are 0-5,7-9 and blank.  This field is not required.

0 = In situ
1 = Localized
2 = Regional, direct extension only
3 = Regional, regional lymph nodes only
4 = Regional, direct extension and regional lymph nodes
5 = Regional, NOS
7 = Distant
8 = Not Applicable
9 = Unstaged]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Summary_Stage_2000" name="Summary Stage 2000 (NAACCR)" tag="N0438" java-path="lines.line" category="inter-field">
            <expression><![CDATA[return line.seerSummaryStage2000 == null || Functions.matches(line.seerSummaryStage2000, /^[01234579\s]$/) ||
            (line.seerSummaryStage2000 == '8' && line.dateOfDiagnosisYear >= '2004')]]></expression>
            <message>Summary Stage 2000 is not valid.</message>
            <description><![CDATA[Valid values for Summary Stage 2000[759] are 0-5,7-9 and blank.  This field is not required.

0 = In situ
1 = Localized
2 = Regional, direct extension only
3 = Regional, regional lymph nodes only
4 = Regional, direct extension and regional lymph nodes
5 = Regional, NOS
7 = Distant
8 = Not Applicable (only valid for DX year 2004+)
9 = Unstaged]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE23-023-01" user="secristc" date="2023-02-14" ref="69156">Added condition to only allow 8 for DX year 2004+.</event>
            </history>
        </rule>
        <rule id="Summary_Stage_2018" name="Summary Stage 2018 (NAACCR)" tag="N2812" java-path="lines.line" category="field">
            <expression><![CDATA[return line.summaryStage2018 == null || Functions.matches(line.summaryStage2018, /^[0-47-9]$/)]]></expression>
            <message>Summary Stage 2018 is not valid.</message>
            <description><![CDATA[Must be a valid Summary Stage 2018 code (0-4, 7-9) or blank.

This field is allowed to be blank because the item was not required before 2018.
Other edits verify that the data item is reported according to standard setter
requirements by date of diagnosis.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-04" ref="67779">Edit created.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="Surv-Flag_Active_Followup" name="Surv-Flag Active Followup (SEER)" tag="N1982" java-path="lines.line" category="field">
            <expression><![CDATA[return line.survFlagActiveFollowup == null || Functions.matches(line.survFlagActiveFollowup, /^[0-389]$/)]]></expression>
            <message>Surv-Flag Active Followup is not valid.</message>
            <description><![CDATA[Must be a valid Surv-Flag Active Followup[1783] code (0-3,8,9) or blank.

Codes:

0 = Complete dates are available and there are 0 days of survival (i.e., date last contact = date of diagnosis)

1 = Complete dates are available and there are more than 0 days of survival (i.e. date last contact > date diagnosis)

2 = Incomplete dates are available and there could be zero days of follow-up (i.e., known components are equal, e.g. 99/99/2006 and 10/02/2006)

3 = Incomplete dates are available and there cannot be zero days of follow-up (i.e., any difference in known date components, e.g. 02/99/2006 and 03/99/2006)

8 = Not calculated because a Death Certificate Only or Autopsy Only case

9 = Unknown

Blank = Not coded]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-09" ref="67150">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-09" ref="67796">Fixed edit to use correct property name.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Surv-Flag_Presumed_Alive" name="Surv-Flag Presumed Alive (SEER)" tag="N1983" java-path="lines.line" category="field">
            <expression><![CDATA[return line.survFlagPresumedAlive == null || Functions.matches(line.survFlagPresumedAlive, /^[0-389]$/)]]></expression>
            <message>Surv-Flag Presumed Alive is not valid.</message>
            <description><![CDATA[Must be a valid Surv-Flag Presumed Alive[1786] code (0-3,8,9) or blank.

Codes:

0 = Complete dates are available and there are 0 days of survival (i.e., presumed alive date last contact = date of diagnosis)

1 = Complete dates are available and there are more than 0 days of survival (i.e. presumed alive date last contact > date diagnosis)

2 = Incomplete dates are available and there could be zero days of follow-up (i.e., known components are equal, e.g. 99/99/2006 and 10/02/2006)

3 = Incomplete dates are available and there cannot be zero days of follow-up (i.e., any difference in known date components, e.g. 02/99/2006 and 03/99/2006)

8 = Not calculated because a Death Certificate Only or Autopsy Only case

9 = Unknown

Blank = Not coded]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-08" ref="67151">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Surv-Mos_Active_Followup" name="Surv-Mos Active Followup (SEER)" tag="N1985" java-path="lines.line" category="field">
            <expression><![CDATA[return line.survMosActiveFollowup == null || Functions.matches(line.survMosActiveFollowup, /^\d\d\d\d$/)]]></expression>
            <message>Surv-Mos Active Followup is not valid.</message>
            <description><![CDATA[Surv-Mos Active Followup[1784] must be numeric or blank. Valid numeric range is 0000-9999, with leading zeroes.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-09" ref="67152">Edit added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-09" ref="67796">Fixed edit to use correct property name.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Surv-Mos_Presumed_Alive" name="Surv-Mos Presumed Alive (SEER)" tag="N1984" java-path="lines.line" category="field">
            <expression><![CDATA[return line.survMosPresumedAlive == null || Functions.matches(line.survMosPresumedAlive, /^\d\d\d\d$/)]]></expression>
            <message>Surv-Mos Presumed Alive is not valid.</message>
            <description><![CDATA[Surv-Mos Presumed Alive[1787] must be numeric or blank. Valid numeric range is 0000-9999, with leading zeroes.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-07" ref="67153">Edit added.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="SurvDateActiveFollowupEdit" name="Surv-Date Active Followup (SEER)" tag="N1979" java-path="lines.line" category="inter-field" depends="Day_SurvDateActiveFollowup,Month_SurvDateActiveFollowup,Year_SurvDateActiveFollowup">
            <expression><![CDATA[Integer year = Functions.asInt(line.survDateActiveFollowupYear)
Integer month = Functions.asInt(line.survDateActiveFollowupMonth)
Integer day = Functions.asInt(line.survDateActiveFollowupDay)
Integer yearCur = Functions.getCurrentYear()
Integer monthCur = Functions.getCurrentMonth()
Integer dayCur = Functions.getCurrentDay()

if (line.survDateActiveFollowupYear == null && line.survDateActiveFollowupMonth == null && line.survDateActiveFollowupDay == null)
    return true

if (line.survDateActiveFollowupYear == null || line.survDateActiveFollowupMonth == null)
    return false

if (!Functions.between(year, 1930, yearCur) || month < 1 || month > 12 || (year == yearCur && month > monthCur))
    return false

if (year == yearCur && month == monthCur && day > dayCur)
    return false

Calendar cal = new GregorianCalendar(year, month - 1, 1)
return cal != null && day <= cal.getActualMaximum(Calendar.DAY_OF_MONTH)]]></expression>
            <message>Surv-Date Active Followup is not valid.</message>
            <description><![CDATA[This edit is skipped if SurvDateActiveFollowupEdit is blank.

The date checks are performed in this order:

A) If the year is blank, month and day must also be blank.

B) If the month is blank, the year and day must be blank.

C) If day is blank, the year and month cannot be greater than the current system year/month.

D) Year must be between 1930 and the current system year.

E) If day is known, then entire date is verified. The date must be a valid date (leap years checked) and must be less than or equal to the current system date.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-20" ref="67147">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-20" ref="67425">Fixed documentation.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="schadega" date="2018-03-15" ref="67708">Allow blank day field.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
                <event version="SE22-022-13" user="kirbyk" date="2022-10-18" ref="69045">Fixing edit behavior for future dates.</event>
            </history>
        </rule>
        <rule id="SurvDateDXRecodeEdit" name="Surv-Date DX Recode (SEER)" tag="N1981" java-path="lines.line" category="inter-field" depends="Day_SurvDateDXRecode,Month_SurvDateDXRecode,Year_SurvDateDXRecode">
            <expression><![CDATA[Integer year = Functions.asInt(line.survDateDxRecodeYear)
Integer month = Functions.asInt(line.survDateDxRecodeMonth)
Integer day = Functions.asInt(line.survDateDxRecodeDay)
Integer yearCur = Functions.getCurrentYear()
Integer monthCur = Functions.getCurrentMonth()
Integer dayCur = Functions.getCurrentDay()

if (line.survDateDxRecodeYear == null && line.survDateDxRecodeMonth == null && line.survDateDxRecodeDay == null)
    return true

if (line.survDateDxRecodeYear == null || line.survDateDxRecodeMonth == null)
    return false

if (!Functions.between(year, 1930, yearCur) || month < 1 || month > 12 || (year == yearCur && month > monthCur))
    return false

if (year == yearCur && month == monthCur && day > dayCur)
    return false

Calendar cal = new GregorianCalendar(year, month - 1, 1)
return cal != null && day <= cal.getActualMaximum(Calendar.DAY_OF_MONTH)]]></expression>
            <message>Surv-Date DX Recode is not valid.</message>
            <description><![CDATA[This edit is skipped if Surv-Date DX Recode is blank.

The date checks are performed in this order:

A) If the year is blank, month and day must also be blank.

B) If the month is blank, the year and day must be blank.

C) If day is blank, the year and month cannot be greater than the current system year/month.

D) Year must be between 1930 and the current system year.

E) If day is known, then entire date is verified. The date must be a valid date (leap years checked) and must be less than or equal to the current system date.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-20" ref="67148">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-20" ref="67425">Fixed documentation.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="schadega" date="2018-03-16" ref="67707">Allow blank day field.</event>
                <event version="SE22-022-13" user="kirbyk" date="2022-10-18" ref="69045">Fixing edit behavior for future dates.</event>
            </history>
        </rule>
        <rule id="SurvDatePresumedAliveEdit" name="Surv-Date Presumed Alive (SEER)" tag="N1980" java-path="lines.line" category="inter-field" depends="Day_SurvDatePresumedAlive,Month_SurvDatePresumedAlive,Year_SurvDatePresumedAlive">
            <expression><![CDATA[Integer year = Functions.asInt(line.survDatePresumedAliveYear)
Integer month = Functions.asInt(line.survDatePresumedAliveMonth)
Integer day = Functions.asInt(line.survDatePresumedAliveDay)
Integer yearCur = Functions.getCurrentYear()
Integer monthCur = Functions.getCurrentMonth()
Integer dayCur = Functions.getCurrentDay()

if (line.survDatePresumedAliveYear == null && line.survDatePresumedAliveMonth == null && line.survDatePresumedAliveDay == null)
    return true

if (line.survDatePresumedAliveYear == null || line.survDatePresumedAliveMonth == null)
    return false

if (!Functions.between(year, 1930, yearCur) || month < 1 || month > 12 || (year == yearCur && month > monthCur))
    return false

if (year == yearCur && month == monthCur && day > dayCur)
    return false

Calendar cal = new GregorianCalendar(year, month - 1, 1)
return cal != null && day <= cal.getActualMaximum(Calendar.DAY_OF_MONTH)]]></expression>
            <message>Surv-Date Presumed Alive is not valid.</message>
            <description><![CDATA[This edit is skipped if SurvDatePresumedAliveEdit is blank.

The date checks are performed in this order:

A) If the year is blank, month and day must also be blank.

B) If the month is blank, the year and day must be blank.

C) If day is blank, the year and month cannot be greater than the current system year/month.

D) Year must be between 1930 and the current system year.

E) If day is known, then entire date is verified. The date must be a valid date (leap years checked) and must be less than or equal to the current system date.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-20" ref="67149">Edit created.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-20" ref="67425">Fixed documentation.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="schadega" date="2018-03-15" ref="67709">Allow day field to be blank.</event>
                <event version="SE22-022-13" user="kirbyk" date="2022-10-18" ref="69045">Fixing edit behavior for future dates.</event>
            </history>
        </rule>
        <rule id="TNM_Clin_Descriptor" name="TNM Clin Descriptor (COC)" tag="N0144" java-path="lines.line" category="field">
            <expression><![CDATA[return line.tnmClinDescriptor == null || Functions.matches(line.tnmClinDescriptor, /^[0-359]$/)]]></expression>
            <message>Must be a valid TNM Clin Descriptor[980] code (0-3, 5, or 9) or blank.</message>
            <description><![CDATA[Must be a valid TNM Clin Descriptor[980] code (0-3, 5, or 9) or blank.

Codes
0 None
1 E (Extranodal, lymphomas only)
2 S (Spleen, lymphomas only)
3 M (Multiple primary tumors in a single site)
5 E & S (Extranodal and spleen, lymphomas only)
9 Unknown, not stated in patient record
Blank]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-08" ref="67305">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="schadega" date="2018-05-25" ref="67746">Edit name change.</event>
            </history>
        </rule>
        <rule id="TNM_Clin_M" name="TNM Clin M (SEER)" tag="S042" java-path="lines.line" category="field">
            <expression><![CDATA[return line.tnmClinM == null || ((List)Context.TNM_Clin_M_All_Table).contains(line.tnmClinM)]]></expression>
            <message>Must be a valid TNM Clin M code or blank.</message>
            <description><![CDATA[Must be a valid TNM Clin M code or blank.

cX, c0, c0I+,
c1, c1A, c1B, c1C, c1D, c1E,
p1, p1A, p1B, p1C, p1D, p1E,
X, 0, 0I+,
1, 1A, 1B, 1C, 1D, 1E,
88]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-11" ref="67289">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE16-016-11" user="kirbyk" date="2018-02-27" ref="67705">Added valid code &apos;cX&apos;.</event>
            </history>
        </rule>
        <rule id="TNM_Clin_N" name="TNM Clin N (SEER)" tag="S043" java-path="lines.line" category="field">
            <expression><![CDATA[return line.tnmClinN == null || ((List)Context.TNM_Clin_N_Table).contains(line.tnmClinN)]]></expression>
            <message>Must be a valid TNM Clin N code or blank.</message>
            <description><![CDATA[Must be a valid TNM Clin N code or blank.

cX, c0, c0I-, c0I+, c0M-, c0M+,
c1MI, c0A, c0B, c1, c1A, c1B, c1C,
c2, c2A, c2B, c2C,
c3, c3A, c3B, c3C,
c4,
X, 0, 0I-, 0I+, 0M-, 0M+
1MI, 0A, 0B, 1, 1A, 1B, 1C,
2, 2A, 2B, 2C,
3, 3A, 3B, 3C,
4,
88]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-11" ref="67288">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="TNM_Clin_T" name="TNM Clin T (SEER)" tag="S044" java-path="lines.line" category="field">
            <expression><![CDATA[return line.tnmClinT == null || ((List)Context.TNM_Clin_T_Table).contains(line.tnmClinT)]]></expression>
            <message>Must be a valid TNM Clin T code or blank.</message>
            <description><![CDATA[Must be a valid TNM Clin T code or blank.

cX, c0, pA, pIS, pISU, pISD,
c1MI, c1, c1A, c1A1, c1A2, c1B, c1B1, c1B2, c1C, c1D,
c2, c2A, c2A1, c2A2, c2B, c2C, c2D,
c3, c3A, c3B, c3C, c3D,
c4, c4A, c4B, c4C, c4D, c4E,
X, 0, A, IS, ISPU, ISPD,
1MI, 1, 1A, 1A1, 1A2, 1B, 1B1, 1B2, 1C, 1D,
2, 2A, 2A1, 2A2, 2B, 2C, 2D,
3, 3A, 3B, 3C, 3D,
4, 4A, 4B, 4C, 4D, 4E,
88]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-11" ref="67287">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="TNM_Edition_Number" name="TNM Edition Number (SEER)" tag="N4921" java-path="lines.line" category="field">
            <expression><![CDATA[return line.tnmEditionNumber == null || Functions.matches(line.tnmEditionNumber, /^0[0-9]|88|99|U7$/)]]></expression>
            <message>TNM Edition Number is not valid.</message>
            <description><![CDATA[Must be a valid TNM Edition Number code (00-09,88,99,U7).  May be blank.

Codes
    00  Not staged (cases that have AJCC staging scheme and staging was not done)
    01  First Edition
    02  Second Edition (published 1983)
    03  Third Edition (published 1988)
    04  Fourth Edition (published 1992),
       - recommended for use for cases diagnosed 1993-1997
    05  Fifth Edition (published 1997)
       - recommended for use for cases diagnosed 1998-2002
    06  Sixth Edition (published 2002)
       - recommended for use for cases diagnosed 2003-2009
    07  Seventh Edition (published 2009)
       - recommended for use with cases diagnosed 2010-2017
    U7  Seventh Edition with UICC modifications
    08  Eighth Edition (published 2017)
       - recommended for use with cases diagnosed 2018 and later
    09  Version 9 (published 2020)
       - recommended for use with cervix uteri cases diagnosed 2021 and later
       - Version 9 protocols will continue to be released for other sites in subsequent years
    88  Not applicable (cases that do not have an AJCC staging scheme)
    99  Edition Unknown]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-04" ref="67779">Edit created.</event>
                <event version="SE18-018-03" user="kirbyk" date="2018-07-09" ref="67962">Added &apos;U7&apos; as a valid value.</event>
                <event version="SE18-020-05" user="beverung" date="2020-08-06" ref="68472">Added &apos;09&apos; as a valid value.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit tag changed.</event>
                <event version="SE24-024-01" user="cooki" date="2024-02-12" ref="69351">Changed description for code 09.</event>
            </history>
        </rule>
        <rule id="TNM_Path_Descriptor" name="TNM Path Descriptor (COC)" tag="N0143" java-path="lines.line" category="field">
            <expression><![CDATA[return line.tnmPathDescriptor == null || Functions.matches(line.tnmPathDescriptor, /^[0-69]$/)]]></expression>
            <message>Must be a valid TNM Path Descriptor[920] code (0-6, 9) or blank.</message>
            <description><![CDATA[Must be a valid TNM Path Descriptor[920] code (0-6, 9) or blank.

Codes
0 None
1 E (Extranodal, lymphomas only)
2 S (Spleen, lymphomas only)
3 M (Multiple primary tumors in a single site)
4 Y (Classification during or after initial multimodality therapy)-pathologic staging only
5 E & S (Extranodal and spleen, lymphomas only)
6 M & Y (Multiple primary tumors and initial multimodality therapy)
9 Unknown, not stated in patient record
Blank]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-08" ref="67303">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="TNM_Path_M" name="TNM Path M (SEER)" tag="S045" java-path="lines.line" category="field">
            <expression><![CDATA[return line.tnmPathM == null || ((List)Context.TNM_Path_M_All_Table).contains(line.tnmPathM)]]></expression>
            <message>Must be a valid TNM Path M code or blank.</message>
            <description><![CDATA[Must be a valid TNM Path M code or blank.

cX, c0, c0I+,
c1, c1A, c1B, c1C, c1D, c1E,
pX, p0, p1, p1M, p1M1, p1A, p1B, p1C, p1D, p1E,
X, 0, 0I+,
1, 1M, 1M1, 1A, 1B, 1C, 1D, 1E,
88]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-12" ref="67292">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE16-016-11" user="kirbyk" date="2018-02-27" ref="67706">Added valid codes cX, 0I+, 1M, p1M, 1M1, p1M1.</event>
                <event version="SE16-016-11" user="kirbyk" date="2018-03-01" ref="67710">Added valid codes pX and p0.</event>
            </history>
        </rule>
        <rule id="TNM_Path_N" name="TNM Path N (SEER)" tag="S046" java-path="lines.line" category="field">
            <expression><![CDATA[return line.tnmPathN == null || ((List)Context.TNM_Path_N_Table).contains(line.tnmPathN)]]></expression>
            <message>Must be a valid TNM Path N code or blank.</message>
            <description><![CDATA[Must be a valid TNM Path N code or blank.

pX, p0, p0I-, p0I+, p0M-, p0M+,
p1MI, p0A, p0B, p1, p1A, p1B, p1C,
p2, p2A, p2B, p2C,
p3, p3A, p3B, p3C,
p4,
cX, c0, c0A, c0B,
c1, c1A, c1B, c1C,
c2, c2A, c2B, c2C,
c3, c3A, c3B, c3C,
c4,
X, 0, 0I-, 0I+, 0M-, 0M+
1MI, 0A, 0B, 1, 1A, 1B, 1C,
2, 2A, 2B, 2C,
3, 3A, 3B, 3C,
4,
88]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-12" ref="67291">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-04-27" ref="67732">Added valid values.</event>
            </history>
        </rule>
        <rule id="TNM_Path_T" name="TNM Path T (SEER)" tag="S047" java-path="lines.line" category="field">
            <expression><![CDATA[return line.tnmPathT == null || ((List)Context.TNM_Path_T_Table).contains(line.tnmPathT)]]></expression>
            <message>Must be a valid TNM Path T code or blank.</message>
            <description><![CDATA[Must be a valid TNM Path T code or blank.

pX, p0, pA, pIS, pISU, pISD,
p1MI, p1, p1A, p1A1, p1A2, p1B, p1B1, p1B2, p1C, p1D,
p2, p2A, p2A1, p2A2, p2B, p2C, p2D,
p3, p3A, p3B, p3C, p3D,
p4, p4A, p4B, p4C, p4D, p4E,
cX, c0,
c1MI, c1, c1A, c1A1, c1A2, c1B, c1B1, c1B2, c1C, c1D,
c2, c2A, c2A1, c2A2, c2B, c2C, c2D,
c3, c3A, c3B, c3C, c3D,
c4, c4A, c4B, c4C, c4D, c4E,
X, 0, A, IS, ISPU, ISPD,
1MI, 1, 1A, 1A1, 1A2, 1B, 1B1, 1B2, 1C, 1D,
2, 2A, 2A1, 2A2, 2B, 2C, 2D,
3, 3A, 3B, 3C, 3D,
4, 4A, 4B, 4C, 4D, 4E,
88]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-11" ref="67290">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-01" user="kirbyk" date="2018-04-27" ref="67735">Added valid values.</event>
            </history>
        </rule>
        <rule id="Tobacco_Use_Smoking_Status" name="Tobacco Use Smoking Status (NAACCR)" tag="N6881" java-path="lines.line" category="field">
            <expression><![CDATA[return line.tobaccoUseSmokingStatus == null || Functions.matches(line.tobaccoUseSmokingStatus, /^[0-39]$/)]]></expression>
            <message>Tobacco Use Smoking Status is not valid.</message>
            <description><![CDATA[Must be a valid Tobacco Use Smoking Status code or blank.
    0: Never smoker
    1: Current smoker
    2: Former smoker
    3: Smoker, current status unknown
    9: Unknown if ever smoked]]></description>
            <history>
                <event version="SE23-023-04" user="cooki" date="2023-06-09" ref="69238">Edit created.</event>
            </history>
        </rule>
        <rule id="Total_Dose" name="Total Dose (COC)" tag="N2561" java-path="lines.line" category="field">
            <expression><![CDATA[return line.totalDose == null || Functions.matches(line.totalDose, /^\d{6}$/)]]></expression>
            <message>Total Dose is not valid.</message>
            <description><![CDATA[This data item identifies the total radiation dose administered to the patient
across all phases during the first course of treatment. The unit of measure is
centiGray (cGy).

1. The data item may be blank. Other edits checks that the item is recorded
   according to standard setter requirements by date.

2. Must be right-justified, zero-filled.

3. Must be a valid code for Total Dose: 000000-999999.

    000000: No therapy administered
    000001-999997:  Actual dose delivered in cGy
    999998: Not applicable, radioisotopes administered to the patient
    999999: Radiation therapy was administered, but the dose is unknown
            Unknown whether radiation therapy was administered]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-04" ref="67779">Edit created.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-08-03" ref="68440">Updated description for code &apos;99998&apos;.</event>
            </history>
        </rule>
        <rule id="Tumor_Marker_1" name="Tumor Marker 1 (SEER TUMMARK1)" tag="N0015" java-path="lines.line" category="field">
            <expression><![CDATA[return line.tumorMarker1 == null || Functions.matches(line.tumorMarker1, /^[0-689]$/)]]></expression>
            <message>Tumor marker 1 is not valid.</message>
            <description><![CDATA[Valid codes for Tumor marker 1[1150] are 0-6,8,9 and blank.

0 = Not done (SX)
1 = Positive/elevated
2 = Negative/normal; within normal limits (S0)
3 = Borderline/undetermined
4 = Range 1 (S1)
5 = Range 2 (S2)
6 = Range 3 (S3)
8 = Ordered, but results not in chart
9 = Unknown]]></description>
            <history>
                <event version="SE11-001-14" user="greend" date="1998-07-01">Program modified to allow codes 4-6.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">Program modified to allow blanks.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Tumor_Marker_2" name="Tumor Marker 2 (SEER TUMMARK2)" tag="N0016" java-path="lines.line" category="field">
            <expression><![CDATA[return line.tumorMarker2 == null || Functions.matches(line.tumorMarker2, /^[0-689]$/)]]></expression>
            <message>Tumor marker 2 is not valid.</message>
            <description><![CDATA[Valid codes for Tumor marker 2[1160] are 0-6,8,9 and blank.

0 = Not done (SX)
1 = Positive/elevated
2 = Negative/normal; within normal limits (S0)
3 = Borderline/undetermined
4 = Range 1 (S1)
5 = Range 2 (S2)
6 = Range 3 (S3)
8 = Ordered, but results not in chart
9 = Unknown]]></description>
            <history>
                <event version="SE11-001-14" user="greend" date="1998-07-01">Program modified to allow code 4-6.</event>
                <event version="SE11-001-18" user="greend" date="2004-07-29">Program modified to allow blanks.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Tumor_Marker_3" name="Tumor Marker 3 (SEER TUMMARK3)" tag="N0288" java-path="lines.line" category="field">
            <expression><![CDATA[return line.tumorMarker3 == null || Functions.matches(line.tumorMarker3, /^[0-689]$/)]]></expression>
            <message>Tumor marker 3 is not valid.</message>
            <description><![CDATA[Valid codes for Tumor marker 3[1170] are 0-6,8,9 and blank.

0 = Not done (SX)
1 = Positive/elevated
2 = Negative/normal; within normal limits (S0)
3 = Borderline/undetermined
4 = Range 1 (S1)
5 = Range 2 (S2)
6 = Range 3 (S3)
8 = Ordered, but results not in chart
9 = Unknown]]></description>
            <history>
                <event version="SE11-001-18" user="greend" date="2004-07-29">Program modified to allow blanks.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Tumor_Size_Clinical" name="Tumor Size Clinical (SEER)" tag="N2143" java-path="lines.line" category="field">
            <expression><![CDATA[return line.tumorSizeClinical == null || Functions.matches(line.tumorSizeClinical, /^[0-8]\d\d|9[0-8]\d|99[089]$/)]]></expression>
            <message>Tumor Size Clinical is invalid</message>
            <description><![CDATA[Must be a valid three-digit number (000-990, 998, 999) or blank.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-08" ref="67282">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="Tumor_Size_Pathologic" name="Tumor Size Pathologic (SEER)" tag="N2145" java-path="lines.line" category="field">
            <expression><![CDATA[return line.tumorSizePathologic == null || Functions.matches(line.tumorSizePathologic, /^[0-8]\d\d|9[0-8]\d|99[089]$/)]]></expression>
            <message>Tumor Size Pathologic is invalid</message>
            <description><![CDATA[Must be a valid three-digit number (000-990, 998, 999) or blank.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-08" ref="67283">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="Tumor_Size_Summary" name="Tumor Size Summary (NPCR)" tag="N2147" java-path="lines.line" category="field">
            <expression><![CDATA[return line.tumorSizeSummary == null || Functions.matches(line.tumorSizeSummary, /^[0-8]\d\d|9[0-8]\d|99[089]$/)]]></expression>
            <message>Tumor Size Summary is invalid</message>
            <description><![CDATA[Must be a valid three-digit number (000-990, 998, 999) or blank.]]></description>
            <history>
                <event version="SE16-015-01" user="kirbyk" date="2016-04-08" ref="67284">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-03" ref="67779">Edit name changed.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>
        <rule id="Type_of_Reporting_Source" name="Type of Reporting Source (SEER RPRTSRC)" tag="N0019" java-path="lines.line" category="field">
            <expression><![CDATA[return  Functions.matches(line.typeOfReportingSource, /^[12345678]$/)]]></expression>
            <message>Type of reporting source is not valid.</message>
            <description><![CDATA[Valid codes for Type of reporting source[500] are 1-8.

1 = Hospital inpatient/outpatient or clinic
2 = Radiation Treatment Centers or Medical Oncology Centers (hospital-affiliated or independent)
3 = Laboratory only (hospital or private)
4 = Physicians office/private medical practitioner (LMD)
5 = Nursing/convalescent home/hospice
6 = Autopsy only
7 = Death certificate only
8 = Other hospital outpatient units/surgery centers]]></description>
            <history>
                <event version="SE11-001-04" user="greend" date="1988-05-25">Additional codes made valid due to 1988 SEER record changes.</event>
                <event version="SE11-001-19" user="greend" date="2005-03-23">Codes 2 and 8 are now valid.</event>
                <event version="SE11-001-19" user="greend" date="2005-07-12">Field no longer allows blank.</event>
                <event version="SE13-010-01" user="murphyr" date="2013-06-28" ref="66895">Edit shouldn&apos;t accept spaces.  Removed it from the regex.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="URIC_2000" name="URIC 2000 (NAACCR)" tag="N2849" java-path="lines.line" category="field">
            <expression><![CDATA[return line.uric2000 == null || Functions.matches(line.uric2000, /^[12349ABCD]$/)]]></expression>
            <message>URIC 2000 is not valid.</message>
            <description><![CDATA[Must be a valid URIC (Urban Rural Indicator Code-Tract level) 2000 value, 1,2,3,4,
9,A,B,C,D. This is a derived value. This field is allowed to be blank because it was not
collected before 2018.

    1: All urban
    2: Mostly urban
    3: Mostly rural
    4: All rural
    9: Unknown, not applicable
    A: State, county, or tract are invalid
    B: State and tract are valid, but county was not reported
    C: State + county + tract combination was not found
    D: State, county, or tract are blank or unknown]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-04" ref="67779">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-29" ref="68029">Added valid codes A-D, changed labels in description.</event>
            </history>
        </rule>
        <rule id="URIC_2010" name="URIC 2010 (NAACCR)" tag="N2850" java-path="lines.line" category="field">
            <expression><![CDATA[return line.uric2010 == null || Functions.matches(line.uric2010, /^[12349ABCD]$/)]]></expression>
            <message>URIC 2010 is not valid.</message>
            <description><![CDATA[Must be a valid URIC (Urban Rural Indicator Code-Tract level) 2010 value, 1,2,3,4,
9,A,B,C,D. This is a derived value. This field is allowed to be blank because it was not
collected before 2018.

    1: All urban
    2: Mostly urban
    3: Mostly rural
    4: All rural
    9: Unknown, not applicable
    A: State, county, or tract are invalid
    B: State and tract are valid, but county was not reported
    C: State + county + tract combination was not found
    D: State, county, or tract are blank or unknown]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-04" ref="67779">Edit created.</event>
                <event version="SE18-018-06" user="kirbyk" date="2018-08-29" ref="68029">Added valid codes A-D, changed labels in description.</event>
            </history>
        </rule>
        <rule id="Vital_Status" name="Vital Status (COC)" tag="N0090" java-path="lines.line" category="field">
            <expression><![CDATA[return  Functions.matches(line.vitalStatus, /^[01]$/)]]></expression>
            <message>Vital status is not valid.</message>
            <description><![CDATA[Valid codes for Vital status[1760] are code 0,1.

0 = Dead
1 = Alive]]></description>
            <history>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-017-01" user="schadega" date="2018-03-15" ref="67715">Replaced death code 4 with 0.</event>
                <event version="SE18-018-01" user="schadega" date="2018-04-11" ref="67737">Edit name change.</event>
                <event version="SE18-018-02" user="kirbyk" date="2018-06-21" ref="67924">Re-added 4 as a valid code for &apos;dead&apos;.</event>
                <event version="SE18-020-05" user="kirbyk" date="2020-09-09" ref="68522">Removed code 4 as a valid code.</event>
            </history>
        </rule>
        <rule id="Vital_Status_Recode" name="Vital Status Recode (NAACCR)" tag="N2848" java-path="lines.line" category="field">
            <expression><![CDATA[return line.vitalStatusRecode == null || Functions.matches(line.vitalStatusRecode, /^[01]$/)]]></expression>
            <message>Vital Status Recode is not valid.</message>
            <description><![CDATA[Must be a valid Vital Status Recode value, 0 or 1. This is a calculated value.
This field is allowed to be blank because it was not collected as a standard
NAACCR data item before 2018.

    0: Dead as of study cutoff date
    1: Alive as of study cutoff date]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-07" ref="67779">Edit created.</event>
            </history>
        </rule>
        <rule id="Year_BRM" name="RX Date BRM (COC)" tag="N0071" java-path="lines.line" category="field">
            <expression><![CDATA[return (line.rxDateBrmYear == null || (Functions.matches(line.rxDateBrmYear, /^[12]\d\d\d$/) && Functions.between(line.rxDateBrmYear, 1930, Functions.getCurrentYear()) ) )]]></expression>
            <message>Year of BRM is not valid.</message>
            <description><![CDATA[Valid values for Year of BRM[1240] are 1930 - current year, and blank.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-14" ref="67141">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Year_Chemo" name="RX Date Chemo (COC)" tag="N1046" java-path="lines.line" category="field">
            <expression><![CDATA[return (line.rxDateChemoYear == null || (Functions.matches(line.rxDateChemoYear, /^[12]\d\d\d$/) && Functions.between(line.rxDateChemoYear, 1930, Functions.getCurrentYear()) ) )]]></expression>
            <message>Year of Chemo is not valid.</message>
            <description><![CDATA[Valid codes for Year of Chemo[1220] are 1930 - current year and blank.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-12" ref="67142">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Year_Hormone" name="RX Date Hormone (COC)" tag="N0073" java-path="lines.line" category="field">
            <expression><![CDATA[return (line.rxDateHormoneYear == null || (Functions.matches(line.rxDateHormoneYear, /^[12]\d\d\d$/) && Functions.between(line.rxDateHormoneYear, 1930, Functions.getCurrentYear()) ) )]]></expression>
            <message>Year of Hormone is not valid.</message>
            <description><![CDATA[Valid codes for Year of Hormone[1230] are 1930 - current year or blanks.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-14" ref="67143">Edited created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="Year_Most_Defin_Surg" name="RX Date Mst Defn Srg (COC)" tag="N0510" java-path="lines.line" category="field">
            <expression><![CDATA[return (line.rxDateMostDefinSurgYear == null || (Functions.matches(line.rxDateMostDefinSurgYear, /^[12]\d\d\d$/) && Functions.between(line.rxDateMostDefinSurgYear, 1930, Functions.getCurrentYear()) ) )]]></expression>
            <message>Year of Mst Defn Srg is not valid.</message>
            <description><![CDATA[Valid codes for Year of Mst Defn Srg[3170] are 1930 - current year or blanks.]]></description>
            <history>
                <event version="SE16-016-01" user="kirbyk" date="2017-01-12" ref="67577">Edited created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Year_of_Birth" name="Date of Birth (NAACCR)" tag="N1034" java-path="lines.line" category="field">
            <expression><![CDATA[return Functions.between(line.dateOfBirthYear, 1800, Functions.getCurrentYear()) || line.dateOfBirthYear == null]]></expression>
            <message>Year of birth is not valid.</message>
            <description><![CDATA[Valid codes for Year of birth[240] are 1800 - current year and blank.]]></description>
            <history>
                <event version="SE12-002-01" user="murphyr" date="2009-12-18">9-filled year of birth no longer accepted.  Blanks now allowed in code, to match documentation.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Year_of_Diagnosis" name="Date of Diagnosis (NAACCR DATEEDIT)" tag="N0021" java-path="lines.line" category="field">
            <expression><![CDATA[return ( line.dateOfDiagnosisYear == null ||
   ( Functions.matches(line.dateOfDiagnosisYear, /^[12]\d\d\d$/) && Functions.between(line.dateOfDiagnosisYear, 1930, Functions.getCurrentYear()) ) )]]></expression>
            <message>Year of diagnosis is not valid.</message>
            <description><![CDATA[Valid codes for Year of diagnosis[390] are 1930 - current year or blank.]]></description>
            <history>
                <event version="SE11-001-19" user="greend" date="2005-01-26">Edited expanded to allow blanks, 9999 and range 1930-2020.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-17">Edit changed to not allow 9-filled dates.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Year_of_Initial_RX-SEER" name="Date Initial RX SEER (NAACCR)" tag="N0075" java-path="lines.line" category="field">
            <expression><![CDATA[return (line.dateInitialRxSeerYear == null || (Functions.matches(line.dateInitialRxSeerYear, /^[12]\d\d\d$/) && Functions.between(line.dateInitialRxSeerYear, 1930, Functions.getCurrentYear()) ) )]]></expression>
            <message>Year of initial RX--SEER is not valid.</message>
            <description><![CDATA[Valid codes for Year of initial RX--SEER[1260] are 1930 - current year or blanks.]]></description>
            <history>
                <event version="SE11-001-19" user="greend" date="2005-01-25">Edited expanded to allow blanks, 9999 and range 1930-2020.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-17">0 and 9 filled dates no longer allowed.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Year_of_Last_Contact" name="Date of Last Contact (NAACCR DATEEDIT)" tag="N0022" java-path="lines.line" category="field">
            <expression><![CDATA[return line.dateOfLastContactYear == null || ((Functions.matches(line.dateOfLastContactYear, /^[12]\d\d\d$/)) &&
            Functions.between(line.dateOfLastContactYear, 1930, Functions.getCurrentYear()) )]]></expression>
            <message>Year of last contact is not valid.</message>
            <description><![CDATA[Valid codes for Year of last contact[1750] are 1930 - current year or blanks.]]></description>
            <history>
                <event version="SE11-001-19" user="greend" date="2005-01-25">Edited expanded to allow blanks, 9999 and range 1930-2020.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-18">Edit no longer accepts 9 filled dates.  Now accepts blanks.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Year_of_Last_Contact_Submission" name="Year of Last Contact for Submission" tag="S048" java-path="lines.line" category="submission">
            <expression><![CDATA[if (line.dateOfLastContactYear == null)
    return false
return true]]></expression>
            <message>Year of Last Contact must not be blank.</message>
            <history>
                <event version="SE11-001-23" user="greend" date="2009-01-06">Edit created.</event>
                <event version="SE12-002-01" user="murphyr" date="2010-01-06">Year of last contact cannot be blank.</event>
                <event version="SE12-002-04" user="murphyr" date="2010-07-28">Updated error message.</event>
            </history>
        </rule>
        <rule id="Year_Other" name="RX Date Other (COC)" tag="N0074" java-path="lines.line" category="field">
            <expression><![CDATA[return (line.rxDateOtherYear == null || (Functions.matches(line.rxDateOtherYear, /^[12]\d\d\d$/) && Functions.between(line.rxDateOtherYear, 1930, Functions.getCurrentYear()) ) )]]></expression>
            <message>RX Year Other is not valid.</message>
            <description><![CDATA[Valid codes for RX Year Other[1250] are 1930 - current year and blank.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-14" ref="67144">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Year_Radiation" name="RX Date Radiation (COC)" tag="N0549" java-path="lines.line" category="field">
            <expression><![CDATA[return ( line.rxDateRadiationYear == null || ( Functions.matches(line.rxDateRadiationYear, /^[12]\d\d\d$/) &&
        Functions.between(line.rxDateRadiationYear, 1930, Functions.getCurrentYear()) ) )]]></expression>
            <message>Year of Radiation is not valid.</message>
            <description><![CDATA[Valid values for Year of Radiation[1210] are 1930-current year and blank.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-12" ref="67145">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Year_Recurrence_Date_1st" name="Recurrence Date--1st (COC)" tag="N0063" java-path="lines.line" category="field">
            <expression><![CDATA[return ( line.recurrenceDate1stYear == null || ( Functions.matches(line.recurrenceDate1stYear, /^[12]\d\d\d$/) &&
        Functions.between(line.recurrenceDate1stYear, 1930, Functions.getCurrentYear()) ) )]]></expression>
            <message>Year of Recurrence Date--1st is not valid.</message>
            <description><![CDATA[Valid values for Year of Recurrence Date--1st are 1930-current year and blank.]]></description>
            <history>
                <event version="SE21-021-01" user="kirbyk" date="2021-01-15" ref="68551">Edit created.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
                <event version="SE22-022-05" user="kirbyk" date="2022-05-17" ref="68995">Replaced non-ASCII characters in message and description.</event>
            </history>
        </rule>
        <rule id="Year_Regional_Lymph_Node_Dissection" name="Date Regional Lymph Node Dissection (COC)" tag="N2518" java-path="lines.line" category="field">
            <expression><![CDATA[return ( line.dateRegionalLNDissectionYear == null || ( Functions.matches(line.dateRegionalLNDissectionYear, /^[12]\d\d\d$/) &&
        Functions.between(line.dateRegionalLNDissectionYear, 1930, Functions.getCurrentYear()) ) )]]></expression>
            <message>Year of Regional Lymph Node Dissection is not valid.</message>
            <description><![CDATA[Valid values for Year of Regional Lymph Node Dissection[682] are 1930-current year and blank.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-08" ref="67779">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Year_Sentinel_Lymph_Node_Biopsy" name="Date of Sentinel Lymph Node Biopsy (COC)" tag="N2512" java-path="lines.line" category="field">
            <expression><![CDATA[return ( line.dateSentinelLymphNodeBiopsyYear == null || ( Functions.matches(line.dateSentinelLymphNodeBiopsyYear, /^[12]\d\d\d$/) &&
        Functions.between(line.dateSentinelLymphNodeBiopsyYear, 1930, Functions.getCurrentYear()) ) )]]></expression>
            <message>Year of Sentinel Lymph Node Biopsy is not valid.</message>
            <description><![CDATA[Valid values for Year of Sentinel Lymph Node Biopsy[832] are 1930-current year and blank.]]></description>
            <history>
                <event version="SE18-018-02" user="kirbyk" date="2018-05-08" ref="67779">Edit created.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Year_Surgery" name="RX Date Surgery (COC)" tag="N0356" java-path="lines.line" category="field">
            <expression><![CDATA[return (line.rxDateSurgeryYear == null || (Functions.matches(line.rxDateSurgeryYear, /^[12]\d\d\d$/) &&
        Functions.between(line.rxDateSurgeryYear, 1930, Functions.getCurrentYear()) ) )]]></expression>
            <message>Year of Surgery is not valid.</message>
            <description><![CDATA[Valid codes for Year of Surgery[1200] are 1930 - current year or blanks.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-12" ref="67146">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-05" user="beverung" date="2020-07-31" ref="68451">Changed edit name.</event>
                <event version="SE21-021-03" user="kirbyk" date="2021-03-09" ref="68568">Edit name changed.</event>
            </history>
        </rule>
        <rule id="Year_SurvDateActiveFollowup" name="Surv-Date Active Followup (SEER)" tag="N1979" java-path="lines.line" category="field">
            <expression><![CDATA[return line.survDateActiveFollowupYear == null || ((Functions.matches(line.survDateActiveFollowupYear, /^[12]\d\d\d$/)) &&
        Functions.between(line.survDateActiveFollowupYear, 1930, Functions.getCurrentYear()) )]]></expression>
            <message>Year of Surv-Date Active Followup is not valid.</message>
            <description><![CDATA[Valid values for Year of Surv-Date Active Followup[1782] are 1930 - current year, and blank.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-20" ref="67147">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
                <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event>
            </history>
        </rule>
        <rule id="Year_SurvDateDXRecode" name="Surv-Date DX Recode (SEER)" tag="N1981" java-path="lines.line" category="field">
            <expression><![CDATA[return line.survDateDxRecodeYear == null || ((Functions.matches(line.survDateDxRecodeYear, /^[12]\d\d\d$/)) &&
            Functions.between(line.survDateDxRecodeYear, 1930, Functions.getCurrentYear()) )]]></expression>
            <message>Year of Surv-Date DX Recode is not valid.</message>
            <description><![CDATA[Valid values for Year of Surv-Date DX Recode[1788] are 1930 - current year, and blank.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-14" ref="67148">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Year_SurvDatePresumedAlive" name="Surv-Date Presumed Alive (SEER)" tag="N1980" java-path="lines.line" category="field">
            <expression><![CDATA[return line.survDatePresumedAliveYear == null || ((Functions.matches(line.survDatePresumedAliveYear, /^[12]\d\d\d$/)) &&
        Functions.between(line.survDatePresumedAliveYear, 1930, Functions.getCurrentYear()) )]]></expression>
            <message>Year of Surv-Date Presumed Alive is not valid.</message>
            <description><![CDATA[Valid values for Year of Surv-Date Presumed Alive[1785] are 1930 - current year and blank.]]></description>
            <history>
                <event version="SE15-013-01" user="kirbyk" date="2015-01-20" ref="67149">Edit created.</event>
                <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event>
            </history>
        </rule>
        <rule id="Year_Systemic" name="RX Date Systemic (COC)" tag="N0567" java-path="lines.line" category="field">
            <expression><![CDATA[return (line.rxDateSystemicYear == null || (Functions.matches(line.rxDateSystemicYear, /^[12]\d\d\d$/) &&
        Functions.between(line.rxDateSystemicYear, 1930, Functions.getCurrentYear()) ) )]]></expression>
            <message>RX Date Systemic Year is not valid.</message>
            <description><![CDATA[Valid values for RX Date Systemic Year[3230] are 1930 - current year or blanks.]]></description>
            <history>
                <event version="SE16-016-10" user="kirbyk" date="2018-01-16" ref="67682">Edit created.</event>
            </history>
        </rule>
    </rules>
</validator>




© 2015 - 2024 Weber Informatics LLC | Privacy Policy