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 here here are a few programs followed by the output of the logs when they are run Example 1 File: main1.cpp

// general purpose library we use in this class
#include "cmpslib19.h"

// INCLUDE THE LIBRARY FOR THE LOGGING FUNCTIONS AND THE MACRO TO INITIALIZE IT
// you will need to add the 2 folowing lines to every one of your mains were you wish to use the logging functions
#include "easylogging++.h"
INITIALIZE_EASYLOGGINGPP


int main()
{
	//you will call the InitializeLogger function as the first operation in your main
	InitializeLogger("main1.log");


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

	// WARNING goes to both the file and to console , like a cout statement
	LOG(WARNING) << "Warning level comments have a higher priority \n";

	// ERROR goes to both the file and to console , like a cout statement
	LOG (ERROR)  << "Error level comments have the highest priority \n";


	return 0;
}









output of main1.log File: main1.log

2025-01-10 13:06:50,505 INFO [default] Here is just a general comment to be logged to the file

2025-01-10 13:06:50,505 WARNING [default] Warning level comments have a higher priority 

2025-01-10 13:06:50,505 ERROR [default] Error level comments have the highest priority 


Example 2 File: main2.cpp

// general purpose library we use in this class
#include "cmpslib19.h"

// INCLUDE THE LIBRARY FOR THE LOGGING FUNCTIONS AND THE MACRO TO INITIALIZE IT
// you will need to add the 2 folowing lines to every one of your mains were you wish to use the logging functions
#include "easylogging++.h"
INITIALIZE_EASYLOGGINGPP


int main()
{
	//you will call the InitializeLogger function as the first operation in your main
	InitializeLogger("main2.log");


    /* the logging library works just like a cout statement
       pretty much anything you could do with a cout statement you can do with the logging library
    */

    // try some variables 
 

    int x = 100;
	double y = 3.14;
    string s = "Hello World";


    std::cout << "The variable x: " << x << endl; 
    LOG(INFO) << "The variable x: " << x << endl;

    std::cout << "The variable y: " << y << endl;
    LOG(INFO) << "The variable y: " << y << endl;


    std::cout << "The variable s: " << s << endl;
    LOG(INFO) << "The variable s: " << s << endl;


    /* the text displayed to the console and written to teh logfile will be the same
       HOWEVER we can write things to the logfile silently as our programs run without messing up the console with 
       unwanted or un needed text output interferring with the operation of our program
    */

	return 0;
}









output of main2.log File: main2.log

2025-01-10 13:06:51,931 INFO [default] The variable x: 100

2025-01-10 13:06:51,931 INFO [default] The variable y: 3.14

2025-01-10 13:06:51,931 INFO [default] The variable s: Hello World


Example 3 File: main3.cpp

// general purpose library we use in this class
#include "cmpslib19.h"

// INCLUDE THE LIBRARY FOR THE LOGGING FUNCTIONS AND THE MACRO TO INITIALIZE IT
// you will need to add the 2 folowing lines to every one of your mains were you wish to use the logging functions
#include "easylogging++.h"
INITIALIZE_EASYLOGGINGPP






int main()
{
	//you will call the InitializeLogger function as the first operation in your main
	InitializeLogger("main3.log");



	/*
	   there are some conditional versions of the logging functions

	   LOG_IF

	   LOG_EVERY_N

	   LOG_N_TIMES

    */

	LOG(INFO) << "testing conditional logging " << endl;
	
	LOG(INFO) << "\n\nlog every iteration through the loop" << endl;	
	for (int loop =0; loop<10; loop++)
	{
		LOG(INFO) << "loop=" << loop << endl;
	}


	LOG(INFO) << "\n\nlog only when loop > 5 " << endl;	
	for (int loop =0; loop<10; loop++)
	{
		LOG_IF(loop > 5, INFO) << "loop=" << loop << endl;
	}



	LOG(INFO) << "\n\nlog every second iteration through the loop" << endl;	
	for (int loop =0; loop<10; loop++)
	{
		LOG_EVERY_N(2, INFO) << "loop=" << loop << endl;
	}



	LOG(INFO) << "\n\nlog every iteration, skipping the first 2" << endl;	
	for (int loop =0; loop<10; loop++)
	{
		LOG_AFTER_N(2, INFO) << "loop=" << loop << endl;
	}



	LOG(INFO) << "\n\nlog only the first 3 iterations " << endl;	
	for (int loop =0; loop<10; loop++)
	{
		LOG_N_TIMES(3, INFO) << "loop=" << loop << endl;
	}
	
	return 0;
}


output of main3.log File: main3.log

2025-01-10 13:06:53,365 INFO [default] testing conditional logging 

2025-01-10 13:06:53,365 INFO [default] 

log every iteration through the loop

2025-01-10 13:06:53,365 INFO [default] loop=0

2025-01-10 13:06:53,365 INFO [default] loop=1

2025-01-10 13:06:53,365 INFO [default] loop=2

2025-01-10 13:06:53,365 INFO [default] loop=3

2025-01-10 13:06:53,365 INFO [default] loop=4

2025-01-10 13:06:53,365 INFO [default] loop=5

2025-01-10 13:06:53,365 INFO [default] loop=6

2025-01-10 13:06:53,365 INFO [default] loop=7

2025-01-10 13:06:53,365 INFO [default] loop=8

2025-01-10 13:06:53,365 INFO [default] loop=9

2025-01-10 13:06:53,365 INFO [default] 

log only when loop > 5 

2025-01-10 13:06:53,365 INFO [default] loop=6

2025-01-10 13:06:53,365 INFO [default] loop=7

2025-01-10 13:06:53,365 INFO [default] loop=8

2025-01-10 13:06:53,365 INFO [default] loop=9

2025-01-10 13:06:53,365 INFO [default] 

log every second iteration through the loop

2025-01-10 13:06:53,365 INFO [default] loop=1

2025-01-10 13:06:53,365 INFO [default] loop=3

2025-01-10 13:06:53,365 INFO [default] loop=5

2025-01-10 13:06:53,365 INFO [default] loop=7

2025-01-10 13:06:53,365 INFO [default] loop=9

2025-01-10 13:06:53,365 INFO [default] 

log every iteration, skipping the first 2

2025-01-10 13:06:53,365 INFO [default] loop=2

2025-01-10 13:06:53,365 INFO [default] loop=3

2025-01-10 13:06:53,365 INFO [default] loop=4

2025-01-10 13:06:53,365 INFO [default] loop=5

2025-01-10 13:06:53,365 INFO [default] loop=6

2025-01-10 13:06:53,365 INFO [default] loop=7

2025-01-10 13:06:53,365 INFO [default] loop=8

2025-01-10 13:06:53,365 INFO [default] loop=9

2025-01-10 13:06:53,365 INFO [default] 

log only the first 3 iterations 

2025-01-10 13:06:53,365 INFO [default] loop=0

2025-01-10 13:06:53,365 INFO [default] loop=1

2025-01-10 13:06:53,365 INFO [default] loop=2


Example 4 File: main4.cpp


#include "cmpslib19.h"

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



int Prompt(string in)
{
	LOG(INFO) << "Start " <<  __PRETTY_FUNCTION__ << endl;
	cout << in;
	int temp;
	cin >> temp;
	LOG(INFO) << "End " <<  __PRETTY_FUNCTION__ << "Returning " << temp << endl;
	return temp;
}


double LookupPrice(string value)
{
	LOG_S; // does exactly the same as LOG(INFO) << "Start " <<  __PRETTY_FUNCTION__ << endl;
	double cost = 0.00;
	if (value=="orange")
		cost = 0.55;

	if (value=="apple")
		cost = 0.75;

	if (value=="coconut")
		cost = 2.25;


	LOG_ER(cost); //does exactly the same as  	LOG(INFO) << "End " <<  __PRETTY_FUNCTION__ << " Returning " << cost <<endl;
	return cost;
}






int main()
{
	// set up the logger
	InitializeLogger("main4.log");
	int oranges  = Prompt("How many oranges do you want?"  );
	int apples   = Prompt("How many apples do you want?"   );
	int coconuts = Prompt("How many coconuts do you want?");

	double total_amount = 0;

	total_amount += (oranges  * LookupPrice("orange"));
	total_amount += (apples   * LookupPrice("apple"));
	total_amount += (coconuts * LookupPrice("coconut"));

	cout << "Total Amount: " << total_amount << endl;




	return 0;
}








output of main4.log File: main4.log

2025-01-10 13:06:54,772 INFO [default] Start int Prompt(std::string)

2025-01-10 13:06:57,711 INFO [default] End int Prompt(std::string)Returning 5

2025-01-10 13:06:57,711 INFO [default] Start int Prompt(std::string)

2025-01-10 13:07:00,048 INFO [default] End int Prompt(std::string)Returning 3

2025-01-10 13:07:00,048 INFO [default] Start int Prompt(std::string)

2025-01-10 13:07:02,447 INFO [default] End int Prompt(std::string)Returning 8

2025-01-10 13:07:02,447 INFO [default] Starting double LookupPrice(std::string)

2025-01-10 13:07:02,447 INFO [default] Ending double LookupPrice(std::string) , returning: 0.55

2025-01-10 13:07:02,448 INFO [default] Starting double LookupPrice(std::string)

2025-01-10 13:07:02,448 INFO [default] Ending double LookupPrice(std::string) , returning: 0.75

2025-01-10 13:07:02,448 INFO [default] Starting double LookupPrice(std::string)

2025-01-10 13:07:02,448 INFO [default] Ending double LookupPrice(std::string) , returning: 2.25


Example 5 File: main5.cpp


#include "cmpslib19.h"

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


#define ARRAYSIZE 50


// here is a simple function
// in this class the absolute minimum amount of logging is to log the start and the end of the function
// returns a value that is half of the input
double Half(int input)
{
	LOG_S;  


	double temp = input/2.0;

	LOG(INFO) << "End " <<  __PRETTY_FUNCTION__ << endl;
	// or this shortcut that expands out to the above line 
	LOG_ER(temp);  
	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_S;
	// this funtion has a few parameters , we may want to log these values.... it might be helpfull
	LOG(INFO) << "Params: " << endl;
	LOG(INFO) << VarInfo(one) << endl;// VarInfo is a macro defined in cmpslib19.h  shows type, value and size.... dont use for variables of a custom class
	LOG(INFO) << VarInfo(two) << endl;
	if (one > two)
	{
		LOG_ER(one);
		return one;
	}
	else
	{
		LOG_ER(two);
		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) << "Params: " << endl;
	LOG(INFO) << VarInfo(one) << endl;// VarInfo is a macro defined in cmpslib19.h  shows type, value and size.... dont use for variables of a custom class
	LOG(INFO) << VarInfo(two) << endl;
	LOG(INFO) << VarInfo(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
	InitializeLogger("main5.log");


	// 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

2025-01-10 13:07:03,961 INFO [default] Starting double Half(int)

2025-01-10 13:07:03,961 INFO [default] End double Half(int)

2025-01-10 13:07:03,961 INFO [default] Ending double Half(int) , returning: 11.5

2025-01-10 13:07:03,961 INFO [default] Starting double Half(int)

2025-01-10 13:07:03,961 INFO [default] End double Half(int)

2025-01-10 13:07:03,961 INFO [default] Ending double Half(int) , returning: 11.5

2025-01-10 13:07:03,961 INFO [default] Starting double Half(int)

2025-01-10 13:07:03,961 INFO [default] End double Half(int)

2025-01-10 13:07:03,961 INFO [default] Ending double Half(int) , returning: 5

2025-01-10 13:07:03,961 INFO [default] Starting double Half(int)

2025-01-10 13:07:03,961 INFO [default] End double Half(int)

2025-01-10 13:07:03,961 INFO [default] Ending double Half(int) , returning: 0

2025-01-10 13:07:03,961 INFO [default] Starting int LargerValue(int, int)

2025-01-10 13:07:03,961 INFO [default] Params: 

2025-01-10 13:07:03,961 INFO [default] name: one                    type: int                           size: 4   address: 0x7ffd53c5a6fc   value: 5


2025-01-10 13:07:03,961 INFO [default] name: two                    type: int                           size: 4   address: 0x7ffd53c5a6f8   value: 0


2025-01-10 13:07:03,961 INFO [default] Ending int LargerValue(int, int) , returning: 5

2025-01-10 13:07:03,961 INFO [default] Starting int LargerValue(int, int)

2025-01-10 13:07:03,961 INFO [default] Params: 

2025-01-10 13:07:03,961 INFO [default] name: one                    type: int                           size: 4   address: 0x7ffd53c5a6fc   value: 0


2025-01-10 13:07:03,961 INFO [default] name: two                    type: int                           size: 4   address: 0x7ffd53c5a6f8   value: 0


2025-01-10 13:07:03,961 INFO [default] Ending int LargerValue(int, int) , returning: 0

2025-01-10 13:07:03,961 INFO [default] Starting int LargerValue(int, int)

2025-01-10 13:07:03,961 INFO [default] Params: 

2025-01-10 13:07:03,961 INFO [default] name: one                    type: int                           size: 4   address: 0x7ffd53c5a6fc   value: -5


2025-01-10 13:07:03,961 INFO [default] name: two                    type: int                           size: 4   address: 0x7ffd53c5a6f8   value: 0


2025-01-10 13:07:03,961 INFO [default] Ending int LargerValue(int, int) , returning: 0

2025-01-10 13:07:03,961 INFO [default] Starting int LargerValue(int, int)

2025-01-10 13:07:03,961 INFO [default] Params: 

2025-01-10 13:07:03,961 INFO [default] name: one                    type: int                           size: 4   address: 0x7ffd53c5a6fc   value: 55


2025-01-10 13:07:03,961 INFO [default] name: two                    type: int                           size: 4   address: 0x7ffd53c5a6f8   value: 0


2025-01-10 13:07:03,961 INFO [default] Ending int LargerValue(int, int) , returning: 55

2025-01-10 13:07:03,961 INFO [default] Starting int LargerValue(int, int)

2025-01-10 13:07:03,961 INFO [default] Params: 

2025-01-10 13:07:03,961 INFO [default] name: one                    type: int                           size: 4   address: 0x7ffd53c5a6fc   value: 5


2025-01-10 13:07:03,961 INFO [default] name: two                    type: int                           size: 4   address: 0x7ffd53c5a6f8   value: 100


2025-01-10 13:07:03,962 INFO [default] Ending int LargerValue(int, int) , returning: 100

2025-01-10 13:07:03,962 INFO [default] Start void LargerValue(long unsigned int, long unsigned int, long unsigned int&)

2025-01-10 13:07:03,962 INFO [default] Params: 

2025-01-10 13:07:03,962 INFO [default] name: one                    type: unsigned long                 size: 8   address: 0x7ffd53c5a658   value: 2000000000


2025-01-10 13:07:03,962 INFO [default] name: two                    type: unsigned long                 size: 8   address: 0x7ffd53c5a650   value: 3000000000


2025-01-10 13:07:03,962 INFO [default] name: result                 type: unsigned long                 size: 8   address: 0x7ffd53c5aa68   value: 0


2025-01-10 13:07:03,962 INFO [default] End void LargerValue(long unsigned int, long unsigned int, long unsigned int&)

2025-01-10 13:07:03,962 INFO [default] End Params: 2000000000 , 3000000000 , 3000000000

2025-01-10 13:07:03,962 INFO [default] Start void LargerValue(long unsigned int, long unsigned int, long unsigned int&)

2025-01-10 13:07:03,962 INFO [default] Params: 

2025-01-10 13:07:03,962 INFO [default] name: one                    type: unsigned long                 size: 8   address: 0x7ffd53c5a658   value: 3000000000


2025-01-10 13:07:03,962 INFO [default] name: two                    type: unsigned long                 size: 8   address: 0x7ffd53c5a650   value: 2000000000


2025-01-10 13:07:03,962 INFO [default] name: result                 type: unsigned long                 size: 8   address: 0x7ffd53c5aa68   value: 3000000000


2025-01-10 13:07:03,962 INFO [default] End void LargerValue(long unsigned int, long unsigned int, long unsigned int&)

2025-01-10 13:07:03,962 INFO [default] End Params: 3000000000 , 2000000000 , 3000000000


Example 6 File: main6.cpp


#include "cmpslib19.h"

// INCLUDE THE LIBRARY FOR THE LOGGING FUNCTIONS AND THE MACRO TO INITIALIZE IT
#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
  InitializeLogger("main6.log");



	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

2025-01-10 13:07:05,382 INFO [default] Preparing to fill array with random numbers
2025-01-10 13:07:05,382 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,382 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,382 INFO [default] Storing 44into iData[0] 

2025-01-10 13:07:05,382 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,382 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,382 INFO [default] Storing 29into iData[1] 

2025-01-10 13:07:05,382 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,382 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,382 INFO [default] Storing 11into iData[2] 

2025-01-10 13:07:05,382 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,382 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,382 INFO [default] Storing 34into iData[3] 

2025-01-10 13:07:05,382 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,382 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,382 INFO [default] Storing 45into iData[4] 

2025-01-10 13:07:05,382 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,382 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,382 INFO [default] Storing 9into iData[5] 

2025-01-10 13:07:05,382 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,382 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,382 INFO [default] Storing 33into iData[6] 

2025-01-10 13:07:05,382 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,382 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,382 INFO [default] Storing 9into iData[7] 

2025-01-10 13:07:05,382 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,382 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,382 INFO [default] Storing 42into iData[8] 

2025-01-10 13:07:05,382 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,382 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,382 INFO [default] Storing 25into iData[9] 

2025-01-10 13:07:05,382 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,382 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,382 INFO [default] Storing 39into iData[10] 

2025-01-10 13:07:05,382 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,382 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,382 INFO [default] Storing 10into iData[11] 

2025-01-10 13:07:05,382 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 4into iData[12] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 17into iData[13] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 14into iData[14] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 9into iData[15] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 39into iData[16] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 20into iData[17] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 9into iData[18] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 48into iData[19] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 34into iData[20] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 2into iData[21] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 2into iData[22] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 11into iData[23] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 5into iData[24] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 39into iData[25] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 2into iData[26] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 16into iData[27] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 41into iData[28] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 50into iData[29] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 23into iData[30] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 34into iData[31] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 31into iData[32] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 35into iData[33] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 19into iData[34] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 25into iData[35] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 43into iData[36] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 2into iData[37] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 34into iData[38] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 37into iData[39] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 28into iData[40] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 24into iData[41] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 48into iData[42] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 31into iData[43] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 42into iData[44] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 14into iData[45] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 39into iData[46] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 30into iData[47] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 35into iData[48] 

2025-01-10 13:07:05,383 INFO [default] Start int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] End int CreateARandomNumber(int, int)

2025-01-10 13:07:05,383 INFO [default] Storing 49into iData[49] 

2025-01-10 13:07:05,383 INFO [default] Start void SortArray(T*, int, bool) [with T = int]

2025-01-10 13:07:05,383 INFO [default] Sorting the array ascending order 

2025-01-10 13:07:05,383 INFO [default] Swaping postion 0 and 1

2025-01-10 13:07:05,383 INFO [default] Swaping postion 1 and 2

2025-01-10 13:07:05,383 INFO [default] Swaping postion 2 and 3

2025-01-10 13:07:05,383 INFO [default] Swaping postion 4 and 5

2025-01-10 13:07:05,383 INFO [default] Swaping postion 5 and 6

2025-01-10 13:07:05,383 INFO [default] Swaping postion 6 and 7

2025-01-10 13:07:05,383 INFO [default] Swaping postion 7 and 8

2025-01-10 13:07:05,383 INFO [default] Swaping postion 8 and 9

2025-01-10 13:07:05,383 INFO [default] Swaping postion 9 and 10

2025-01-10 13:07:05,383 INFO [default] Swaping postion 10 and 11

2025-01-10 13:07:05,383 INFO [default] Swaping postion 11 and 12

2025-01-10 13:07:05,384 INFO [default] Swaping postion 12 and 13

2025-01-10 13:07:05,384 INFO [default] Swaping postion 13 and 14

2025-01-10 13:07:05,384 INFO [default] Swaping postion 14 and 15

2025-01-10 13:07:05,384 INFO [default] Swaping postion 15 and 16

2025-01-10 13:07:05,384 INFO [default] Swaping postion 16 and 17

2025-01-10 13:07:05,384 INFO [default] Swaping postion 17 and 18

2025-01-10 13:07:05,384 INFO [default] Swaping postion 19 and 20

2025-01-10 13:07:05,384 INFO [default] Swaping postion 20 and 21

2025-01-10 13:07:05,384 INFO [default] Swaping postion 21 and 22

2025-01-10 13:07:05,384 INFO [default] Swaping postion 22 and 23

2025-01-10 13:07:05,384 INFO [default] Swaping postion 23 and 24

2025-01-10 13:07:05,384 INFO [default] Swaping postion 24 and 25

2025-01-10 13:07:05,384 INFO [default] Swaping postion 25 and 26

2025-01-10 13:07:05,384 INFO [default] Swaping postion 26 and 27

2025-01-10 13:07:05,384 INFO [default] Swaping postion 27 and 28

2025-01-10 13:07:05,384 INFO [default] Swaping postion 29 and 30

2025-01-10 13:07:05,384 INFO [default] Swaping postion 30 and 31

2025-01-10 13:07:05,384 INFO [default] Swaping postion 31 and 32

2025-01-10 13:07:05,384 INFO [default] Swaping postion 32 and 33

2025-01-10 13:07:05,384 INFO [default] Swaping postion 33 and 34

2025-01-10 13:07:05,384 INFO [default] Swaping postion 34 and 35

2025-01-10 13:07:05,384 INFO [default] Swaping postion 35 and 36

2025-01-10 13:07:05,384 INFO [default] Swaping postion 36 and 37

2025-01-10 13:07:05,384 INFO [default] Swaping postion 37 and 38

2025-01-10 13:07:05,384 INFO [default] Swaping postion 38 and 39

2025-01-10 13:07:05,384 INFO [default] Swaping postion 39 and 40

2025-01-10 13:07:05,384 INFO [default] Swaping postion 40 and 41

2025-01-10 13:07:05,384 INFO [default] Swaping postion 41 and 42

2025-01-10 13:07:05,384 INFO [default] Swaping postion 42 and 43

2025-01-10 13:07:05,384 INFO [default] Swaping postion 43 and 44

2025-01-10 13:07:05,384 INFO [default] Swaping postion 44 and 45

2025-01-10 13:07:05,384 INFO [default] Swaping postion 45 and 46

2025-01-10 13:07:05,384 INFO [default] Swaping postion 46 and 47

2025-01-10 13:07:05,384 INFO [default] Swaping postion 47 and 48

2025-01-10 13:07:05,384 INFO [default] Swaping postion 48 and 49

2025-01-10 13:07:05,384 WARNING [default] --At the end of pass 1 through the array, swapped 46 values 

2025-01-10 13:07:05,384 INFO [default] Swaping postion 0 and 1

2025-01-10 13:07:05,384 INFO [default] Swaping postion 3 and 4

2025-01-10 13:07:05,384 INFO [default] Swaping postion 4 and 5

2025-01-10 13:07:05,384 INFO [default] Swaping postion 5 and 6

2025-01-10 13:07:05,384 INFO [default] Swaping postion 6 and 7

2025-01-10 13:07:05,384 INFO [default] Swaping postion 7 and 8

2025-01-10 13:07:05,384 INFO [default] Swaping postion 8 and 9

2025-01-10 13:07:05,384 INFO [default] Swaping postion 9 and 10

2025-01-10 13:07:05,384 INFO [default] Swaping postion 10 and 11

2025-01-10 13:07:05,384 INFO [default] Swaping postion 11 and 12

2025-01-10 13:07:05,384 INFO [default] Swaping postion 12 and 13

2025-01-10 13:07:05,384 INFO [default] Swaping postion 13 and 14

2025-01-10 13:07:05,384 INFO [default] Swaping postion 14 and 15

2025-01-10 13:07:05,384 INFO [default] Swaping postion 15 and 16

2025-01-10 13:07:05,384 INFO [default] Swaping postion 16 and 17

2025-01-10 13:07:05,384 INFO [default] Swaping postion 18 and 19

2025-01-10 13:07:05,384 INFO [default] Swaping postion 19 and 20

2025-01-10 13:07:05,384 INFO [default] Swaping postion 20 and 21

2025-01-10 13:07:05,384 INFO [default] Swaping postion 21 and 22

2025-01-10 13:07:05,384 INFO [default] Swaping postion 22 and 23

2025-01-10 13:07:05,384 INFO [default] Swaping postion 23 and 24

2025-01-10 13:07:05,384 INFO [default] Swaping postion 24 and 25

2025-01-10 13:07:05,384 INFO [default] Swaping postion 25 and 26

2025-01-10 13:07:05,384 INFO [default] Swaping postion 26 and 27

2025-01-10 13:07:05,384 INFO [default] Swaping postion 28 and 29

2025-01-10 13:07:05,384 INFO [default] Swaping postion 29 and 30

2025-01-10 13:07:05,384 INFO [default] Swaping postion 30 and 31

2025-01-10 13:07:05,384 INFO [default] Swaping postion 31 and 32

2025-01-10 13:07:05,384 INFO [default] Swaping postion 32 and 33

2025-01-10 13:07:05,384 INFO [default] Swaping postion 33 and 34

2025-01-10 13:07:05,384 INFO [default] Swaping postion 34 and 35

2025-01-10 13:07:05,384 INFO [default] Swaping postion 35 and 36

2025-01-10 13:07:05,384 INFO [default] Swaping postion 36 and 37

2025-01-10 13:07:05,384 INFO [default] Swaping postion 37 and 38

2025-01-10 13:07:05,384 INFO [default] Swaping postion 38 and 39

2025-01-10 13:07:05,384 INFO [default] Swaping postion 39 and 40

2025-01-10 13:07:05,384 INFO [default] Swaping postion 41 and 42

2025-01-10 13:07:05,384 INFO [default] Swaping postion 42 and 43

2025-01-10 13:07:05,384 INFO [default] Swaping postion 43 and 44

2025-01-10 13:07:05,384 INFO [default] Swaping postion 44 and 45

2025-01-10 13:07:05,384 INFO [default] Swaping postion 45 and 46

2025-01-10 13:07:05,384 INFO [default] Swaping postion 46 and 47

2025-01-10 13:07:05,384 WARNING [default] --At the end of pass 2 through the array, swapped 42 values 

2025-01-10 13:07:05,384 INFO [default] Swaping postion 2 and 3

2025-01-10 13:07:05,384 INFO [default] Swaping postion 3 and 4

2025-01-10 13:07:05,384 INFO [default] Swaping postion 4 and 5

2025-01-10 13:07:05,384 INFO [default] Swaping postion 6 and 7

2025-01-10 13:07:05,384 INFO [default] Swaping postion 7 and 8

2025-01-10 13:07:05,384 INFO [default] Swaping postion 8 and 9

2025-01-10 13:07:05,384 INFO [default] Swaping postion 9 and 10

2025-01-10 13:07:05,384 INFO [default] Swaping postion 10 and 11

2025-01-10 13:07:05,384 INFO [default] Swaping postion 11 and 12

2025-01-10 13:07:05,384 INFO [default] Swaping postion 12 and 13

2025-01-10 13:07:05,384 INFO [default] Swaping postion 13 and 14

2025-01-10 13:07:05,384 INFO [default] Swaping postion 14 and 15

2025-01-10 13:07:05,384 INFO [default] Swaping postion 15 and 16

2025-01-10 13:07:05,384 INFO [default] Swaping postion 17 and 18

2025-01-10 13:07:05,384 INFO [default] Swaping postion 18 and 19

2025-01-10 13:07:05,384 INFO [default] Swaping postion 19 and 20

2025-01-10 13:07:05,384 INFO [default] Swaping postion 20 and 21

2025-01-10 13:07:05,384 INFO [default] Swaping postion 21 and 22

2025-01-10 13:07:05,384 INFO [default] Swaping postion 22 and 23

2025-01-10 13:07:05,384 INFO [default] Swaping postion 23 and 24

2025-01-10 13:07:05,384 INFO [default] Swaping postion 24 and 25

2025-01-10 13:07:05,384 INFO [default] Swaping postion 25 and 26

2025-01-10 13:07:05,384 INFO [default] Swaping postion 27 and 28

2025-01-10 13:07:05,384 INFO [default] Swaping postion 28 and 29

2025-01-10 13:07:05,384 INFO [default] Swaping postion 29 and 30

2025-01-10 13:07:05,384 INFO [default] Swaping postion 30 and 31

2025-01-10 13:07:05,384 INFO [default] Swaping postion 31 and 32

2025-01-10 13:07:05,384 INFO [default] Swaping postion 32 and 33

2025-01-10 13:07:05,384 INFO [default] Swaping postion 33 and 34

2025-01-10 13:07:05,384 INFO [default] Swaping postion 34 and 35

2025-01-10 13:07:05,384 INFO [default] Swaping postion 35 and 36

2025-01-10 13:07:05,384 INFO [default] Swaping postion 36 and 37

2025-01-10 13:07:05,384 INFO [default] Swaping postion 37 and 38

2025-01-10 13:07:05,384 INFO [default] Swaping postion 38 and 39

2025-01-10 13:07:05,384 INFO [default] Swaping postion 40 and 41

2025-01-10 13:07:05,384 INFO [default] Swaping postion 41 and 42

2025-01-10 13:07:05,384 INFO [default] Swaping postion 42 and 43

2025-01-10 13:07:05,384 INFO [default] Swaping postion 43 and 44

2025-01-10 13:07:05,384 INFO [default] Swaping postion 44 and 45

2025-01-10 13:07:05,384 INFO [default] Swaping postion 45 and 46

2025-01-10 13:07:05,384 WARNING [default] --At the end of pass 3 through the array, swapped 40 values 

2025-01-10 13:07:05,384 INFO [default] Swaping postion 1 and 2

2025-01-10 13:07:05,385 INFO [default] Swaping postion 3 and 4

2025-01-10 13:07:05,385 INFO [default] Swaping postion 5 and 6

2025-01-10 13:07:05,385 INFO [default] Swaping postion 7 and 8

2025-01-10 13:07:05,385 INFO [default] Swaping postion 8 and 9

2025-01-10 13:07:05,385 INFO [default] Swaping postion 9 and 10

2025-01-10 13:07:05,385 INFO [default] Swaping postion 10 and 11

2025-01-10 13:07:05,385 INFO [default] Swaping postion 11 and 12

2025-01-10 13:07:05,385 INFO [default] Swaping postion 13 and 14

2025-01-10 13:07:05,385 INFO [default] Swaping postion 14 and 15

2025-01-10 13:07:05,385 INFO [default] Swaping postion 16 and 17

2025-01-10 13:07:05,385 INFO [default] Swaping postion 17 and 18

2025-01-10 13:07:05,385 INFO [default] Swaping postion 18 and 19

2025-01-10 13:07:05,385 INFO [default] Swaping postion 19 and 20

2025-01-10 13:07:05,385 INFO [default] Swaping postion 20 and 21

2025-01-10 13:07:05,385 INFO [default] Swaping postion 21 and 22

2025-01-10 13:07:05,385 INFO [default] Swaping postion 22 and 23

2025-01-10 13:07:05,385 INFO [default] Swaping postion 23 and 24

2025-01-10 13:07:05,385 INFO [default] Swaping postion 24 and 25

2025-01-10 13:07:05,385 INFO [default] Swaping postion 26 and 27

2025-01-10 13:07:05,385 INFO [default] Swaping postion 27 and 28

2025-01-10 13:07:05,385 INFO [default] Swaping postion 28 and 29

2025-01-10 13:07:05,385 INFO [default] Swaping postion 29 and 30

2025-01-10 13:07:05,385 INFO [default] Swaping postion 30 and 31

2025-01-10 13:07:05,385 INFO [default] Swaping postion 31 and 32

2025-01-10 13:07:05,385 INFO [default] Swaping postion 32 and 33

2025-01-10 13:07:05,385 INFO [default] Swaping postion 33 and 34

2025-01-10 13:07:05,385 INFO [default] Swaping postion 34 and 35

2025-01-10 13:07:05,385 INFO [default] Swaping postion 35 and 36

2025-01-10 13:07:05,385 INFO [default] Swaping postion 36 and 37

2025-01-10 13:07:05,385 INFO [default] Swaping postion 37 and 38

2025-01-10 13:07:05,385 INFO [default] Swaping postion 39 and 40

2025-01-10 13:07:05,385 INFO [default] Swaping postion 40 and 41

2025-01-10 13:07:05,385 INFO [default] Swaping postion 41 and 42

2025-01-10 13:07:05,385 INFO [default] Swaping postion 42 and 43

2025-01-10 13:07:05,385 INFO [default] Swaping postion 43 and 44

2025-01-10 13:07:05,385 INFO [default] Swaping postion 44 and 45

2025-01-10 13:07:05,385 WARNING [default] --At the end of pass 4 through the array, swapped 37 values 

2025-01-10 13:07:05,385 INFO [default] Swaping postion 0 and 1

2025-01-10 13:07:05,385 INFO [default] Swaping postion 2 and 3

2025-01-10 13:07:05,385 INFO [default] Swaping postion 4 and 5

2025-01-10 13:07:05,385 INFO [default] Swaping postion 6 and 7

2025-01-10 13:07:05,385 INFO [default] Swaping postion 7 and 8

2025-01-10 13:07:05,385 INFO [default] Swaping postion 8 and 9

2025-01-10 13:07:05,385 INFO [default] Swaping postion 9 and 10

2025-01-10 13:07:05,385 INFO [default] Swaping postion 10 and 11

2025-01-10 13:07:05,385 INFO [default] Swaping postion 12 and 13

2025-01-10 13:07:05,385 INFO [default] Swaping postion 13 and 14

2025-01-10 13:07:05,385 INFO [default] Swaping postion 15 and 16

2025-01-10 13:07:05,385 INFO [default] Swaping postion 16 and 17

2025-01-10 13:07:05,385 INFO [default] Swaping postion 17 and 18

2025-01-10 13:07:05,385 INFO [default] Swaping postion 18 and 19

2025-01-10 13:07:05,385 INFO [default] Swaping postion 19 and 20

2025-01-10 13:07:05,385 INFO [default] Swaping postion 21 and 22

2025-01-10 13:07:05,385 INFO [default] Swaping postion 22 and 23

2025-01-10 13:07:05,385 INFO [default] Swaping postion 25 and 26

2025-01-10 13:07:05,385 INFO [default] Swaping postion 26 and 27

2025-01-10 13:07:05,385 INFO [default] Swaping postion 27 and 28

2025-01-10 13:07:05,385 INFO [default] Swaping postion 28 and 29

2025-01-10 13:07:05,385 INFO [default] Swaping postion 29 and 30

2025-01-10 13:07:05,385 INFO [default] Swaping postion 30 and 31

2025-01-10 13:07:05,385 INFO [default] Swaping postion 32 and 33

2025-01-10 13:07:05,385 INFO [default] Swaping postion 33 and 34

2025-01-10 13:07:05,385 INFO [default] Swaping postion 34 and 35

2025-01-10 13:07:05,385 INFO [default] Swaping postion 35 and 36

2025-01-10 13:07:05,385 INFO [default] Swaping postion 36 and 37

2025-01-10 13:07:05,385 INFO [default] Swaping postion 38 and 39

2025-01-10 13:07:05,385 INFO [default] Swaping postion 39 and 40

2025-01-10 13:07:05,385 INFO [default] Swaping postion 40 and 41

2025-01-10 13:07:05,385 INFO [default] Swaping postion 41 and 42

2025-01-10 13:07:05,385 INFO [default] Swaping postion 42 and 43

2025-01-10 13:07:05,385 INFO [default] Swaping postion 43 and 44

2025-01-10 13:07:05,385 WARNING [default] --At the end of pass 5 through the array, swapped 34 values 

2025-01-10 13:07:05,385 INFO [default] Swaping postion 1 and 2

2025-01-10 13:07:05,385 INFO [default] Swaping postion 3 and 4

2025-01-10 13:07:05,385 INFO [default] Swaping postion 5 and 6

2025-01-10 13:07:05,385 INFO [default] Swaping postion 6 and 7

2025-01-10 13:07:05,385 INFO [default] Swaping postion 7 and 8

2025-01-10 13:07:05,385 INFO [default] Swaping postion 8 and 9

2025-01-10 13:07:05,385 INFO [default] Swaping postion 9 and 10

2025-01-10 13:07:05,385 INFO [default] Swaping postion 11 and 12

2025-01-10 13:07:05,385 INFO [default] Swaping postion 12 and 13

2025-01-10 13:07:05,385 INFO [default] Swaping postion 14 and 15

2025-01-10 13:07:05,385 INFO [default] Swaping postion 15 and 16

2025-01-10 13:07:05,385 INFO [default] Swaping postion 16 and 17

2025-01-10 13:07:05,385 INFO [default] Swaping postion 17 and 18

2025-01-10 13:07:05,385 INFO [default] Swaping postion 18 and 19

2025-01-10 13:07:05,385 INFO [default] Swaping postion 20 and 21

2025-01-10 13:07:05,385 INFO [default] Swaping postion 21 and 22

2025-01-10 13:07:05,385 INFO [default] Swaping postion 24 and 25

2025-01-10 13:07:05,385 INFO [default] Swaping postion 25 and 26

2025-01-10 13:07:05,385 INFO [default] Swaping postion 26 and 27

2025-01-10 13:07:05,385 INFO [default] Swaping postion 27 and 28

2025-01-10 13:07:05,385 INFO [default] Swaping postion 28 and 29

2025-01-10 13:07:05,385 INFO [default] Swaping postion 29 and 30

2025-01-10 13:07:05,385 INFO [default] Swaping postion 31 and 32

2025-01-10 13:07:05,385 INFO [default] Swaping postion 32 and 33

2025-01-10 13:07:05,385 INFO [default] Swaping postion 33 and 34

2025-01-10 13:07:05,385 INFO [default] Swaping postion 34 and 35

2025-01-10 13:07:05,385 INFO [default] Swaping postion 35 and 36

2025-01-10 13:07:05,385 INFO [default] Swaping postion 37 and 38

2025-01-10 13:07:05,385 INFO [default] Swaping postion 38 and 39

2025-01-10 13:07:05,385 INFO [default] Swaping postion 39 and 40

2025-01-10 13:07:05,385 INFO [default] Swaping postion 40 and 41

2025-01-10 13:07:05,385 INFO [default] Swaping postion 41 and 42

2025-01-10 13:07:05,385 INFO [default] Swaping postion 42 and 43

2025-01-10 13:07:05,385 WARNING [default] --At the end of pass 6 through the array, swapped 33 values 

2025-01-10 13:07:05,385 INFO [default] Swaping postion 4 and 5

2025-01-10 13:07:05,385 INFO [default] Swaping postion 5 and 6

2025-01-10 13:07:05,385 INFO [default] Swaping postion 6 and 7

2025-01-10 13:07:05,385 INFO [default] Swaping postion 7 and 8

2025-01-10 13:07:05,385 INFO [default] Swaping postion 8 and 9

2025-01-10 13:07:05,385 INFO [default] Swaping postion 10 and 11

2025-01-10 13:07:05,385 INFO [default] Swaping postion 11 and 12

2025-01-10 13:07:05,385 INFO [default] Swaping postion 14 and 15

2025-01-10 13:07:05,385 INFO [default] Swaping postion 15 and 16

2025-01-10 13:07:05,385 INFO [default] Swaping postion 16 and 17

2025-01-10 13:07:05,385 INFO [default] Swaping postion 17 and 18

2025-01-10 13:07:05,385 INFO [default] Swaping postion 19 and 20

2025-01-10 13:07:05,385 INFO [default] Swaping postion 20 and 21

2025-01-10 13:07:05,385 INFO [default] Swaping postion 23 and 24

2025-01-10 13:07:05,385 INFO [default] Swaping postion 24 and 25

2025-01-10 13:07:05,385 INFO [default] Swaping postion 25 and 26

2025-01-10 13:07:05,386 INFO [default] Swaping postion 26 and 27

2025-01-10 13:07:05,386 INFO [default] Swaping postion 27 and 28

2025-01-10 13:07:05,386 INFO [default] Swaping postion 28 and 29

2025-01-10 13:07:05,386 INFO [default] Swaping postion 30 and 31

2025-01-10 13:07:05,386 INFO [default] Swaping postion 31 and 32

2025-01-10 13:07:05,386 INFO [default] Swaping postion 32 and 33

2025-01-10 13:07:05,386 INFO [default] Swaping postion 33 and 34

2025-01-10 13:07:05,386 INFO [default] Swaping postion 34 and 35

2025-01-10 13:07:05,386 INFO [default] Swaping postion 36 and 37

2025-01-10 13:07:05,386 INFO [default] Swaping postion 38 and 39

2025-01-10 13:07:05,386 INFO [default] Swaping postion 39 and 40

2025-01-10 13:07:05,386 INFO [default] Swaping postion 40 and 41

2025-01-10 13:07:05,386 INFO [default] Swaping postion 41 and 42

2025-01-10 13:07:05,386 WARNING [default] --At the end of pass 7 through the array, swapped 29 values 

2025-01-10 13:07:05,386 INFO [default] Swaping postion 3 and 4

2025-01-10 13:07:05,386 INFO [default] Swaping postion 4 and 5

2025-01-10 13:07:05,386 INFO [default] Swaping postion 5 and 6

2025-01-10 13:07:05,386 INFO [default] Swaping postion 6 and 7

2025-01-10 13:07:05,386 INFO [default] Swaping postion 7 and 8

2025-01-10 13:07:05,386 INFO [default] Swaping postion 9 and 10

2025-01-10 13:07:05,386 INFO [default] Swaping postion 10 and 11

2025-01-10 13:07:05,386 INFO [default] Swaping postion 13 and 14

2025-01-10 13:07:05,386 INFO [default] Swaping postion 14 and 15

2025-01-10 13:07:05,386 INFO [default] Swaping postion 15 and 16

2025-01-10 13:07:05,386 INFO [default] Swaping postion 16 and 17

2025-01-10 13:07:05,386 INFO [default] Swaping postion 18 and 19

2025-01-10 13:07:05,386 INFO [default] Swaping postion 19 and 20

2025-01-10 13:07:05,386 INFO [default] Swaping postion 22 and 23

2025-01-10 13:07:05,386 INFO [default] Swaping postion 23 and 24

2025-01-10 13:07:05,386 INFO [default] Swaping postion 24 and 25

2025-01-10 13:07:05,386 INFO [default] Swaping postion 25 and 26

2025-01-10 13:07:05,386 INFO [default] Swaping postion 26 and 27

2025-01-10 13:07:05,386 INFO [default] Swaping postion 27 and 28

2025-01-10 13:07:05,386 INFO [default] Swaping postion 29 and 30

2025-01-10 13:07:05,386 INFO [default] Swaping postion 30 and 31

2025-01-10 13:07:05,386 INFO [default] Swaping postion 31 and 32

2025-01-10 13:07:05,386 INFO [default] Swaping postion 32 and 33

2025-01-10 13:07:05,386 INFO [default] Swaping postion 33 and 34

2025-01-10 13:07:05,386 INFO [default] Swaping postion 35 and 36

2025-01-10 13:07:05,386 INFO [default] Swaping postion 37 and 38

2025-01-10 13:07:05,386 INFO [default] Swaping postion 38 and 39

2025-01-10 13:07:05,386 INFO [default] Swaping postion 39 and 40

2025-01-10 13:07:05,386 INFO [default] Swaping postion 40 and 41

2025-01-10 13:07:05,386 WARNING [default] --At the end of pass 8 through the array, swapped 29 values 

2025-01-10 13:07:05,386 INFO [default] Swaping postion 2 and 3

2025-01-10 13:07:05,386 INFO [default] Swaping postion 3 and 4

2025-01-10 13:07:05,386 INFO [default] Swaping postion 5 and 6

2025-01-10 13:07:05,386 INFO [default] Swaping postion 6 and 7

2025-01-10 13:07:05,386 INFO [default] Swaping postion 8 and 9

2025-01-10 13:07:05,386 INFO [default] Swaping postion 9 and 10

2025-01-10 13:07:05,386 INFO [default] Swaping postion 12 and 13

2025-01-10 13:07:05,386 INFO [default] Swaping postion 13 and 14

2025-01-10 13:07:05,386 INFO [default] Swaping postion 14 and 15

2025-01-10 13:07:05,386 INFO [default] Swaping postion 15 and 16

2025-01-10 13:07:05,386 INFO [default] Swaping postion 17 and 18

2025-01-10 13:07:05,386 INFO [default] Swaping postion 18 and 19

2025-01-10 13:07:05,386 INFO [default] Swaping postion 21 and 22

2025-01-10 13:07:05,386 INFO [default] Swaping postion 22 and 23

2025-01-10 13:07:05,386 INFO [default] Swaping postion 23 and 24

2025-01-10 13:07:05,386 INFO [default] Swaping postion 24 and 25

2025-01-10 13:07:05,386 INFO [default] Swaping postion 25 and 26

2025-01-10 13:07:05,386 INFO [default] Swaping postion 26 and 27

2025-01-10 13:07:05,386 INFO [default] Swaping postion 28 and 29

2025-01-10 13:07:05,386 INFO [default] Swaping postion 29 and 30

2025-01-10 13:07:05,386 INFO [default] Swaping postion 30 and 31

2025-01-10 13:07:05,386 INFO [default] Swaping postion 31 and 32

2025-01-10 13:07:05,386 INFO [default] Swaping postion 32 and 33

2025-01-10 13:07:05,386 INFO [default] Swaping postion 34 and 35

2025-01-10 13:07:05,386 INFO [default] Swaping postion 36 and 37

2025-01-10 13:07:05,386 INFO [default] Swaping postion 37 and 38

2025-01-10 13:07:05,386 INFO [default] Swaping postion 38 and 39

2025-01-10 13:07:05,386 INFO [default] Swaping postion 39 and 40

2025-01-10 13:07:05,386 WARNING [default] --At the end of pass 9 through the array, swapped 28 values 

2025-01-10 13:07:05,386 INFO [default] Swaping postion 2 and 3

2025-01-10 13:07:05,386 INFO [default] Swaping postion 5 and 6

2025-01-10 13:07:05,386 INFO [default] Swaping postion 8 and 9

2025-01-10 13:07:05,386 INFO [default] Swaping postion 11 and 12

2025-01-10 13:07:05,386 INFO [default] Swaping postion 12 and 13

2025-01-10 13:07:05,386 INFO [default] Swaping postion 13 and 14

2025-01-10 13:07:05,386 INFO [default] Swaping postion 14 and 15

2025-01-10 13:07:05,386 INFO [default] Swaping postion 16 and 17

2025-01-10 13:07:05,386 INFO [default] Swaping postion 17 and 18

2025-01-10 13:07:05,386 INFO [default] Swaping postion 20 and 21

2025-01-10 13:07:05,386 INFO [default] Swaping postion 22 and 23

2025-01-10 13:07:05,386 INFO [default] Swaping postion 24 and 25

2025-01-10 13:07:05,386 INFO [default] Swaping postion 25 and 26

2025-01-10 13:07:05,386 INFO [default] Swaping postion 27 and 28

2025-01-10 13:07:05,386 INFO [default] Swaping postion 28 and 29

2025-01-10 13:07:05,386 INFO [default] Swaping postion 29 and 30

2025-01-10 13:07:05,386 INFO [default] Swaping postion 30 and 31

2025-01-10 13:07:05,386 INFO [default] Swaping postion 31 and 32

2025-01-10 13:07:05,386 INFO [default] Swaping postion 33 and 34

2025-01-10 13:07:05,386 INFO [default] Swaping postion 35 and 36

2025-01-10 13:07:05,386 INFO [default] Swaping postion 37 and 38

2025-01-10 13:07:05,386 INFO [default] Swaping postion 38 and 39

2025-01-10 13:07:05,386 WARNING [default] --At the end of pass 10 through the array, swapped 22 values 

2025-01-10 13:07:05,386 INFO [default] Swaping postion 1 and 2

2025-01-10 13:07:05,386 INFO [default] Swaping postion 4 and 5

2025-01-10 13:07:05,386 INFO [default] Swaping postion 7 and 8

2025-01-10 13:07:05,386 INFO [default] Swaping postion 10 and 11

2025-01-10 13:07:05,386 INFO [default] Swaping postion 11 and 12

2025-01-10 13:07:05,386 INFO [default] Swaping postion 12 and 13

2025-01-10 13:07:05,386 INFO [default] Swaping postion 13 and 14

2025-01-10 13:07:05,386 INFO [default] Swaping postion 15 and 16

2025-01-10 13:07:05,386 INFO [default] Swaping postion 16 and 17

2025-01-10 13:07:05,386 INFO [default] Swaping postion 19 and 20

2025-01-10 13:07:05,386 INFO [default] Swaping postion 21 and 22

2025-01-10 13:07:05,386 INFO [default] Swaping postion 23 and 24

2025-01-10 13:07:05,386 INFO [default] Swaping postion 24 and 25

2025-01-10 13:07:05,386 INFO [default] Swaping postion 26 and 27

2025-01-10 13:07:05,386 INFO [default] Swaping postion 27 and 28

2025-01-10 13:07:05,386 INFO [default] Swaping postion 29 and 30

2025-01-10 13:07:05,386 INFO [default] Swaping postion 30 and 31

2025-01-10 13:07:05,386 INFO [default] Swaping postion 32 and 33

2025-01-10 13:07:05,386 INFO [default] Swaping postion 34 and 35

2025-01-10 13:07:05,386 INFO [default] Swaping postion 36 and 37

2025-01-10 13:07:05,386 INFO [default] Swaping postion 37 and 38

2025-01-10 13:07:05,386 WARNING [default] --At the end of pass 11 through the array, swapped 21 values 

2025-01-10 13:07:05,386 INFO [default] Swaping postion 0 and 1

2025-01-10 13:07:05,386 INFO [default] Swaping postion 3 and 4

2025-01-10 13:07:05,387 INFO [default] Swaping postion 6 and 7

2025-01-10 13:07:05,387 INFO [default] Swaping postion 9 and 10

2025-01-10 13:07:05,387 INFO [default] Swaping postion 10 and 11

2025-01-10 13:07:05,387 INFO [default] Swaping postion 11 and 12

2025-01-10 13:07:05,387 INFO [default] Swaping postion 12 and 13

2025-01-10 13:07:05,387 INFO [default] Swaping postion 14 and 15

2025-01-10 13:07:05,387 INFO [default] Swaping postion 15 and 16

2025-01-10 13:07:05,387 INFO [default] Swaping postion 18 and 19

2025-01-10 13:07:05,387 INFO [default] Swaping postion 20 and 21

2025-01-10 13:07:05,387 INFO [default] Swaping postion 22 and 23

2025-01-10 13:07:05,387 INFO [default] Swaping postion 23 and 24

2025-01-10 13:07:05,387 INFO [default] Swaping postion 25 and 26

2025-01-10 13:07:05,387 INFO [default] Swaping postion 28 and 29

2025-01-10 13:07:05,387 INFO [default] Swaping postion 29 and 30

2025-01-10 13:07:05,387 INFO [default] Swaping postion 31 and 32

2025-01-10 13:07:05,387 INFO [default] Swaping postion 33 and 34

2025-01-10 13:07:05,387 INFO [default] Swaping postion 35 and 36

2025-01-10 13:07:05,387 INFO [default] Swaping postion 36 and 37

2025-01-10 13:07:05,387 WARNING [default] --At the end of pass 12 through the array, swapped 20 values 

2025-01-10 13:07:05,387 INFO [default] Swaping postion 5 and 6

2025-01-10 13:07:05,387 INFO [default] Swaping postion 8 and 9

2025-01-10 13:07:05,387 INFO [default] Swaping postion 9 and 10

2025-01-10 13:07:05,387 INFO [default] Swaping postion 10 and 11

2025-01-10 13:07:05,387 INFO [default] Swaping postion 11 and 12

2025-01-10 13:07:05,387 INFO [default] Swaping postion 13 and 14

2025-01-10 13:07:05,387 INFO [default] Swaping postion 14 and 15

2025-01-10 13:07:05,387 INFO [default] Swaping postion 17 and 18

2025-01-10 13:07:05,387 INFO [default] Swaping postion 19 and 20

2025-01-10 13:07:05,387 INFO [default] Swaping postion 21 and 22

2025-01-10 13:07:05,387 INFO [default] Swaping postion 22 and 23

2025-01-10 13:07:05,387 INFO [default] Swaping postion 24 and 25

2025-01-10 13:07:05,387 INFO [default] Swaping postion 27 and 28

2025-01-10 13:07:05,387 INFO [default] Swaping postion 28 and 29

2025-01-10 13:07:05,387 INFO [default] Swaping postion 30 and 31

2025-01-10 13:07:05,387 INFO [default] Swaping postion 32 and 33

2025-01-10 13:07:05,387 INFO [default] Swaping postion 34 and 35

2025-01-10 13:07:05,387 INFO [default] Swaping postion 35 and 36

2025-01-10 13:07:05,387 WARNING [default] --At the end of pass 13 through the array, swapped 18 values 

2025-01-10 13:07:05,387 INFO [default] Swaping postion 4 and 5

2025-01-10 13:07:05,387 INFO [default] Swaping postion 7 and 8

2025-01-10 13:07:05,387 INFO [default] Swaping postion 8 and 9

2025-01-10 13:07:05,387 INFO [default] Swaping postion 9 and 10

2025-01-10 13:07:05,387 INFO [default] Swaping postion 10 and 11

2025-01-10 13:07:05,387 INFO [default] Swaping postion 12 and 13

2025-01-10 13:07:05,387 INFO [default] Swaping postion 13 and 14

2025-01-10 13:07:05,387 INFO [default] Swaping postion 16 and 17

2025-01-10 13:07:05,387 INFO [default] Swaping postion 20 and 21

2025-01-10 13:07:05,387 INFO [default] Swaping postion 21 and 22

2025-01-10 13:07:05,387 INFO [default] Swaping postion 23 and 24

2025-01-10 13:07:05,387 INFO [default] Swaping postion 26 and 27

2025-01-10 13:07:05,387 INFO [default] Swaping postion 27 and 28

2025-01-10 13:07:05,387 INFO [default] Swaping postion 29 and 30

2025-01-10 13:07:05,387 INFO [default] Swaping postion 31 and 32

2025-01-10 13:07:05,387 INFO [default] Swaping postion 33 and 34

2025-01-10 13:07:05,387 INFO [default] Swaping postion 34 and 35

2025-01-10 13:07:05,387 WARNING [default] --At the end of pass 14 through the array, swapped 17 values 

2025-01-10 13:07:05,387 INFO [default] Swaping postion 6 and 7

2025-01-10 13:07:05,387 INFO [default] Swaping postion 7 and 8

2025-01-10 13:07:05,387 INFO [default] Swaping postion 9 and 10

2025-01-10 13:07:05,387 INFO [default] Swaping postion 11 and 12

2025-01-10 13:07:05,387 INFO [default] Swaping postion 19 and 20

2025-01-10 13:07:05,387 INFO [default] Swaping postion 20 and 21

2025-01-10 13:07:05,387 INFO [default] Swaping postion 22 and 23

2025-01-10 13:07:05,387 INFO [default] Swaping postion 25 and 26

2025-01-10 13:07:05,387 INFO [default] Swaping postion 26 and 27

2025-01-10 13:07:05,387 INFO [default] Swaping postion 28 and 29

2025-01-10 13:07:05,387 INFO [default] Swaping postion 30 and 31

2025-01-10 13:07:05,387 INFO [default] Swaping postion 32 and 33

2025-01-10 13:07:05,387 WARNING [default] --At the end of pass 15 through the array, swapped 12 values 

2025-01-10 13:07:05,387 INFO [default] Swaping postion 5 and 6

2025-01-10 13:07:05,387 INFO [default] Swaping postion 6 and 7

2025-01-10 13:07:05,387 INFO [default] Swaping postion 8 and 9

2025-01-10 13:07:05,387 INFO [default] Swaping postion 10 and 11

2025-01-10 13:07:05,387 INFO [default] Swaping postion 18 and 19

2025-01-10 13:07:05,387 INFO [default] Swaping postion 19 and 20

2025-01-10 13:07:05,387 INFO [default] Swaping postion 21 and 22

2025-01-10 13:07:05,387 INFO [default] Swaping postion 24 and 25

2025-01-10 13:07:05,387 INFO [default] Swaping postion 25 and 26

2025-01-10 13:07:05,387 INFO [default] Swaping postion 27 and 28

2025-01-10 13:07:05,387 INFO [default] Swaping postion 29 and 30

2025-01-10 13:07:05,387 INFO [default] Swaping postion 31 and 32

2025-01-10 13:07:05,387 WARNING [default] --At the end of pass 16 through the array, swapped 12 values 

2025-01-10 13:07:05,387 INFO [default] Swaping postion 4 and 5

2025-01-10 13:07:05,387 INFO [default] Swaping postion 5 and 6

2025-01-10 13:07:05,387 INFO [default] Swaping postion 7 and 8

2025-01-10 13:07:05,387 INFO [default] Swaping postion 9 and 10

2025-01-10 13:07:05,387 INFO [default] Swaping postion 17 and 18

2025-01-10 13:07:05,387 INFO [default] Swaping postion 20 and 21

2025-01-10 13:07:05,387 INFO [default] Swaping postion 23 and 24

2025-01-10 13:07:05,387 INFO [default] Swaping postion 24 and 25

2025-01-10 13:07:05,387 INFO [default] Swaping postion 26 and 27

2025-01-10 13:07:05,387 INFO [default] Swaping postion 28 and 29

2025-01-10 13:07:05,387 INFO [default] Swaping postion 30 and 31

2025-01-10 13:07:05,387 WARNING [default] --At the end of pass 17 through the array, swapped 11 values 

2025-01-10 13:07:05,387 INFO [default] Swaping postion 3 and 4

2025-01-10 13:07:05,387 INFO [default] Swaping postion 4 and 5

2025-01-10 13:07:05,387 INFO [default] Swaping postion 6 and 7

2025-01-10 13:07:05,387 INFO [default] Swaping postion 8 and 9

2025-01-10 13:07:05,387 INFO [default] Swaping postion 16 and 17

2025-01-10 13:07:05,387 INFO [default] Swaping postion 19 and 20

2025-01-10 13:07:05,387 INFO [default] Swaping postion 22 and 23

2025-01-10 13:07:05,387 INFO [default] Swaping postion 23 and 24

2025-01-10 13:07:05,387 INFO [default] Swaping postion 25 and 26

2025-01-10 13:07:05,387 INFO [default] Swaping postion 27 and 28

2025-01-10 13:07:05,387 INFO [default] Swaping postion 29 and 30

2025-01-10 13:07:05,387 WARNING [default] --At the end of pass 18 through the array, swapped 11 values 

2025-01-10 13:07:05,387 INFO [default] Swaping postion 2 and 3

2025-01-10 13:07:05,387 INFO [default] Swaping postion 3 and 4

2025-01-10 13:07:05,387 INFO [default] Swaping postion 5 and 6

2025-01-10 13:07:05,387 INFO [default] Swaping postion 7 and 8

2025-01-10 13:07:05,387 INFO [default] Swaping postion 15 and 16

2025-01-10 13:07:05,387 INFO [default] Swaping postion 18 and 19

2025-01-10 13:07:05,387 INFO [default] Swaping postion 21 and 22

2025-01-10 13:07:05,387 INFO [default] Swaping postion 22 and 23

2025-01-10 13:07:05,387 INFO [default] Swaping postion 26 and 27

2025-01-10 13:07:05,387 INFO [default] Swaping postion 28 and 29

2025-01-10 13:07:05,387 WARNING [default] --At the end of pass 19 through the array, swapped 10 values 

2025-01-10 13:07:05,387 INFO [default] Swaping postion 1 and 2

2025-01-10 13:07:05,387 INFO [default] Swaping postion 2 and 3

2025-01-10 13:07:05,388 INFO [default] Swaping postion 4 and 5

2025-01-10 13:07:05,388 INFO [default] Swaping postion 6 and 7

2025-01-10 13:07:05,388 INFO [default] Swaping postion 17 and 18

2025-01-10 13:07:05,388 INFO [default] Swaping postion 21 and 22

2025-01-10 13:07:05,388 INFO [default] Swaping postion 25 and 26

2025-01-10 13:07:05,388 INFO [default] Swaping postion 27 and 28

2025-01-10 13:07:05,388 WARNING [default] --At the end of pass 20 through the array, swapped 8 values 

2025-01-10 13:07:05,388 INFO [default] Swaping postion 0 and 1

2025-01-10 13:07:05,388 INFO [default] Swaping postion 1 and 2

2025-01-10 13:07:05,388 INFO [default] Swaping postion 3 and 4

2025-01-10 13:07:05,388 INFO [default] Swaping postion 5 and 6

2025-01-10 13:07:05,388 INFO [default] Swaping postion 16 and 17

2025-01-10 13:07:05,388 INFO [default] Swaping postion 20 and 21

2025-01-10 13:07:05,388 INFO [default] Swaping postion 24 and 25

2025-01-10 13:07:05,388 INFO [default] Swaping postion 26 and 27

2025-01-10 13:07:05,388 WARNING [default] --At the end of pass 21 through the array, swapped 8 values 

2025-01-10 13:07:05,388 INFO [default] Swaping postion 4 and 5

2025-01-10 13:07:05,388 INFO [default] Swaping postion 15 and 16

2025-01-10 13:07:05,388 INFO [default] Swaping postion 19 and 20

2025-01-10 13:07:05,388 INFO [default] Swaping postion 23 and 24

2025-01-10 13:07:05,388 INFO [default] Swaping postion 25 and 26

2025-01-10 13:07:05,388 WARNING [default] --At the end of pass 22 through the array, swapped 5 values 

2025-01-10 13:07:05,388 INFO [default] Swaping postion 3 and 4

2025-01-10 13:07:05,388 INFO [default] Swaping postion 14 and 15

2025-01-10 13:07:05,388 INFO [default] Swaping postion 22 and 23

2025-01-10 13:07:05,388 WARNING [default] --At the end of pass 23 through the array, swapped 3 values 

2025-01-10 13:07:05,388 INFO [default] Swaping postion 2 and 3

2025-01-10 13:07:05,388 INFO [default] Swaping postion 13 and 14

2025-01-10 13:07:05,388 INFO [default] Swaping postion 21 and 22

2025-01-10 13:07:05,388 WARNING [default] --At the end of pass 24 through the array, swapped 3 values 

2025-01-10 13:07:05,388 INFO [default] Swaping postion 12 and 13

2025-01-10 13:07:05,388 INFO [default] Swaping postion 20 and 21

2025-01-10 13:07:05,388 WARNING [default] --At the end of pass 25 through the array, swapped 2 values 

2025-01-10 13:07:05,388 INFO [default] Swaping postion 11 and 12

2025-01-10 13:07:05,388 INFO [default] Swaping postion 19 and 20

2025-01-10 13:07:05,388 WARNING [default] --At the end of pass 26 through the array, swapped 2 values 

2025-01-10 13:07:05,388 INFO [default] Swaping postion 10 and 11

2025-01-10 13:07:05,388 INFO [default] Swaping postion 18 and 19

2025-01-10 13:07:05,388 WARNING [default] --At the end of pass 27 through the array, swapped 2 values 

2025-01-10 13:07:05,388 INFO [default] Swaping postion 9 and 10

2025-01-10 13:07:05,388 INFO [default] Swaping postion 17 and 18

2025-01-10 13:07:05,388 WARNING [default] --At the end of pass 28 through the array, swapped 2 values 

2025-01-10 13:07:05,388 INFO [default] Swaping postion 8 and 9

2025-01-10 13:07:05,388 INFO [default] Swaping postion 16 and 17

2025-01-10 13:07:05,388 WARNING [default] --At the end of pass 29 through the array, swapped 2 values 

2025-01-10 13:07:05,388 INFO [default] Swaping postion 7 and 8

2025-01-10 13:07:05,388 INFO [default] Swaping postion 15 and 16

2025-01-10 13:07:05,388 WARNING [default] --At the end of pass 30 through the array, swapped 2 values 

2025-01-10 13:07:05,388 INFO [default] Swaping postion 6 and 7

2025-01-10 13:07:05,388 INFO [default] Swaping postion 14 and 15

2025-01-10 13:07:05,388 WARNING [default] --At the end of pass 31 through the array, swapped 2 values 

2025-01-10 13:07:05,388 INFO [default] Swaping postion 5 and 6

2025-01-10 13:07:05,388 WARNING [default] --At the end of pass 32 through the array, swapped 1 values 

2025-01-10 13:07:05,388 INFO [default] Swaping postion 4 and 5

2025-01-10 13:07:05,388 WARNING [default] --At the end of pass 33 through the array, swapped 1 values 

2025-01-10 13:07:05,388 INFO [default] Swaping postion 3 and 4

2025-01-10 13:07:05,388 WARNING [default] --At the end of pass 34 through the array, swapped 1 values 

2025-01-10 13:07:05,388 WARNING [default] --At the end of pass 35 through the array, swapped 0 values 

2025-01-10 13:07:05,388 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