All of your labs and homework for this class will need to implement logging,
the official documentation for the logging library we will be using is at here Example 1 File: main1.cpp

#include "cmpslib19.h"

// INCLUDE THE LIBRARY FOR THE LOGGING FUNCTIONS AND THE MACRO TO INITIALIZE IT
#include "easylogging++.h"
INITIALIZE_EASYLOGGINGPP

void PrintArray(int*,int);

int main()
{
  // set up the logger
  el::Configurations LGR;
  LGR.setToDefault();// load current configuration
  #if LOGGING ==ON
    LGR.setGlobally(el::ConfigurationType::Filename,"main1.log");// set logname
    LGR.set(el::Level::Info,el::ConfigurationType::ToStandardOutput,"false");// dont push LOG (INFO) to console
  #else
    LGR.setGlobally(el::ConfigurationType::Enabled,"false");// disable all the logging
  #endif
  el::Loggers::reconfigureLogger("default", LGR);// store new configuration






	LOG(INFO)    << "Here is just a general comment to be logged to the file\n";

  // also displays to screen like cout
	LOG(WARNING) << "Warning level comments have a higher priority \n";

  // also displays to screen like cout
	LOG (ERROR)  << "Error level comments have the highest priority \n";


	return 0;
}

void PrintArray(int* arr, int count)
{
	/* here is a function to print the contents of an integer array
		 we will do a lot of logging to try to give an example of the levels */

	// log that you are starting a function and the name of the that function
	// this is info  becuase its not vital  
	LOG(INFO) << "Start " <<  __PRETTY_FUNCTION__ << endl;

	// an example of an error level message .. this is a real problem
	if( arr == nullptr)
		LOG (ERROR) << __PRETTY_FUNCTION__ << " was called incorrectly, 1st parameter is a nullpointer this must point to a valid array" << endl;

	// an example of an warning level message .. this is a potential problem
	if( count < 1 )
		LOG (WARNING) << __PRETTY_FUNCTION__ << " was called with a count of less than 1, you cant exactly print out  < 1 values from an array..function will do nothing" << endl;


	// go ahead and print out the values
	for (int loop=0;loop<count;loop++)
	{
		// log some more diagnostic messages inside the loop
		LOG (INFO) << "inside for loop loop=" << loop << endl;
		std::cout << "array[" << loop << "] value:" << arr[loop] << endl; 
	}


	// log that you are ending a function and the name of the that function
	// this is info  becuase its not vital  
	LOG(INFO) << "End " <<  __PRETTY_FUNCTION__ << endl;

}







output of main1.log File: main1.log

2019-08-27 15:40:43,319 INFO [default] Here is just a general comment to be logged to the file

2019-08-27 15:40:43,319 WARNING [default] Warning level comments have a higher priority 

2019-08-27 15:40:43,319 ERROR [default] Error level comments have the highest priority 

Example 2 File: main2.cpp

// INCLUDE THE LIBRARY FOR THE LOGGING FUNTIONS AND CREATE AND INSTANCE OF THE LOGGING STRUCT
#include "cmpslib19.h"

#include "easylogging++.h"
INITIALIZE_EASYLOGGINGPP


int main()
{
  // set up the logger
  el::Configurations LGR;
  LGR.setToDefault();// load current configuration
  #if LOGGING ==ON
    LGR.setGlobally(el::ConfigurationType::Filename,"main2.log");// set logname
    LGR.set(el::Level::Info,el::ConfigurationType::ToStandardOutput,"false");// dont push LOG (INFO) to console
  #else
    LGR.setGlobally(el::ConfigurationType::Enabled,"false");// disable all the logging
  #endif
  el::Loggers::reconfigureLogger("default", LGR);// store new configuration






  int iValOne =23;
  LOG (INFO) << "Here is just a general comment to be logged to the file\n";
  // it works like a cout statement, you can display the values of variables
  LOG (INFO) << "iValOne is an integer and it has the value " << iValOne << endl;

  LOG (INFO) << "iValone one doubled is " << (iValOne*2) << " and trippled it is " << (iValOne*3) << endl;
  return 0;
  }


output of main2.log File: main2.log

2019-08-27 15:40:44,397 INFO [default] Here is just a general comment to be logged to the file

2019-08-27 15:40:44,397 INFO [default] iValOne is an integer and it has the value 23

2019-08-27 15:40:44,397 INFO [default] iValone one doubled is 46 and trippled it is 69

Example 3 File: main3.cpp

// INCLUDE THE LIBRARY FOR THE LOGGING FUNTIONS AND CREATE AND INSTANCE OF THE LOGGING STRUCT
#include "cmpslib19.h"


#include "easylogging++.h"
INITIALIZE_EASYLOGGINGPP


int main()
{
  // set up the logger
  el::Configurations LGR;
  LGR.setToDefault();// load current configuration
  #if LOGGING ==ON
    LGR.setGlobally(el::ConfigurationType::Filename,"main3.log");// set logname
    LGR.set(el::Level::Info,el::ConfigurationType::ToStandardOutput,"false");// dont push LOG (INFO) to console
  #else
    LGR.setGlobally(el::ConfigurationType::Enabled,"false");// disable all the logging
  #endif
  el::Loggers::reconfigureLogger("default", LGR);// store new configuration


  for (int loop =0; loop<10; loop++)
    {
    if (loop%2==0)
      {
      LOG (INFO) << "inside the for loop and the value is " << loop << " even" << endl;
      }
    else
      {
      LOG (INFO) << "inside the for loop and the value is " << loop << " odd" << endl;
      }
    }
  return 0;
  }

output of main3.log File: main3.log

2019-08-27 15:40:45,483 INFO [default] inside the for loop and the value is 0 even

2019-08-27 15:40:45,483 INFO [default] inside the for loop and the value is 1 odd

2019-08-27 15:40:45,483 INFO [default] inside the for loop and the value is 2 even

2019-08-27 15:40:45,483 INFO [default] inside the for loop and the value is 3 odd

2019-08-27 15:40:45,483 INFO [default] inside the for loop and the value is 4 even

2019-08-27 15:40:45,483 INFO [default] inside the for loop and the value is 5 odd

2019-08-27 15:40:45,483 INFO [default] inside the for loop and the value is 6 even

2019-08-27 15:40:45,483 INFO [default] inside the for loop and the value is 7 odd

2019-08-27 15:40:45,483 INFO [default] inside the for loop and the value is 8 even

2019-08-27 15:40:45,483 INFO [default] inside the for loop and the value is 9 odd

Example 4 File: main4.cpp

/*
 *  Logging example
 */

#include "cmpslib19.h"
#include "easylogging++.h"
INITIALIZE_EASYLOGGINGPP





typedef struct
{
	int age;
	string name;
} PugDog;


int main()
{
  // set up the logger
  el::Configurations LGR;
  LGR.setToDefault();// load current configuration
  #if LOGGING ==ON
    LGR.setGlobally(el::ConfigurationType::Filename,"main4.log");// set logname
    LGR.set(el::Level::Info,el::ConfigurationType::ToStandardOutput,"false");// dont push LOG (INFO) to console
  #else
    LGR.setGlobally(el::ConfigurationType::Enabled,"false");// disable all the logging
  #endif
  el::Loggers::reconfigureLogger("default", LGR);// store new configuration



	int one =111;
	LOG (INFO) << "The value of one is "   << one         << "\n";

	LOG (INFO) << "The datatype of one is " << typeid(one).name() << "\n"; // standard library

	LOG (INFO) << "The classname of one is " << GetClassName(one) << "\n"; // GetClassName is in cmpslib19.h
	
  LOG (INFO) << "The address of one is " << &one        << "\n";


	return 0;
}







output of main4.log File: main4.log

2019-08-27 15:40:46,582 INFO [default] The value of one is 111

2019-08-27 15:40:46,582 INFO [default] The datatype of one is i

2019-08-27 15:40:46,582 INFO [default] The classname of one is int

2019-08-27 15:40:46,582 INFO [default] The address of one is 0x7fff38b8643c

Example 5 File: main5.cpp

// INCLUDE THE LIBRARY FOR THE LOGGING FUNTIONS AND CREATE AND INSTANCE OF THE LOGGING STRUCT
#include "cmpslib19.h"

#include "easylogging++.h"
INITIALIZE_EASYLOGGINGPP


#define ARRAYSIZE 50

// if a functions return type is void ALWAYS use LogEnd
// if a functions return type is ANYTHING OTHER THAN void ALWAYS use LogEndReturning

// returns a value that is half of the input
double Half(int input)
{
	// ALWAYS log the start of the functions FIRST , Log ALL the parameters in order
	LOG(INFO) << "Start " <<  __PRETTY_FUNCTION__ << endl;
	LOG(INFO) << "Start Params: " << input << endl;
	double temp = input/2.0;
	LOG(INFO) << "End " <<  __PRETTY_FUNCTION__ << endl;
	LOG(INFO) << "End Params: " << input << endl;// log the values at the end
	return temp;
}


// return the larger of two values
int LargerValue(int one, int two)
{
	// ALWAYS log the start of the functions FIRST , Log ALL the parameters in order
	LOG(INFO) << "Start " <<  __PRETTY_FUNCTION__ << endl;
	LOG(INFO) << "Start Params: " << one << " , " << two << endl;
	if (one > two)
	{
		LOG(INFO) << "End " <<  __PRETTY_FUNCTION__ << endl;
		LOG(INFO) << "Returning: " << one << endl;// since this function does not return void log that you are about to return a value
		return one;
	}
	else
	{
		LOG(INFO) << "End " <<  __PRETTY_FUNCTION__ << endl;
		LOG(INFO) << "Returning: " << two << endl;// since this function does not return void log that you are about to return a value
		return two;
	}
}

// find the larger of two values and store it in parmeter 3
void LargerValue(long unsigned int one, long unsigned int two, long unsigned int & result)
{
	// ALWAYS log the start of the functions FIRST , Log ALL the parameters in order
	LOG(INFO) << "Start " <<  __PRETTY_FUNCTION__ << endl;
	LOG(INFO) << "Start Params: " << one << " , " << two << " , " << result << endl;

	if (one > two)
		result = one;
	else
		result = two;

	LOG(INFO) << "End " <<  __PRETTY_FUNCTION__ << endl;
	LOG(INFO) << "End Params: " << one << " , " << two << " , " << result << endl;// log the values at the end
}


int main()
{
  // set up the logger
  el::Configurations LGR;
  LGR.setToDefault();// load current configuration
  #if LOGGING ==ON
    LGR.setGlobally(el::ConfigurationType::Filename,"main5.log");// set logname
    LGR.set(el::Level::Info,el::ConfigurationType::ToStandardOutput,"false");// dont push LOG (INFO) to console
  #else
    LGR.setGlobally(el::ConfigurationType::Enabled,"false");// disable all the logging
  #endif
  el::Loggers::reconfigureLogger("default", LGR);// store new configuration


	// test the Half function
	int iValOne =23;
	double dValOne =  Half( iValOne );
	cout << Half(iValOne) << endl;
	cout <<"Test Half " <<  ((dValOne == 11.5 ) ? "Pass" : "Fail") << endl;
	iValOne=10;
	dValOne = Half(iValOne);
	cout <<"Test Half " <<  ((dValOne ==5 ) ? "Pass" : "Fail") << endl;
	iValOne=0;
	dValOne = Half(iValOne);
	cout <<"Test Half " <<  ((dValOne ==0 ) ? "Pass" : "Fail") << endl;


	cout <<"Test LargerValue  " <<  ((LargerValue(5,0)   == 5  ) ? "Pass" : "Fail") << endl;
	cout <<"Test LargerValue  " <<  ((LargerValue(0,0)   == 0  ) ? "Pass" : "Fail") << endl;
	cout <<"Test LargerValue  " <<  ((LargerValue(-5,0)  == 0  ) ? "Pass" : "Fail") << endl;
	cout <<"Test LargerValue  " <<  ((LargerValue(55,0)  == 55 ) ? "Pass" : "Fail") << endl;
	cout <<"Test LargerValue  " <<  ((LargerValue(5,100) == 100) ? "Pass" : "Fail") << endl;

	long unsigned int luiValOne = 2000000000;
	long unsigned int luiValTwo = 3000000000;
	long unsigned int result;
	LargerValue(luiValOne,luiValTwo,result);
	cout <<"Test LargerValue  " << ((result   == luiValTwo  ) ? "Pass" : "Fail") << endl;

	LargerValue(luiValTwo,luiValOne,result);
	cout <<"Test LargerValue  " << ((result   == luiValTwo  ) ? "Pass" : "Fail") << endl;




	return 0;
}





output of main5.log File: main5.log

2019-08-27 15:40:47,705 INFO [default] Start double Half(int)

2019-08-27 15:40:47,705 INFO [default] Start Params: 23

2019-08-27 15:40:47,705 INFO [default] End double Half(int)

2019-08-27 15:40:47,705 INFO [default] End Params: 23

2019-08-27 15:40:47,705 INFO [default] Start double Half(int)

2019-08-27 15:40:47,705 INFO [default] Start Params: 23

2019-08-27 15:40:47,705 INFO [default] End double Half(int)

2019-08-27 15:40:47,705 INFO [default] End Params: 23

2019-08-27 15:40:47,705 INFO [default] Start double Half(int)

2019-08-27 15:40:47,705 INFO [default] Start Params: 10

2019-08-27 15:40:47,705 INFO [default] End double Half(int)

2019-08-27 15:40:47,706 INFO [default] End Params: 10

2019-08-27 15:40:47,706 INFO [default] Start double Half(int)

2019-08-27 15:40:47,706 INFO [default] Start Params: 0

2019-08-27 15:40:47,706 INFO [default] End double Half(int)

2019-08-27 15:40:47,706 INFO [default] End Params: 0

2019-08-27 15:40:47,706 INFO [default] Start int LargerValue(int, int)

2019-08-27 15:40:47,706 INFO [default] Start Params: 5 , 0

2019-08-27 15:40:47,706 INFO [default] End int LargerValue(int, int)

2019-08-27 15:40:47,706 INFO [default] Returning: 5

2019-08-27 15:40:47,706 INFO [default] Start int LargerValue(int, int)

2019-08-27 15:40:47,706 INFO [default] Start Params: 0 , 0

2019-08-27 15:40:47,706 INFO [default] End int LargerValue(int, int)

2019-08-27 15:40:47,706 INFO [default] Returning: 0

2019-08-27 15:40:47,706 INFO [default] Start int LargerValue(int, int)

2019-08-27 15:40:47,706 INFO [default] Start Params: -5 , 0

2019-08-27 15:40:47,706 INFO [default] End int LargerValue(int, int)

2019-08-27 15:40:47,706 INFO [default] Returning: 0

2019-08-27 15:40:47,706 INFO [default] Start int LargerValue(int, int)

2019-08-27 15:40:47,706 INFO [default] Start Params: 55 , 0

2019-08-27 15:40:47,706 INFO [default] End int LargerValue(int, int)

2019-08-27 15:40:47,706 INFO [default] Returning: 55

2019-08-27 15:40:47,706 INFO [default] Start int LargerValue(int, int)

2019-08-27 15:40:47,706 INFO [default] Start Params: 5 , 100

2019-08-27 15:40:47,706 INFO [default] End int LargerValue(int, int)

2019-08-27 15:40:47,706 INFO [default] Returning: 100

2019-08-27 15:40:47,706 INFO [default] Start void LargerValue(long unsigned int, long unsigned int, long unsigned int&)

2019-08-27 15:40:47,706 INFO [default] Start Params: 2000000000 , 3000000000 , 94312189967432

2019-08-27 15:40:47,706 INFO [default] End void LargerValue(long unsigned int, long unsigned int, long unsigned int&)

2019-08-27 15:40:47,706 INFO [default] End Params: 2000000000 , 3000000000 , 3000000000

2019-08-27 15:40:47,706 INFO [default] Start void LargerValue(long unsigned int, long unsigned int, long unsigned int&)

2019-08-27 15:40:47,706 INFO [default] Start Params: 3000000000 , 2000000000 , 3000000000

2019-08-27 15:40:47,706 INFO [default] End void LargerValue(long unsigned int, long unsigned int, long unsigned int&)

2019-08-27 15:40:47,706 INFO [default] End Params: 3000000000 , 2000000000 , 3000000000

Example 6 File: main6.cpp


#include "cmpslib19.h"
#include "easylogging++.h"
INITIALIZE_EASYLOGGINGPP



#define ARRAYSIZE 50

	template<class T>
void SortArray(T * data, int count,bool decending = false)
{
	LOG(INFO) << "Start " <<  __PRETTY_FUNCTION__ << endl;

	if(NULL == data)
		LOG(ERROR) << "the pointer to the array is NULL , you cant sort something if the pointer to it is null    \
			this is a good example of a HIGH importance thing to log because it will cause problems later in this function \
			" ;




	int NumberOfValuesSwappedThisPass=1;// cant be zero or it wont loop the first time
	int  NumberOfPasses=0;
	if(decending)
	{
		LOG(INFO)  << "Sorting the array in decending order \n"; // not a high priority more of an informative message
	}
	else
	{
		LOG(INFO) << "Sorting the array ascending order \n";
	}

	// sort decending
	while (NumberOfValuesSwappedThisPass != 0)
	{
		NumberOfValuesSwappedThisPass=0;
		NumberOfPasses++;
		for(int Loop=0; Loop<count-1; Loop++)
			if (  (decending)?   data[Loop] < data[Loop+1]:data[Loop]>data[Loop+1]  )
			{
				LOG(INFO) << "Swaping postion " << Loop << " and " << Loop+1 << endl;
				std::swap(data[Loop],data[Loop+1]);
				NumberOfValuesSwappedThisPass++;
			}

		LOG(WARNING) << "--At the end of pass " << NumberOfPasses << " through the array, swapped " << NumberOfValuesSwappedThisPass << " values \n";
	}


	LOG(INFO) << "End " <<  __PRETTY_FUNCTION__ << endl;
}

unsigned int RND_SEED=0;
int CreateARandomNumber(int min, int max)
{
	LOG(INFO) << "Start " <<  __PRETTY_FUNCTION__ << endl;
	if (! RND_SEED)
	{
		RND_SEED=time(NULL);
		srand(RND_SEED);
	}
	int temp = ( ( rand() % (max-min+1) ) + min);
	LOG(INFO) << "End " <<  __PRETTY_FUNCTION__ << endl;
	return temp;
}


struct simplestruct
{
	int somevalue;
};



int main()
{
  // set up the logger
  el::Configurations LGR;
  LGR.setToDefault();// load current configuration
  #if LOGGING ==ON
    LGR.setGlobally(el::ConfigurationType::Filename,"main6.log");// set logname
    LGR.set(el::Level::Info,el::ConfigurationType::ToStandardOutput,"false");// dont push LOG (INFO) to console
  #else
    LGR.setGlobally(el::ConfigurationType::Enabled,"false");// disable all the logging
  #endif
  el::Loggers::reconfigureLogger("default", LGR);// store new configuration



	int iaData[ARRAYSIZE];

	LOG (INFO) << "Preparing to fill array with random numbers";// just print out some text
	for (int loop=0; loop<ARRAYSIZE; loop++)
	{
		int temp = CreateARandomNumber(1,ARRAYSIZE);

		LOG (INFO) << "Storing " << temp << "into iData["<< loop <<"] \n";// log some data with a couple variables
		iaData[loop]=temp;
	}

	SortArray(iaData,ARRAYSIZE,false);

	for (int loop=0; loop<ARRAYSIZE; loop++)
	{
		cout << "iaData[" << loop << "]=" << iaData[loop] << endl;
	}

	return 0;
}





output of main6.log File: main6.log

2019-08-27 15:40:48,821 INFO [default] Preparing to fill array with random numbers
2019-08-27 15:40:48,821 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] Storing 14into iData[0] 

2019-08-27 15:40:48,821 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] Storing 9into iData[1] 

2019-08-27 15:40:48,821 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] Storing 1into iData[2] 

2019-08-27 15:40:48,821 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] Storing 23into iData[3] 

2019-08-27 15:40:48,821 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] Storing 1into iData[4] 

2019-08-27 15:40:48,821 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] Storing 32into iData[5] 

2019-08-27 15:40:48,821 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] Storing 42into iData[6] 

2019-08-27 15:40:48,821 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] Storing 23into iData[7] 

2019-08-27 15:40:48,821 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] Storing 30into iData[8] 

2019-08-27 15:40:48,821 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] Storing 24into iData[9] 

2019-08-27 15:40:48,821 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] Storing 26into iData[10] 

2019-08-27 15:40:48,821 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] Storing 47into iData[11] 

2019-08-27 15:40:48,821 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] Storing 21into iData[12] 

2019-08-27 15:40:48,821 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] Storing 15into iData[13] 

2019-08-27 15:40:48,821 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] Storing 2into iData[14] 

2019-08-27 15:40:48,821 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] Storing 37into iData[15] 

2019-08-27 15:40:48,821 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,821 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] Storing 16into iData[16] 

2019-08-27 15:40:48,822 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] Storing 36into iData[17] 

2019-08-27 15:40:48,822 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] Storing 21into iData[18] 

2019-08-27 15:40:48,822 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] Storing 34into iData[19] 

2019-08-27 15:40:48,822 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] Storing 24into iData[20] 

2019-08-27 15:40:48,822 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] Storing 6into iData[21] 

2019-08-27 15:40:48,822 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] Storing 10into iData[22] 

2019-08-27 15:40:48,822 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] Storing 31into iData[23] 

2019-08-27 15:40:48,822 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] Storing 14into iData[24] 

2019-08-27 15:40:48,822 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] Storing 23into iData[25] 

2019-08-27 15:40:48,822 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] Storing 30into iData[26] 

2019-08-27 15:40:48,822 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] Storing 8into iData[27] 

2019-08-27 15:40:48,822 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] Storing 40into iData[28] 

2019-08-27 15:40:48,822 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] Storing 25into iData[29] 

2019-08-27 15:40:48,822 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] Storing 17into iData[30] 

2019-08-27 15:40:48,822 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] Storing 5into iData[31] 

2019-08-27 15:40:48,822 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] Storing 36into iData[32] 

2019-08-27 15:40:48,822 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] Storing 19into iData[33] 

2019-08-27 15:40:48,822 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] Storing 29into iData[34] 

2019-08-27 15:40:48,822 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] Storing 36into iData[35] 

2019-08-27 15:40:48,822 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] Storing 50into iData[36] 

2019-08-27 15:40:48,822 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] Storing 20into iData[37] 

2019-08-27 15:40:48,822 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,822 INFO [default] Storing 9into iData[38] 

2019-08-27 15:40:48,823 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,823 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,823 INFO [default] Storing 30into iData[39] 

2019-08-27 15:40:48,823 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,823 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,823 INFO [default] Storing 46into iData[40] 

2019-08-27 15:40:48,823 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,823 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,823 INFO [default] Storing 34into iData[41] 

2019-08-27 15:40:48,823 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,823 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,823 INFO [default] Storing 28into iData[42] 

2019-08-27 15:40:48,823 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,823 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,823 INFO [default] Storing 18into iData[43] 

2019-08-27 15:40:48,823 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,823 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,823 INFO [default] Storing 49into iData[44] 

2019-08-27 15:40:48,823 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,823 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,823 INFO [default] Storing 29into iData[45] 

2019-08-27 15:40:48,823 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,823 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,823 INFO [default] Storing 5into iData[46] 

2019-08-27 15:40:48,823 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,823 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,823 INFO [default] Storing 16into iData[47] 

2019-08-27 15:40:48,823 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,823 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,823 INFO [default] Storing 14into iData[48] 

2019-08-27 15:40:48,823 INFO [default] Start int CreateARandomNumber(int, int)

2019-08-27 15:40:48,823 INFO [default] End int CreateARandomNumber(int, int)

2019-08-27 15:40:48,823 INFO [default] Storing 25into iData[49] 

2019-08-27 15:40:48,823 INFO [default] Start void SortArray(T*, int, bool) [with T = int]

2019-08-27 15:40:48,823 INFO [default] Sorting the array ascending order 

2019-08-27 15:40:48,823 INFO [default] Swaping postion 0 and 1

2019-08-27 15:40:48,823 INFO [default] Swaping postion 1 and 2

2019-08-27 15:40:48,823 INFO [default] Swaping postion 3 and 4

2019-08-27 15:40:48,823 INFO [default] Swaping postion 6 and 7

2019-08-27 15:40:48,823 INFO [default] Swaping postion 7 and 8

2019-08-27 15:40:48,823 INFO [default] Swaping postion 8 and 9

2019-08-27 15:40:48,823 INFO [default] Swaping postion 9 and 10

2019-08-27 15:40:48,823 INFO [default] Swaping postion 11 and 12

2019-08-27 15:40:48,823 INFO [default] Swaping postion 12 and 13

2019-08-27 15:40:48,823 INFO [default] Swaping postion 13 and 14

2019-08-27 15:40:48,823 INFO [default] Swaping postion 14 and 15

2019-08-27 15:40:48,823 INFO [default] Swaping postion 15 and 16

2019-08-27 15:40:48,823 INFO [default] Swaping postion 16 and 17

2019-08-27 15:40:48,823 INFO [default] Swaping postion 17 and 18

2019-08-27 15:40:48,823 INFO [default] Swaping postion 18 and 19

2019-08-27 15:40:48,823 INFO [default] Swaping postion 19 and 20

2019-08-27 15:40:48,823 INFO [default] Swaping postion 20 and 21

2019-08-27 15:40:48,823 INFO [default] Swaping postion 21 and 22

2019-08-27 15:40:48,823 INFO [default] Swaping postion 22 and 23

2019-08-27 15:40:48,823 INFO [default] Swaping postion 23 and 24

2019-08-27 15:40:48,823 INFO [default] Swaping postion 24 and 25

2019-08-27 15:40:48,823 INFO [default] Swaping postion 25 and 26

2019-08-27 15:40:48,823 INFO [default] Swaping postion 26 and 27

2019-08-27 15:40:48,823 INFO [default] Swaping postion 27 and 28

2019-08-27 15:40:48,823 INFO [default] Swaping postion 28 and 29

2019-08-27 15:40:48,823 INFO [default] Swaping postion 29 and 30

2019-08-27 15:40:48,823 INFO [default] Swaping postion 30 and 31

2019-08-27 15:40:48,823 INFO [default] Swaping postion 31 and 32

2019-08-27 15:40:48,823 INFO [default] Swaping postion 32 and 33

2019-08-27 15:40:48,823 INFO [default] Swaping postion 33 and 34

2019-08-27 15:40:48,823 INFO [default] Swaping postion 34 and 35

2019-08-27 15:40:48,823 INFO [default] Swaping postion 36 and 37

2019-08-27 15:40:48,824 INFO [default] Swaping postion 37 and 38

2019-08-27 15:40:48,824 INFO [default] Swaping postion 38 and 39

2019-08-27 15:40:48,824 INFO [default] Swaping postion 39 and 40

2019-08-27 15:40:48,824 INFO [default] Swaping postion 40 and 41

2019-08-27 15:40:48,824 INFO [default] Swaping postion 41 and 42

2019-08-27 15:40:48,824 INFO [default] Swaping postion 42 and 43

2019-08-27 15:40:48,824 INFO [default] Swaping postion 43 and 44

2019-08-27 15:40:48,824 INFO [default] Swaping postion 44 and 45

2019-08-27 15:40:48,824 INFO [default] Swaping postion 45 and 46

2019-08-27 15:40:48,824 INFO [default] Swaping postion 46 and 47

2019-08-27 15:40:48,824 INFO [default] Swaping postion 47 and 48

2019-08-27 15:40:48,824 INFO [default] Swaping postion 48 and 49

2019-08-27 15:40:48,824 WARNING [default] --At the end of pass 1 through the array, swapped 44 values 

2019-08-27 15:40:48,824 INFO [default] Swaping postion 0 and 1

2019-08-27 15:40:48,824 INFO [default] Swaping postion 2 and 3

2019-08-27 15:40:48,824 INFO [default] Swaping postion 5 and 6

2019-08-27 15:40:48,824 INFO [default] Swaping postion 6 and 7

2019-08-27 15:40:48,824 INFO [default] Swaping postion 7 and 8

2019-08-27 15:40:48,824 INFO [default] Swaping postion 8 and 9

2019-08-27 15:40:48,824 INFO [default] Swaping postion 10 and 11

2019-08-27 15:40:48,824 INFO [default] Swaping postion 11 and 12

2019-08-27 15:40:48,824 INFO [default] Swaping postion 12 and 13

2019-08-27 15:40:48,824 INFO [default] Swaping postion 13 and 14

2019-08-27 15:40:48,824 INFO [default] Swaping postion 14 and 15

2019-08-27 15:40:48,824 INFO [default] Swaping postion 15 and 16

2019-08-27 15:40:48,824 INFO [default] Swaping postion 16 and 17

2019-08-27 15:40:48,824 INFO [default] Swaping postion 17 and 18

2019-08-27 15:40:48,824 INFO [default] Swaping postion 18 and 19

2019-08-27 15:40:48,824 INFO [default] Swaping postion 19 and 20

2019-08-27 15:40:48,824 INFO [default] Swaping postion 20 and 21

2019-08-27 15:40:48,824 INFO [default] Swaping postion 21 and 22

2019-08-27 15:40:48,824 INFO [default] Swaping postion 22 and 23

2019-08-27 15:40:48,824 INFO [default] Swaping postion 23 and 24

2019-08-27 15:40:48,824 INFO [default] Swaping postion 24 and 25

2019-08-27 15:40:48,824 INFO [default] Swaping postion 25 and 26

2019-08-27 15:40:48,824 INFO [default] Swaping postion 26 and 27

2019-08-27 15:40:48,824 INFO [default] Swaping postion 27 and 28

2019-08-27 15:40:48,824 INFO [default] Swaping postion 28 and 29

2019-08-27 15:40:48,824 INFO [default] Swaping postion 29 and 30

2019-08-27 15:40:48,824 INFO [default] Swaping postion 30 and 31

2019-08-27 15:40:48,824 INFO [default] Swaping postion 31 and 32

2019-08-27 15:40:48,824 INFO [default] Swaping postion 32 and 33

2019-08-27 15:40:48,824 INFO [default] Swaping postion 33 and 34

2019-08-27 15:40:48,824 INFO [default] Swaping postion 35 and 36

2019-08-27 15:40:48,824 INFO [default] Swaping postion 36 and 37

2019-08-27 15:40:48,824 INFO [default] Swaping postion 37 and 38

2019-08-27 15:40:48,824 INFO [default] Swaping postion 38 and 39

2019-08-27 15:40:48,824 INFO [default] Swaping postion 39 and 40

2019-08-27 15:40:48,824 INFO [default] Swaping postion 40 and 41

2019-08-27 15:40:48,824 INFO [default] Swaping postion 41 and 42

2019-08-27 15:40:48,824 INFO [default] Swaping postion 43 and 44

2019-08-27 15:40:48,824 INFO [default] Swaping postion 44 and 45

2019-08-27 15:40:48,824 INFO [default] Swaping postion 45 and 46

2019-08-27 15:40:48,824 INFO [default] Swaping postion 46 and 47

2019-08-27 15:40:48,824 INFO [default] Swaping postion 47 and 48

2019-08-27 15:40:48,824 WARNING [default] --At the end of pass 2 through the array, swapped 42 values 

2019-08-27 15:40:48,824 INFO [default] Swaping postion 1 and 2

2019-08-27 15:40:48,824 INFO [default] Swaping postion 6 and 7

2019-08-27 15:40:48,824 INFO [default] Swaping postion 7 and 8

2019-08-27 15:40:48,824 INFO [default] Swaping postion 9 and 10

2019-08-27 15:40:48,824 INFO [default] Swaping postion 10 and 11

2019-08-27 15:40:48,824 INFO [default] Swaping postion 11 and 12

2019-08-27 15:40:48,824 INFO [default] Swaping postion 13 and 14

2019-08-27 15:40:48,825 INFO [default] Swaping postion 14 and 15

2019-08-27 15:40:48,825 INFO [default] Swaping postion 15 and 16

2019-08-27 15:40:48,825 INFO [default] Swaping postion 16 and 17

2019-08-27 15:40:48,825 INFO [default] Swaping postion 17 and 18

2019-08-27 15:40:48,825 INFO [default] Swaping postion 18 and 19

2019-08-27 15:40:48,825 INFO [default] Swaping postion 19 and 20

2019-08-27 15:40:48,825 INFO [default] Swaping postion 20 and 21

2019-08-27 15:40:48,825 INFO [default] Swaping postion 21 and 22

2019-08-27 15:40:48,825 INFO [default] Swaping postion 22 and 23

2019-08-27 15:40:48,825 INFO [default] Swaping postion 23 and 24

2019-08-27 15:40:48,825 INFO [default] Swaping postion 24 and 25

2019-08-27 15:40:48,825 INFO [default] Swaping postion 26 and 27

2019-08-27 15:40:48,825 INFO [default] Swaping postion 27 and 28

2019-08-27 15:40:48,825 INFO [default] Swaping postion 28 and 29

2019-08-27 15:40:48,825 INFO [default] Swaping postion 29 and 30

2019-08-27 15:40:48,825 INFO [default] Swaping postion 30 and 31

2019-08-27 15:40:48,825 INFO [default] Swaping postion 31 and 32

2019-08-27 15:40:48,825 INFO [default] Swaping postion 32 and 33

2019-08-27 15:40:48,825 INFO [default] Swaping postion 34 and 35

2019-08-27 15:40:48,825 INFO [default] Swaping postion 35 and 36

2019-08-27 15:40:48,825 INFO [default] Swaping postion 36 and 37

2019-08-27 15:40:48,825 INFO [default] Swaping postion 38 and 39

2019-08-27 15:40:48,825 INFO [default] Swaping postion 39 and 40

2019-08-27 15:40:48,825 INFO [default] Swaping postion 40 and 41

2019-08-27 15:40:48,825 INFO [default] Swaping postion 42 and 43

2019-08-27 15:40:48,825 INFO [default] Swaping postion 43 and 44

2019-08-27 15:40:48,825 INFO [default] Swaping postion 44 and 45

2019-08-27 15:40:48,825 INFO [default] Swaping postion 45 and 46

2019-08-27 15:40:48,825 INFO [default] Swaping postion 46 and 47

2019-08-27 15:40:48,825 WARNING [default] --At the end of pass 3 through the array, swapped 36 values 

2019-08-27 15:40:48,825 INFO [default] Swaping postion 8 and 9

2019-08-27 15:40:48,825 INFO [default] Swaping postion 9 and 10

2019-08-27 15:40:48,825 INFO [default] Swaping postion 10 and 11

2019-08-27 15:40:48,825 INFO [default] Swaping postion 12 and 13

2019-08-27 15:40:48,825 INFO [default] Swaping postion 14 and 15

2019-08-27 15:40:48,825 INFO [default] Swaping postion 15 and 16

2019-08-27 15:40:48,825 INFO [default] Swaping postion 16 and 17

2019-08-27 15:40:48,825 INFO [default] Swaping postion 17 and 18

2019-08-27 15:40:48,825 INFO [default] Swaping postion 18 and 19

2019-08-27 15:40:48,825 INFO [default] Swaping postion 19 and 20

2019-08-27 15:40:48,825 INFO [default] Swaping postion 20 and 21

2019-08-27 15:40:48,825 INFO [default] Swaping postion 21 and 22

2019-08-27 15:40:48,825 INFO [default] Swaping postion 22 and 23

2019-08-27 15:40:48,825 INFO [default] Swaping postion 23 and 24

2019-08-27 15:40:48,825 INFO [default] Swaping postion 25 and 26

2019-08-27 15:40:48,825 INFO [default] Swaping postion 26 and 27

2019-08-27 15:40:48,825 INFO [default] Swaping postion 27 and 28

2019-08-27 15:40:48,825 INFO [default] Swaping postion 28 and 29

2019-08-27 15:40:48,825 INFO [default] Swaping postion 29 and 30

2019-08-27 15:40:48,825 INFO [default] Swaping postion 30 and 31

2019-08-27 15:40:48,825 INFO [default] Swaping postion 31 and 32

2019-08-27 15:40:48,825 INFO [default] Swaping postion 33 and 34

2019-08-27 15:40:48,825 INFO [default] Swaping postion 34 and 35

2019-08-27 15:40:48,825 INFO [default] Swaping postion 35 and 36

2019-08-27 15:40:48,825 INFO [default] Swaping postion 37 and 38

2019-08-27 15:40:48,825 INFO [default] Swaping postion 38 and 39

2019-08-27 15:40:48,825 INFO [default] Swaping postion 39 and 40

2019-08-27 15:40:48,825 INFO [default] Swaping postion 41 and 42

2019-08-27 15:40:48,825 INFO [default] Swaping postion 42 and 43

2019-08-27 15:40:48,825 INFO [default] Swaping postion 43 and 44

2019-08-27 15:40:48,825 INFO [default] Swaping postion 44 and 45

2019-08-27 15:40:48,825 INFO [default] Swaping postion 45 and 46

2019-08-27 15:40:48,825 WARNING [default] --At the end of pass 4 through the array, swapped 32 values 

2019-08-27 15:40:48,825 INFO [default] Swaping postion 7 and 8

2019-08-27 15:40:48,826 INFO [default] Swaping postion 8 and 9

2019-08-27 15:40:48,826 INFO [default] Swaping postion 9 and 10

2019-08-27 15:40:48,826 INFO [default] Swaping postion 11 and 12

2019-08-27 15:40:48,826 INFO [default] Swaping postion 13 and 14

2019-08-27 15:40:48,826 INFO [default] Swaping postion 15 and 16

2019-08-27 15:40:48,826 INFO [default] Swaping postion 16 and 17

2019-08-27 15:40:48,826 INFO [default] Swaping postion 17 and 18

2019-08-27 15:40:48,826 INFO [default] Swaping postion 18 and 19

2019-08-27 15:40:48,826 INFO [default] Swaping postion 19 and 20

2019-08-27 15:40:48,826 INFO [default] Swaping postion 20 and 21

2019-08-27 15:40:48,826 INFO [default] Swaping postion 21 and 22

2019-08-27 15:40:48,826 INFO [default] Swaping postion 22 and 23

2019-08-27 15:40:48,826 INFO [default] Swaping postion 24 and 25

2019-08-27 15:40:48,826 INFO [default] Swaping postion 25 and 26

2019-08-27 15:40:48,826 INFO [default] Swaping postion 26 and 27

2019-08-27 15:40:48,826 INFO [default] Swaping postion 28 and 29

2019-08-27 15:40:48,826 INFO [default] Swaping postion 29 and 30

2019-08-27 15:40:48,826 INFO [default] Swaping postion 32 and 33

2019-08-27 15:40:48,826 INFO [default] Swaping postion 33 and 34

2019-08-27 15:40:48,826 INFO [default] Swaping postion 34 and 35

2019-08-27 15:40:48,826 INFO [default] Swaping postion 36 and 37

2019-08-27 15:40:48,826 INFO [default] Swaping postion 37 and 38

2019-08-27 15:40:48,826 INFO [default] Swaping postion 38 and 39

2019-08-27 15:40:48,826 INFO [default] Swaping postion 40 and 41

2019-08-27 15:40:48,826 INFO [default] Swaping postion 41 and 42

2019-08-27 15:40:48,826 INFO [default] Swaping postion 42 and 43

2019-08-27 15:40:48,826 INFO [default] Swaping postion 43 and 44

2019-08-27 15:40:48,826 INFO [default] Swaping postion 44 and 45

2019-08-27 15:40:48,826 WARNING [default] --At the end of pass 5 through the array, swapped 29 values 

2019-08-27 15:40:48,826 INFO [default] Swaping postion 6 and 7

2019-08-27 15:40:48,826 INFO [default] Swaping postion 7 and 8

2019-08-27 15:40:48,826 INFO [default] Swaping postion 8 and 9

2019-08-27 15:40:48,826 INFO [default] Swaping postion 10 and 11

2019-08-27 15:40:48,826 INFO [default] Swaping postion 12 and 13

2019-08-27 15:40:48,826 INFO [default] Swaping postion 14 and 15

2019-08-27 15:40:48,826 INFO [default] Swaping postion 15 and 16

2019-08-27 15:40:48,826 INFO [default] Swaping postion 16 and 17

2019-08-27 15:40:48,826 INFO [default] Swaping postion 17 and 18

2019-08-27 15:40:48,826 INFO [default] Swaping postion 18 and 19

2019-08-27 15:40:48,826 INFO [default] Swaping postion 19 and 20

2019-08-27 15:40:48,826 INFO [default] Swaping postion 20 and 21

2019-08-27 15:40:48,826 INFO [default] Swaping postion 21 and 22

2019-08-27 15:40:48,826 INFO [default] Swaping postion 23 and 24

2019-08-27 15:40:48,826 INFO [default] Swaping postion 24 and 25

2019-08-27 15:40:48,826 INFO [default] Swaping postion 25 and 26

2019-08-27 15:40:48,826 INFO [default] Swaping postion 27 and 28

2019-08-27 15:40:48,826 INFO [default] Swaping postion 28 and 29

2019-08-27 15:40:48,826 INFO [default] Swaping postion 31 and 32

2019-08-27 15:40:48,826 INFO [default] Swaping postion 32 and 33

2019-08-27 15:40:48,826 INFO [default] Swaping postion 33 and 34

2019-08-27 15:40:48,826 INFO [default] Swaping postion 35 and 36

2019-08-27 15:40:48,826 INFO [default] Swaping postion 36 and 37

2019-08-27 15:40:48,826 INFO [default] Swaping postion 37 and 38

2019-08-27 15:40:48,826 INFO [default] Swaping postion 39 and 40

2019-08-27 15:40:48,826 INFO [default] Swaping postion 40 and 41

2019-08-27 15:40:48,826 INFO [default] Swaping postion 41 and 42

2019-08-27 15:40:48,826 INFO [default] Swaping postion 42 and 43

2019-08-27 15:40:48,826 INFO [default] Swaping postion 43 and 44

2019-08-27 15:40:48,826 WARNING [default] --At the end of pass 6 through the array, swapped 29 values 

2019-08-27 15:40:48,826 INFO [default] Swaping postion 5 and 6

2019-08-27 15:40:48,826 INFO [default] Swaping postion 6 and 7

2019-08-27 15:40:48,826 INFO [default] Swaping postion 7 and 8

2019-08-27 15:40:48,826 INFO [default] Swaping postion 9 and 10

2019-08-27 15:40:48,826 INFO [default] Swaping postion 11 and 12

2019-08-27 15:40:48,827 INFO [default] Swaping postion 13 and 14

2019-08-27 15:40:48,827 INFO [default] Swaping postion 14 and 15

2019-08-27 15:40:48,827 INFO [default] Swaping postion 15 and 16

2019-08-27 15:40:48,827 INFO [default] Swaping postion 17 and 18

2019-08-27 15:40:48,827 INFO [default] Swaping postion 18 and 19

2019-08-27 15:40:48,827 INFO [default] Swaping postion 19 and 20

2019-08-27 15:40:48,827 INFO [default] Swaping postion 20 and 21

2019-08-27 15:40:48,827 INFO [default] Swaping postion 22 and 23

2019-08-27 15:40:48,827 INFO [default] Swaping postion 23 and 24

2019-08-27 15:40:48,827 INFO [default] Swaping postion 24 and 25

2019-08-27 15:40:48,827 INFO [default] Swaping postion 26 and 27

2019-08-27 15:40:48,827 INFO [default] Swaping postion 27 and 28

2019-08-27 15:40:48,827 INFO [default] Swaping postion 30 and 31

2019-08-27 15:40:48,827 INFO [default] Swaping postion 31 and 32

2019-08-27 15:40:48,827 INFO [default] Swaping postion 32 and 33

2019-08-27 15:40:48,827 INFO [default] Swaping postion 34 and 35

2019-08-27 15:40:48,827 INFO [default] Swaping postion 35 and 36

2019-08-27 15:40:48,827 INFO [default] Swaping postion 36 and 37

2019-08-27 15:40:48,827 INFO [default] Swaping postion 38 and 39

2019-08-27 15:40:48,827 INFO [default] Swaping postion 39 and 40

2019-08-27 15:40:48,827 INFO [default] Swaping postion 40 and 41

2019-08-27 15:40:48,827 INFO [default] Swaping postion 41 and 42

2019-08-27 15:40:48,827 INFO [default] Swaping postion 42 and 43

2019-08-27 15:40:48,827 WARNING [default] --At the end of pass 7 through the array, swapped 28 values 

2019-08-27 15:40:48,827 INFO [default] Swaping postion 4 and 5

2019-08-27 15:40:48,827 INFO [default] Swaping postion 5 and 6

2019-08-27 15:40:48,827 INFO [default] Swaping postion 6 and 7

2019-08-27 15:40:48,827 INFO [default] Swaping postion 8 and 9

2019-08-27 15:40:48,827 INFO [default] Swaping postion 10 and 11

2019-08-27 15:40:48,827 INFO [default] Swaping postion 12 and 13

2019-08-27 15:40:48,827 INFO [default] Swaping postion 13 and 14

2019-08-27 15:40:48,827 INFO [default] Swaping postion 14 and 15

2019-08-27 15:40:48,827 INFO [default] Swaping postion 16 and 17

2019-08-27 15:40:48,827 INFO [default] Swaping postion 17 and 18

2019-08-27 15:40:48,827 INFO [default] Swaping postion 19 and 20

2019-08-27 15:40:48,827 INFO [default] Swaping postion 21 and 22

2019-08-27 15:40:48,827 INFO [default] Swaping postion 22 and 23

2019-08-27 15:40:48,827 INFO [default] Swaping postion 23 and 24

2019-08-27 15:40:48,827 INFO [default] Swaping postion 25 and 26

2019-08-27 15:40:48,827 INFO [default] Swaping postion 26 and 27

2019-08-27 15:40:48,827 INFO [default] Swaping postion 29 and 30

2019-08-27 15:40:48,827 INFO [default] Swaping postion 30 and 31

2019-08-27 15:40:48,827 INFO [default] Swaping postion 31 and 32

2019-08-27 15:40:48,827 INFO [default] Swaping postion 33 and 34

2019-08-27 15:40:48,827 INFO [default] Swaping postion 34 and 35

2019-08-27 15:40:48,827 INFO [default] Swaping postion 35 and 36

2019-08-27 15:40:48,827 INFO [default] Swaping postion 37 and 38

2019-08-27 15:40:48,827 INFO [default] Swaping postion 38 and 39

2019-08-27 15:40:48,827 INFO [default] Swaping postion 39 and 40

2019-08-27 15:40:48,827 INFO [default] Swaping postion 40 and 41

2019-08-27 15:40:48,827 INFO [default] Swaping postion 41 and 42

2019-08-27 15:40:48,827 WARNING [default] --At the end of pass 8 through the array, swapped 27 values 

2019-08-27 15:40:48,827 INFO [default] Swaping postion 4 and 5

2019-08-27 15:40:48,827 INFO [default] Swaping postion 5 and 6

2019-08-27 15:40:48,827 INFO [default] Swaping postion 7 and 8

2019-08-27 15:40:48,827 INFO [default] Swaping postion 9 and 10

2019-08-27 15:40:48,827 INFO [default] Swaping postion 12 and 13

2019-08-27 15:40:48,827 INFO [default] Swaping postion 13 and 14

2019-08-27 15:40:48,827 INFO [default] Swaping postion 15 and 16

2019-08-27 15:40:48,827 INFO [default] Swaping postion 16 and 17

2019-08-27 15:40:48,827 INFO [default] Swaping postion 18 and 19

2019-08-27 15:40:48,827 INFO [default] Swaping postion 20 and 21

2019-08-27 15:40:48,827 INFO [default] Swaping postion 21 and 22

2019-08-27 15:40:48,827 INFO [default] Swaping postion 22 and 23

2019-08-27 15:40:48,827 INFO [default] Swaping postion 24 and 25

2019-08-27 15:40:48,828 INFO [default] Swaping postion 25 and 26

2019-08-27 15:40:48,828 INFO [default] Swaping postion 28 and 29

2019-08-27 15:40:48,828 INFO [default] Swaping postion 29 and 30

2019-08-27 15:40:48,828 INFO [default] Swaping postion 30 and 31

2019-08-27 15:40:48,828 INFO [default] Swaping postion 32 and 33

2019-08-27 15:40:48,828 INFO [default] Swaping postion 33 and 34

2019-08-27 15:40:48,828 INFO [default] Swaping postion 34 and 35

2019-08-27 15:40:48,828 INFO [default] Swaping postion 36 and 37

2019-08-27 15:40:48,828 INFO [default] Swaping postion 37 and 38

2019-08-27 15:40:48,828 INFO [default] Swaping postion 38 and 39

2019-08-27 15:40:48,828 INFO [default] Swaping postion 39 and 40

2019-08-27 15:40:48,828 INFO [default] Swaping postion 40 and 41

2019-08-27 15:40:48,828 WARNING [default] --At the end of pass 9 through the array, swapped 25 values 

2019-08-27 15:40:48,828 INFO [default] Swaping postion 4 and 5

2019-08-27 15:40:48,828 INFO [default] Swaping postion 6 and 7

2019-08-27 15:40:48,828 INFO [default] Swaping postion 8 and 9

2019-08-27 15:40:48,828 INFO [default] Swaping postion 11 and 12

2019-08-27 15:40:48,828 INFO [default] Swaping postion 12 and 13

2019-08-27 15:40:48,828 INFO [default] Swaping postion 14 and 15

2019-08-27 15:40:48,828 INFO [default] Swaping postion 15 and 16

2019-08-27 15:40:48,828 INFO [default] Swaping postion 17 and 18

2019-08-27 15:40:48,828 INFO [default] Swaping postion 19 and 20

2019-08-27 15:40:48,828 INFO [default] Swaping postion 20 and 21

2019-08-27 15:40:48,828 INFO [default] Swaping postion 21 and 22

2019-08-27 15:40:48,828 INFO [default] Swaping postion 23 and 24

2019-08-27 15:40:48,828 INFO [default] Swaping postion 24 and 25

2019-08-27 15:40:48,828 INFO [default] Swaping postion 27 and 28

2019-08-27 15:40:48,828 INFO [default] Swaping postion 28 and 29

2019-08-27 15:40:48,828 INFO [default] Swaping postion 29 and 30

2019-08-27 15:40:48,828 INFO [default] Swaping postion 32 and 33

2019-08-27 15:40:48,828 INFO [default] Swaping postion 33 and 34

2019-08-27 15:40:48,828 INFO [default] Swaping postion 35 and 36

2019-08-27 15:40:48,828 INFO [default] Swaping postion 36 and 37

2019-08-27 15:40:48,828 INFO [default] Swaping postion 37 and 38

2019-08-27 15:40:48,828 INFO [default] Swaping postion 38 and 39

2019-08-27 15:40:48,828 INFO [default] Swaping postion 39 and 40

2019-08-27 15:40:48,828 WARNING [default] --At the end of pass 10 through the array, swapped 23 values 

2019-08-27 15:40:48,828 INFO [default] Swaping postion 3 and 4

2019-08-27 15:40:48,828 INFO [default] Swaping postion 10 and 11

2019-08-27 15:40:48,828 INFO [default] Swaping postion 11 and 12

2019-08-27 15:40:48,828 INFO [default] Swaping postion 13 and 14

2019-08-27 15:40:48,828 INFO [default] Swaping postion 14 and 15

2019-08-27 15:40:48,828 INFO [default] Swaping postion 16 and 17

2019-08-27 15:40:48,828 INFO [default] Swaping postion 18 and 19

2019-08-27 15:40:48,828 INFO [default] Swaping postion 19 and 20

2019-08-27 15:40:48,828 INFO [default] Swaping postion 20 and 21

2019-08-27 15:40:48,828 INFO [default] Swaping postion 22 and 23

2019-08-27 15:40:48,828 INFO [default] Swaping postion 23 and 24

2019-08-27 15:40:48,828 INFO [default] Swaping postion 26 and 27

2019-08-27 15:40:48,828 INFO [default] Swaping postion 27 and 28

2019-08-27 15:40:48,828 INFO [default] Swaping postion 28 and 29

2019-08-27 15:40:48,828 INFO [default] Swaping postion 31 and 32

2019-08-27 15:40:48,828 INFO [default] Swaping postion 32 and 33

2019-08-27 15:40:48,828 INFO [default] Swaping postion 34 and 35

2019-08-27 15:40:48,828 INFO [default] Swaping postion 35 and 36

2019-08-27 15:40:48,828 INFO [default] Swaping postion 36 and 37

2019-08-27 15:40:48,828 INFO [default] Swaping postion 37 and 38

2019-08-27 15:40:48,828 INFO [default] Swaping postion 38 and 39

2019-08-27 15:40:48,828 WARNING [default] --At the end of pass 11 through the array, swapped 21 values 

2019-08-27 15:40:48,828 INFO [default] Swaping postion 2 and 3

2019-08-27 15:40:48,828 INFO [default] Swaping postion 9 and 10

2019-08-27 15:40:48,828 INFO [default] Swaping postion 10 and 11

2019-08-27 15:40:48,828 INFO [default] Swaping postion 12 and 13

2019-08-27 15:40:48,828 INFO [default] Swaping postion 15 and 16

2019-08-27 15:40:48,829 INFO [default] Swaping postion 18 and 19

2019-08-27 15:40:48,829 INFO [default] Swaping postion 19 and 20

2019-08-27 15:40:48,829 INFO [default] Swaping postion 21 and 22

2019-08-27 15:40:48,829 INFO [default] Swaping postion 25 and 26

2019-08-27 15:40:48,829 INFO [default] Swaping postion 26 and 27

2019-08-27 15:40:48,829 INFO [default] Swaping postion 30 and 31

2019-08-27 15:40:48,829 INFO [default] Swaping postion 31 and 32

2019-08-27 15:40:48,829 INFO [default] Swaping postion 33 and 34

2019-08-27 15:40:48,829 INFO [default] Swaping postion 34 and 35

2019-08-27 15:40:48,829 INFO [default] Swaping postion 35 and 36

2019-08-27 15:40:48,829 INFO [default] Swaping postion 36 and 37

2019-08-27 15:40:48,829 INFO [default] Swaping postion 37 and 38

2019-08-27 15:40:48,829 WARNING [default] --At the end of pass 12 through the array, swapped 17 values 

2019-08-27 15:40:48,829 INFO [default] Swaping postion 8 and 9

2019-08-27 15:40:48,829 INFO [default] Swaping postion 9 and 10

2019-08-27 15:40:48,829 INFO [default] Swaping postion 11 and 12

2019-08-27 15:40:48,829 INFO [default] Swaping postion 14 and 15

2019-08-27 15:40:48,829 INFO [default] Swaping postion 17 and 18

2019-08-27 15:40:48,829 INFO [default] Swaping postion 18 and 19

2019-08-27 15:40:48,829 INFO [default] Swaping postion 20 and 21

2019-08-27 15:40:48,829 INFO [default] Swaping postion 24 and 25

2019-08-27 15:40:48,829 INFO [default] Swaping postion 25 and 26

2019-08-27 15:40:48,829 INFO [default] Swaping postion 29 and 30

2019-08-27 15:40:48,829 INFO [default] Swaping postion 30 and 31

2019-08-27 15:40:48,829 INFO [default] Swaping postion 32 and 33

2019-08-27 15:40:48,829 INFO [default] Swaping postion 33 and 34

2019-08-27 15:40:48,829 INFO [default] Swaping postion 34 and 35

2019-08-27 15:40:48,829 INFO [default] Swaping postion 35 and 36

2019-08-27 15:40:48,829 INFO [default] Swaping postion 36 and 37

2019-08-27 15:40:48,829 WARNING [default] --At the end of pass 13 through the array, swapped 16 values 

2019-08-27 15:40:48,829 INFO [default] Swaping postion 7 and 8

2019-08-27 15:40:48,829 INFO [default] Swaping postion 8 and 9

2019-08-27 15:40:48,829 INFO [default] Swaping postion 10 and 11

2019-08-27 15:40:48,829 INFO [default] Swaping postion 13 and 14

2019-08-27 15:40:48,829 INFO [default] Swaping postion 16 and 17

2019-08-27 15:40:48,829 INFO [default] Swaping postion 17 and 18

2019-08-27 15:40:48,829 INFO [default] Swaping postion 19 and 20

2019-08-27 15:40:48,829 INFO [default] Swaping postion 23 and 24

2019-08-27 15:40:48,829 INFO [default] Swaping postion 24 and 25

2019-08-27 15:40:48,829 INFO [default] Swaping postion 28 and 29

2019-08-27 15:40:48,829 INFO [default] Swaping postion 29 and 30

2019-08-27 15:40:48,829 INFO [default] Swaping postion 31 and 32

2019-08-27 15:40:48,829 INFO [default] Swaping postion 32 and 33

2019-08-27 15:40:48,829 INFO [default] Swaping postion 33 and 34

2019-08-27 15:40:48,829 INFO [default] Swaping postion 34 and 35

2019-08-27 15:40:48,829 INFO [default] Swaping postion 35 and 36

2019-08-27 15:40:48,829 WARNING [default] --At the end of pass 14 through the array, swapped 16 values 

2019-08-27 15:40:48,829 INFO [default] Swaping postion 6 and 7

2019-08-27 15:40:48,829 INFO [default] Swaping postion 7 and 8

2019-08-27 15:40:48,829 INFO [default] Swaping postion 9 and 10

2019-08-27 15:40:48,829 INFO [default] Swaping postion 12 and 13

2019-08-27 15:40:48,829 INFO [default] Swaping postion 15 and 16

2019-08-27 15:40:48,829 INFO [default] Swaping postion 16 and 17

2019-08-27 15:40:48,829 INFO [default] Swaping postion 18 and 19

2019-08-27 15:40:48,829 INFO [default] Swaping postion 22 and 23

2019-08-27 15:40:48,829 INFO [default] Swaping postion 23 and 24

2019-08-27 15:40:48,829 INFO [default] Swaping postion 27 and 28

2019-08-27 15:40:48,829 INFO [default] Swaping postion 28 and 29

2019-08-27 15:40:48,829 INFO [default] Swaping postion 30 and 31

2019-08-27 15:40:48,829 INFO [default] Swaping postion 31 and 32

2019-08-27 15:40:48,829 INFO [default] Swaping postion 32 and 33

2019-08-27 15:40:48,829 INFO [default] Swaping postion 33 and 34

2019-08-27 15:40:48,829 INFO [default] Swaping postion 34 and 35

2019-08-27 15:40:48,829 WARNING [default] --At the end of pass 15 through the array, swapped 16 values 

2019-08-27 15:40:48,830 INFO [default] Swaping postion 5 and 6

2019-08-27 15:40:48,830 INFO [default] Swaping postion 6 and 7

2019-08-27 15:40:48,830 INFO [default] Swaping postion 8 and 9

2019-08-27 15:40:48,830 INFO [default] Swaping postion 11 and 12

2019-08-27 15:40:48,830 INFO [default] Swaping postion 14 and 15

2019-08-27 15:40:48,830 INFO [default] Swaping postion 15 and 16

2019-08-27 15:40:48,830 INFO [default] Swaping postion 17 and 18

2019-08-27 15:40:48,830 INFO [default] Swaping postion 21 and 22

2019-08-27 15:40:48,830 INFO [default] Swaping postion 22 and 23

2019-08-27 15:40:48,830 INFO [default] Swaping postion 26 and 27

2019-08-27 15:40:48,830 INFO [default] Swaping postion 27 and 28

2019-08-27 15:40:48,830 INFO [default] Swaping postion 29 and 30

2019-08-27 15:40:48,830 INFO [default] Swaping postion 30 and 31

2019-08-27 15:40:48,830 INFO [default] Swaping postion 31 and 32

2019-08-27 15:40:48,830 INFO [default] Swaping postion 32 and 33

2019-08-27 15:40:48,830 INFO [default] Swaping postion 33 and 34

2019-08-27 15:40:48,830 WARNING [default] --At the end of pass 16 through the array, swapped 16 values 

2019-08-27 15:40:48,830 INFO [default] Swaping postion 4 and 5

2019-08-27 15:40:48,830 INFO [default] Swaping postion 5 and 6

2019-08-27 15:40:48,830 INFO [default] Swaping postion 7 and 8

2019-08-27 15:40:48,830 INFO [default] Swaping postion 10 and 11

2019-08-27 15:40:48,830 INFO [default] Swaping postion 13 and 14

2019-08-27 15:40:48,830 INFO [default] Swaping postion 14 and 15

2019-08-27 15:40:48,830 INFO [default] Swaping postion 16 and 17

2019-08-27 15:40:48,830 INFO [default] Swaping postion 20 and 21

2019-08-27 15:40:48,830 INFO [default] Swaping postion 21 and 22

2019-08-27 15:40:48,830 INFO [default] Swaping postion 25 and 26

2019-08-27 15:40:48,830 INFO [default] Swaping postion 26 and 27

2019-08-27 15:40:48,830 INFO [default] Swaping postion 28 and 29

2019-08-27 15:40:48,830 INFO [default] Swaping postion 29 and 30

2019-08-27 15:40:48,830 INFO [default] Swaping postion 30 and 31

2019-08-27 15:40:48,830 INFO [default] Swaping postion 31 and 32

2019-08-27 15:40:48,830 INFO [default] Swaping postion 32 and 33

2019-08-27 15:40:48,830 WARNING [default] --At the end of pass 17 through the array, swapped 16 values 

2019-08-27 15:40:48,830 INFO [default] Swaping postion 3 and 4

2019-08-27 15:40:48,830 INFO [default] Swaping postion 9 and 10

2019-08-27 15:40:48,830 INFO [default] Swaping postion 12 and 13

2019-08-27 15:40:48,830 INFO [default] Swaping postion 13 and 14

2019-08-27 15:40:48,830 INFO [default] Swaping postion 15 and 16

2019-08-27 15:40:48,830 INFO [default] Swaping postion 19 and 20

2019-08-27 15:40:48,830 INFO [default] Swaping postion 20 and 21

2019-08-27 15:40:48,830 INFO [default] Swaping postion 25 and 26

2019-08-27 15:40:48,830 INFO [default] Swaping postion 28 and 29

2019-08-27 15:40:48,830 INFO [default] Swaping postion 29 and 30

2019-08-27 15:40:48,830 INFO [default] Swaping postion 30 and 31

2019-08-27 15:40:48,830 INFO [default] Swaping postion 31 and 32

2019-08-27 15:40:48,830 WARNING [default] --At the end of pass 18 through the array, swapped 12 values 

2019-08-27 15:40:48,830 INFO [default] Swaping postion 8 and 9

2019-08-27 15:40:48,830 INFO [default] Swaping postion 11 and 12

2019-08-27 15:40:48,830 INFO [default] Swaping postion 12 and 13

2019-08-27 15:40:48,830 INFO [default] Swaping postion 14 and 15

2019-08-27 15:40:48,830 INFO [default] Swaping postion 18 and 19

2019-08-27 15:40:48,830 INFO [default] Swaping postion 19 and 20

2019-08-27 15:40:48,830 INFO [default] Swaping postion 24 and 25

2019-08-27 15:40:48,830 INFO [default] Swaping postion 27 and 28

2019-08-27 15:40:48,830 INFO [default] Swaping postion 28 and 29

2019-08-27 15:40:48,830 INFO [default] Swaping postion 29 and 30

2019-08-27 15:40:48,830 INFO [default] Swaping postion 30 and 31

2019-08-27 15:40:48,830 WARNING [default] --At the end of pass 19 through the array, swapped 11 values 

2019-08-27 15:40:48,830 INFO [default] Swaping postion 7 and 8

2019-08-27 15:40:48,830 INFO [default] Swaping postion 11 and 12

2019-08-27 15:40:48,830 INFO [default] Swaping postion 13 and 14

2019-08-27 15:40:48,830 INFO [default] Swaping postion 17 and 18

2019-08-27 15:40:48,830 INFO [default] Swaping postion 18 and 19

2019-08-27 15:40:48,830 INFO [default] Swaping postion 23 and 24

2019-08-27 15:40:48,830 INFO [default] Swaping postion 26 and 27

2019-08-27 15:40:48,830 INFO [default] Swaping postion 27 and 28

2019-08-27 15:40:48,831 INFO [default] Swaping postion 28 and 29

2019-08-27 15:40:48,831 INFO [default] Swaping postion 29 and 30

2019-08-27 15:40:48,831 WARNING [default] --At the end of pass 20 through the array, swapped 10 values 

2019-08-27 15:40:48,831 INFO [default] Swaping postion 6 and 7

2019-08-27 15:40:48,831 INFO [default] Swaping postion 10 and 11

2019-08-27 15:40:48,831 INFO [default] Swaping postion 16 and 17

2019-08-27 15:40:48,831 INFO [default] Swaping postion 17 and 18

2019-08-27 15:40:48,831 INFO [default] Swaping postion 22 and 23

2019-08-27 15:40:48,831 INFO [default] Swaping postion 25 and 26

2019-08-27 15:40:48,831 INFO [default] Swaping postion 26 and 27

2019-08-27 15:40:48,831 INFO [default] Swaping postion 27 and 28

2019-08-27 15:40:48,831 INFO [default] Swaping postion 28 and 29

2019-08-27 15:40:48,831 WARNING [default] --At the end of pass 21 through the array, swapped 9 values 

2019-08-27 15:40:48,831 INFO [default] Swaping postion 5 and 6

2019-08-27 15:40:48,831 INFO [default] Swaping postion 9 and 10

2019-08-27 15:40:48,831 INFO [default] Swaping postion 15 and 16

2019-08-27 15:40:48,831 INFO [default] Swaping postion 16 and 17

2019-08-27 15:40:48,831 INFO [default] Swaping postion 21 and 22

2019-08-27 15:40:48,831 INFO [default] Swaping postion 24 and 25

2019-08-27 15:40:48,831 INFO [default] Swaping postion 25 and 26

2019-08-27 15:40:48,831 INFO [default] Swaping postion 26 and 27

2019-08-27 15:40:48,831 WARNING [default] --At the end of pass 22 through the array, swapped 8 values 

2019-08-27 15:40:48,831 INFO [default] Swaping postion 4 and 5

2019-08-27 15:40:48,831 INFO [default] Swaping postion 8 and 9

2019-08-27 15:40:48,831 INFO [default] Swaping postion 14 and 15

2019-08-27 15:40:48,831 INFO [default] Swaping postion 15 and 16

2019-08-27 15:40:48,831 INFO [default] Swaping postion 20 and 21

2019-08-27 15:40:48,831 INFO [default] Swaping postion 23 and 24

2019-08-27 15:40:48,831 INFO [default] Swaping postion 24 and 25

2019-08-27 15:40:48,831 INFO [default] Swaping postion 25 and 26

2019-08-27 15:40:48,831 WARNING [default] --At the end of pass 23 through the array, swapped 8 values 

2019-08-27 15:40:48,831 INFO [default] Swaping postion 7 and 8

2019-08-27 15:40:48,831 INFO [default] Swaping postion 14 and 15

2019-08-27 15:40:48,831 INFO [default] Swaping postion 19 and 20

2019-08-27 15:40:48,831 INFO [default] Swaping postion 22 and 23

2019-08-27 15:40:48,831 INFO [default] Swaping postion 23 and 24

2019-08-27 15:40:48,831 INFO [default] Swaping postion 24 and 25

2019-08-27 15:40:48,831 WARNING [default] --At the end of pass 24 through the array, swapped 6 values 

2019-08-27 15:40:48,831 INFO [default] Swaping postion 6 and 7

2019-08-27 15:40:48,831 INFO [default] Swaping postion 13 and 14

2019-08-27 15:40:48,831 INFO [default] Swaping postion 18 and 19

2019-08-27 15:40:48,831 INFO [default] Swaping postion 21 and 22

2019-08-27 15:40:48,831 INFO [default] Swaping postion 22 and 23

2019-08-27 15:40:48,831 INFO [default] Swaping postion 23 and 24

2019-08-27 15:40:48,831 WARNING [default] --At the end of pass 25 through the array, swapped 6 values 

2019-08-27 15:40:48,831 INFO [default] Swaping postion 5 and 6

2019-08-27 15:40:48,831 INFO [default] Swaping postion 12 and 13

2019-08-27 15:40:48,831 INFO [default] Swaping postion 17 and 18

2019-08-27 15:40:48,831 INFO [default] Swaping postion 20 and 21

2019-08-27 15:40:48,831 INFO [default] Swaping postion 21 and 22

2019-08-27 15:40:48,831 INFO [default] Swaping postion 22 and 23

2019-08-27 15:40:48,831 WARNING [default] --At the end of pass 26 through the array, swapped 6 values 

2019-08-27 15:40:48,831 INFO [default] Swaping postion 4 and 5

2019-08-27 15:40:48,831 INFO [default] Swaping postion 11 and 12

2019-08-27 15:40:48,831 INFO [default] Swaping postion 16 and 17

2019-08-27 15:40:48,831 INFO [default] Swaping postion 19 and 20

2019-08-27 15:40:48,831 INFO [default] Swaping postion 20 and 21

2019-08-27 15:40:48,831 INFO [default] Swaping postion 21 and 22

2019-08-27 15:40:48,831 WARNING [default] --At the end of pass 27 through the array, swapped 6 values 

2019-08-27 15:40:48,831 INFO [default] Swaping postion 3 and 4

2019-08-27 15:40:48,831 INFO [default] Swaping postion 10 and 11

2019-08-27 15:40:48,831 INFO [default] Swaping postion 15 and 16

2019-08-27 15:40:48,831 INFO [default] Swaping postion 18 and 19

2019-08-27 15:40:48,831 INFO [default] Swaping postion 19 and 20

2019-08-27 15:40:48,831 INFO [default] Swaping postion 20 and 21

2019-08-27 15:40:48,831 WARNING [default] --At the end of pass 28 through the array, swapped 6 values 

2019-08-27 15:40:48,831 INFO [default] Swaping postion 9 and 10

2019-08-27 15:40:48,832 INFO [default] Swaping postion 14 and 15

2019-08-27 15:40:48,832 INFO [default] Swaping postion 17 and 18

2019-08-27 15:40:48,832 INFO [default] Swaping postion 18 and 19

2019-08-27 15:40:48,832 INFO [default] Swaping postion 19 and 20

2019-08-27 15:40:48,832 WARNING [default] --At the end of pass 29 through the array, swapped 5 values 

2019-08-27 15:40:48,832 INFO [default] Swaping postion 8 and 9

2019-08-27 15:40:48,832 INFO [default] Swaping postion 16 and 17

2019-08-27 15:40:48,832 INFO [default] Swaping postion 17 and 18

2019-08-27 15:40:48,832 INFO [default] Swaping postion 18 and 19

2019-08-27 15:40:48,832 WARNING [default] --At the end of pass 30 through the array, swapped 4 values 

2019-08-27 15:40:48,832 INFO [default] Swaping postion 7 and 8

2019-08-27 15:40:48,832 INFO [default] Swaping postion 15 and 16

2019-08-27 15:40:48,832 INFO [default] Swaping postion 16 and 17

2019-08-27 15:40:48,832 INFO [default] Swaping postion 17 and 18

2019-08-27 15:40:48,832 WARNING [default] --At the end of pass 31 through the array, swapped 4 values 

2019-08-27 15:40:48,832 INFO [default] Swaping postion 14 and 15

2019-08-27 15:40:48,832 INFO [default] Swaping postion 15 and 16

2019-08-27 15:40:48,832 INFO [default] Swaping postion 16 and 17

2019-08-27 15:40:48,832 WARNING [default] --At the end of pass 32 through the array, swapped 3 values 

2019-08-27 15:40:48,832 INFO [default] Swaping postion 13 and 14

2019-08-27 15:40:48,832 INFO [default] Swaping postion 14 and 15

2019-08-27 15:40:48,832 INFO [default] Swaping postion 15 and 16

2019-08-27 15:40:48,832 WARNING [default] --At the end of pass 33 through the array, swapped 3 values 

2019-08-27 15:40:48,832 INFO [default] Swaping postion 12 and 13

2019-08-27 15:40:48,832 INFO [default] Swaping postion 14 and 15

2019-08-27 15:40:48,832 WARNING [default] --At the end of pass 34 through the array, swapped 2 values 

2019-08-27 15:40:48,832 INFO [default] Swaping postion 11 and 12

2019-08-27 15:40:48,832 INFO [default] Swaping postion 13 and 14

2019-08-27 15:40:48,832 WARNING [default] --At the end of pass 35 through the array, swapped 2 values 

2019-08-27 15:40:48,832 INFO [default] Swaping postion 10 and 11

2019-08-27 15:40:48,832 INFO [default] Swaping postion 12 and 13

2019-08-27 15:40:48,832 WARNING [default] --At the end of pass 36 through the array, swapped 2 values 

2019-08-27 15:40:48,832 INFO [default] Swaping postion 9 and 10

2019-08-27 15:40:48,832 WARNING [default] --At the end of pass 37 through the array, swapped 1 values 

2019-08-27 15:40:48,832 INFO [default] Swaping postion 8 and 9

2019-08-27 15:40:48,832 WARNING [default] --At the end of pass 38 through the array, swapped 1 values 

2019-08-27 15:40:48,832 INFO [default] Swaping postion 7 and 8

2019-08-27 15:40:48,832 WARNING [default] --At the end of pass 39 through the array, swapped 1 values 

2019-08-27 15:40:48,832 INFO [default] Swaping postion 6 and 7

2019-08-27 15:40:48,832 WARNING [default] --At the end of pass 40 through the array, swapped 1 values 

2019-08-27 15:40:48,832 INFO [default] Swaping postion 5 and 6

2019-08-27 15:40:48,832 WARNING [default] --At the end of pass 41 through the array, swapped 1 values 

2019-08-27 15:40:48,832 INFO [default] Swaping postion 4 and 5

2019-08-27 15:40:48,832 WARNING [default] --At the end of pass 42 through the array, swapped 1 values 

2019-08-27 15:40:48,832 WARNING [default] --At the end of pass 43 through the array, swapped 0 values 

2019-08-27 15:40:48,832 INFO [default] End void SortArray(T*, int, bool) [with T = int]

You will need to log the start and end of every function in this class macros to help with that have been provided for you in the file cmpslib.h when using LogStart or LogEnd pass in the parameters as they are DO NOT dereference pointers, just pass in the pointer parameters by name log the end of a function before EVERY return in your fucnions call LogEndReturning ( value you are going to return ) you cannot return NULL , you can however return nullptr passing NULL as a parameter to LogReturn will not compile if the return type of a function is void use LogEnd if the return typ is anything other than void use LogEndReturning macro value __LINE__ Integer value representing the current line in the source code file being compiled. __FILE__ A string literal containing the presumed name of the source file being compiled. __DATE__ A string literal in the form "mm dd yyyy" containing the date in which the compilation process began. __TIME__ A string literal in the form "hh:mm:ss" containing the time at which the compilation process began.
An example Makefile, and the cmpslib.h can be found in the lab01 directory Compilation and Linking if you want to use the logging functions you will need to include cmpslib.h and define the LOGGING_LEVEL