162     bool foundNonResolvedChild = 
false;
 
  163     bool foundNegativeChild    = 
false;
 
  164     bool foundPositiveChild    = 
false;
 
  177       bool breakout = 
false;
 
  178       for ( 
unsigned int slotIndex : searchResult->second ) {
 
  183         for ( 
auto child : node.getDaughters() ) {
 
  187           if ( childDecision == -1 )
 
  188             foundNonResolvedChild = 
true;
 
  189           else if ( childDecision == 1 )
 
  190             foundPositiveChild = 
true;
 
  192             foundNegativeChild = 
true;
 
  194           if ( node.m_modePromptDecision ) {
 
  195             if ( node.m_modeOR && foundPositiveChild ) {
 
  199             } 
else if ( !node.m_modeOR && foundNegativeChild ) {
 
  205             if ( foundNonResolvedChild ) {
 
  214         if ( breakout ) 
break;
 
  217       for ( 
auto child : node.getDaughters() ) {
 
  220         if ( childDecision == -1 )
 
  221           foundNonResolvedChild = 
true;
 
  222         else if ( childDecision == 1 )
 
  223           foundPositiveChild = 
true;
 
  225           foundNegativeChild = 
true;
 
  227         if ( node.m_modePromptDecision ) {
 
  228           if ( node.m_modeOR && foundPositiveChild ) {
 
  231           } 
else if ( !node.m_modeOR && foundNegativeChild ) {
 
  236           if ( foundNonResolvedChild ) 
break;
 
  241     if ( !foundNonResolvedChild && decision == -1 ) {
 
  242       if ( node.m_modeOR ) { 
 
  243         if ( foundPositiveChild )
 
  248         if ( foundNegativeChild )
 
  255     if ( node.m_inverted && decision == 1 )
 
  257     else if ( node.m_inverted && decision == 0 )
 
  260     if ( node.m_allPass && !foundNonResolvedChild ) decision = 1;
 
  262     if ( decision != -1 ) {
 
  266       if ( node.m_parents.size() == 1 ) {
 
  267         node.m_parents[0]->accept( *
this );
 
  269         auto scout = SubSlotScout( 
m_slot, node );
 
  270         for ( 
auto& p : node.m_parents ) {
 
  272           if ( scout.reply() ) p->accept( *
this );
 
  276         auto scout = ActiveLineageScout( 
m_slot, node );
 
  277         for ( 
auto& p : node.m_parents ) {
 
  279           if ( scout.reply() ) p->accept( *
this );
 
  284       if ( oldSlot ) 
m_slot = oldSlot;
 
  291       for ( 
unsigned int slotIndex : searchResult->second ) {
 
  296         for ( 
auto child : node.getDaughters() ) {
 
  297           bool result = child->accept( *
this );
 
  298           if ( !node.m_modeConcurrent )
 
  309       for ( 
auto child : node.getDaughters() ) {
 
  310         bool result = child->accept( *
this );
 
  311         if ( !node.m_modeConcurrent )
 
  319     if ( oldSlot ) 
m_slot = oldSlot;