activefactXmarkifzeroXs0prodXfactpXactiveadd0XmarkXactiveaddsXYmarksaddXYactiveprod0Xmark0activeprodsXYmarkaddYprodXYactiveiftrueXYmarkXactiveiffalseXYmarkYactivezero0marktrueactivezerosXmarkfalseactivepsXmarkXmarkfactXactivefactmarkXmarkifX1X2X3activeifmarkX1X2X3markzeroXactivezeromarkXmarksXactivesmarkXmark0active0markprodX1X2activeprodmarkX1markX2markpXactivepmarkXmarkaddX1X2activeaddmarkX1markX2marktrueactivetruemarkfalseactivefalsefactmarkXfactXfactactiveXfactXifmarkX1X2X3ifX1X2X3ifX1markX2X3ifX1X2X3ifX1X2markX3ifX1X2X3ifactiveX1X2X3ifX1X2X3ifX1activeX2X3ifX1X2X3ifX1X2activeX3ifX1X2X3zeromarkXzeroXzeroactiveXzeroXsmarkXsXsactiveXsXprodmarkX1X2prodX1X2prodX1markX2prodX1X2prodactiveX1X2prodX1X2prodX1activeX2prodX1X2pmarkXpXpactiveXpXaddmarkX1X2addX1X2addX1markX2addX1X2addactiveX1X2addX1X2addX1activeX2addX1X2activefactXpXactivefactXfactpXactivefactXprodXfactpXactivefactXs0activefactXzeroXactivefactXifzeroXs0prodXfactpXactivefactXmarkifzeroXs0prodXfactpXactiveadd0XmarkXactiveaddsXYaddXYactiveaddsXYsaddXYactiveaddsXYmarksaddXYactiveprod0Xmark0activeprodsXYprodXYactiveprodsXYaddYprodXYactiveprodsXYmarkaddYprodXYactiveiftrueXYmarkXactiveiffalseXYmarkYactivezero0marktrueactivezerosXmarkfalseactivepsXmarkXmarkfactXmarkXmarkfactXfactmarkXmarkfactXactivefactmarkXmarkifX1X2X3markX1markifX1X2X3ifmarkX1X2X3markifX1X2X3activeifmarkX1X2X3markzeroXmarkXmarkzeroXzeromarkXmarkzeroXactivezeromarkXmarksXmarkXmarksXsmarkXmarksXactivesmarkXmark0active0markprodX1X2markX2markprodX1X2markX1markprodX1X2prodmarkX1markX2markprodX1X2activeprodmarkX1markX2markpXmarkXmarkpXpmarkXmarkpXactivepmarkXmarkaddX1X2markX2markaddX1X2markX1markaddX1X2addmarkX1markX2markaddX1X2activeaddmarkX1markX2marktrueactivetruemarkfalseactivefalsefactmarkXfactXfactactiveXfactXifmarkX1X2X3ifX1X2X3ifX1markX2X3ifX1X2X3ifX1X2markX3ifX1X2X3ifactiveX1X2X3ifX1X2X3ifX1activeX2X3ifX1X2X3ifX1X2activeX3ifX1X2X3zeromarkXzeroXzeroactiveXzeroXsmarkXsXsactiveXsXprodmarkX1X2prodX1X2prodX1markX2prodX1X2prodactiveX1X2prodX1X2prodX1activeX2prodX1X2pmarkXpXpactiveXpXaddmarkX1X2addX1X2addX1markX2addX1X2addactiveX1X2addX1X2addX1activeX2addX1X2truemarkfalseactivefalseactivefactXmarkifzeroXs0prodXfactpXmarkfactXmarkXmarkfactXactivefactmarkXactiveadd0XmarkXmarkifX1X2X3markX1markifX1X2X3activeifmarkX1X2X3activeaddsXYmarksaddXYmarkzeroXmarkXmarkzeroXactivezeromarkXactiveprod0Xmark0marksXmarkXmarksXactivesmarkXactiveprodsXYmarkaddYprodXYmark0active0activeiftrueXYmarkXmarkprodX1X2markX2markprodX1X2markX1markprodX1X2activeprodmarkX1markX2activeiffalseXYmarkYmarkpXmarkXmarkpXactivepmarkXactivezero0marktruemarkaddX1X2markX2markaddX1X2markX1markaddX1X2activeaddmarkX1markX2activezerosXmarkfalsemarktrueactivetrueactivepsXmarkXtruemarkaddX1X2markX2markaddX1X2activeaddmarkX1markX2activepsXmarkXmarkaddX1X2markX1markpXactivepmarkXactiveiffalseXYmarkYmarkpXmarkXmarkprodX1X2activeprodmarkX1markX2activeiftrueXYmarkXmarkprodX1X2markX1markprodX1X2markX2marksXactivesmarkXactiveprodsXYmarkaddYprodXYmarksXmarkXmarkzeroXactivezeromarkXactiveaddsXYmarksaddXYmarkzeroXmarkXmarkifX1X2X3activeifmarkX1X2X3activeadd0XmarkXmarkifX1X2X3markX1markfactXactivefactmarkXactivefactXmarkifzeroXs0prodXfactpXmarkfactXmarkXtrue1mark1012active1110false00true00add201022mark1010if30102032prod201022p1012s1010000zero1010active1010fact1012markaddX1X2markX2markaddX1X2activeaddmarkX1markX2activepsXmarkXmarkaddX1X2markX1markpXactivepmarkXactiveiffalseXYmarkYmarkpXmarkXmarkprodX1X2activeprodmarkX1markX2activeiftrueXYmarkXmarkprodX1X2markX1markprodX1X2markX2activeprodsXYmarkaddYprodXYmarksXmarkXactiveaddsXYmarksaddXYmarkzeroXmarkXmarkifX1X2X3activeifmarkX1X2X3activeadd0XmarkXmarkifX1X2X3markX1markfactXactivefactmarkXactivefactXmarkifzeroXs0prodXfactpXmarkfactXmarkXactiveprod0Xmark0falsemark0active0falseactivezero0marktruefalseactivezerosXmarkfalsefalsemarktrueactivetruefalsemarkfalseactivefalsefalsemarkaddX1X2addmarkX1markX2falsemarkpXpmarkXfalsemarkprodX1X2prodmarkX1markX2falseactiveprodsXYaddYprodXYfalseactiveprodsXYprodXYfalsemarksXsmarkXfalsemarkzeroXzeromarkXfalseactiveaddsXYsaddXYfalseactiveaddsXYaddXYfalsemarkifX1X2X3ifmarkX1X2X3falsemarkfactXfactmarkXfalseactivefactXifzeroXs0prodXfactpXfalseifmarkX1X2X3ifX1X2X3ifX1markX2X3ifX1X2X3ifX1X2markX3ifX1X2X3ifactiveX1X2X3ifX1X2X3ifX1activeX2X3ifX1X2X3ifX1X2activeX3ifX1X2X3trueif33ifmarkX1X2X3ifX1X2X3ifX1markX2X3ifX1X2X3ifactiveX1X2X3ifX1X2X3ifX1activeX2X3ifX1X2X3if32ifmarkX1X2X3ifX1X2X3ifactiveX1X2X3ifX1X2X3if31activefactXzeroXfalsezeromarkXzeroXzeroactiveXzeroXtruezero11activefactXs0falsesmarkXsXsactiveXsXtrues11activefactXprodXfactpXfalseprodmarkX1X2prodX1X2prodX1markX2prodX1X2prodactiveX1X2prodX1X2prodX1activeX2prodX1X2trueprod22prodmarkX1X2prodX1X2prodactiveX1X2prodX1X2prod21activefactXfactpXfalsefactmarkXfactXfactactiveXfactXtruefact11activefactXpXfalsepmarkXpXpactiveXpXtruep11addmarkX1X2addX1X2addX1markX2addX1X2addactiveX1X2addX1X2addX1activeX2addX1X2trueadd22addmarkX1X2addX1X2addactiveX1X2addX1X2add21