activezerosmarkcons0zerosactiveU11ttLmarkslengthLactiveU21ttmarknilactiveU31ttILMNmarkconsNtakeMILactiveandttXmarkXactiveisNat0markttactiveisNatlengthV1markisNatListV1activeisNatsV1markisNatV1activeisNatIListVmarkisNatListVactiveisNatIListzerosmarkttactiveisNatIListconsV1V2markandisNatV1isNatIListV2activeisNatListnilmarkttactiveisNatListconsV1V2markandisNatV1isNatListV2activeisNatListtakeV1V2markandisNatV1isNatIListV2activelengthnilmark0activelengthconsNLmarkU11andisNatListLisNatNLactivetake0ILmarkU21isNatIListILactivetakesMconsNILmarkU31andisNatIListILandisNatMisNatNILMNactiveconsX1X2consactiveX1X2activeU11X1X2U11activeX1X2activesXsactiveXactivelengthXlengthactiveXactiveU21XU21activeXactiveU31X1X2X3X4U31activeX1X2X3X4activetakeX1X2takeactiveX1X2activetakeX1X2takeX1activeX2activeandX1X2andactiveX1X2consmarkX1X2markconsX1X2U11markX1X2markU11X1X2smarkXmarksXlengthmarkXmarklengthXU21markXmarkU21XU31markX1X2X3X4markU31X1X2X3X4takemarkX1X2marktakeX1X2takeX1markX2marktakeX1X2andmarkX1X2markandX1X2properzerosokzerosproperconsX1X2consproperX1properX2proper0ok0properU11X1X2U11properX1properX2properttokttpropersXsproperXproperlengthXlengthproperXproperU21XU21properXproperniloknilproperU31X1X2X3X4U31properX1properX2properX3properX4propertakeX1X2takeproperX1properX2properandX1X2andproperX1properX2properisNatXisNatproperXproperisNatListXisNatListproperXproperisNatIListXisNatIListproperXconsokX1okX2okconsX1X2U11okX1okX2okU11X1X2sokXoksXlengthokXoklengthXU21okXokU21XU31okX1okX2okX3okX4okU31X1X2X3X4takeokX1okX2oktakeX1X2andokX1okX2okandX1X2isNatokXokisNatXisNatListokXokisNatListXisNatIListokXokisNatIListXtopmarkXtopproperXtopokXtopactiveXactivezeroscons0zerosactiveU11ttLlengthLactiveU11ttLslengthLactiveU31ttILMNtakeMILactiveU31ttILMNconsNtakeMILactiveisNatlengthV1isNatListV1activeisNatsV1isNatV1activeisNatIListVisNatListVactiveisNatIListconsV1V2isNatIListV2activeisNatIListconsV1V2isNatV1activeisNatIListconsV1V2andisNatV1isNatIListV2activeisNatListconsV1V2isNatListV2activeisNatListconsV1V2isNatV1activeisNatListconsV1V2andisNatV1isNatListV2activeisNatListtakeV1V2isNatIListV2activeisNatListtakeV1V2isNatV1activeisNatListtakeV1V2andisNatV1isNatIListV2activelengthconsNLisNatNactivelengthconsNLisNatListLactivelengthconsNLandisNatListLisNatNactivelengthconsNLU11andisNatListLisNatNLactivetake0ILisNatIListILactivetake0ILU21isNatIListILactivetakesMconsNILisNatNactivetakesMconsNILisNatMactivetakesMconsNILandisNatMisNatNactivetakesMconsNILisNatIListILactivetakesMconsNILandisNatIListILandisNatMisNatNactivetakesMconsNILU31andisNatIListILandisNatMisNatNILMNactiveconsX1X2activeX1activeconsX1X2consactiveX1X2activeU11X1X2activeX1activeU11X1X2U11activeX1X2activesXactiveXactivesXsactiveXactivelengthXactiveXactivelengthXlengthactiveXactiveU21XactiveXactiveU21XU21activeXactiveU31X1X2X3X4activeX1activeU31X1X2X3X4U31activeX1X2X3X4activetakeX1X2activeX1activetakeX1X2takeactiveX1X2activetakeX1X2activeX2activetakeX1X2takeX1activeX2activeandX1X2activeX1activeandX1X2andactiveX1X2consmarkX1X2consX1X2U11markX1X2U11X1X2smarkXsXlengthmarkXlengthXU21markXU21XU31markX1X2X3X4U31X1X2X3X4takemarkX1X2takeX1X2takeX1markX2takeX1X2andmarkX1X2andX1X2properconsX1X2properX2properconsX1X2properX1properconsX1X2consproperX1properX2properU11X1X2properX2properU11X1X2properX1properU11X1X2U11properX1properX2propersXproperXpropersXsproperXproperlengthXproperXproperlengthXlengthproperXproperU21XproperXproperU21XU21properXproperU31X1X2X3X4properX4properU31X1X2X3X4properX3properU31X1X2X3X4properX2properU31X1X2X3X4properX1properU31X1X2X3X4U31properX1properX2properX3properX4propertakeX1X2properX2propertakeX1X2properX1propertakeX1X2takeproperX1properX2properandX1X2properX2properandX1X2properX1properandX1X2andproperX1properX2properisNatXproperXproperisNatXisNatproperXproperisNatListXproperXproperisNatListXisNatListproperXproperisNatIListXproperXproperisNatIListXisNatIListproperXconsokX1okX2consX1X2U11okX1okX2U11X1X2sokXsXlengthokXlengthXU21okXU21XU31okX1okX2okX3okX4U31X1X2X3X4takeokX1okX2takeX1X2andokX1okX2andX1X2isNatokXisNatXisNatListokXisNatListXisNatIListokXisNatIListXtopmarkXproperXtopmarkXtopproperXtopokXactiveXtopokXtopactiveXtruetopokXtopactiveXtopmarkXtopproperXtruetopokXactiveXfalseactiveconsX1X2activeX1activeU11X1X2activeX1activesXactiveXactivelengthXactiveXactiveU21XactiveXactiveU31X1X2X3X4activeX1activetakeX1X2activeX1activetakeX1X2activeX2activeandX1X2activeX1trueactive11activeandX1X2andactiveX1X2falseactivetakeX1X2takeX1activeX2falseactivetakeX1X2takeactiveX1X2falseactiveU31X1X2X3X4U31activeX1X2X3X4falseactiveU21XU21activeXfalseactivelengthXlengthactiveXfalseactivesXsactiveXfalseactiveU11X1X2U11activeX1X2falseactiveconsX1X2consactiveX1X2falseactivetakesMconsNILU31andisNatIListILandisNatMisNatNILMNfalseactivetakesMconsNILandisNatIListILandisNatMisNatNfalseactivetakesMconsNILisNatIListILfalseactivetakesMconsNILandisNatMisNatNfalseactivetakesMconsNILisNatMfalseactivetakesMconsNILisNatNfalseactivetake0ILU21isNatIListILfalseactivetake0ILisNatIListILfalseactivelengthconsNLU11andisNatListLisNatNLfalseactivelengthconsNLandisNatListLisNatNfalseactivelengthconsNLisNatListLfalseactivelengthconsNLisNatNfalseactiveisNatListtakeV1V2andisNatV1isNatIListV2falseactiveisNatListtakeV1V2isNatV1falseactiveisNatListtakeV1V2isNatIListV2falseactiveisNatListconsV1V2andisNatV1isNatListV2falseactiveisNatListconsV1V2isNatV1falseactiveisNatListconsV1V2isNatListV2falseactiveisNatIListconsV1V2andisNatV1isNatIListV2falseactiveisNatIListconsV1V2isNatV1falseactiveisNatIListconsV1V2isNatIListV2falseactiveisNatIListVisNatListVfalseactiveisNatsV1isNatV1falseactiveisNatlengthV1isNatListV1falseactiveU31ttILMNconsNtakeMILfalseactiveU31ttILMNtakeMILfalseactiveU11ttLslengthLfalseactiveU11ttLlengthLfalseactivezeroscons0zerosfalsetopmarkXproperXfalseproperconsX1X2properX2properconsX1X2properX1properU11X1X2properX2properU11X1X2properX1propersXproperXproperlengthXproperXproperU21XproperXproperU31X1X2X3X4properX4properU31X1X2X3X4properX3properU31X1X2X3X4properX2properU31X1X2X3X4properX1propertakeX1X2properX2propertakeX1X2properX1properandX1X2properX2properandX1X2properX1properisNatXproperXproperisNatListXproperXproperisNatIListXproperXtrueproper11properisNatIListXisNatIListproperXfalseisNatIListokXisNatIListXtrueisNatIList11properisNatListXisNatListproperXfalseisNatListokXisNatListXtrueisNatList11properisNatXisNatproperXfalseisNatokXisNatXtrueisNat11properandX1X2andproperX1properX2falseandmarkX1X2andX1X2andokX1okX2andX1X2trueand22andmarkX1X2andX1X2and21propertakeX1X2takeproperX1properX2falsetakemarkX1X2takeX1X2takeX1markX2takeX1X2takeokX1okX2takeX1X2truetake22takemarkX1X2takeX1X2take21properU31X1X2X3X4U31properX1properX2properX3properX4falseU31markX1X2X3X4U31X1X2X3X4U31okX1okX2okX3okX4U31X1X2X3X4trueU3144U31markX1X2X3X4U31X1X2X3X4U3141properU21XU21properXfalseU21markXU21XU21okXU21XtrueU2111properlengthXlengthproperXfalselengthmarkXlengthXlengthokXlengthXtruelength11propersXsproperXfalsesmarkXsXsokXsXtrues11properU11X1X2U11properX1properX2falseU11markX1X2U11X1X2U11okX1okX2U11X1X2trueU1122U11markX1X2U11X1X2U1121properconsX1X2consproperX1properX2falseconsmarkX1X2consX1X2consokX1okX2consX1X2truecons22consmarkX1X2consX1X2cons21