averagexyifgexyxyiftruexyaverIteryxyiffalsexyaverIterxyxaverIterxyzifItergexyxyzifItertruexyzzifIterfalsexyzaverIterplusxsss0plusys0pluszs0appendnilyyappendconsnxyconsnappxylownnilnillownconsmxif_lowgemnnconsmxif_lowfalsenconsmxconsmlownxif_lowtruenconsmxlownxhighnnilnilhighnconsmxif_highgemnnconsmxif_highfalsenconsmxhighnxif_hightruenconsmxconsaveragemmhighnxquicksortxifquickisemptyxxifquicktruexnilifquickfalsexappendquicksortlowheadxtailxconstailxquicksorthighheadxtailxplus0yyplussxysplusxyisemptyniltrueisemptyconsnxfalseheadnilerrorheadconsnxntailnilniltailconsnxxgex0truege0syfalsegesxsygexyabacaveragexygexyaveragexyifgexyxyiftruexyaverIteryxyiffalsexyaverIterxyxaverIterxyzgexyaverIterxyzifItergexyxyzifIterfalsexyzpluszs0ifIterfalsexyzplusys0ifIterfalsexyzplusxsss0ifIterfalsexyzaverIterplusxsss0plusys0pluszs0lownconsmxgemnlownconsmxif_lowgemnnconsmxif_lowfalsenconsmxlownxif_lowtruenconsmxlownxhighnconsmxgemnhighnconsmxif_highgemnnconsmxif_highfalsenconsmxhighnxif_hightruenconsmxhighnxif_hightruenconsmxaveragemmquicksortxisemptyxquicksortxifquickisemptyxxifquickfalsexhighheadxtailxifquickfalsexquicksorthighheadxtailxifquickfalsextailxifquickfalsexheadxifquickfalsexlowheadxtailxifquickfalsexquicksortlowheadxtailxifquickfalsexappendquicksortlowheadxtailxconstailxquicksorthighheadxtailxplussxyplusxygesxsygexytrueifquickfalsexquicksorthighheadxtailxquicksortxifquickisemptyxxifquickfalsexquicksortlowheadxtailxtrueifquickfalsexappendquicksortlowheadxtailxconstailxquicksorthighheadxtailxfalseifquickfalsexlowheadxtailxfalselownconsmxif_lowgemnnconsmxif_lowfalsenconsmxlownxif_lowtruenconsmxlownxtruelownconsmxgemnfalseifquickfalsexhighheadxtailxfalsehighnconsmxif_highgemnnconsmxif_highfalsenconsmxhighnxif_hightruenconsmxhighnxtrueif_hightruenconsmxaveragemmfalseaveragexyifgexyxyfalseiffalsexyaverIterxyxfalseiftruexyaverIteryxyfalseaverIterxyzifItergexyxyzifIterfalsexyzaverIterplusxsss0plusys0pluszs0trueifIterfalsexyzplusxsss0falseifIterfalsexyzplusys0falseifIterfalsexyzpluszs0falseplussxyplusxytrueaverIterxyzgexyfalseaveragexygexyfalsehighnconsmxgemnfalsegesxsygexytruequicksortxisemptyxfalseifquickfalsextailxfalseifquickfalsexheadxfalse