import operator
def 							lowerCAmelCase(     __lowerCamelCase				,    __lowerCamelCase = False				,    __lowerCamelCase = None						):
					__a		 =       operator.lt if reverse else operator.gt
					__a		 =       solution or []

					if not arr:
										return solution

					__a		 =       [arr.pop(0						)]
					for i, item in enumerate(__lowerCamelCase						):
										if _operator(__lowerCamelCase				,    sublist[-1]						):
															sublist.append(__lowerCamelCase						)
															arr.pop(__lowerCamelCase						)

    #  merging sublist into solution list
					if not solution:
										solution.extend(__lowerCamelCase						)
					else:
										while sublist:
															__a		 =       sublist.pop(0						)
															for i, xx in enumerate(__lowerCamelCase						):
																				if not _operator(__lowerCamelCase				,    __lowerCamelCase						):
																									solution.insert(__lowerCamelCase				,    __lowerCamelCase						)
																									break
															else:
																				solution.append(__lowerCamelCase						)

					strand_sort(__lowerCamelCase				,    __lowerCamelCase				,    __lowerCamelCase						)
					return solution


if __name__ == "__main__":
	assert strand_sort([4, 3, 5, 1, 2]) == [1, 2, 3, 4, 5]
	assert strand_sort([4, 3, 5, 1, 2], reverse=True) == [5, 4, 3, 2, 1]





from .glue import glue_convert_examples_to_features, glue_output_modes, glue_processors, glue_tasks_num_labels
from .squad import SquadExample, SquadFeatures, SquadVaProcessor, SquadVaProcessor, squad_convert_examples_to_features
from .utils import DataProcessor, InputExample, InputFeatures, SingleSentenceClassificationProcessor
from .xnli import xnli_output_modes, xnli_processors, xnli_tasks_num_labels




