stage4(GSListPtr colors)
stage4(GListPtr colors)
stage4(GSListPtr colors){	int lpc = 0;	color_t *color_n = NULL;	color_t *color_n_plus_1 = NULL;		for(lpc = 0; lpc < g_slist_length(colors); lpc++) {		color_n = color_n_plus_1;		color_n_plus_1 = (color_t*)g_slist_nth_data(colors, lpc);		crm_debug_action(			print_color("Choose node for...", color_n, FALSE));				if(color_n == NULL) {			continue;		}		GSListPtr xor = node_list_xor(color_n_nodes,					      color_n_plus_1_nodes);		GSListPtr minus = node_list_minus(color_n_nodes,						  color_n_plus_1_nodes);		if(g_slist_length(xor) == 0 || g_slist_length(minus) == 0) {			crm_verbose("Choose any node from our list");			choose_node_from_list(colors, color_n, color_n_nodes);		} else {			crm_verbose("Choose a node not in n+1");			choose_node_from_list(colors, color_n, minus);      		}		pe_free_shallow(xor);		pe_free_shallow(minus);	}	// choose last color	if(color_n_plus_1 != NULL) {		crm_debug_action(print_color("Choose node for last color...",				   color_n_plus_1,				   FALSE));		choose_node_from_list(colors,				      color_n_plus_1, 				      color_n_plus_1_nodes);	}	crm_verbose("done");	return TRUE;	}