######################################%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&$$$$$$}}}}}}}}}}}}}}}}!!++++!!!!!!!!!!}}}}}}}}}}!!}} ####################################%%%%%%%%%%%%%%%%%%%%%%%%&&&&%%&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$}}}}!!++++!!!!!!!!!!}}!!}}}}}}}} ####################################%%%%%%%%%%%%%%%%%%%%%%%%%%&&%%&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$}}!!++++++!!!!!!!!!!!!}}}}}} ####################################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$}}}}!!++++++!!!!!!!!!!!!}}}} ######################################%%%%%%%%##%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$}}}}++++++!!!!++++!!!!!!!! ####################################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$}}!!!!++!!++++++++!!!!!! ############################################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$}}}}!!++++++++++++++++++ ##################################################%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$}}!!++++++++++++++++++ ######################################################%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$}}}}!!++++++++++++++++ ########################################################%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$}}!!++++++++++++++++ ######################################################%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$}}}}!!++++++++++++++ ####################################################%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$}}$$!!++++++++++++++ ##################################################%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$}}!!++++++++++++ ##############################################%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$!!++++++++++++ ############################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$}}!!++++++++++ ######################%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&%%&&%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$}}!!++++++++++ ####################%%%%%%%%%%&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$}}++++++++++ ##############%%%%%%%%%%%%&&&&&&&&$$$$$$}}}}$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$}}!!++++++++ ##########%%%%%%%%%%%%%%&&&&$$$$$$$$}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$}}!!++++++++ ######%%%%%%%%&&&&&&&&&&&&$$$$$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$}}++++!!++ ####%%%%%%%%&&&&&&&&&&&&$$$$$$$$$$$$$$$$}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$&&&&&&&&$$$$$$&&$$$$$$$$$$$$!!++!!++ ##%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$}}}}}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$$$$$$$&&&&&&$$$$$$$$!!++!!!! %%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$}}++!!++ %%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&$$$$$$$$}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$}}}}++!!++ %%%%%%%%&&&&&&&&%%%%%%%%%%%%%%&&&&&&&&&&&&$$$$$$$$}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$&&&&$$$$$$$$$$$$$$}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$!!++++ %%%%%%&&&&&&&&%%%%%%%%%%%%&&&&&&&&&&$$$$$$$$$$$$$$$$}}}}}}}}}}$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!++++ %%&&&&&&&&&&&&%%%%%%%%&&&&$$$$$$}}}}}}}}$$$$$$$$$$$$}}}}}}}}}}$$$$$$$$&&&&&&&&&&&&&&$$$$$$}}}}}}}}}}}}}}!!!!!!!!!!!!!!}}}}}}}}}}}}++++ %%&&&&&&&&&&%%%%%%&&$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$&&&&&&%%%%%%%%&&&&&&$$$$}}}}}}}}}}}}!!!!!!!!!!!!!!!!!!!!}}}}}}}}++++ &&&&&&&&&&%%&&&&$$$$$$$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$&&&&&&%%%%%%%%%%%%&&&&$$$$}}}}}}}}}}}}}}}}}}}}!!!!!!!!!!!!!!}}}}}}!!++ &&&&&&&&&&&&$$$$$$$$$$}}}}!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}$$&&&&%%%%%%%%%%%%%%&&&&$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!++ %%&&&&&&&&$$$$}}$$}}}}!!++++++++++++!!!!!!}}}}}}}}}}}}}}}}}}}}$$&&&&%%%%####%%%%%%&&&&$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!! %%&&&&$$$$}}}}}}}}!!!!!!!!!!++++++!!!!!!!!!!!!}}}}}}}}}}}}}}}}$$&&&&%%##########%%&&&&$$}}}}}}}}!!}}}}}}}}}}}}}}}}}}}}}}$$$$$$}}}}}}!! %%&&$$$$$$$$$$}}}}}}}}!!!!!!++++!!++!!}}}}!!!!!!}}}}}}}}}}}}$$$$&&%%%%##########%%%%&&$$}}}}}}!!!!!!}}}}}}}}}}$$$$$$$$$$}}$$$$}}}}}}!! &&&&&&&&&&%%%%%%&&$$$$}}!!!!!!!!!!!!!!}}}}!!!!!!!!!!}}}}}}}}$$&&&&%%##############%%%%&&}}}}!!!!!!!!!!}}}}}}}}}}$$}}$$$$$$}}$$}}}}}}!! %%%%%%%%######%%%%&&&&$$$$}}}}}}!!!!!!}}}}}}!!!!!!!!}}$$$$$$&&&&%%%%##############%%%%&&$$!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!! ##############%%%%%%%%%%&&&&$$$$$$$$}}}}}}}}}}}}$$$$$$$$&&&&&&%%%%##################%%&&$$!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}!! ########%%%%%%%%%%%%%%%%&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&%%%%%%##################%%%%&&}}!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}!! ########%%%%%%%%&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$}}$$$$$$&&%%%%%%%%####################%%%%&&$$!!++++++++++++++++++!!!!!!}}}}}}}}}}}}}}!! ##########%%%%%%&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&%%%%%%%%##############@@########%%%%$$!!++++++++++++++++++!!!!!!!!}}}}}}}}}}}}++ ##############%%%%%%&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&%%%%%%##################@@########%%%%%%}}!!++++++++++++!!!!}}}}!!++!!!!}}}}}}}}++ ##############%%%%%%%%%%%%%%&&&&&&&&&&$$$$$$$$&&&&%%%%%%%%##################@@##@@######%%%%&&}}!!!!!!!!!!++++!!}}}}!!!!!!!!}}}}}}!!++ ################%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&%%%%%%%%################################%%%%&&$$}}!!!!}}}}}}}}}}}}!!!!!!!!!!}}}}}}!!++ ##################%%%%%%%%%%%%&&&&&&&&&&&&%%%%%%%%%%%%##################################%%%%%%&&$$}}!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!++ ############%%%%####%%%%%%%%%%%%&&%%%%%%%%%%%%%%%%%%%%##################################%%%%%%%%%%$$}}}}}}}}}}$$}}$$$$$$$$}}}}}}}}!!++ ##############%%##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##########################@@@@######%%%%%%%%%%&&$$}}}}}}}}}}}}}}}}$$$$$$}}}}}}!!++ ################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##########################@@########%%%%%%&&&&&&&&$$}}}}}}}}}}}}}}}}}}}}}}}}}}!!++ ##############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##########################%%%%%%%%&&&&&&&&&&$$$$}}}}}}}}}}}}}}}}}}}}}}}}!!++ ####%%%%####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%####################%%%%%%%%&&&&&&&&&&&&$$$$$$$$}}}}$$$$}}}}}}}}}}}}}}}}!!++ ##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%################%%%%&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$}}$$$$$$}}}}}}}}}}}}!!++ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&%%%%##############%%%%&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$}}}}}}}}!!++ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&%%%%############%%%%&&&&&&&&$$&&$$$$$$$$$$}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$}}}}}}!!++ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&%%&&&&&&&&&&&&%%############%%&&$$}}}}!!!!}}}}}}$$$$}}$$}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$}}!!++ %%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&%%########%%%%$$}}!!++++++++!!++!!}}$$$$}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$}}}}++ %%&&&&%%&&&&&&&&&&&&&&&&&&&&%%%%%%%%&&&&&&&&&&&&&&%%%%%%####%%&&$$}}++++++++!!!!!!!!!!}}$$}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$}}++ &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%&&&&&&&&&&&&&&&&&&%%%%##%%&&$$}}!!++++++!!}}!!!!}}}}$$$$}}}}}}!!!!!!}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$!! %%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%&&$$}}++++!!}}}}$$}}}}$$$$$$}}}}!!++++!!!!}}$$$$$$$$$$$$$$$$$$$$$$$$$$$$}} &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$}}}}}}}}$$$$$$$$}}$$}}}}}}}}++++++!!}}}}}}$$$$$$$$$$$$$$$$$$$$$$$$$$}} &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$}}}}}}}}}}}}}}!!++!!!!}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$}} &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$}}}}}}}}}}}}!!!!!!}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$}} &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%&&&&$$}}}}$$$$$$$$$$$$$$$$}}}}}}}}}}}}}}!!}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$$$}} &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%&&$$$$$$&&&&&&&&$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$$$$$$$$$$$}}}} &&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%&&&&&&&&%%%%%%%%%%%%%%######%%%%%%%%%%%%&&&&$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$$$$$}}}}}}}} &&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%&&&&%%%%%%%%%%%%%%%%%%%%####%%%%%%%%%%%%&&&&$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$$$$$}}}}}}}}}} &&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}}}}}}}}}}} &&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} &&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&%%%%&&&&&&$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} &&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&$$$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} &&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}$$}}}}}}}}}}}}}}}}}}}}}}!! &&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&%%%%%%%%%%%%%%%%%%&&&&&&&&&&$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}++ &&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&$$$$$$$$$$$$$$$$$$$$}}}}}}}}}}}}$$}}}}}}}}}}}}}}}}}}++ &&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!++ &&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&%%%%%%%%%%%%&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&$$$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!++ &&&&&&%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&$$$$&&&&%%%%%%%%%%%%&&&&&&$$$$$$}}}}}}}}}}}}}}}}$$$$$$$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!++ &&&&&&%%%%%%%%%%%%%%%%%%%%%%&&&&$$$$$$$$&&&&&&&&&&&&&&&&$$$$}}}}}}}}!!!!!!!!!!!!!!!!!!!!}}}}}}!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!! &&&&%%%%%%%%%%%%%%%%%%%%%%&&&&&&$$$$$$$$$$&&&&$$$$$$$$$$}}}}!!!!}}}}}}}}}}}}}}!!!!!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}}}!!!! &&&&%%%%%%%%%%%%%%%%%%%%&&&&&&$$$$$$$$}}$$$$$$$$}}}}!!!!!!}}$$&&&&&&&&&&&&&&&&$$$$$$}}}}}}}}}}}}!!!!!!!!!!}}}}}}}}}}}}}}}}}}}}}}}}!!!! &&&&&&%%%%%%%%%%%%%%%%%%&&&&$$$$}}}}}}}}!!!!}}}}!!}}}}$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!! &&&&&&%%%%%%%%%%%%%%%%&&&&$$$$$$}}}}!!!!++!!!!}}$$$$&&&&%%&&&&&&&&&&&&$$$$$$}}}}}}}}}}}}$$$$}}}}$$}}}}}}}}!!}}}}}}}}}}}}}}}}}}}}}}!!!! &&&&&&%%%%%%%%%%%%%%&&&&&&$$$$}}}}!!!!!!}}$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!}}}}}}}}}}}}}}!!!!!! &&&&&&%%%%%%%%%%%%&&&&&&&&$$}}}}}}!!}}$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!!!!!!!!!!!!}}}}}}}}}}}}!!!!!! &&&&%%%%%%%%%%%%%%&&&&&&$$$$}}}}}}$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$}}}}}}}}}}}}}}!!!!!!!!!!!!!!!!}}}}}}}}}}}}!!++!!!!}}}}}}}}}}}}}}!!!!!! &&&&&&&&&&&&&&&&&&&&&&&&$$$$$$}}$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$}}}}}}}}}}}}}}!!!!!!!!!!!!!!!!!!!!!!}}}}}}}}!!!!!!!!!!}}}}}}}}}}}}!!!!!!